User Manual Data Stream Manager
User Manual Data Stream Manager
– User Manual –
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Content
Introduction to the Data Stream Manager .................................................................................................................. 3
Governance ....................................................................................................................................................................... 7
Connections ....................................................................................................................................................................... 9
Create a Template...................................................................................................................................................... 30
Templates ...................................................................................................................................................................... 32
Streams .............................................................................................................................................................................. 33
1
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
2
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Introduction to the Data Stream Manager
The ‘Data Stream Manager’ (DSM) empowers organizations of all sectors and sizes to quickly and easily get
to grips with digital customer journeys and leverage digital data for a 360-degree customer view.
Collect, fuse and transform any type of data and distribute it in the right context to any or many end points.
In short, once you have defined what data needs to be collected, you turn on the data stream and send
the data in the file format and delivery method required. For example, this could mean you create CSV files
on an FTP server, or stream data perfectly in real time or batch. The DSM is designed to put you in perfect
control of the data you need and can be tailored to meet your specific requirements and use cases.
The Data Stream Manager is a single platform to collect data from any digital source and then stream this
to any destination. It streams the data in-memory only, therefore it will not store data in any database or file
itself in our infrastructure. The data that is sent to the end destination can be used by you for storage or
immediate use in real-time processes. The Data Stream Manager platform is cloud based and can
optionally be implemented on premise.
3
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
PC and Browser Requirements
The Data Stream Manager is designed to be operated with Google Chrome version 23 and higher. This is
because of the DSM ‘Live configurator’ feature, that is available specifically for website data collection. This
configurator uses a Google Chrome extension that must be installed. To download and install this extension
follow the below steps:
STEP1: Download the following plugin in a folder that won’t change its location in the future. If location
changes the plugin will not work anymore.
STEP3: Type or copy to the Chrome browser the following URL: chrome://extensions/
STEP5: After having the developer mode active you can load the unpacked extension. Point the explorer
window that opens towards the directory where you have the zip file unpacked.
4
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
STEP6: Make sure that the extension is enabled:
Having the PC and Browser Requirements into place, you can now proceed to open the Data Stream
Manager.
5
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Welcome to the Data Stream Manager
Streams
These are the actual streams of data that define when (events: page views, clicks, etc.) and what
(parameters: page name, product name, etc.) you collect from a Source Connection and to which
Destination connection you want to stream your data.
Each stream has a data model composed of parameters and events. While the parameters define what
information should be collected in a stream, events define when they should be collected.
Connections
These are the input and output connections that interact with a stream of data. There are two types of
connections:
• Source: Defines the location you want to collect your real time streaming data from, e.g. website,
social media, etc.
• Destination: Defines the location where you want to stream your data to, e.g. databases, FTP, etc.
Gouvernance
By using DSM, you are fully in control of all your data management requirements in order for you to offer
your customers optimal data security and data transparency. This Governance section is only available to a
Data Officer, where he/she can manage the user roles, define and set up the privacy levels for different
data parameters and destination connections, and review the logs for user activities.
6
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Governance
This chapter is addressed the Data Officer in your company.
As a Data Officer, in this section you can manage the user roles, define and set up the privacy levels for
different data parameters and destination connections, and review the logs for user activities. See the
screenshot below. This chapter will focus on the three functionalities: User Administration, Privacy Settings,
and Audit Log.
Additionally, included in the Governance Overview section, in the upper part of the screen, you will find a
summary of the company streams, source/destination connections and triggered events.
User Administration
Here you can see the list of users who have access to the Data Stream Manager and their roles. You can
add a new user by clicking “Add New User” on the top right corner. You can also delete a user by clicking
“Delete” at the end of the row.
7
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Privacy Settings
A unique feature of DSM is that you are in full control of all your data management requirements in order for
you to offer your customers data security and data transparency. This can be done by setting up different
privacy levels for the destination connections and the parameters of a stream, in order to make sure that
data can only be sent to the destination whose privacy level is appropriate. The details of how to choose
different privacy levels for different parameters and destination connections will be introduced in
Connections and Streams section.
In the Privacy Settings, first of all, as a Data Officer, you need to define different privacy levels which will be
used in the Connections and Streams sections. You need to define the privacy levels in such a way that the
higher the level, the more sensitive the data is. See the example in the screenshot below.
You can add a new privacy level by typing its name on the text field and then clicking “Add Privacy Level”
at the end of the row. You can also edit or delete a privacy level by clicking or behind it.
Audit Log
In this section, you can see a list of user activities. You can export the list to an Excel file by clicking “Export”
on the top right corner.
8
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Connections
Create a Source Connection
In order to be able to configure a Stream, you first need to define your Source and Destination
Connections. This chapter will focus on these two types of connections.
To create a Source Connection, go to the left side and click the “New connection” button under
“Connections” section.
Give your connection a name, then select Source as the type of Connection. Then choose the type of
Connector you want to have as a data source.
9
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
The following Connector options are available in this Data Stream Manager portal. Your interface may have
more options available.
Website Collecting data at any webpage load and webpage click. From any authorised
domain. In Real-time.
Twitter Collecting the past 24 hours of data from the Twitter reporting API. Automated
to stream daily updates or an update when clicked. Maximum API volumes are
100 rows per request, 450 requests per 15 minutes. All per Twitter user account.
More info on the API.
Facebook page Collecting the current data from a Facebook page Automated to stream daily
updates or an update when clicked. Maximum API volumes are 4800 calls per 24
hours per engaged page user. More info on the API.
FTP Retrieves data from an FTP source, CSV format, and delivers it to any destination
point.
REST API Data can be provided to the DSM by using the data ingestion REST API. This
means that any data source, sensor or device can provide data to a data
stream if it can setup an HTTP connection (to the DSM).
Contact our support desk ([email protected]) for inquiries on any other data collection methods. Our
core engine is highly integrated with the best open source, real-time intelligence technology available. We
would be pleased to discuss your additional requirements, to tailor these to your specific needs. Note that
some custom data collection methods options may be subject to mutual agreement before proceeding.
Click “Save & Proceed” on the right corner to go to the next step.
In the remaining of this section you can find the instructions on how to configure the Connector you just
chose.
10
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
On the right side of the screen, you can choose one or more domains to collect data from. Use the + button
to add them and use the x button to delete.
Note: In case you do not find the domain that you are looking for, contact your company administrator for
the DSM.
If you want to test if the SLoC (Single Line of Code) exists on your website, please click on “SLoC Test”.
Note: In case you are creating a connection for demo purposes, the SLoC does not need to be placed on
the domain. The Chrome extension specially created for this application will take care of that for you to be
able to configure your stream. However, this will be done locally and will collect data only for the
interaction that you have with the website within the DSM application.
Next click on “Save & Proceed” and your Source Connection is set.
Connector. Then copy and paste the Facebook page name and click ‘Save & Proceed’.
but instead of the company’s Facebook page name, enter any Twitter author, hashtag or keyword. Then
11
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Note that many Twitter filtering and search functions can be used here. Read more about the available
options.
Once you have completed the fields with the right information, click “Save & Proceed” to finish the
configuration.
Please fill in on the right side the correct credentials and details required (*) for this source connection.
On the Cron job field you need to introduce the information about when you would like the data
processing to take place (i.e. certain time interval, continuously). Examples can be found on the left side of
the screen. In the case of (s)FTP Host, you need to put the address of the folder where the files that you
would like to process are. The folder address is based on the base/home folder you first encounter after
logging in.
12
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
In order to connect to a (s)FTP, depending to the authentication requirements, you need to:
If you would like to move your file from the current place to a different destination folder on the (s)FTP when
the processing is finished, then fill in the folder path in this field.
You can use the File Filter option to filter files in the host folder. Furthermore, you can also exclude a column
or for example, the header row, etc. For more examples check the left side of the screen.
13
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Connect to a DEQ Source
Listening to specific events and enriching the data object server side can now be done using the Digital
Event Queue (DEQ)source and destination connections.
When using the DSM to measure a Website or Web based application, all functionalities are enabled
through a single line of code (SLoC). This SLoC is a snippet of JavaScript and needs to be placed in the
DOM of a website, or made available via any Tag Management Solution. The SLoC is generic and the same
for any website or webpage to be measures.
On the right side of the screen, you can choose one or more domains to collect data from. Use the + button
to add them and use the x button to delete.
Note: In case you do not find the domain that you are looking for, contact your company administrator for
the DSM.
If you want to test if the SLoC (Single Line of Code) exists on your website, please click on “SLoC Test”.
Note: In case you are creating a connection for demo purposes, the SLoC does not need to be placed on
the domain. The Chrome extension specially created for this application will take care of that for you to be
able to configure your stream. However, this will be done locally and will collect data only for the
interaction that you have with the website within the DSM application.
Next, in order to create a DEQ source you need to feel in the Queue Name and Event Name:
Next click on “Save & Proceed” and your Source Connection is set.
14
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Connect to a Salesforce Source
To connect to Salesforce, provide the right credentials in the fields from the rights side of the screen. You
can use the examples in the left side of the screen for guidance.
Note: For objected and the data format, introduce the elements separated by commas.
Cobra, in a privacy compliant way, do further processing if needed, and then reuse data based on your
needs.
15
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Connect to a Timer Source
With each day, new technologies appear on the market that can enhance and ease your business
processes. All these generate tremendous amount of data. Integrating everything can be challenging. With
this in mind we have added a new connection in the Data Stream Manager. Connect now with over 200
sources and stream data in real-time or batch.
Use the left side of the screen for guidance to configure this source connection.
16
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Connect to a Native App as a Source
To connect to a Native App to start data collection and processing all you need to do is follow the below
instructions:
• Give your connection a name, chose source as a Type and then Native App for connector, finally click
on Save and Proceed to move to the next Step.
• Choose a connection domain. You associate a domain with a connection in order to make sure that
you have control over the entire process of data collection. Unless a domain is enabled for going live
for data collection, no one can use the implementation for production usage, data collection and/or
processing is more secure in this way.
• Give an Identifier for your App. This will be used to identify your app and included in the configuration
details for data collection and processing for Native Apps.
17
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Create a Destination Connection
To create a Destination Connection, go to the left side and click the “New connection” button under
“Connections” section.
Give a name to your Destination Connection. After you choose the Type of connection as Destination, in
the Connector field you can choose the destination where you want to send your data to. In the example
below, FTP was chosen as a destination connection.
As a Data Officer, you are responsible for setting up the privacy levels of the destination connections that
are created by others. Therefore, when you edit the destination connection, you will see an extra option –
“Privacy Level”’, where you need to choose a privacy level for the destination connection from a list of
privacy levels that you already defined in the “GovernancePrivacy settings” section. See the screenshot
below.
Please be aware that by choosing a lower privacy level for a destination connection (e.g. Level 2),
parameters (data collected) with higher privacy levels (e.g. level 3) CANNOT be sent to this destination.
18
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Connect to an (S)FTP destination
When streaming to an FTP connection, set the structure of the file that will be created. Enter your FTP
connection details. Set the correct subdirectory, filename, datestamp and timing attributes.
In case of any doubt about what subdirectory on your FTP location where you should store the data to,
check your FTP software. Typically, it shows the subdirectory you are connecting to in the tool, like this
example in the tool FileZilla. Enter this directory structure straight into Datastreams but without the preceding
/. In this example you would enter ‘home/testfilefolder’ as the directory in the FTP connection.
Once you introduced the correct credentials and specifications click “Save & Proceed”. Next, you need to
configure the column structure of your file. To do so, click on the ‘Configure Ftp structure’ button.
19
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Then the following screen will appear:
Adding items/columns can be done in the required order (position is kept based on the order of entry) or
random. Once done, you can reorder if needed by simply clicking on the selection button and then on the
up/down buttons.
Set the Database credentials. If you want to test whether the database connection is correct, you can click
“Test connection”. Click on the “Save & Proceed” button to successfully create a connection.
20
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
On the following page you can configure the database by clicking “Configure Database Structure”.
1. Configure the table and the columns yourself, for your Database Destination Connection. Note: For
the data to be streamed to your Database you will need to create a corresponding configuration
within the Database itself
2. Add an already existent Database Template. Note: For the data to be streamed to your Database
you will need to create a corresponding configuration within the Database itself
3. Click ‘Read Database structure’ and simply select the table which you want to stream the data into.
21
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
‘Update Behaviour’ is an optional feature. It is used to add up numeric values in the table upon each
database write. This is done, in order to aggregate the data in a table.
The Primary Key of your database table will be checked to add this value with the previous value and store
the result. If this feature is used, it is typical for a user to apply this to all the event metrics in the table.
This can be a useful option to help reduce data volumes for reporting purposes. Or it can also be beneficial
when needing to deliver specific data to a marketing automation system.
When setting up tables in your database be sure to configure the table columns correctly. Consider if your
data requires a primary key to be set, so that no duplicate data will be accidentally captured. It is also
advised to set the column types of your table to text or varchar initially to be sure the table accepts all
possible data coming in, allowing you to change it to a more restricted column type later on.
The Appendix 2 within this manual, includes several example cases for setting up a database table
correctly.
On the left side of the screen you will find help instructions to fill in the correct credentials. Once done, click
Save&Proceed. Afterwards, click on Configure DOMO structure button.
In the configuration page you can configure the structure of your destination table, the column names.
22
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
There are 2 approaches that can be taken for configuration:
1. Configure the table and the columns yourself, for your DOMO Destination Connection. Note: For the
data to be streamed to your DOMO account you will need to create a corresponding configuration
within the account.
2. Add or replace an already existent Domo Template. Note: For the data to be streamed to your
DOMO account, you will need to create a corresponding configuration within the account.
On the left side of the screen you will find help instructions to fill in the correct credentials. Once done, click
Save&Proceed. Afterwards, click on Configure Salesforce structure button.
In the configuration page you can configure the structure of your destination table, the column names.
Note: If you are using a custom table, you need to add to the column name: double underscore c (ex.
pageviews__c)
23
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
There are 2 approaches that can be taken for configuration:
1. Configure the table and the columns yourself, for your Salesforce Destination Connection. Note: For
the data to be streamed to your Salesforce account you will need to create a corresponding
configuration within your account.
2. Add or replace an already existent Salesforce Template. Note: For the data to be streamed to your
Salesforce account, you will need to create a corresponding configuration within your account.
In the configuration page you can configure the structure of your destination, the items names.
1. Configure the items names yourself, for your DEQ Destination Connection.
24
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
After providing the name of the connection and clicking Save & Proceed, the details of the REST API
connection need to be provided. One way of providing data to the endpoint is to provide them as query
parameters to the URL. The URL property should contain the based URL of the REST API, so excluding query
parameters. The query parameters to add (their names) can be added in the Dynamic Query Parameters
field. The value of these parameters can be defined in the connect screen using the mapping functionality.
Note that since not all REST APIs use query parameters, this field can be left empty.
The method of providing the data (GET or POST) is defined by the REST API endpoint owner, typically GET is
used together with the query parameters as source and POST for a specific POST object containing the
data. The object can be defined in the Body property by providing the code to generate the object. This
provides the flexibility to create a data object in any way for instance a list in a specific order or a JSON
formatted object. The fields (as defined in the stream) can be used in the code which can be executed in
server side Javascript or Groovy. A list with a single element can be defined with the code for the Body that
can be seen in the screen shot below.
The headers of the request can also be defined. Each header should be provided on a separate line. To
complete the configuration click Save & Proceed.
Set the Database credentials. If you want to test whether the database connection is correct, you can click
“Test connection”. Click on the “Save & Proceed” button to successfully create a connection.
25
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
On the following page you can configure the database by clicking “Configure Database Structure”.
1. Configure the table and the columns yourself, for your Database Destination Connection. Note: For
the data to be streamed to your Database you will need to create a corresponding configuration
within the Database itself
2. Add an already existent Database Template. Note: For the data to be streamed to your Database
you will need to create a corresponding configuration within the Database itself
3. Click ‘Read Database structure’ and simply select the table which you want to stream the data into.
26
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
‘Update Behaviour’ is an optional feature. It is used to add up numeric values in the table upon each
database write. This is done, in order to aggregate the data in a table.
The Primary Key of your database table will be checked to add this value with the previous value and store
the result. If this feature is used, it is typical for a user to apply this to all the event metrics in the table.
This can be a useful option to help reduce data volumes for reporting purposes. Or it can also be beneficial
when needing to deliver specific data to a marketing automation system.
When setting up tables in your database be sure to configure the table columns correctly. Consider if your
data requires a primary key to be set, so that no duplicate data will be accidentally captured. It is also
advised to set the column types of your table to text or varchar initially to be sure the table accepts all
possible data coming in, allowing you to change it to a more restricted column type later on.
The Appendix 2 within this manual, includes several example cases for setting up a database table
correctly.
27
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Connections overview
After you created source and destination connections, they will appear on the Connections overview
page.
On this page you will see two columns: Sources and Destinations. Under each section, you can find a
specific connection by typing its name in the searching text filed or using the filter. The filter is generated
dynamically, which means that you can only see a “website” filter after you created a website source
connection. Similarly, you can only see a "Ftp" filter after you created an Ftp destination connection. At the
bottom of each section, you can see how many Sources/Destination Connections are created. See below.
28
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Information of each connection is shown on a tile. For a source connection, its type is shown at the top left
corner (e.g. web). You can find its name and the date of creation at the center. Clicking the pencil
allows you to start editing it. Clicking the delete icon will delete the connection.
For a destination connection, there are two additional options. Clicking the duplication icon will create a
copy of the original connection. Clicking the configuration icon , you will be directed to the column
configuration page, where you can edit the columns.
29
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Create a Template
In this Connections section, you will be able to create a Template for your Destination Connection. In this
way, you can create a template for a specific type of connection and use it for all connections of that type
(Ftp, Database, etc.) in the future. This will reduce configuration time and will make sure that you are in
control of the data that you are streaming.
Once you click on new template the following screen will appear:
Give a name to your template and then choose one of the 3 types of templates:
Database Template:
30
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Once you have added the wanted tables and columns to your tables, you need to make sure that they
also match in the database.
When you create a new Database Destination Connection, all you will need to do is to select and add your
template in the Configuration step. Before you publish live your project you should make sure that the same
tables and columns are added within your Database to which you connected to through the Destination
Connection.
FTP template
You can add your items/columns by clicking on the Add button. Once done, if required you can order your
items in alphabetical order, or even delete everything should you want so.
When you create a new FTP Destination Connection, all you will need to do is to select and add your
template in the Configuration step.
Once you have added your items to your template, you can use this for your destination connection
configuration. Before putting your project live, make sure that you have also added the corresponding
parameters in the body of the Rest API connection configuration step.
31
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Templates
This is the overview of your already created templates. You can search or filter for your template based on
the name or respectively on the type.
32
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Streams
Streams overview
Once you are logged in, the first screen you will see is the ‘Stream Overview’ page.
This screen shows all the streams available to you. This feature is available to the following user roles: i.e.
viewer, streamer, data officer, admin or superadmin.
The Stream Overview page also contains usage overview of the stream per month. Clicking on the graph
icon on each stream, the trend line for the volume of events of a stream will show.
33
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
To find a stream, you can type the stream’s name in the search text field. You can also use the filter to find
the stream, see below. The filter is generated dynamically, which means that you can only see a
Each stream is shown as a tile. The stream type is shown at the top left corner (e.g. web). Clicking the pencil
on each stream allows you to start editing it. Clicking the delete icon on the right top of the stream
tile will delete the stream.
Clicking the download icon allows you to download an Excel or pdf file specifying the data model of this
stream. It includes details of the data capture method and description per variable so that the document
serves as an explanatory document for stakeholders and users of the data stream.
34
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
You can also duplicate a stream by clicking on the duplication icon . Clicking on the mapping icon
will lead you to a page where you need to map stream variables to the destination (see "Mapping the
Stream Variables" section for more information).
You are the person in control and can now pause your data streaming project at any moment. Ready to
restart? No problem, just click on play and everything will be up and running again. For each of your
streams/project you will have the following statuses:
• Pending: The stream has not yet been published; no data collection and processing takes place
• Pending Updates: The stream has an implementation already live; data collection and processing is
taking place
• Paused: The stream was live and then paused; no data collection and processing takes place
• Published: The stream is live: data collection and processing is taking place
35
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
For Developers:
Only users with a developer role can see the “developer tool” icon. See below.
Clicking on the icon will lead you to a page where you can customize your application.
Code tabs (1): Those are the Dimml code that the Data Stream Generated in the back end. Editing these is
not possible.
Custom tabs (2): Those are the customized code tabs added by the developer.
Control (3): A developer can use this menu to generate customized code. Clicking on one of the first three
tabs “Default”, “Vim” and “Emacs”, you can switch to different editors to write your code. By clicking
you create a new custom tab. Clicking or you save your code individually or all at once. You
can delete a custom tab by clicking .
36
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Monitoring
Once your stream goes live you can monitor the events processes and sent to your chosen destination. You
can add daily alerts (see below) to be kept up to date and be in control of your data collection and
processing. The graph can also be used to see the events for the past week.
Alerts can also be set for the case when there is a decrease in events for a selected stream. Just type in the
number that should represent the different (e.g. 20 for 20%)
37
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Create and configure a new data stream
With the Data Stream Manager, it is possible to setup new streams from any digital source. This section will
focus on how to configure a data stream.
The following features are only available to the following user roles: streamer, data officer, admin,
superadmin.
To start the process, click the ‘New stream’ button under Streams section on the right side of the screen.
Firstly, provide a name for your new stream. Secondly select the data source you wish to collect data from.
Note that the Connector types of source connections are shown between brackets (e.g. website, Twitter,
Facebook, other). Thirdly select the data model to start with the configuration for your website data stream.
38
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
By default, the following data models will be available. Your environment may have extra options
implemented. For more information about the detail of each data model, please refer to Appendix 3.
Basic website Over 20 most used website measurements are preset. Use this for
relatively simple data collection from a website
Advanced Over 30 most used website measurements are preset. Use this for
website the most extensive data collection from a website. All data that
can be captured automatically will be available in the preset.
Custom website No website variables are preset. Use this option to configure your
own stream starting with an empty template.
After proceeding to the next page the preset data model will be displayed. The highlighted areas from the
image below are important functions in this page:
• Parameters & Events (1): The parameters define what information should be collected in a
stream, while events define when they should be collected.
• Description (3): The rows of this column contain the description of the parameter/event
• Detected value (3): shows a snapshot of the value collected for this variable
• Trashcan icon (5): Delete this variable from the data model
39
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
• Live configuration (6): This opens the live configurator window to customize data collection for a
website further.
For Data Officers:
As a data officer, besides “Parameters” and “Events” tabs, you will see an extra tab called “Privacy Level”,
where you need to set the privacy level for each parameter of the stream. See the screenshot below.
Under the “Data Collection Purpose” column, you need to describe the purpose for the company to collect
this specific parameter and how it will be used.
Under the “Privacy Level” column, you need to choose the privacy level for each parameter. The list of
available privacy levels are the ones that you already defined in the “Governance Privacy settings”
section. Note that by choosing a higher privacy level for some parameters, they will not be sent to the
destination which has a lower privacy level. For example, if you set the privacy level as “Level 3: Personal
Data” for the parameter “PageId”, and set all other parameters as “Level 1: Anonymous Data”, later on
when you choose a destination connection with a privacy level of “Level 2: Anonymized Data”, the
parameter “PageId” will be filtered out so it will not appear in the data mapping list (see “Mapping the
stream variables” section for more information).
After clicking the Live Configurator button you will see the website for which you created a connection
previously to collect the data from. When clicking the “Show Configurator”/”Hide Configurator” button the
Configurator screen toggles in and out of the screen.
40
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Please find below some explanations for the above highlighted elements:
• Parameters & Events (1): The parameters define what information should be collected in a
stream, while events define when they should be collected.
• Events Detected (2): This shows the last 5 events that were measured from this data source.
Clicking the event on the left will show you the values associated with it. See below.
The configurator assists you with defining and collecting new variables from a webpage. To create a new
variable, scroll to the bottom of the parameters or events tab. Then enter a name for the variable and
41
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
choose the data capturing method. Next select your data capturing method. Many data capturing
methods are available to allow you to click-and-select from the website.
In order to capture data from a website page, click on the pointer icon- see highlighted area in the image
below.
After clicking the Configurator automatically disappears and the website page is shown. You can now click
and select whatever element from the website that you would like to collect information about. Once you
have done that, the Configurator page will appear again and you will be able to see the results of your
selection: the code generated automatically based on your selection. Optionally enter a description for the
new variable. When done, click the save icon.
You will find various options for collecting parameters and generating events from a website source. See the
Appendix 1 for more examples on how to use the advanced features. A high level overview is shown below:
• Content of URL parameter: Measure the contents of any query parameter. For instance: ?utm_source
?cmp ?gclid.
• Form name: Measures the contents of the form name html tag.
• Content of link: Measures the contents of the link clicked.
Extra options for users with the Developer user role assigned:
• JavaScript: Measures data with the use of JavaScript instructions (see Appendix)
• Groovy: Measures data with the use of Groovy instructions
• DimML: Measures data with the use of DimML instructions
• Element is: Measures when this HTML identifier was found as the clicked element. Select any HTML
element from the website directly. The code to find the HTML identifier is generated automatically.
This generates code to locate the item in the page.
• Link name contains: Measures when a link name contained this value.
• URL contains: Measures the number of times a page URL contained this value.
• Form is: Measures when a form has this HTML identifier near, or in, the form code.
• Form name: Measures when a form name contains this value.
42
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Extra options for users with the Developer user role assigned:
• JavaScript: Measures data with the use of JavaScript instructions. (Appendix)
To do a test and check the type of data collected based on the Data Model already created or other
further parameters that you might have added for further processing, click on Preview Data.
This executes an API call to the data source to collect the data immediately. You should see data
immediately appearing in your configured FTP or database destination connection.
Twitter: after clicking on Preview data, the data send to your destination connection will include information
from the last 24 hours (with a limit of 100 messages).
Note: In case you do not see data coming in your destination please check if the keywords chosen
in your source connection have been used in the past 24hours
Facebook: after clicking on Preview data, the data send to your destination connection will include
information from the last month.
• Make sure you chose the same separator in your source configuration as the one from your file
• For streaming first column’s contents create a parameter, give it a name and in the definition field
introduce fieldlist[0]. For the second column you would have to introduce fieldlist[1]. And so on and
so forth.
• If you would like, for example, to concatenate the contents of 2 columns you would have to
introduce ine the definition filed: fieldlist[0] + fieldlist[1]
• If you would like to add a space between the contents concatenated, for example, you should
have to use the following definition: fieldlist[0] + “ ” + fieldlist[1]
43
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Create and configure Stream: Native App as sources
For a Native App as a source Stream there is included a standard Data Model that can further be enriched
with other parameters based on your requirements.
Furthermore, your data model is enriched with the parameters included in the Metadata Tab. Here you
have data containing information about:
You can stream all data collected and processed in a GDPR compliant way using the Privacy Settings tab,
to assign a Privacy level to each of the parameters collected
Furthermore, by clicking on the Configuration Details you will be provided with the information needed to
configure your App for data collection and processing.
44
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Mapping the stream variables
When having completed the stream variable configuration click “Save & Proceed” to reach the next step
in the Stream Configuration process: Mapping Parameters. This page allows you to map the stream
variables to the destination connection correctly. First choose the destination connection from the
dropdown menu on the left. Next, click the column icon to display the contents of the destination
connection on the right hand side of the page.
The right hand side of the page will show the Filter and the table(s) in existence for your connection. The
Filter allows you to choose based on which criterion you need to send the mapped parameters to your
database. For example, you can choose to stream the mapped data only when a form is being submitted.
You can choose to not use the filter if you want to stream your data for all events configured for your
stream. In this step you also have the option to read the database structure of your Destination Connection.
45
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
If you have multiple tables, select the one(s) you want to send your data to and proceed with mapping
using the dropdown to select the correct parameters from the stream configuration.
For the case when the columns in your database coincide with the naming of the parameters that you
have in your stream, you can simply click on Auto Map and the mapping will be done for you
automatically.
It is also possible to distribute the stream to multiple destination connections at once. To do so, click the plus
icon to add an extra destination connection.
When you have completed the mapping of the stream variables to the destination connection(s), click
“Save & Proceed”.
Based on the privacy level settings for the parameters and the destination connection, when mapping the
stream variables, you can only see a list of parameters whose privacy levels are not higher than the
destination connection’s privacy level. Parameters with higher privacy levels are filtered out and will not
If a user with a streamer role mapped all parameters to a destination connection, and later on you (as a
data officer) change the privacy level settings for the parameters and the destination connection, then the
mapping field with the filtered out parameters will be automatically left empty.
46
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Confirm and publish the data stream
After completing the destination configuration, you will be directed to the stream configuration overview
page as below.
Stream information (1): Here you can find information about the stream, such as stream name, data model,
source/destination connection, and if it's already live.
Download XLS & PDF (2): You can also download the data model for the stream configuration.
Updates Log (3): By clicking on Update Log you can see all the changes that were done through the
interface of the DSM. You will find two tabs in this section: Unpublished and Published. See below.
In Unpublished section you will find the information about the changes that were done but not yet
published. This means that the changes made are not yet live. In the Published section you will be able to
check all the changes made and that are live for your stream at the moment.
Very important to mention is that in terms of governance you can see here who made what changes and
at what time. These can be useful for sharing any important context information about the stream within
teams.
Publish Stream (4): You can publish your stream by clicking "Publish Stream".
Note: Only users with the Data Officer role assigned can place the new stream live. If you are not a Data
Officer, clicking the confirm button will place an invite the data officer in your company to publish the
stream. The creator of the stream will receive an Email confirmation once the data officer has published the
stream to go live.
47
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Datastreams.io support
Your company has named users to be the point of contact between the Datastreams.io support team and
any end users of the software. Be sure to contact a named user before reaching out to Datastreams.io
support with any questions or issues.
With this as a side note, Datastreams.io support is ready to support you further if a question or issue cannot
be resolved directly. Of course we are always looking to continuously improve so we welcome all user input!
In this section, you will find the information about our product support centre. Included is the information on
how you can contact us for support and what information you need to provide to open a service request.
Support requests can be created through our Support Desk: Datastreams.io Support Desk
Create an account:
In order to send us a request you need to first register to our Support Desk: http://support.datastreams.io
After you sign up, you will receive a confirmation email with a URL to activate your account and select a
password. To login to the Datastreams.io Support Desk visit http://support.datastreams.io and login (see
above image, left side) using the credentials established in the previous steps. The following screen will
appear:
48
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Create a new Support Ticket
When logged into the Datastreams.io Support Desk you can add a support ticket by clicking on New
support ticket – see image above, red circled button. A ‘Submit a ticket’ page will open:
Attach a file You can add files to the ticket when you think the
information will be useful for the resolution of the ticket.
49
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
When all fields are filled correctly you can click the submit button. Now your ticket has been created and
one of our agents will handle your request.
Support requests can also be created by E-mail. However, you need to create an account before you can
send in support emails requests.
Your message will be converted to a new ticket and will be assigned to one of the Support Desk agents.
In case of an emergency please write ‘High Priority:’ at the beginning of the email title/subject line, followed
by the rest of name you want to give to the email and include your phone number in the email itself.
You can reach our support desk by the default Email address. Note that your company may also have a
dedicated Datastreams support address in use. Contact your company admin for details if this is the case.
Email: [email protected]
50
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Appendix 1: Data capturing methods
Additional technical info on the use of data capturing methods.
The definitions will be executed (on global page level) whenever an interaction takes place. Based on the
tag from which you would like to capture information, specific code is required to access the parameters in
the tag. We refer to the documentation of the tags to find out which code is required to access a specific
parameter of a tag. Also note that since any JavaScript is allowed, additional (not tag related) definitions
are possible for the value of a parameter.
The Content of URL Parameters is a convenience JavaScript function. It can also be called in the console,
with the function: dimml.func.gup(‘UrlParameterName’)
If you have a URL, http://www.domain.com/?dimml=LiveTestDimmlValue, and have the value “dimml” in
the definition field and [Content of URL Parameter] in the capture method, the value of this parameter will
be LiveTestDimmlValue. Here either a double quote ” (e.g. “value”) or a single ‘ quote (e.g. ‘value’) needs
to be around the value.
FORM NAME:
The capture method Form Name, will get the value of the form item, with the name given in the definition.
The name of the form item, is defined in the HTML of the page, and may not be the title of the form item
that one can see on the front end.
The groovy or DimML code that runs in the DimML background for this is the following line:
`FormFieldValues.findAll(/DefinitionFilledInDataStreamsReplaceMe=([^,]+)/){ it[1] }.toString()`@@groovy
CONTENT OF LINK:
The Content of Link capture method, is also a convenience JavaScript function. It takes all links that have
the given value in their address and combines them. If there are a number of links on the page, pointing to
/news/we-make-a-profit, /blog/why-we-made-profit, /news/new-product, /blog/news/development-of-
product, and we put in the definition of a blog, then the resulting value will be /blog/why-we-made-
profit,/blog/news/development-of-product. If on the other hand we put news, the resulting value will be
/news/we-make-a-profit, /news/new-product,/blog/news/development-of-product since the value of news
was in those links. The value itself, unlike the previous one does not need any quotes around it.
The function itself is as following:
51
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
dimml.$(‘a[href*=”DefinitionFilledInDataStreamsReplaceMe”]’).map(function() {return
dimml.$(this).attr(“href”);}).get().join(‘,’)
The Groovy or DimML code that runs in the DimML background for this is the following line:
`FormFieldValues.findAll(/DefinitionFilledInDataStreamsReplaceMe=([^,]+)/){ it[1] }.toString()`@@groovy
This function takes the location from the nearest unique HTML id to determine what element to measure.
You can use this option typically when you want to measure a specific action on a specific webpage. Or
when you are sure all webpages where you want to measure this, have exactly the same page structure
around the element you like to measure.
URL CONTAINS
Any ‘URL contains’ event is triggered whenever a page with a specific string in the URL has loaded
completely. By default, the page view event is measured, which is triggered whenever any page has fully
loaded (DOM ready). Note that for some websites it may take a while to load completely. You can see if a
page is still loading by looking at the top left icon in your browser. If the loading icon is shown, the page is
still loading. If a fixed image is shown, the site has loaded (and data will be available in the overlay).
To define a ‘URL contains’ event, add a name for the event and then select the string ‘URL contains’ in the
Type dropdown. In the definition put in front of the substring you want to use to trigger the event “/”. Click
the plus sign (this is required after every event definition). Click Reload to save the configuration.
This function uses the contents of a link name to measure. You can use this option typically when you want
to measure every link click on any webpage with certain criteria.
FORM IS
This function uses any form submit from the nearest unique HTML id to measure. You can use this option
typically when you want to measure a specific form on a specific webpage. Or when you are sure all
webpages where you want to measure, have exactly the same page structure around the form you like to
measure.
FORM NAME IS
52
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
This function uses the name of the form to measure. You can use this option typically when you want to
measure form submits on specific forms that exist on differently structured webpages. It is a more robust
option than ‘from is’ to measure a form across multiple webpages.
Case 1: Storing website visitor click stream data straight into a table
If the requirement is to store unprocessed, unaggregated data straight into a table, little table configuration
is required.
You do not need to set a primary key for your table. As each event must be recorded as is.
You do not need to set any update behaviour for your table. As each event must be recorded as is.
If the requirement is to fill a table with aggregated values, some configurations are crucial to ensure the
quality of data.
53
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Set the primary key to the parameter you wish to aggregate data to. This can be multiple parameters if
required. In this example the primary key was set to ‘Timestep’.
Set the update behaviour to ‘on update add’ for each event in your data stream. So that all events in the
table are added up correctly. In this example the update behaviour was set to ‘on update add’ for
Pageviews, Visits and Orders.
If the requirement is to store unprocessed, unaggregated Twitter data straight into a table, a few
configurations are advised. Duplicate entries may occur when multiple API calls within 24 hours are made to
Twitter, since it will collect and store all Tweets in the past 24 hours every API call. Making the below settings
will store all Tweets found only one time in the table, without any duplicates.
Set your primary key of the table only on the Tweetid column.
You do not need to set any update behaviour for your table. Since you are not aggregating any events.
54
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
2016-08-04 4628023559 New update Today the… 33 64
We suggest for you to set your primary key of the table on the date column, the post id column and the
comment id column. In this way you can prevent duplicate rows on date, post or comments; which have
been stored already for that specific day.
Note: The same post or comment will be collected on different days. This is correct behaviour. Setting the
primary keys as previously specified will prevent duplicate entries.
You do not need to set any update behaviour for your table. Since you are not aggregating any events.
55
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Appendix 3: Default data models
Additional information on the default data models and the standard variable descriptions.
56
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
ReferrerURL The full URL of the source that referred a visitor to the
website. The referring URL in the http request is
√ √
captured.
PreviousPageTitle The title of the previous page viewed. The title of the
page as visible in Search engines and in the top bar of
√
the browser when viewing the page. Everything
between the <title> tags is captured.
57
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
VisitDuration The duration of a visit.
metric_Exits A Boolean value to detect if the user has ended its visit.
√ √
1 stands for “Yes”, 0 stands for “No”.
58
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
The Twitter data model:
59
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
The Facebook data model:
Name Description
TimeOfEvent The date the data was collected by the Data Stream Manager.
FacebookCommentFrom The name of the person that published a comment on the page.
Name
60
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.
Appendix 4: User roles and rights
Additional information on the different user roles and rights assigned to the roles.
View stream + + + + + +
Create stream + + + + +
View connection + + + + + +
Create connection + + + + +
Add user + + + +
Delete user + + +
Approve publication of a
stream
+
61
© 2017 Datastreams.io (a trading name of O2MC I/O Ltd). This document may not be reproduced in part or in
whole without the prior written permission of the owner. All rights reserved.