> Synerise Documentation — Analytics > > This file contains the complete "Analytics" section of the Synerise documentation. Each article begins with a top-level "# " heading. The manifest listing all sections is at https://hub.synerise.com/llms-full.txt # Introduction to geoanalytics Geoanalytics in Synerise allow users to analyze events in the context of the location where they occurred. A single geoanalysis is created on the basis of the `start.session` event. This event gathers longitude and latitude parameters based on the IP addresses. On the basis of such an analysis, you can adjust communication and marketing strategies to the location of your customers. ## Business benefits --- You can also better leverage the increasing volume of location-related data. Thanks to this, an extended analysis of customer data will allow you to make better decisions that will help you boost your revenue. - Better decisions related to marketing strategy that relies on location. - The ability to check how many of your customers are in a specific region. - The ability to estimate which region is best for a promotion for a specific product. - The possibility of identifying customers from a specific region and sending them specific personalized messages. -
You can view the change history for this analysis from its configuration - see [Audit Log](/docs/settings/workspace/audit-log).
## Requirements --- A tracking code implemented into the website. ## Geoanalysis example --- Preview of geoanalysis # Introduction to dashboards Dashboards is the feature that allows putting all your analyses together in one place so you can examine and compare key data about your business. This way you can investigate the results of carried out activities with full transparency. Another benefit of this feature is the possibility to [display dynamic data](/docs/analytics/analytics-dashboard/creating-dashboards#dynamic-data-in-dashboards). Thanks to that, you can preview the results of particular messages sent to customers, sales results of a particular product, observe the activity of an individual customer, and so on. Due to the additional options that facilitate editing the dashboard layout and the presentation mode, you can use a dashboard in business meetings. ## Business benefits --- - The possibility to combine all types of analyses into one place - Displaying the dynamic data in real time - Sharing dashboards with non-Synerise users -
You can view the change history for this analysis from its configuration - see [Audit Log](/docs/settings/workspace/audit-log).
## Requirements --- - You must implement a [tracking code](/docs/settings/tool/tracking_codes) into your website. - You must be granted [user permissions](/docs/settings/identity-access-management/permissions) which allow access to Decision Hub, creating and editing analyses. ## Dashboard example ---
Examplary dashboard
Examplary dashboard
# Introduction to histograms Histograms allow users to present metrics on a chart in order to analyze the results of several metrics achieved in a specific time range. This way you can compare the sets of data against each other and examine the correlations between them. ## Business benefits --- - The possibility of more detailed analysis of the metrics in a specific time interval. - Histograms can be useful when you want to compare several marketing metrics. -
You can view the change history for this analysis from its configuration - see [Audit Log](/docs/settings/workspace/audit-log).
## Requirements --- You need to create metrics first. ## Histogram example --- preview of the histogram # Dashboards Dashboards is the feature that allows putting all your analyses together in one place so you can examine and compare key data about your business. This way you can investigate the results of carried out activities with full transparency. Another benefit of the feature is the possibility to [display dynamic data](/docs/analytics/analytics-dashboard/creating-dashboards#dynamic-data-in-dashboards). Thanks to that, you can preview the results of particular messages, sales results of a particular product, observe the activity of an individual customer, and so on. Due to the additional options that facilitate editing the dashboard layout and the presentation mode, you can use a dashboard in business meetings. ## Business benefits --- - The possibility to combine all types of analyses into one place - Displaying the dynamic data in real time - Sharing dashboards with non-Synerise users -
You can view the change history for this analysis from its configuration - see [Audit Log](/docs/settings/workspace/audit-log).
## Requirements --- - You must implement a [tracking code](/docs/settings/tool/tracking_codes) into your website. - You must be granted [user permissions](/docs/settings/identity-access-management/permissions) which allow access to Decision Hub, creating and editing analyses. ## Contents # Introduction to segmentation Segmentation is a method of organizing customers into groups that share the same characteristics. Customers can be segmented according to various criteria. You may segment the database with regard to geographical criteria, so you can group them according to their place of residence. You may group them with regard to their demographic profile (age, gender, occupation, or education), behavioral profile (behavior on the website or purchased products) or psychographic profile (group customers according to their interests, preferences or opinions). Contacts segmented in such way make it possible to optimize promotions, and match the content and means of communication according to their preferences and needs. ## Business benefits --- - Effective matching of customer needs - Better communication with customers - Effective acquisition and retention - Enhanced profits for business - Reduced costs -
You can view the change history for this analysis from its configuration - see [Audit Log](/docs/settings/workspace/audit-log).
## Requirements --- You need to have a customer database. You can either acquire customers by [tracking website traffic](/docs/settings/tool/tracking_codes) or you can [import](/docs/assets/imports/importing-clients) them to **Behavioral Data Hub > Profiles**. ## Overview ---
Synerise Segmentation - reporting and activation made easier
# Introduction to metrics There are two types of metrics in Synerise: - **Simple metrics** allow you to analyze events or customer attributes. You can create analyses that calculate the amount of event occurrences, the sum, average, median, quantile, minimal and maximal values of events or customer attributes. You can also analyze events in terms of occurence times and first or last occurrences. - **Formula metrics** allow you to create an analysis based on the mathematical operations between events and customer attributes. The results of metrics are presented as numerical values. ## Business benefits --- - Quickly count events in the system. - Create KPI based on your own formulas and calculation methods. -
You can view the change history for this analysis from its configuration - see [Audit Log](/docs/settings/workspace/audit-log).
## Use cases --- You can preview [use cases which apply metrics](/use-cases/?ordering=DESC&sortBy=publishDate&filters=tags%3D%3D"metrics"). ## Requirements --- A tracking code implemented into your website. # Introduction to funnels A funnel is a division of a customer journey into steps which allows you to follow the journey step by step until the conversion point. This way you can detect soft spots as you see at which step you lose the customers in the process. Another advantage of the funnels is the possibility of breaking down various sequences of customer actions into steps to see the transitions between them. ## Business benefits --- - Increase conversion rate by delivering messages adjusted to the preferences of individual customers. - Predict sales volume as you see how many customers move to the next stage. - Identify problem areas by tracing the step in the funnel they often leave. - Funnels facilitate analyses of universal processes which let you focus on examining occurrences such as cart abandonment, cart recovery, message flows, and many more. -
You can view the change history for this analysis from its configuration - see [Audit Log](/docs/settings/workspace/audit-log).
## Requirements --- A tracking code implemented into the website. ## Funnel example --- preview of the funnel # Introduction to reports A report is a visual presentation of data aspects contained in metrics. Each parameter ( for example, event parameter, customer attribute or expression) analyzed in metrics can be presented in reports as a dimension in a report. Reports can take the form of a bar or line chart and a table. The reports present the top and last values (for example, top 10 products added to cart or last 5 bought products). Analytical reports are a basic feature in Business Intelligence-class systems. ## Business benefits --- - Increased understanding of risks and opportunities - Reduced costs - Improved efficiency - Anticipating customer behavior - Aid in planning marketing campaigns -
You can view the change history for this analysis from its configuration - see [Audit Log](/docs/settings/workspace/audit-log).
## Requirements --- A tracking code implemented into the website. ## Report example --- Report example # Introduction to trends A trend is a presentation of event occurrences over time on a chart. It allows you to check the results of events you track and predict their direction. Having this knowledge, you can undertake the appropriate business activities. ## Business benefits --- - Combining different data and finding correlations between them. - Tracking changes in selected events over time. - Building your own analytical models. -
You can view the change history for this analysis from its configuration - see [Audit Log](/docs/settings/workspace/audit-log).
## Requirements --- A tracking code implemented into the website. ## Trend example --- preview of trend # Introduction to Sankey Diagrams Sankey Diagrams in Synerise allow users to reconstruct the flow of customer actions before or after an occurrence of a particular event. Using an event as a reference point, users create diagrams that present steps to get the answers to questions such as "how much?" and "how is it connected with each other?". ## Benefits --- - Personalize the user experience on the website. - Minimize the number of steps to conversion. - Verify the most popular conversion paths and their soft spots.
You can view the change history for this analysis from its configuration - see [Audit Log](/docs/settings/workspace/audit-log).
## Requirements --- A tracking code implemented into the website. ## Sankey diagram example ---
Sankey chart preview
Sankey diagram preview
# Limits and constraints The following limits and constraints apply to segmentations: | Limit | Value | Description | | ----------------------------------------------------------- | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------- | | Maximum number of segmentations per workspace | 5,000 | You can create up to 5,000 segmentations in a single workspace. | | Maximum length of a condition value (string or dynamic key) | 21,000 characters | Applies to the value used to filter an event parameter in a segmentation condition. | | Maximum size of a condition value (array) | 65,000 items; 21,000 characters per item | Applies to the value used to filter an event parameter in a segmentation condition, when the value is an array. | # Segmentations Segmentation is a method of organizing customers into groups that share the same characteristics. Customers can be segmented according to various criteria. You may segment the database with regard to geographical criteria, so you can group them according to their place of residence. You may group them with regard to their demographic profile (age, gender, occupation, or education), behavioral profile (behavior on the website or purchased products) or psychographic profile (group customers according to their interests, preferences or opinions). Contacts segmented in such way make it possible to optimize promotions, and match the content and means of communication according to their preferences and needs. ## Business benefits --- - Effective matching of customer needs - Better communication with customers - Effective acquisition and retention - Enhanced profits for business - Reduced costs -
You can view the change history for this analysis from its configuration - see [Audit Log](/docs/settings/workspace/audit-log).
## Requirements --- You need to have a customer database. You can either acquire customers by [tracking website traffic](/docs/settings/tool/tracking_codes) or you can [import](/docs/assets/imports/importing-clients) them to **Behavioral Data Hub > Profiles**. ## Segmentation example --- Example preview of the RFM analysis ## Contents # Funnels A funnel is a division of a customer journey into steps which allows you to follow the journey step by step until the conversion point. This way you can detect soft spots as you see at which step you lose the customers in the process. Another advantage of the funnels is the possibility of breaking down various sequences of customer actions into steps to see the transitions between them. ## Business benefits --- - Increase conversion rate by delivering messages adjusted to the preferences of individual customers. - Predict sales volume as you see how many customers move to the next stage. - Identify problem areas by tracing the step in the funnel they often leave. - Funnels facilitate analyses of universal processes which let you focus on examining occurrences such as cart abandonment, cart recovery, message flows, and many more. -
You can view the change history for this analysis from its configuration - see [Audit Log](/docs/settings/workspace/audit-log).
## Requirements --- A tracking code implemented into the website. ## Funnel example --- preview of the funnel ## Contents # Creating Sankey Diagrams Sankey Diagrams in Synerise allow the users to reconstruct the flow of customer actions before or after an occurrence of a particular event. Using an event as a reference point, users create charts that present steps to get the answers to questions such as "how much?" and "how is it connected with each other?". ## Requirements --- You must have a [user role](/docs/settings/identity-access-management/permissions) with the following permissions: - [access the Decision Hub](/docs/settings/identity-access-management/permissions/analytics-permissions#access-the-decision-hub) - [view analyses](/docs/settings/identity-access-management/permissions/analytics-permissions#view-analyses) - [create analyses](/docs/settings/identity-access-management/permissions/analytics-permissions#create-analyses) - [edit analyses](/docs/settings/identity-access-management/permissions/analytics-permissions#edit-analyses) - [preview results](/docs/settings/identity-access-management/permissions/analytics-permissions#preview-results) - To collect the events on your website, you need to paste the [tracking code](/docs/settings/tool/tracking_codes) into the source of your website. ## Creating a Sankey Diagram ---
Sankey diagram wizard
Sankey Diagram wizard
1. Go to Decision Hub icon **Decision Hub > Sankey Diagrams > New sankey**. 2. Give a name to your analysis. 3. Optionally, to let other users know what's the objective of the analysis, you can write a short description. 4. Choose the number of steps you want to analyze. To do so, click the Blue arrow icon and choose a number from the dropdown list. 5. Choose the number of paths that come from each step. To do so, click the Blue arrow icon and choose a number from the dropdown list. 6. Define the type of event occurrences. - **Unique occurrences** - It means that only the first occurrence of the event is counted in the analysis. Every subsequent occurrence of the same event will be ignored in the analysis. This way you can count the number of customers who are in the flow. - **All occurrences** - It means that if a customer repeated a series of actions, each of them will be counted in the analysis. This way you can count the number of the flow repetitions. 7. By selecting one of two following options, choose the reference point of the analysis: - **After event** - The system will analyze the flow of customers' actions after the occurrence of a particular event. - **Before event** - The system will analyze the flow of customers' actions before the occurrence of a particular event. 8. Choose an event that is the basis of the analysis. Depending on the option you have selected in step 4, the system generates a chart with the customer actions before or after the event you choose. 9. To narrow down the scope of the analyzed event, click the [Enable filter](/docs/analytics/i_profile-filter) button. Confirm the settings in the filter by clicking the **Apply** button. 10. If you want to exclude the occurrence of particular events from the analysis, click the **Add event** button. These events will not be considered in the analysis at all. 10. To define the time range for data analysis, click the calendar icon. Confirm the dates by clicking the **Apply** button. 11. To complete the process, click the **Save** button. When you save the chart, you can find it on the list of the Sankey charts. # Creating geoanalytics If you want to group your customers according to the actions performed in a specific location, create an analysis on the basis of location. ## Requirements --- You must have a [user role](/docs/settings/identity-access-management/permissions) with the following permissions: - [access the Decision Hub](/docs/settings/identity-access-management/permissions/analytics-permissions#access-the-decision-hub) - [view analyses](/docs/settings/identity-access-management/permissions/analytics-permissions#view-analyses) - [create analyses](/docs/settings/identity-access-management/permissions/analytics-permissions#create-analyses) - [edit analyses](/docs/settings/identity-access-management/permissions/analytics-permissions#edit-analyses) - [preview results](/docs/settings/identity-access-management/permissions/analytics-permissions#preview-results) - A tracking code implemented into the website. ## Creating a geoanalysis --- map of America 1. Go to Decision Hub icon **Decision Hub > Geolocation**. 2. In the upper right corner of the map, click the **Add selection** button. 3. To select the analyzed location, drag and drop the selection box to a place on the map. 4. Adjust the size of the selected area by clicking, holding, and moving the borders of the selection. 4. To proceed to the settings, click **Go to analytics**. geoanalytics wizard 5. Enter the name of the segmentation. 6. Optionally, you can write a short description of the analysis. **Result**: The first step is already done for you - a `session.start` event with the geographical coordinates are already selected. The system selects the group of customers which performed this event in the location you selected. Out of the group selected this way, you can select customers who meet your conditions specified in the further steps. 8. To create the next step in the segmentation, click the **Add funnel step** button. 9. To select an event, click the **Choose event** button. 10. If needed, specify the [event parameters](/docs/analytics/i_events-parameter-value) by clicking the **Where** button. 11. If you want to add a condition to the segmentation, click the **Choose filter** button. 12. Specify the dependency between the conditions by choosing the **AND** or **OR** operator. - **OR** - Only one condition needs to be met. - **AND** - Both conditions need to be met. 13. To set the time needed to complete all steps in the segmentation, click the clock icon. To be included in the segmentation, a customer must complete the steps in the specified order and time. 14. To determine the time range from which the data will be analyzed, click the [calendar](/docs/analytics/i_date-filters) icon. 15. You can create several segmentations in one and compare them in one preview. To create another segmentation, click the Decision Hub icon button. 15. To complete the process, click the **Save** button. **Result**: When you save the segmentation based on geoanalytics, you can find it on the list of segmentations under the given name.
Geoanalytics is a segmentation based on a geolocation. You can find them on the list of segmentations where there is no distinction between regular segmentation and geoanalytics.
# Creating simple metrics To prepare a simple analysis of events or profiles, you need to create a simple metric. The metric results are presented as a numerical value. You can use metrics in [histograms](/docs/analytics/histograms/introduction-to-histograms) and [reports](/docs/analytics/reports/introduction-to-reports). Before proceeding, familiarize yourself with the limits and constraints that apply to metrics used in these analyses: - [Allowed metrics in histograms](/docs/analytics/histograms/creating-histograms#allowed-metrics) - [Allowed metrics in reports](/docs/analytics/reports/creating-reports#allowed-metrics) ## Requirements --- You must have a [user role](/docs/settings/identity-access-management/permissions) with the following permissions: - [access the Decision Hub](/docs/settings/identity-access-management/permissions/analytics-permissions#access-the-decision-hub) - [view analyses](/docs/settings/identity-access-management/permissions/analytics-permissions#view-analyses) - [create analyses](/docs/settings/identity-access-management/permissions/analytics-permissions#create-analyses) - [edit analyses](/docs/settings/identity-access-management/permissions/analytics-permissions#edit-analyses) - [preview results](/docs/settings/identity-access-management/permissions/analytics-permissions#preview-results) - A tracking code implemented into your website. ## Creating a simple metric --- metric wizard 1. Go to metric wizard **Decision Hub > Metrics > New metric**. 1. Enter the name of the metric. 2. Optionally, to let other users know about the purpose of the metric, you can write a short description. 3. Choose **Simple metric**. 4. To choose the context of data analyzed in the metric, next to the **Type** option, click the arrow. You can analyze events or profiles. 5. To choose the type of results, next to the **Aggregator** option, click the arrow. #### Aggregators
For all aggregators except for **Exists**, **Count**, and **Count Distinct**, use parameters whose value is a [number](/docs/analytics/i_events-parameter-value#number).
The aggregator types are explained on the example of the event metric type. You can also use these aggregators for the profile metric type. - **Exists** - The result of a metric informs you whether a chosen event has occurred in the time range selected in the analysis. The result of the metric returns boolean. - **Sum** - The result of the metric returns the total value of the event parameter in the time range selected in the analysis. - **Min** - The result of the metric returns the minimal value of the event parameter in the time range selected in the analysis. - **Median** - The result of the metric returns the value separating the higher half from the lower half. For example, if you want to examine the total value of purchases, the result of the metric returns the middle value of the amount of money profiles spent. - **Quantile** - The result of the metric is the value of the characteristics of the studied population, which divide the ordered statistical population into specific, equal parts in terms of the number of statistical units. For example, if you examine the total value of purchases and you select the `0.8` quantile, the result of the metric will show you the value above which 20% of the results are higher than the number the metric returned, and the rest of them is lower than the number the metric returned.
Check out [the use case that describes process of finding heavy buyers with declining purchase activity](/use-cases/find-heavy-buyers) in which a quantile aggregator is used in the metric.
- **Max** - The result of the metrics returns the maximal value of the event parameter in the time range selected in the analysis. - **Average** - The result of the metric returns the average value of the event parameter in the time range selected in the analysis. - **Count** - The result of the metric returns the number of event occurrences in the time range selected in the analysis. - **Count Distinct** - The result of the metric returns the number of unique occurrences of an event in the time range selected in the analysis.
You can check the [use case that calculates the percentage of unique transactions](/use-cases/calculate-unique-transactions) where the metric in which the Count Distinct aggregator is used.
6. To define the type of occurrence, next to the option **Occurrence type**, click the arrow. This way you can count the first, the last or all occurrences of a chosen event. This option is available only for the metric that are based on events. 7. From the dropdown list, select an event (or an attribute). Profiles who performed a specific action (that triggers the selected event) are considered in the analysis. To define the details of the event, perform one or two actions described below: - If you want to narrow down the scope of profiles, click the **Enable filter** option. This [profile filter](/docs/analytics/i_profile-filter) works as an additional condition a profile has to meet in order to be counted in the metric. - If you want to be more specific and analyze a particular aspect of the event, select [event parameters](/docs/analytics/i_events-parameter-value) by clicking the **Where** button. 8. To determine the time range from which the data is analyzed, click the calendar. Confirm your choice with the **Apply** button. 9. Optionally, you can preview the results, before you save the metric. To see the metric preview, click the **Preview analyze** button. If you want to go back from preview to editing mode, click the **Edit Condition** button. 9. To complete the process, click the **Save** button. # Creating histograms To create a graphic representation of metrics, add a histogram. ## Allowed metrics The table below summarizes metric configurations and their compatibility with histograms. | Metric conditions* | Allowed in histograms? | |-----------------------------------------------------|----------------------------------------------| | Contain any [profile attributes](/docs/crm/customer-properties) | No | | Contain an [event](/docs/assets/events/introduction-to-events) | Yes, except for the metrics with the **First** and **Last** aggregators | | Contain multiple events or one event with multiple parameters | Yes, except for the metrics with the **First** and **Last** aggregators | | Contain multiple events with multiple parameters | No | | | No event or profile attribute in conditions (for example, a static value metric) | Yes | `*` *Metric conditions* refers to the configuration of a metric on the interface for the following metric types:
The highlighted section on the screen presents metric conditions
Metric conditions of a simple metric
The highlighted section on the screen presents metric conditions
Metric conditions of a formula metric
## Requirements --- You must have a [user role](/docs/settings/identity-access-management/permissions) with the following permissions: - [access the Decision Hub](/docs/settings/identity-access-management/permissions/analytics-permissions#access-the-decision-hub) - [view analyses](/docs/settings/identity-access-management/permissions/analytics-permissions#view-analyses) - [create analyses](/docs/settings/identity-access-management/permissions/analytics-permissions#create-analyses) - [edit analyses](/docs/settings/identity-access-management/permissions/analytics-permissions#edit-analyses) - [preview results](/docs/settings/identity-access-management/permissions/analytics-permissions#preview-results) - Create a metric. Refer to the table in the ["Allowed metrics" section](#allowed-metrics) to become familiar with the limits and constraints.
You can read more about metrics in: - [Creating simple metrics](/docs/analytics/metrics/creating-simple-metrics) - [Creating formula metrics](/docs/analytics/metrics/creating-formula-metrics)
## Creating a histogram ---
histogram wizard
A blank histogram
1. Go to Decision Hub icon **Decision Hub > Histograms > New histogram**. 2. Enter the name of the histogram. 3. Optionally, to let other users know about the purpose of the histogram, write a short description. 4. From the list of metrics, select a metric you want to include in the histogram. Refer to the table in the ["Allowed metrics" section](#allowed-metrics) to become familiar with the limits and constraints. 5. To choose the time units by which the metric data is aggregated in the histogram, click the **Interval** button.
When you select the monthly interval option, the display of the histogram presents the results of metrics from 30 days. That is the reason of a slight discrepancy may occur between the results of the histogram and the metric used in the histogram.
6. To select the time range analyzed in the histogram, click the calendar icon. The chosen date range will apply to all metrics added to the histogram.
Pay attention to the time intervals set in metrics and in the histogram. If the histogram analyzes a period that is longer than the one set in the metric, you will not see the data for the periods that don't overlap the metric period.
7. To add another metric to the histogram, click the plus button (you can add up to 7 metrics). 8. To complete the process, click the **Save** button. **Result**: You can find the histogram on the list of histograms. # Creating funnels In Synerise, you can create your own funnels based on many different customer activities and characteristics. Each step of a funnel is built on an [event](/glossary#event) — an action performed by a [profile](/glossary#profile) (for example, viewing a page or adding a product to a cart) or an action a [workspace user](/glossary#user) performs toward a profile (for example, sending a message). Profiles who trigger the event defined in a step move on to the next one — at each following step, the funnel checks only those customers, then shows how many progress through the whole sequence. Steps are always joined with the **AND** operator, so customers must complete them in the exact order you define. Optionally, you can also cap the analysis to a maximum time allowed between the first and last step — customers who complete all the steps but take longer than that are not included in the results. In addition to events, you can narrow down the funnel as a whole, with a [filter](/docs/analytics/i_profile-filter) based on event parameters or [profile attributes](/docs/crm/customer-properties).
Conditions panel showing three funnel steps joined with And: message.sent, newsletter.open, and newsletter.click
Example of funnel conditions for analyzing an email campaign
For example, a funnel analyzing an email campaign could consist of three steps — **message.sent**, **newsletter.open**, and **newsletter.click** — showing how many recipients opened the email and how many of them went on to click a link inside it.
Funnel preview chart with three steps: sending message, opening message, and clicking links in the message, showing the number of profiles that reached each step
Example of a funnel analyzing an email campaign
## Requirements --- You must have a [user role](/docs/settings/identity-access-management/permissions) with the following permissions: - [access the Decision Hub](/docs/settings/identity-access-management/permissions/analytics-permissions#access-the-decision-hub) - [view analyses](/docs/settings/identity-access-management/permissions/analytics-permissions#view-analyses) - [create analyses](/docs/settings/identity-access-management/permissions/analytics-permissions#create-analyses) - [edit analyses](/docs/settings/identity-access-management/permissions/analytics-permissions#edit-analyses) - [preview results](/docs/settings/identity-access-management/permissions/analytics-permissions#preview-results) - You need events to build the steps of your funnel on. Events are generated as a result of [event tracking](/docs/assets/events/introduction-to-events) — for example, by implementing a tracking code on your website, using the mobile SDK, or importing historical event data. ## Creating a funnel --- New funnel creation form in Decision Hub showing name and step configuration fields 1. Go to Decision Hub icon **Decision Hub > Funnels > New funnel**. 2. Click the Pencil icon icon next to **Unnamed step** to enter the name of the funnel. This name is displayed in the funnel preview — if you skip this, the step is labeled **Unnamed step** instead. 3. Click **Choose event** and select an event from the dropdown list. Customers who performed a specific action (that triggers the selected event) are considered in the analysis. To narrow your analysis to only particular occurrences of a type of event, click **where** to select [event parameters](/docs/analytics/i_events-parameter-value). 4. To add another step to the funnel, click **and then...** below the previous step, and repeat step 3. Steps are always joined with **And**, so customers must complete them in the order you define. 5. To define the maximum time allowed between the first and last step of the funnel, click the clock icon in the lower-right corner of the **Conditions** panel and set the **Completed within** interval. Profiles who complete all the steps, but take longer than the specified time, are not included in the results. 6. To determine the time range from which the data will be analyzed, click the calendar button (for example, **Last 30 days**) and confirm your choice with the **Apply** button. 7. If you want to narrow down the scope of customers, click **Enable filter** below the **Conditions** panel. In the **Profile filter** window that opens, click **Add condition** to build the query, and confirm with **Apply**. This [profile filter](/docs/analytics/i_profile-filter) works as an additional condition a profile has to meet in order to be counted in the funnel. 8. Optionally, you can preview the results before you save the funnel. The **Preview** chart below the **Conditions** panel shows how many profiles reached each step. Click **Refresh** to reload it with the latest data, or click **Close conditions** to collapse the **Conditions** panel and see more of the chart. 9. To complete the process, click the **Save** button. When you save the funnel, you can find it on the list of funnels under the name you entered in step two. # Creating segmentations --- A segmentation is a group of customers who share the same features. You can use it as a target for your marketing activities. As features, you can use customer attributes (such as name, location, birthdate, marketing agreements), [aggregates](/docs/crm/aggregates), [expressions](/docs/crm/expressions), and other segmentations you created in your workspace. In the process of creating a segmentation, you can define sub-groups known as segments. Each of segments can have their own specific conditions. By using multiple segments, you can categorize your customers based on various factors such as their average order value, the product categories they browse, or how frequently they make purchases. Additionally, you can use funnels in segmentations to group customers whose [activity history](/docs/assets/events/introduction-to-events) (their actions and your actions towards them, such as sending messages) includes specific events. You can then filter those events by their parameters.
Segmentation, expression, and aggregate definitions are cached for 20 minutes after a node with the analysis is activated in a journey.
When another journey in the Automation Hub requests a result of the same analysis in that period, the cached definition is used to calculate the results. This means that if you edit a segmentation, aggregate, or expression used in a workflow, it takes 20 minutes for the new version to start being used in journeys.
This includes definitions of segmentations, expressions, and aggregates nested in other analyses and used in Inserts.
## Cloning segmentations If you use several workspaces and you would like to copy segmentations between them, you can use the [cloning feature](/docs/settings/workspace/cloning-objects/cloning-analyses-to-workspaces) to do so. ## Requirements --- You must have a [user role](/docs/settings/identity-access-management/permissions) with the following permissions: - [access the Decision Hub](/docs/settings/identity-access-management/permissions/analytics-permissions#access-the-decision-hub) - [view analyses](/docs/settings/identity-access-management/permissions/analytics-permissions#view-analyses) - [create analyses](/docs/settings/identity-access-management/permissions/analytics-permissions#create-analyses) - [edit analyses](/docs/settings/identity-access-management/permissions/analytics-permissions#edit-analyses) - [preview results](/docs/settings/identity-access-management/permissions/analytics-permissions#preview-results) Refer to [Limits and constraints](/docs/analytics/segmentations/limits-and-constraints) for the maximum number of segmentations you can create in a workspace. You need to have customers in the database. You can: - acquire them by [website tracking](/docs/settings/tool/tracking_codes) - acquire them [through a mobile application](/developers/mobile-sdk/user-identification-and-authorization) - [import them using a dedicated feature in the Synerise portal](/docs/assets/imports/importing-clients) or [using API](https://hub.synerise.com/api-reference/profile-management#operation/BatchAddOrUpdateClients). ## Creating segmentations --- 1. Go to Decision Hub icon **Decision Hub > Segmentations > Create new**. 2. Enter the name of the segmentation. 3. If you want your segmentation to be visible in the profile card of the customers who belong to this segmentation, enable the **Show in Profiles** option on. 4. Create a segmentation as described further in this article. 2. To complete the process, click the **Save** button. When you save the segmentation, you can find it on the list of segmentations under the given name. ### Defining conditions The first step is to define conditions that customers must meet in order to be included in a segment. These conditions can be based on customer attributes (**Has property**) or events and their parameters (**Perfomed action**). If you add multiple conditions, you can specify the relationship between them as **AND** or **OR**. Additionally, event-based conditions can be limited to a specific time period. #### Selecting an activity 2. To select a customer activity or an activity towards a customer, click **Add condition**. 2. From the **Events** tab, select an event. 1. To set additional conditions for the event, click **+ where** and from the dropdown list select an event parameter you want to filter by. 2. Use the [logical operators](/docs/analytics/i_events-parameter-operators#operators-list-by-expected-value-type) to set the type of condition. 3. Define the [value](/docs/analytics/i_events-parameter-value) that will be used as the filter according to the logical operator. Refer to [Limits and constraints](/docs/analytics/segmentations/limits-and-constraints) for the maximum length of this value. 4. By default, the system analyzes the last 30 days, but you can define your own time period by clicking the calendar icon in the lower right corner in the condition.
Including only customers who visited website whose URL contain a specific word
Segmentation of customers who in last 30 days visited website whose URL contain a a `trousers` word
#### Selecting a profile attribute You can use the following attributes of a profile: - **Tags** - You can organize your customers according to the [tags](/docs/assets/tags) you assigned them. - **Attributes** - This group of customer features can be found in the profile card. You can use basic customer information such as first name, email, gender, marketing agreement, size, favorite color, and organize your customers according to values of these attributes. - **Segmentations** - You can use other segmentations in the conditions, for example, you can exclude customers who belong to a particular segmentation. - **Aggregates** - Aggregates are calculated in the context of individual customers, using them in segmentation conditions lets you analyze values of non-standard and dynamic customer attributes (such as the quantity of purchased items or a list of the customer's last 10 visited product categories), enabling you to categorize customers based on your specific business requirements.
You can read [Customers' preferred communication channel](/use-cases/channel-preference) to understand how aggregates have been used in a segmentation to organize customers by their preferred communication channel.
- **Expressions** - Similarly to aggregates, expressions are calculated in the context of individual customers. Using them in segmentation conditions lets you analyze values of non-standard and dynamic customer attributes. You can also use [event expressions](/docs/crm/expressions/creating-event-expression) for advanced analysis of events (for example, you can create a custom parameter for a `product.buy` event that contains the total volume of purchased item, so you can use this custom parameter to organize customers according to the volume of items they purchased). - **Specials** - This catalog contain the `Client_ID` parameter which is a unique customer identifier.
You can read [Segment creation based on quantiles](/use-cases/segment-creation-quantiles) use case to understand how you can use `Client_ID` parameter in a segmentation.
1. To select an attribute to be used as a condition, click **Add condition**. 2. Select the **Profiles** tab. 3. From the list, select a category of attributes from which you want to select a value. 4. Use the search box to find the attribute. 1. Use the [logical operators](/docs/analytics/i_events-parameter-operators#operators-list-by-expected-value-type) to set the type of condition. 2. Define the [value](/docs/analytics/i_events-parameter-value) that will be used as the filter according to the logical operator.
Including customers who agreed to receive newsletters
Including customers who agreed to receive newsletters
#### Combining conditions You can add more conditions and mix conditions based on attributes and events. The relationship between the conditions can be expressed by **AND** or **OR** logical operators. The more conditions you add, the more complicated it gets, read through [The logic of segmentation](/docs/analytics/segmentations/the-logic-of-segmentation) to find out how the conditions are interpreted, especially if there are more than two.
A segmentation of customers who has agreed to receive newsletters and those who in the last 30 days visited your website that contained a word `trousers` in URL
A segmentation of customers who have agreed to receive newsletters and those who in the last 30 days visited your website that contained a word `trousers` in URL
### Defining funnels within conditions While defining a condition or conditions based on an event, instead of that one [event](/docs/assets/events/event-definitions), you can define a sequence of steps (events) a customer must go through to meet the conditions. The order of these steps is crucial, with the top event representing the first step in the funnel. Optionally, you can set a time limit during which these steps must be completed in the specified order. 1. After adding **Performed action** condition, add a next step to the condition by clicking **and then...**. 2. From the dropdown list, select an event. Optionally, you can define additional conditions for the event's parameters. 3. To impose the time limit on performing these steps: 1. Next to the calendar, click the clock icon. 2. Define the time within which a customer must perform these steps to be included in the segmentation. Time is counted from the occurrence of the first step in the sequence.
Including customers who visited website whose URL contained a word `trousers` and purchased any item in last 30 days
Including customers who visited website whose URL contained a word `trousers` and purchased any item in last 30 days
### Excluding By default, when creating a segmentation, the conditions you define include customers if they have certain attributes or have performed specific actions. However, you can reverse the logic and exclude those customers instead. You can do it in the following ways: - In the **Find all profiles matching this condition** sentence, click the **matching** word to change it to **not matching**.
A segmentation includes customers whose first name doesn't contain `A` letter
A segmentation includes customers whose first name doesn't contain `A` letter
- Click **Has** in Has property to change it to **Does not have** property
A segmentation includes customers whose first name doesn't contain `A` letter
A segmentation includes customers whose first name doesn't contain `A` letter
### Adding segments When creating a segmentation, you can create sub-groups called segments. Each segment can have its own set of conditions. By using multiple segments, you can divide your customers based on factors such as their average order value, the product categories they have visited, or how frequently they make purchases. 1. You can create another segment by clicking the **Add segment** button. 2. Repeat the steps described in [Defining conditions](#defining-conditions) and/or [Defining funnels within conditions](#defining-funnels-within-conditions).
Segments in segmentation
The section marked with a black rectangle contains segments in a segmentation
#### Multi match By default, when a segmentation contains multiple segments, customers are included only in the first segment whose conditions they meet. Enabling the Multi match option allows customers who satisfy conditions for multiple segments to appear in all matching segments—but **only in the segmentation preview** results.
The Multi match option impacts **only the segmentation preview** and is ignored in communication and other business uses.
#### Multi match example Let's group customers according to the source of page visits to your website in the last 30 days. The following customers visited your website from the following sources: | Source of visit | Mobile | Desktop | |-----------------|--------|---------| | John Doe | Green checkmark | Green checkmark | | Anne Taylor | Green checkmark | Red checkmark | | Sharon Smith | Red checkmark | Green checkmark | The conditions of the segmentation will contain three segments: 1. Segment that includes customers who visited website from both mobile and desktop (**Mobile and Desktop**) 2. Segment that includes customers who visited website from desktop (**Desktop**) 3. Segment that includes who visited website from mobile (**Mobile**)
More details about this example are available in [Check distribution of sources of traffic on a website](/use-cases/segmentation-source-of-traffic). You can also become familiar with use cases which uses multiple segments, below you can find several examples of many available in the use case library: - [Segmentation based on interests with the use of fragments of visited URL](/use-cases/segmentation-based-on-interests) - [RFM analysis](/use-cases/rfm-analysis) - [Voucher assignment based on average basket value](/use-cases/vouchers-depending-on-aov#check-the-use-case-set-up-on-the-synerise-demo-workspace)
The results for the segmentation will be as follows: - **disabled** multi-match option: John Doe who visited your website both from desktop and mobile is included only in the segment which groups customers who visited the website from both device types. However, he is not included in segments that contain customers who visited website from only one device type, although he meets the requirements of the remaining two segments.
Results for disabled multi-match option
Results for disabled multi-match option
- **enabled** multi-match option: John Doe is also included in segments that contain customers who visited the website from only one type of device.
Results for enabled multi-match option
Results for enabled multi-match option
# Connecting events within customer profiles ## Connecting events within a profile If two or more events have the same parameter, you can create relations between them by using aggregates. ### Examples of use --- - Check if the discount code in a [personalized promotion](/docs/ai-hub/personalized-promotions/creating-ai-promotions) assigned to a user was used in a transaction. - Check the value of a transaction with a discount code or with a certain product. - Check if the product on a page promoted by a UTM campaign was added to the cart and then bought. - Check how many products added to a cart were not bought. ### Procedure --- **Use case**: A paid campaign promotes a certain set of products. **Goal**: Check if the product on a page promoted by a UTM campaign was visited and then bought. **This procedure consists of the following steps**: 1. Create an aggregate that shows the image of the product from the page visited as a result of the campaign. 2. Create a funnel using the aggregate with the product image that shows a list of customers who went through the `saw a product from a UTM campaign and then bought it` path. **Additionally, to make this analysis more complex**: 3. Create a metric that measures the value of the purchased products from the campaign. 4. Create an aggregate that measures the value of another `transaction.charge` event. #### Basic scenario --- 1. Go to Behavioral Data Hub icon **Behavioral Data Hub > Live Aggregates > Create aggregate**. 2. Enter the name of the aggregate. 3. By clicking the Expander arrow icon button, set **First** as the type of the aggregate result (this configures the aggregate to show the first value of the event parameter in the time range selected in the analysis). 4. From the **Choose event** dropdown list, select the **page.visit** event. 5. From the **Choose parameter** dropdown list, select **og:image**. 6. Click the **+ where** button. 7. From the **Choose parameter** dropdown list, select the **utm_campaign**. 8. Select the **Equal** logical operator. 9. Next to the logical operator, in the text field, enter the name of the UTM campaign. 10. By default, the date range for the analysis is set to the last 30 days. To change the date range, click the calendar icon. Confirm the changes with the **Apply** button. 11. Save the aggregate by clicking **Save**. **Result**: The aggregate uses the image of the product and returns the first product viewed in the UTM campaign.
Decision Hub aggregate returning the product image (og:image) from the first page.visit event triggered by a UTM campaign
Filled settings of the aggregate
12. Go to Decision Hub icon **Decision Hub > Segmentations > New segmentation**. 13. Enter the name of the segmentation. 14. Click **Add condition** and from the dropdown list select the **page.visit** event. 15. Click **+ where** button. 16. From the **Choose parameter** dropdown list, select the **utm_campaign** parameter. 17. Select the **Equal** logical operator. 18. Next to the logical operator, in the text field, enter the UTM campaign name. 19. Click **and then...**. 20. From the dropdown list, select the **Bought product** event. 21. Click the **+ where** button. 22. From the **Choose parameter** dropdown list, select **$image**. 23. Select the **Equal** logical operator. 24. As the value select **Parameter** by clicking the icon next to the input. 25. From the **Parameter** dropdown list, select the **Aggregates** catalog. 26. Select the aggregate created in previous steps. 27. By default, the date range for the analysis is set at the last 30 days. To change the date range, click the calendar icon. Confirm the changes with the **Apply** button.
Filled settings of the funnel
Filled settings of the funnel
27. Save the segmentation. **Result**: The results of the segmentation list customers who went through the **saw a product from a UTM campaign and then bought it** path. #### Advanced scenario ##### Option 1 --- To measure the value of the purchased products from the campaign, you can create a metric that reuses the aggregates created in the Basic scenario. Before that, you must create an expression that calculates the price of purchased items. 1. Go to Behavioral Data Hub icon **Behavioral Data Hub > Expressions > New expression**. 2. Enter the name of the expression. 3. Select the **Event** type of expression by clicking the Blue arrow icon icon. 4. From the **Choose event** dropdown list, select the **Bought product** event. 5. Start creating the formula of the expression by clicking the **Select** button. **Result**: A dropdown list appears. 6. From the dropdown list, select **Event attribute**. **Result**: The **Unnamed** event attribute appears. 7. Click the attribute. 8. From the **Choose parameter** dropdown list, select **$quantity**. 9. Click the plus button. **Result**: Another **event attribute** appears. 10. Click the attribute. 11. From the **Choose parameter** dropdown list, select **$finalUnitPrice**. 12. Multiply those two attributes, by selecting the multiplication sign between two event attributes. **Result**:
Decision Hub expression multiplying the $quantity and $finalUnitPrice parameters of the Bought product event to calculate item purchase value
Expression that calculates the price of items
13. To save the expression, click **Save**. 14. Go to Decision Hub icon **Decision Hub > Metrics > New metric**. 15. Enter the name of the metric. 16. From the **Type** dropdown list, select **Event**. 17. From the **Aggregator** list, select **Sum**. 18. From the **Occurrence type**, select **All**. 19. From the **Choose event** dropdown, select **Bought product** 20. From the **Choose parameter** dropdown list, click the Three-dot icon icon, and then select **Expression**. 21. Select the expression created in the previous steps. 22. From the **Choose parameter** dropdown list, select **$sku**. 23. As the logic operator, select **In**. 24. Click the icon next to the logic operator and keep clicking until you get Choose value icon. 25. From the **Choose value** dropdown list, click the Three-dot icon icon, and then select **Aggregates**. 26. Select the aggregate created in the previous steps. **Result**:
Filled settings of the metric
Filled settings of the metric
**Result**: The metric returns the total sum of purchased products from a specific UTM campaign within the defined time range. So far, the analyses in the **Basic** and **Advanced** procedures used two events and they have one parameter in common that connected them (**$image**). ##### Option 2 --- You can also measure the value of the transaction.charge event. You can do it by preparing a metric that contains three aggregates. The first one returns the first visited product from a particular UTM campaign. The second one returns a date when this product was visited. The third one returns a list of purchased items a specified UTM campaign by using the two previous aggregates.
The product.buy is a purchase of a single item, whereas the transaction.charge is the summary of the all purchased items. When a customer makes a purchase, the Synerise application receives the transaction.charge event, and the app divides it into the product.buy events. Their number is dependent on the number of purchased items.
###### First aggregate --- 1. Go to Behavioral Data Hub icon **Behavioral Data Hub > Live Aggregates > Create aggregate**. 2. Enter the name of the aggregate. 3. By clicking the Expander arrow icon button, set **First** as the type of the aggregate result (then the aggregate result shows the first value of the event parameter in the time range selected in the analysis). 4. From the **Choose event** dropdown list, select the **page.visit** event. 5. From the **Choose parameter** dropdown list, select the **og:image**. 6. Click the **+ where** button. 7. From the **Choose parameter** dropdown list, select **utm_campaign**. 8. Select the **Equal** logical operator. 9. Click the icon next to the logic operator and keep clicking until you get Dynamic key icon. 10. In the left text field, enter the name of the dynamic key (in this case, it's `utm_campaign`). 11. In the right text field, enter the value of the dynamic key (name of the UTM campaign).
You can find the name of the UTM campaign in the following places: - In the summary of the message (**Experience Hub** > **Email**. Click the message to get to the details, find the **UTM&URL parameters** section) - In the template code (for the automated emails) - In the details of an event (for example, newsletter.click) in the activity list on a profile - In the link used in the email (click the link in the email, the URL contains the name of the UTM campaign)
12. By default, the date range for the analysis is set at the last 30 days. To change the date range, click the calendar icon. Confirm the changes with the **Apply** button. 13. Save the aggregate by clicking **Save**. **Result**: The aggregate returns the first visited product from a specific UTM campaign.
Decision Hub aggregate returning the og:image parameter of the first page.visit event filtered by UTM campaign name using a dynamic key
Filled settings of the aggregate
###### Second aggregate --- 1. Go to Behavioral Data Hub icon **Behavioral Data Hub > Live Aggregates > Create aggregate**. 2. Enter the name of the aggregate. 3. By clicking the Expander arrow icon button, set **First** as the type of the aggregate result (this configures the aggregate to show the first value of the event parameter in the time range selected in the analysis). 4. From the **Choose event** dropdown list, select the **page.visit** event. 5. From the **Choose parameter** dropdown list, select **Specials**. 6. From the list, select **TIMESTAMP**. 6. Click the **+ where** button. 7. From the **Choose parameter** dropdown list, select **utm_campaign**. 8. Select the **Equal** logical operator. 9. Click the icon next to the logic operator and keep clicking until you get Dynamic key icon. 10. In the left text field, enter the name of the dynamic key (in this case, it's `utm_campaign`). 11. In the right text field, enter the value of the dynamic key.
You can find the name of the UTM campaign in the following places: - In the summary of the message (**Experience Hub** > **Email**. Click the message to get to the details, find the **UTM&URL parameters** section) - In the template code (for the automated emails) - In the details of an event (for example, newsletter.click) in the activity list on a profile - In the link used in the email (click the link in the email, the URL contains the name of the UTM campaign)
12. By default, the date range for the analysis is set at the last 30 days. To change the date range, click the calendar icon. Confirm the changes with the **Apply** button. 13. Save the aggregate by clicking **Save**. **Result**: The aggregate returns the date of the first visit to the product from the selected UTM campaign.
Decision Hub aggregate returning the TIMESTAMP of the first page.visit event filtered by UTM campaign name using a dynamic key
Filled settings of the aggregate
###### Third aggregate --- 1. Go to Behavioral Data Hub icon **Behavioral Data Hub > Live Aggregates > Create aggregate**. 2. Enter the name of the aggregate. 3. By clicking the Expander arrow icon button, set **Last Multi** as the type of the aggregate result (this configures the aggregate to show the defined number of results of the event parameter in the time range selected in the analysis). 4. In the **Size** field, select the number of results of the aggregate. 4. From the **Choose event** dropdown list, select the **product.buy** event. 5. From the **Choose parameter** dropdown list, select **$orderId**. 6. Click the **+ where** button. 7. From the **Choose parameter** dropdown list, select **$image**. 8. Select the **Equal** logical operator. 9. Click the icon next to the logic operator and keep clicking until you get Choose value icon. 19. From the **Choose value** dropdown list, click the Three-dot icon icon, and then select **Aggregates**. 20. Select the first aggregate created in the previous steps. 6. Click the **+ where** button. 7. From the **Choose parameter** dropdown list, select **$image**. 8. Select the **Equal** logical operator. 9. Click the icon next to the logic operator and keep clicking until you get Choose value icon. 19. From the **Choose value** dropdown list, click the Three-dot icon icon, and then select **Aggregates**. 21. Select the second aggregate created in previous steps. 22. Save the aggregate by clicking **Save**. **Result**: The aggregate returns a list of products (the number of products depend on the value entered in the **Size** field, in the step 4) from the selected UTM campaign.
Decision Hub Last Multi aggregate returning product.buy order IDs filtered by UTM campaign product image and visit timestamp using previous aggregates
Filled settings of the aggregate
###### Metric --- 1. Go to Decision Hub icon **Decision Hub > Metrics > New metric**. 2. Enter the name of the metric. 3. Select a simple metric (set by default). 4. As the **Type**, select **Event** (set by default). 5. As the **Aggregator**, select **Sum**. 6. As the **Occurrence**, select **All**. 7. From the **Choose event** dropdown list, select **transaction.charge**. 8. Click the **+ where** button. 9. From the **Choose parameter** dropdown list, select **$totalAmount**. 10. Click the **+ where** button. 11. From the **Choose parameter** dropdown list, select **Specials**. 12. From the list, select **TIMESTAMP**. 13. As the logical operator, select **More than**. 14. Click the icon next to the logic operator and keep clicking until you get Choose value icon. 15. From the **Choose value** dropdown list, click the Three-dot icon icon, and then select **Aggregates**. 16. Select the third aggregate. 17. Click the **+ where** button. 18. From the **Choose parameter** dropdown list, select **$orderId**. 19. As the logical operator, select **In**. 20. Click the icon next to the logic operator and keep clicking until you get Choose value icon. 21. From the **Choose value** dropdown list, click the Three-dot icon icon, and then select **Aggregates**. 22. Select the third aggregate. 23. Save the metric. **Result**:
Filled settings of the metric
Filled settings of the metric
# Trends A trend is a presentation of event occurrences over time on a chart. It allows you to check the results of events you track and predict their direction. With this knowledge, you can undertake the appropriate business activities. ## Business benefits --- - Combining different data and finding correlations between them. - Tracking changes in selected events over time. - Building your own analytical models. -
You can view the change history for this analysis from its configuration - see [Audit Log](/docs/settings/workspace/audit-log).
## Requirements --- A tracking code implemented into the website. ## Trend example --- preview of trend ## Contents # Creating formula metrics Compared to simple metrics, formula metrics let you perform more complex mathematical and logical operations on events and customer attributes. The result is always a number. You can use metrics in [histograms](/docs/analytics/histograms/introduction-to-histograms) and [reports](/docs/analytics/reports/introduction-to-reports). Before proceeding, familiarize yourself with the limits and constraints that apply to metrics used in these analyses: - [Allowed metrics in histograms](/docs/analytics/histograms/creating-histograms#allowed-metrics) - [Allowed metrics in reports](/docs/analytics/reports/creating-reports#allowed-metrics) ## Requirements --- You must have a [user role](/docs/settings/identity-access-management/permissions) with the following permissions: - [access the Decision Hub](/docs/settings/identity-access-management/permissions/analytics-permissions#access-the-decision-hub) - [view analyses](/docs/settings/identity-access-management/permissions/analytics-permissions#view-analyses) - [create analyses](/docs/settings/identity-access-management/permissions/analytics-permissions#create-analyses) - [edit analyses](/docs/settings/identity-access-management/permissions/analytics-permissions#edit-analyses) - [preview results](/docs/settings/identity-access-management/permissions/analytics-permissions#preview-results) - A tracking code implemented into your website. ## Creating a formula metric --- metric wizard 1. Go to metric wizard **Decision Hub > Metrics > New metric**. 2. Enter a name of the metric. 3. Optionally, to let other users know about the purpose of the metric, you can write a short description. 4. Choose **Formula metric**. 5. To start creating a mathematical operation, click the **Select** button. 6. You can choose one of four elements: profile, event, number or a [function](/docs/crm/expressions/functions-in-expressions). 7. To define the settings of the chosen element, click this element. 8. **If you chose an event**, perform the following steps: - To choose the context of data analyzed in the metric, next to the **Type** option, click the arrow. You can analyze events or profiles. - To choose the type of results, next to the **Aggregator** option, click the arrow. [The full list of aggregators and their description is available here](/docs/analytics/metrics/creating-simple-metrics#aggregators) - To define the type of occurrence, next to the **Occurrence type** option, click the arrow. This way you can count the first, the last or all occurrences of a chosen event. - From the dropdown list, select an event. Customers who performed a specific action (that triggers the selected event) are considered in the analysis. To define the details of the event, perform one or two actions described below: - If you want to narrow down the scope of customers, click the **Enable filter** option. This [profile filter](/docs/analytics/i_profile-filter) works as an additional condition a customer has to meet in order to be counted in the metric. - If you want to be more specific and analyze a particular aspect of the event, select [event parameters](/docs/analytics/i_events-parameter-value) by clicking the **Where** button. 9. To add another element, click the plus button. 10. To define the mathematical operation between the elements, click the plus button. 10. To determine the time range from which the data will be analyzed, click the calendar. Confirm the settings by clicking **Apply**. 11. To complete the process, click the **Save** button. # Date ranges in dashboards ## Overview When you add an analysis to a dashboard, its date ranges can be overwritten by the dashboard or widget date range. This article explains how overwriting works: - Analyses can contain nested date ranges: when a condition uses another analysis (a segmentation, aggregate, or expression), that inner analysis has its own date range. - You can choose to overwrite the main date range only, both the main and nested date ranges, or neither - each combination behaves differently. - Profile filters are not treated as nested by default — if the conditions inside are event-based, their date ranges are treated as the main analysis date range, not nested. - Dashboard date ranges cannot overwrite segmentation widgets added directly to the dashboard; segmentations used as conditions inside a metric are treated as nested date ranges and can be overwritten. ## Date range types in analyses and dashboards --- ### Main analysis date range While creating an analysis, you can apply date filters. The image below presents a preview of a funnel configuration in the funnel creator, the area marked with a red rectangle presents the funnel's main filter.
A date range inside a funnel
A date range inside a funnel
If you apply a profile filter on your analysis and the conditions inside the profile filter are based only on events, the date ranges of those events are treated as the main analysis date range.
A main time filter in a profile filter applied to an analysis (marked with a red rectangle)
A main time filter in a profile filter applied to an analysis (marked with a red rectangle)
### Nested date range A nested date range is the date range of an analysis used as a condition inside another analysis, for example, when analysis conditions include an aggregate, segmentation, or expression, that inner analysis has its own date range. The same applies when a profile filter is applied on top of the main analysis: if the profile filter contains another analysis (a segmentation, aggregate, or expression), its date range is also considered nested. The exception is event-based conditions inside a profile filter: if the profile filter contains events with a visible date range, those are treated as the main date range, not nested. See the note in [Date range dependencies](#date-range-dependencies) for details. In the image below, the nested date ranges are marked with a red rectangle.
Nested time filters in an analysis (marked with red rectangles)
Nested time filters in an analysis (marked with red rectangles)
### Dashboard date range The image below presents a dashboard preview in the editing mode. The area marked with a red rectangle contains a date range for the dashboard:
A date range of a dashboard
A global date range of a dashboard
The dashboard date range applies to all widgets on the dashboard at once. When set, it overwrites the main date range of each analysis where **Allow overwriting analysis' main time filter** is enabled, and also the nested date ranges where **Allow overwriting all nested time filters** is also enabled. ### Widget date range The widget date range is configured per widget in the widget's **Data** settings panel, in the **Widget date range** field. Unlike the [dashboard date range](#dashboard-date-range), which applies to all widgets on the dashboard, the widget date range overwrites the date range only for the specific widget where it is set. The widget date range works the same way as the dashboard date range: when set, it overwrites the main date range of the analysis where **Allow overwriting analysis' main time filter** is enabled, and also the nested date ranges where **Allow overwriting all nested time filters** is also enabled. If a [dashboard date range](#dashboard-date-range) is also defined, it takes priority — the widget date range is ignored. The widget date range is applied only when no dashboard date range is set.
Widget date range field in widget settings
Widget date range field in widget settings
## Date range dependencies --- - When an analysis is added to a dashboard, the results of the analysis are immediately presented on the dashboard. The system returns results for the analysis based on the time range taken from the analysis. - If you want to restrict the data shown on the dashboard to a certain period, you can define a time range through the [Dashboard date range](#dashboard-date-range) option. However, if the date range selected for the dashboard and the date range in the analysis' filters (both main and nested) don't overlap, the analysis may present wrong results or no results at all. To handle this, enable the **Allow overwriting analysis' main time filter** or **Allow overwriting all nested time filters** options described below. - In each analysis, you can enable overwriting the date range of analysis added to the dashboard with the dashboard's date range or your own. The image and the table below explain the behavior of the overwriting options and their impact on date ranges of analyses added to the dashboard:
The dashboard date range cannot overwrite the date range of a segmentation widget added directly to the dashboard. When you edit such a widget, the **Allow overwriting time filters** checkboxes are not available, which means the dashboard date range has no effect on it. This does not apply to segments used as conditions inside a metric or other analysis. A segment used as a nested condition is treated as a nested date range and can be overwritten when **Allow overwriting all nested time filters** (option B) is enabled.
Allowed combinations of overwriting options
Allowed combinations of overwriting options
|Option| Allow overwriting analysis' main time filter | Allow overwriting all nested time filters | Result | |---|---------------------------------------------|-------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |A| selected | unselected | The [main date range](#main-analysis-date-range) of the analysis is overwritten by:
- **Dashboard date range** — always takes priority, even if a widget date range is also set.
- **Widget date range** — only applied when no dashboard date range is set.
If neither is defined, the analysis' main date range is applied without changes. | |B| selected | selected | The [main](#main-analysis-date-range) and [nested date ranges](#nested-date-range) of the analysis are overwritten by:
- **Dashboard date range** — always takes priority, even if a widget date range is also set.
- **Widget date range** — only applied when no dashboard date range is set.
If neither is defined, the analysis' main date range and nested date ranges are applied without changes. | |C| unselected | unselected | The analysis' own main and nested date ranges are applied without changes. The dashboard date range and widget date range have no effect. | |n/a| unselected | selected | Not supported |
**Date range overwriting in analysis' profile filter** When an analysis has a profile filter applied, the date range overwriting behavior depends on the type of conditions inside it: - **Events with a visible date range**: If the profile filter contains event-based conditions with a date range visible when you open it, those date ranges are treated as the main date range. Both options A and B overwrite them when a dashboard or widget date range is defined. - **Aggregates, segments, or expressions**: If the profile filter contains aggregates, segments, or expressions, those are nested date ranges. Only option B overwrites them. A filter can contain a mix of condition types. In that case, the overwriting applies to each condition according to the rules above.
## Example --- ### Overwriting analysis' main date range only **Setup:** - A metric counting [`page.visit`](/docs/assets/events/event-reference/web-and-app#pagevisit) events in the last 30 days is added to a dashboard (assuming current date is 7 Mar, 2024). - The metric doesn't contain any nested date ranges. - Both **Allow overwriting analysis' main time filter** and **Allow overwriting all nested time filters** are enabled. - No [dashboard date range](#dashboard-date-range) or **Widget date range** is defined. **Result:** The metric uses its own date range (last 30 days), because no overwriting date range is defined.
A metric added to the dashboard - main analysis filters are applied
A metric added to the dashboard - main analysis filters are applied
To overwrite the main date range, define a date range using one of the following methods: - **[Dashboard date range](#dashboard-date-range)**: Set to the time period you want to analyze (in this example, 1 Feb, 2024 – 29 Feb, 2024). This overwrites the main date range for this metric and all other analyses on the dashboard where **Allow overwriting analysis' main time filter** is enabled. - **Widget date range**: Set directly on this widget. This overwrites the main date range only for this specific metric. **Result:** The metric's date range is overwritten and results are shown for the defined period.
A metric added to the dashboard - dashboard date range applied
A metric added to the dashboard - dashboard date range applied
### Overwriting a nested date range **Goal**: Show today's `transaction.charge` events, but only for customers who are making their first-ever transaction today. **Setup**: - A metric is added to a dashboard. The metric counts `transaction.charge` events where the transaction timestamp equals the value returned by a nested aggregate. - The nested aggregate finds the timestamp of the first `transaction.charge` event in a customer's history. The aggregate's own date range is **Lifetime**. - The metric's main date range is **Last 30 days**.
Metric widget settings showing a transaction.charge metric with a nested aggregate set to Lifetime and the metric's main date range set to Last 30 days
Metric setup: transaction.charge metric with a nested Lifetime aggregate and a Last 30 days main date range
- The [dashboard date range](#dashboard-date-range) is set to today. **What happens when both options are enabled**: If both **Allow overwriting analysis' main time filter** and **Allow overwriting all nested time filters** are enabled, the dashboard date range overwrites both the metric's main date range and the aggregate's date range to today. The aggregate no longer finds the customer's first-ever transaction — it finds the first transaction within today's range instead. This breaks the metric in two ways: - **Returning customer with a transaction today**: the aggregate returns today's first transaction timestamp instead of the first-ever timestamp. The metric condition matches today's transaction and the customer appears in results — incorrectly, because their first-ever transaction was not today. - **Customer with no transactions today**: the aggregate finds nothing and returns null — the metric returns null and the customer is excluded from results entirely. **Correct approach — overwrite main only**: Enable only **Allow overwriting analysis' main time filter**. Leave **Allow overwriting all nested time filters** disabled. - The metric's main date range is overwritten to today → only today's transactions are evaluated. - The aggregate's date range stays on **Lifetime** → it still finds the absolute first transaction in the customer's history. **Result**: The metric returns today's `transaction.charge` events only for customers whose first-ever transaction occurred today. ### Overwriting date ranges in a profile filter This example shows how date ranges inside a profile filter interact with the overwriting options, depending on the type of conditions inside it. **Scenario A: Profile filter contains an event** **Setup:** - A metric counting `transaction.charge` events is added to a dashboard. - The metric has a **Change conditions** filter applied. The filter contains a `newsletter.click` event with a fixed date range (1 Oct 2024, 00:00 – 31 Oct 2024, 23:59), visible when you open the filter.
Change conditions filter containing a newsletter.click event with a fixed date range visible in the filter settings
Change conditions filter with a newsletter.click event and a visible fixed date range
- Only **Allow overwriting analysis' main time filter** is enabled. - The [dashboard date range](#dashboard-date-range) is set to 1 Jan 2025 – 31 Jan 2025. **Result:** The `newsletter.click` event date range inside the filter is treated as a main time filter. It is overwritten by the dashboard date range: 1 Jan 2025 – 31 Jan 2025. **Scenario B: Profile filter contains a segment or aggregate** **Setup:** - A metric counting `transaction.charge` events is added to a dashboard. - The metric has a **Change conditions** filter applied. The filter contains a segment condition.
Change conditions filter containing a segment condition in the filter settings
Change conditions filter with a segment condition
- Only **Allow overwriting analysis' main time filter** is enabled. - The [dashboard date range](#dashboard-date-range) is set to 1 Jan 2025 – 31 Jan 2025. **Result:** Segment and aggregate conditions inside a profile filter are treated as nested date ranges. **Allow overwriting analysis' main time filter** alone does not overwrite them. To overwrite these date ranges, also enable **Allow overwriting all nested time filters**. # Metrics There are two types of metrics in Synerise: - **Simple metrics** allow you to analyze events or customer attributes. You can create analyses that calculate the amount of event occurrences, the sum, average, median, quantiles, minimal and maximal values of events or customer attributes. You can also analyze events in terms of occurrence times and first or last occurrences. - **Formula metrics** allow you to create an analysis based on the mathematical operations between events and customer attributes. The results of metrics are presented as numerical values. ## Business benefits --- - Quickly count events in the system. - Create KPI based on your own formulas and calculation methods. -
You can view the change history for this analysis from its configuration - see [Audit Log](/docs/settings/workspace/audit-log).
## Use cases --- You can preview [use cases which apply metrics](/use-cases/?ordering=DESC&sortBy=publishDate&filters=tags%3D%3D"metrics"). ## Requirements --- A tracking code implemented into your website. ## Contents # Creating dashboards Create a dashboard that gathers analyses such as metrics, funnels, trends, and so on. The dashboard can display general data or [dynamic data](/docs/analytics/analytics-dashboard/creating-dashboards#dynamic-data-in-dashboards) such as the values of parameters, for example, a message ID, customer ID, product ID, and so on. ## Requirements --- - You must implement a [tracking code](/docs/settings/tool/tracking_codes) into your website. - You must be granted a set of [user permissions](/docs/settings/identity-access-management/permissions) that allow access to Decision Hub and creating analyses. ## Creating a dashboard ---
Blank dashboard canvas in Decision Hub with no widgets added, ready for customization
A blank dashboard
1. Go to Decision Hub icon **Decision Hub > Dashboards > Add dashboard**. 2. Enter the name of the dashboard. 3. To add a widget to the dashboard, click an icon on the The panel of analysis icons panel. The icons are (left to right): HTML code, text field, image, [segmentation](/docs/analytics/segmentations/creating-segmentations), [trend](/docs/analytics/trends/creating-trends), [funnel](/docs/analytics/funnels/creating-funnels), [metric](/docs/analytics/metrics/creating-simple-metrics), [histogram](/docs/analytics/histograms/creating-histograms), [aggregate](/docs/crm/aggregates/creating-profile-aggregates), [expression](/docs/crm/expressions), and a [report](/docs/analytics/reports/creating-reports). 4. To use [snippets](/docs/assets/snippets) in HTML code: 1. Click **Snippets**. 2. Select a snippet. 3. Paste the snippet or create a reference to it. Snippet usage is restricted to images and blocks. **Result**: A widget appears on the dashboard. ### Configuring analyses widgets --- 4. If you chose a particular type of an analysis to be added to the dashboard, in order to configure the widget settings, click the widget on the dashboard. **Result**: On the right side, a panel shows up with two tabs: **Data** and **Style**. 5. In the **Data** panel, enter the title of the analysis. 6. Optionally, in the **Description** field, to let other users know the purpose of the analysis, enter a short description. 7. From the dropdown list, you can either: - Select an existing analysis. - Create a new analysis by clicking **Create new** at the bottom of the list.
If you want to display dynamic data on the dashboard, proceed to the [Dynamic data in dashboards](/docs/analytics/analytics-dashboard/creating-dashboards#dynamic-data-in-dashboards) section.
8. You can configure additional settings: | Property name | Available in | Description | |---------------|-------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | **Allow overwriting time filters** | All apart from segmentations | By default, the dashboard uses the original time range of the selected analysis. You can use the following options:
- **Allow overwriting analytic main time filter** - Instead of using time range from [main analysis filter](/docs/analytics/analytics-dashboard/date-ranges-in-dashboard#main-analysis-date-range), you can either apply the global date range of the dashboard as a main analysis filter of the selected analysis or choose your own date range (use **Chart date range** field then), which can be different from the one defined in the analysis.
- **Allow overwriting all nested time filters** - Instead of using time range from [nested time filters](/docs/analytics/analytics-dashboard/date-ranges-in-dashboard#nested-date-range), you can either apply the global date range of the dashboard as nested time filters or choose your own date range (use **Chart date range** field then), which can be different from the one defined in the analysis. Enabling this option also enables **Allow overwriting time filters**.
More information and examples are available in [Date ranges in dashboards](/docs/analytics/analytics-dashboard/date-ranges-in-dashboard). | | **Comparison** | All apart from segmentations | The option of comparing the results of the selected analysis to a time range or other analysis. In the case of selecting the time range option, remember it must overlap with the date range set directly in the selected analysis. | | **Goal** | Metrics, aggregates and expressions | The option of setting the desired result. As a result of switching on this option, a progress bar displays in the widget. | 8. In the **Style** tab, you can configure the following settings:
Style settings
Property name Available in Description
Visualization type All types of analyses apart from a metric and an expression Select a chart type an analysis is going to be presented in.
Appearance All types of analyses Define the unit of results and their accuracy (decimal places).
Layout All types of analyses apart from a metric, aggregate and an expression Select a horizontal or vertical layout of a chart.
Axes All types of analyses apart from a metric, aggregate and an expression
  • Define the minimum and maximum values shown on a chart.
  • Select the direction of the X and Y axes.
Axes titles All type of analyses apart from a metric, aggregate and an expression Enter titles for X and Y axes.
Legend All type of analyses apart from a metric, aggregate and an expression Define the position and alignment of a chart legend.
Colorize All type of analyses apart from a metric, aggregate and an expression
    Define the method of coloring the chart elements:
  • Full pallet – Every element of the chart has different color.
  • Color per series – Chart elements within one unit have different colors (for example, when comparing occurrence of a few events in a particular day).
  • One color – Every element of the chart has the same color.
  • Min & max values – All chart elements have the same colors apart from those which show the highest and the lowest value.
  • Value based – Intensity of the color of the chart element depends on the value.
Color palette All type of analyses apart from a metric, aggregate and an expression Select colors of chart elements.
Text A metric, aggregate and an expression
  • Define the alignment of the result in the widget.
  • Select the font size.
Icon A metric, aggregate and an expression Select an icon and its color. The icon is displayed above the title of the widget.
Goal colors A metric, aggregate and an expression Define the color of the lowest and the highest result.
8. To filter the results of the dashboards, click the Dashboard filter icon. 9. When you complete creating the dashboard, click **Save dashboard**.
By default, a new dashboard is private. If you want to share it with others, check the instruction [here](/docs/analytics/analytics-dashboard/sharing-dashboards).
### Dynamic data in dashboards --- Dynamic data is a collection of information that refers to a particular entity (for example, a customer, a product, a message sent to customers, a URL, attributes (city, name, birth date), and so on). It's described as a dynamic because it changes as the context of the analysis changes. 1. To display data for an individual customer or attribute on the dashboard, add analyses that contain the same [dynamic key](/docs/analytics/i_events-parameter-value#dynamic-key). **Result**: The Dynamic key icon icon shows on the settings panel on the dashboard. 2. Click the icon. **Result**: A pop-up shows up. The name of the dynamic key that is used in the analyses added is already there.
If the value of a dynamic key is not defined, the analyses on the dashboard that use dynamic key show `0`.
3. To display the results for a specific value of the dynamic key parameter (for example, a customer), enter the parameter value. **Result**: The data in the analyses that contain the same parameter are updated.
You must be consistent with the names of the dynamic keys while creating analyses that are used in the dashboard. For example, `ID` and `id` will be treated as different dynamic keys. But, the values of the dynamic keys are case-insensitive.
### Predefined dynamic keys --- There are some predefined dynamic keys which you can use to your advantage: - `id` - The ID of a [communication campaign](/docs/campaign). You can create analyses dedicated to your campaigns and use the `id` dynamic key in the conditions of these analyses. Then, you can create a dashboard to contain these analyses. Later on, you can [add this dashboard to the statistics of a campaign](#adding-dashboards-to-campaign-statistics), so you can check your custom KPIs of campaigns you run. - `clientId` - The ID of a profile. You can create analyses dedicated to measuring customer behavior or other measurable customer-related aspects and use the `clientId` dynamic key in the conditions of these analyses. Then, you can create a dashboard to contain these analyses. Later on, you can [add this dashboard to the statistics in a profile's card](#adding-dashboards-to-a-profile-card), so you can have all necessary data related to each profile in one place. #### Adding dashboards to a profile card This procedure contains exemplary analyses such: - as a metric that sums the amount of money a customer has spent so far, - an aggregate that counts the number of transactions made in the last 30 days - an aggregate that returns the date of the latest purchase. These analyses will be used in a dashboard which will be added to the profile cards, so you can check the results of the analyses in the dashboard directly on the card. 1. Create a set of analyses that contain the `clientId` [dynamic key parameter](/docs/analytics/i_events-parameter-value#how-to-create-a-dynamic-key). The value of the parameter can be set to any value.
In aggregates and expressions, the `clientId` dynamic parameter is added automatically. You don't need to add it.
1. Create a metric that returns the amount of money spent so far.
Click here to see the configuration of the metric
The configuration of the metric that contains dynamic key parameter
The configuration of the metric that contains dynamic key parameter
2. Create an aggregate that returns the number of transactions made in last 30 days.
Click here to see the configuration of the aggregate
The configuration of the aggregate that returns the number of transactions
The configuration of the aggregate that returns the number of transactions
3. Create an aggregate that returns the date of the latest transaction
Click here to see the configuration of the aggregate
The configuration of the aggregate that returns the timestamp of the latest transaction
The configuration of the aggregate that returns the timestamp of the latest transaction
2. Create a dashboard that contains all analyses created in the previous step. 3. Go to **Behavioral Data Hub > Profiles**. 4. Select any profile on the list. 5. Select the **Statistics** tab. 6. Click the Three-dot icon icon. **Result**:
The Statistics section of a profile
The Statistics section on a profile's card
7. From the dropdown list, select **Manage dashboards**. 8. On the pop-up, in the text field, enter the name of the dashboard you created previously. 9. Confirm your choice by clicking **Add**. 10. Optionally, you can define the order of displaying dashboards by dragging and dropping them in the desired order. 11. Confirm the dashboard settings by clicking **Apply**. #### Adding dashboards to campaign statistics 1. Create a set of analyses that contain the `id` [dynamic key parameter](/docs/analytics/i_events-parameter-value#how-to-create-a-dynamic-key). The value of the parameter can be set to any value. 2. Create a dashboard that contains all analyses created in the previous step. 3. Go to **Experience Hub**. 4. Select the communication type. 5. Go to the details of your active or finished communication campaign. 5. Select the **Statistics** tab. 6. Click the Three-dot icon icon. **Result**:
The Statistics section of an email campaign
The Statistics section of an email campaign
7. From the dropdown list, select **Manage dashboards**. 8. On the pop-up, in the text field, enter the name of the dashboard you created previously. 9. Confirm your choice by clicking **Add**. 10. Optionally, you can define the order of displaying dashboards by dragging and dropping them in the desired order. 11. Confirm the dashboard settings by clicking **Apply**. # Creating trends If you want to compare the occurrence of several events over time, you need to create a trend. The analysis of the selected events will be presented on the chart. Trends will be analyzed with regards to customers or events. In the preview of a trend, you can choose the analysis aspect on the chart. ## Requirements --- You must have a [user role](/docs/settings/identity-access-management/permissions) with the following permissions: - [access the Decision Hub](/docs/settings/identity-access-management/permissions/analytics-permissions#access-the-decision-hub) - [view analyses](/docs/settings/identity-access-management/permissions/analytics-permissions#view-analyses) - [create analyses](/docs/settings/identity-access-management/permissions/analytics-permissions#create-analyses) - [edit analyses](/docs/settings/identity-access-management/permissions/analytics-permissions#edit-analyses) - [preview results](/docs/settings/identity-access-management/permissions/analytics-permissions#preview-results) - A tracking code implemented into website. ## Creating a trend --- Trend wizard 1. Go to Decision Hub icon **Decision Hub > Trends > New trend**. 2. Enter the name of the trend. 3. Optionally, to let users of the workspace know about the purpose of the trend, you can write a short description. s3. Choose the event you want to analyze. A trend is an analysis of an event's number of occurrences. You can filter the events to analyze by setting optional filters: - If you want to narrow down the scope of customers, click the **Enable filter** option. This [profile filter](/docs/analytics/i_profile-filter) works as an additional condition a customer has to meet in order to be counted in the trend.
The filter affects the whole trend. If you add another event to be analyzed, the filter will affect the newly added event as well.
- If you want to be more specific and analyze a particular aspect of the event, click the **Where** button and select [event parameters](/docs/analytics/i_events-parameter-value). 4. If you want to add another event to the analysis, click the plus button. 5. To define how you want the data to be presented on the chart, click the **Interval** button. From the dropdown list, select whether you want to the trend results to be presented for each day, week, month, and year in the selected time range. 6. To determine the time range from which the data is analyzed, click the calendar icon and set the time constraints. Confirm you choice with the **Apply** button. 7. To complete the process, click the **Save** button. When you save the trend, you can find your trend on the list of trends. # Previewing geoanalytics When you create a geoanalysis, you can check its results. The results are saved as segmentations. 1. Go to Decision Hub icon **Decision Hub > Segmentations**. 2. On the segmentation you want to preview, click the Menu icon icon. 3. To see the preview of the segmentation in the graphic form, from the dropdown list, choose the **Preview** option. 4. To see the list of customers who belong to the segmentation, in the upper right corner of the window click **Open in Profiles**. # Previewing histograms To see the outcome of the histogram, you can switch on the preview of the analysis. --- 1. Go to Decision Hub icon **Decision Hub > Histograms**. 2. On the list, find the histogram you want to see the preview of. 3. Click the histogram. **Result**: A histogram configuration appears. 3. Select the **Preview** tab. # Previewing funnels When you create a funnel, you can check the results of the analysis. 1. Go to Decision Hub icon **Decision Hub > Funnels**. 2. On the list of the funnels, find the funnel you want to see the preview of. 3. Open the funnel configuration and scroll down the page to the **Preview** section. # Previewing segmentations When you create a segmentation, you can check the results it produces. 1. Go to Decision Hub icon **Decision Hub > Segmentations**. 2. Click the Three-dot icon icon on the segmentation you want to preview. 3. From the dropdown list, choose the **Open** option. preview of the segmentation - To go back to editing the segment, scroll up the screen and click **Show conditions** - To include a customer in more than one segment, if the customer met conditions, in the preview of the segmentation, switch the [**Multi-match**](/docs/analytics/segmentations/creating-segmentations#multi-match) toggle on. - To see the percentage distribution, scroll down the page. - To preview the list of customers that meet the requirements of the segmentation, click the column/slice of a pie chart that represents a segment and select **Show records**. - To print out the preview of the segmentation, in the **Preview** section, click Three-dot icon and select **Print chart**. - To download the preview of the segmentation as a `.jpg`, `.png`, `.pdf`, `.csv`, or `xlsx`, click Three-dot icon and select the option of downloading a corresponding file format. # Previewing reports When you create a report, you can check the results of the analysis. 1. Go to Decision Hub icon **Decision Hub > Reports**. 2. On the list of the reports, find the report you want to see the preview of. 3. Click the report. 4. Click the **Preview** tab. 4. Optionally, to change the settings of the report, click the **Edit condition** button. # Creating reports Create a report on the basis of metrics to analyze the aspects of selected metrics. ## Allowed metrics The table below summarizes metric configurations and their compatibility with reports. It applies to reports with one and more metrics used in a report.
The metric type is only determined by whether event parameters or profile attributes are used in the metric conditions. Doing math operations (like adding or subtracting), adding numbers, or using functions in metrics does not change the metric type.
| Metric conditions* | Allowed to be selected in the report conditions? | Allowed dimensions for these metric conditions | |----------------------------------------------------------------------------------------------------------|------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------| | Contain only [profile attributes](/docs/crm/customer-properties) | Yes | All profile attributes (all options available in the Profiles tab) | | Contain one [event](/docs/assets/events/introduction-to-events) | Yes | - All profile attributes (all options available in the Profiles tab)
- All types of event parameters ([event parameters](/docs/assets/events/adding-event-parameters) and specials, [event expressions](/docs/crm/expressions/creating-event-expression), [event aggregates](/docs/crm/aggregates/creating-event-aggregates)) | | Contain multiple events or one event with multiple parameters | Yes | Only [event parameters](/docs/assets/events/adding-event-parameters), specials, [event aggregates](/docs/crm/aggregates/creating-event-aggregates) that are shared between the events included in the metric | | Contain a profile attribute and an event | No | n/a | | No event or profile attribute in conditions (e.g., static value metric) | No | n/a | ### How to read this table? - **Metric conditions** refers to conditions defined in the metric settings:
The highlighted section on the screen presents metric conditions
Metric conditions of a simple metric
The highlighted section on the screen presents metric conditions
Metric conditions of a formula metric
- **Dimensions** refers to the option in the report configuration that opens a dropdown with event parameters (the **Event** tab) and profile attributes (the **Profiles** tab). By default, only profile dimensions are available. To be able to select event dimensions, you need to add at least one event metric.
Report dimension dropdown options
Report dimension dropdown options
## Report result limits --- You can add up to 5 metrics in total to a report. | Metrics used in the report | Maximum **Range** value (records returned) | Maximum number of dimensions | |-----------------------------|----------------------------------------------|-------------------------------| | Single metric | 250,000 | 20 | | Multiple metrics | 1000 | 5 | ## Requirements --- You must have a [user role](/docs/settings/identity-access-management/permissions) with the following permissions: - [access the Decision Hub](/docs/settings/identity-access-management/permissions/analytics-permissions#access-the-decision-hub) - [view analyses](/docs/settings/identity-access-management/permissions/analytics-permissions#view-analyses) - [create analyses](/docs/settings/identity-access-management/permissions/analytics-permissions#create-analyses) - [edit analyses](/docs/settings/identity-access-management/permissions/analytics-permissions#edit-analyses) - [preview results](/docs/settings/identity-access-management/permissions/analytics-permissions#preview-results) - Create at least one metric Refer to the table in the ["Allowed metrics" section](#allowed-metrics) to become familiar with the limits and constraints.
You can read more about metrics in: - [Creating simple metrics](/docs/analytics/metrics/creating-simple-metrics) - [Creating formula metrics](/docs/analytics/metrics/creating-formula-metrics) Also, you can explore a [collection of use cases demonstrating how reports and metrics are employed](/use-cases/?ordering=DESC&sortBy=publishDate&filters=tags%3D%3D"metrics"ORtags%3D%3D"reports").
## Creating a report ---
Report wizard
A blank report
1. Go to Decision Hub icon **Decision Hub > Reports > New report**. 2. Enter the name of the report. 4. Select a metric on the basis of which the report is created. To do so, click **Choose metric** and from the dropdown list, select a metric. The table in the ["Allowed metrics" section](#allowed-metrics) explains the limits and constraints. 5. Optionally, to include more than one metric in the report, click **Add metric > Choose metric** and select an additional metric from the dropdown. The same metric can be added multiple times. Refer to the ["Report result limits" section](#report-result-limits) for the maximum number of metrics you can add. 6. To choose the type of results you want to generate in the report, click the button in the **Range** section. From the dropdown list, select either top (receiving the highest results) or last results (last meaning recent). Refer to the ["Report result limits" section](#report-result-limits) for the maximum **Range** value. 7. To choose the aspects of data from the metrics (dates, names, quantity, and more) you want to include in the report, click **Choose dimension**. Refer to the table in the ["Allowed metrics" section](#allowed-metrics) to become familiar with the allowed dimensions for the metric you selected. When using multiple metrics, only dimensions that are valid for all selected metrics are available. Refer to the ["Report result limits" section](#report-result-limits) for the maximum number of dimensions you can add. 1. If you want to add a time context to display the dates when the event occurred, click **Add dimension**. Then go to **Events > Expressions**. From the list of expressions, select an event expression.
You can create an [event expression](/docs/crm/expressions/event-expression-for-reports) using functions such as [Day of month](/docs/crm/expressions/functions-in-expressions#day-of-month), [Day of week](/docs/crm/expressions/functions-in-expressions#day-of-week), or [Day of year](/docs/crm/expressions/functions-in-expressions#day-of-year). When organizing results by time units, use the year/month/day/hour format inside the expression (for example, 2019/06/23), because report results are sorted by date interpreted as a string.
8. To turn off the null values for a specific dimension (to increase the readability of the analysis), switch the **Show null values** option off for that dimension. 9. To configure per-metric settings such as the column name, time window, and value format, next to a metric to expand its details, click the **+** icon:
Settings of metric displayed in the report
Settings of metric displayed in the report
- **Column name** — The label displayed in chart legends and table column headers. The default value is the metric name. - **Time window** — The date range applied to this specific metric (for example, Last 30 days). - **Value format** — The number format used to display this metric's results.
You can reorder metrics and dimensions using the drag-and-drop handle or the arrow icons that appear next to each item. You can also duplicate or delete individual metrics and dimensions using the corresponding icons.
10. If you want to narrow down the scope of the metric data, click the **Enable filter** option. This [filter](/docs/analytics/i_profile-filter) works as an additional condition applied globally to the report. 11. To save the report, click the **Save** button. 12. To generate report results, click **Run analysis**. ## Viewing report results with multiple metrics --- The report results are displayed as follows:
Report result preview
Report result preview
- **Chart** — For each dimension value, bars for all metrics are shown side by side, with the same color used for bars of the same metric. - **Tooltip** — Hovering over a bar shows the dimension value name and the metric name and value. - **Legend** — The legend displays each metric's color and name (as defined in the Column name field). - **Table** — Each metric appears as a separate column, with the column header taken from the metric's Column name setting.
Reports with multiple metrics cannot use the comparison feature on the Dashboard. If you want to compare data, add additional metrics directly in the report options.
# Previewing Sankey Diagrams Once you create a Sankey diagram, you may see the results of the analysis. They are presented in the form of the chart which visualize the steps taken by customers before or after an event (depending on the option selected when you created the chart).
preview of the Sankey chart
Preview of the Sankey diagram
1. Go to **Decision Hub > Sankey Diagrams**. 2. Find a Sankey diagram you want to see the preview of. 3. Click the Three-dot icon icon on the right and select the **Preview** option. 4. You can perform several actions: - If you want to display the parameters of an event (such as URL in `page visit`), click the event under the **Step column** and select the **Drill down** option. Then, from the list of event parameters, select a parameter.
Each event parameter is displayed on the chart as a separate path. They take the place of non-drilled events. It happens due to the limit defined by the number of paths.
- If you want to get the list of the customers who arrived to a point in the path, click the event under the **Step column** and select the **Open in Profiles** option. - If you want to change the number of the top event parameters chosen through drill downs, click the **Top drill** button and choose the number of the results you want to display. - If you want to change the number of paths, click the **Number of paths** button and select a number. - If you want to change the number of steps, click the **Number of steps** button and select a number. # Previewing metrics When you create a metric, you can check the results of the analysis. 1. Go to Decision Hub icon **Decision Hub > Metrics**. 2. On the list of the metrics, find the metric you want to see the preview of. 3. Click the metric as if you want to edit it. 4. Select the **Preview analyze** option. 4. Optionally, you can edit the metric by clicking the **Edit condition** button. Editing [simple metric](/docs/analytics/metrics/creating-simple-metrics) or [formula metrics](/docs/analytics/metrics/creating-formula-metrics) procedures available at the links. # Sharing dashboards When a dashboard is saved, it's private by default. You can make it accessible to all workspace users by changing its status, share it with specific workspace users with defined permissions, or generate a shareable link for non-workspace users. #### Dashboard statuses - **Private** - Only the author of the dashboard can preview and edit the dashboard. - **Public Readable** - All users of a workspace where the dashboard was created can preview it, however, only the author can edit it. - **Public Editable** - All users of a workspace where the dashboard was created can preview and edit it. ## Sharing with all workspace users --- 1. Go to Decision Hub icon **Decision Hub > Dashboards**. 2. Find a dashboard you want to share. 3. On the right of the dashboard name, click the icon with the status. **Result**: A dropdown list appears. 4. From the dropdown list, select a dashboard status. - **Public Readable** - All users of a workspace where the dashboard was created can preview it, however, only the author can edit it. - **Public Editable** - All users of a workspace where the dashboard was created can preview and edit it. ## Sharing with specific workspace users --- 1. Go to Decision Hub icon **Decision Hub > Dashboards**. 2. Click the dashboard on the list. 3. In the upper-right corner, click the **Share** button. **Result**: A dropdown list appears. 4. From the dropdown list, select the **With user** option. **Result**: The **Share with user** pop-up appears. 5. In the **Email address** field, enter the email address of a workspace user you want to grant access to. 6. From the dropdown next to the email field, select the permission level: - **View** - The user can only preview the dashboard. - **Edit** - The user can preview and edit the dashboard. Users with this permission can also share the dashboard with other users. 7. If you want to give access to more than one user, click **Add email** and repeat steps 5–6. 8. Confirm by clicking **Apply**. **Result**: The selected users are granted access to the dashboard. There is no email notification sent to them. To revoke access, open the **Share with user** pop-up and remove the user's email address. ## Sharing with non-workspace users --- To share a dashboard with users who are not part of your workspace, generate a shareable link. The link points to a snapshot of the dashboard's results from the time it was shared. The snapshot is available even after the dashboard is deleted. 1. Go to Decision Hub icon **Decision Hub > Dashboards**. 2. Click the dashboard on the list. 3. Wait for all elements of the dashboard to calculate. If necessary, scroll down to confirm that all calculations are complete.
If you click **Share** before all the calculations are finished, the shared dashboard will be incomplete.
4. On the upper right side, click the **Share** button. **Result**: A list appears. 5. From the dropdown list, select the **By link** option. **Result**: A pop-up appears. 6. In the **TTL (days)** field, define how long the link remains active. 7. Click **Generate**. **Result**: The dashboard link is generated. The pop-up displays the **Created**, **Last update**, and **Valid until** timestamps. The **Valid until** date is calculated as the date and time of clicking **Generate** plus the number of days set in the **TTL (days)** field.
Share by link view
A generated link to the dashboard
8. Click **Copy link**.
The dashboard under the link isn't updated in real time. It displays data from the date shown in the **Last update**. To update the dashboard data under the link, open the pop-up and click **Refresh**.
To revoke access to the shared link, open the pop-up and click **Remove link**. ## Exporting a dashboard to XLSX --- 1. Go to Decision Hub icon **Decision Hub > Dashboards**. 2. Click the dashboard you want to export. 3. In the upper-right corner, click the Three-dot icon icon. **Result**: A dropdown list appears. 4. From the dropdown list, select **Export to XLSX**. **Result**: The file is generated and downloaded. The export always contains all widgets on the dashboard; you can't select which ones to include.
Exporting a dashboard requires only the `read` [permission](/docs/settings/identity-access-management/permissions/analytics-permissions#work-with-dashboards) for dashboards — anyone who can preview a dashboard and see this menu can also export it. There's no separate permission for exporting.
After you click **Export to XLSX**, the system waits up to 15 seconds for all widgets to finish loading. If some widgets are still loading when this time is up, the export is generated anyway using the data that's already loaded, and you get a warning stating how many widgets weren't included in time. ### File format The export is a single XLSX file with one sheet. The data of all widgets is placed on that sheet one after another, separated by empty rows. Each widget type (for example, a metric, a report, or a segmentation) has its own layout, since the data it produces is different - there's no single format shared across all widget types. To analyze or visualize the exported data in Excel or another tool, check the layout of each widget's data and apply your own formatting or rules.
A given widget's layout doesn't change between exports. For example, if a widget shows results for the last 7 days, the specific information placed in each cell stays the same every time you export it, no matter what the underlying data is - only the values change.
### Dates in the exported file For each widget, the exported file shows the same date information as displayed on the dashboard: - If the widget's dates are set to **Lifetime**, the export shows the date range. - If the widget's dates are set to specific dates, the export shows the **from** and **to** dates. - If no dates are set on the widget, the export shows `null`.
Segmentation widgets added directly to a dashboard always use the date range from the segmentation itself — the dashboard date range can't override them (see [Date ranges in dashboards](/docs/analytics/analytics-dashboard/date-ranges-in-dashboard#dashboard-date-range)). Because of that, the export always shows `null` for the dates of a segmentation widget.
To understand how the dashboard date range, the widget date range, and the overwriting checkboxes on a widget affect the dates applied to an analysis, see [Date ranges in dashboards](/docs/analytics/analytics-dashboard/date-ranges-in-dashboard). ## Viewing the audit log of a dashboard --- 1. Go to Decision Hub icon **Decision Hub > Dashboards**. 2. Click the dashboard you want to check. 3. In the upper-right corner, click the Three-dot icon icon. **Result**: A dropdown list appears. 4. From the dropdown list, select **Show audit log**. **Result**: You can view the history of changes for that specific dashboard in the [Audit Log](/docs/settings/workspace/audit-log). ## Cloning a dashboard to another workspace --- 1. Go to Decision Hub icon **Decision Hub > Dashboards**. 2. Click the dashboard you want to clone. 3. In the upper-right corner, click the Three-dot icon icon. **Result**: A dropdown list appears. 4. From the dropdown list, select **Clone to workspace**. **Result**: The **Choose destination** pop-up appears. For the rest of the procedure, see [Cloning analyses to other workspaces](/docs/settings/workspace/cloning-objects/cloning-analyses-to-workspaces#cloning-objects). # Removing Sankey Diagrams If you don't need a diagram any longer, you can remove it.
The diagram will be removed permanently.
1. Go to **Decision Hub > Sankey Diagrams** 2. Find the diagram you want to remove. 3. Click Three-dot icon icon on the right and from the dropdown list, select **Delete**. # Adding segmentations to analytics dashboards When you create an analytical dashboard, you can add all types of analytics. ## Adding existing segmentations 1. Go to Decision Hub icon **Decision Hub > Dashboards > Add dashboard** 2. Click the Segmentation icon on the dashboard. 3. Select from the list the segmentation you want to add. ## Adding a new segmentation 1. Go to Decision Hub icon **Decision Hub > Dashboards > Add dashboard** 2. Click the Segmentation icon on the dashboard. 3. Select the option **Create new** at the bottom of the list. 4. Follow the steps in the procedure described [here](/docs/analytics/segmentations/creating-segmentations). # Removing dashboards If you don't need a dashboard anymore, you can remove it from the application.
The dashboard is removed permanently.
1. To remove a dashboard, go to Decision Hub icon **Decision Hub > Dashboards**. 2. Find the dashboard you want to remove. 3. Click the Three-dot icon icon on the right side from the dropdown and select the **Delete** option. **Result**: A pop-up appears. 4. Confirm the action by clicking **OK**. # Adding reports to analytical dashboards When you create an analytical dashboard, you can add all types of analytics.
Reports with multiple metrics cannot use the comparison feature on the Dashboard. If you want to compare data, add additional metrics directly in the report options.
## Adding existing reports 1. Go to Decision Hub icon **Decision Hub > Dashboards > Add dashboard**. 2. Click the Report icon icon on the dashboard. 3. From the list select the report you want to add. ## Adding a new report 1. Go to Decision Hub icon **Decision Hub > Dashboards > Add dashboard**. 2. Click the Report icon icon on the dashboard. 3. At the bottom of the list, select the option **Create new**. 4. Follow the steps in the procedure described [here](/docs/analytics/reports/creating-reports). # Adding funnels to analytics dashboards When you create an analytical dashboard, you can add all types of analytics to it. ## Adding existing funnels 1. Go to Decision Hub icon **Decision Hub > Dashboards > Add dashboard**. 2. Click the Funnel icon icon on the dashboard. 3. From the list, select the funnel you want to add. ## Adding a new funnel 1. Go to Decision Hub icon **Decision Hub > Dashboards > Add dashboard**. 2. Click the Funnel icon icon on the dashboard. 3. At the bottom of the list, Select the **Create new** option. 4. Follow the steps in the procedure described [here](/docs/analytics/funnels/creating-funnels). # Adding metrics to analytics dashboards When you create an analytical dashboard, you can add all types of analytics to it. ## Adding existing metrics 1. Go to Decision Hub icon **Decision Hub > Dashboards > Add dashboard**. 2. Click the Metric icon icon on the dashboard. **Result**: A space dedicated for a metric appears on the dashboard. 3. Click the space dedicated for the metric. 3. From the list on the right, select the metric you want to add. ## Adding a new metric 1. Go to Decision Hub icon **Decision Hub > Dashboards > Add dashboard**. 2. Click the Metric icon icon on the dashboard. **Result**: A space dedicated for a metric appears on the dashboard. 3. Click the space dedicated for the metric. 3. From the list on the right, select the option **Create new** . 4. Create the metric by following the steps in the procedure described [here](/docs/analytics/metrics/creating-simple-metrics). # Previewing trends To see the outcome of the trend, you can switch on the preview of the analysis. You can check the results with regard to customers or events. 1. Go to Decision Hub icon **Decision Hub > Trends**. 2. On the list of trends, find the trend you want to see the preview of. 3. Click the trend. 4. Click the **Preview analyze** button. 5. To define the context of the data presented in the chart, select **Profiles** or **Events**. # Adding histograms to analytics dashboards When you create analytical dashboards, you can add all types of analytics to them. ## Adding existing histograms --- 1. Go to Decision Hub icon **Decision Hub > Analytics dashboards > Add dashboard**. 2. Click the Histogram icon icon on the dashboard. 3. From the list, select the histogram you want to add. ## Adding a new histogram --- 1. Go to Decision Hub icon **Decision Hub > Analytics dashboards > Add dashboard**. 2. Click the Histogram icon icon on the dashboard. 3. At the bottom of the list, select the **Create new** option. 4. Follow the steps in the procedure described in [Creating histograms](/docs/analytics/histograms/creating-histograms). # Adding geoanalytics to analytics dashboards When you create an analytical dashboard, you can add all types of analytics to it. 1. Go to Decision Hub icon **Decision Hub > Dashboards > Add dashboard**. 2. Click the Segmentation icon icon on the dashboard. 3. From the list, select the segmentation you want to add. # Previewing dashboards You can check your analysis in two types of preview: - Presentation mode - A full screen preview with an option of setting an autorefresh - Preview - A preview with an option of defining the date range of data presented on the dashboard and, if possible, an option of defining a [dynamic key](/docs/analytics/i_events-parameter-value#dynamic-key) for the dashboard.
If a dashboard is built with analyses that contain a dynamic key, the results of these analyses will show `0` if the dynamic key is not specified.
1. Go to Decision Hub icon **Decision Hub > Dashboards**. 2. On the list, next to the dashboard you want to get the preview of, click the Three-dot icon icon. **Result**: A dropdown list appears. 3. Select the preferred type of preview. **Result**: You are redirected to the selected preview window. # Histograms Histograms allow users to present metrics on a chart in order to analyze the results of several metrics achieved in a specific time range. This way you can compare the sets of data against each other and examine the correlations between them. ## Business benefits --- - The possibility of more detailed analysis of the metrics in a specific time interval. - Histograms can be useful when you want to compare several marketing metrics. -
You can view the change history for this analysis from its configuration - see [Audit Log](/docs/settings/workspace/audit-log).
## Requirements --- You need to create [metric](/docs/analytics/metrics) first. ## Histogram example --- preview of the histogram ## Contents # Exporting reports to a file You can export a report into a CSV file. ## Report export limits A report can contain up to 250,000 records. If your report exceeds this limit, you must divide it into smaller parts. You can do this in the settings of a metric used in a report. For example, when you want to request a list of bestselling items and, you can: 1. Create simple metrics for item categories, for example summer, autumn, winter, spring. 2. Create a report and add one of the metrics to it. 3. Export the report. 4. Change the report to another metric and export it. 5. Repeat until you export all the data you need. Alternatively, you can also create separate reports for each category. ## Procedure 1. Go to Decision Hub icon **Decision Hub > Reports**. 2. On the list of reports, find the report you want to export as a CSV file. 3. Click the report. 4. Click the **Preview analyze** button. 5. In the preview mode, you can download the report by clicking the **Download CSV** button. # Reports A report is a visual presentation of data aspects contained in metrics. Each parameter ( for example, event parameter, customer attribute or expression) analyzed in metrics can be presented in reports as a dimension in a report. Reports can take the form of a bar or line chart and a table. The reports present the top and last values (for example, top 10 products added to cart or last 5 bought products). Analytical reports are a basic feature in Business Intelligence-class systems. ## Business benefits --- - Increased understanding of risks and opportunities - Reduced costs - Improved efficiency - Anticipating customer behavior - Aid in planning marketing campaigns -
You can view the change history for this analysis from its configuration - see [Audit Log](/docs/settings/workspace/audit-log).
## Requirements --- A tracking code implemented into the website. ## Report example --- Report example ## Contents --- # Removing metrics When you do not need an analysis any longer, you can delete it from the system.
The metric is removed permanently.
1. Go to Decision Hub icon **Decision Hub > Metrics**. 2. Find the metric you want to remove.
The removal will affect the analytics dashboards and any other analytics (e.g. expressions, segmentations, etc) that use that metric for calculations or rely on it to work.
3. On the right side, click the Three-dot icon icon and from the dropdown, select the **Delete** option. # Removing segmentations To permanently remove segmentations from the application, follow this procedure.
Once deleted, it will be impossible to revert this action and get your segmentation back.
1. Go to Decision Hub icon **Decision Hub > Segmentations**. 2. Click the Decision Hub icon icon available on the segmentation you want to remove.
The removal will affect any analytics dashboards you've added the segmentation to.
3. Select the **Delete** option from the dropdown. # Removing histograms If you don't need a histogram anymore, you can remove it from the application.
The histogram will be removed permanently.
1. Go to **Decision Hub > Histograms**. 2. On the list of histograms, find the histogram you want to remove.
The removal will affect the analytics dashboards that include the histogram.
3. On the right side, click the Three-dot icon icon. 4. From the dropdown list, select the **Delete** option. # Removing geoanalyses To permanently remove a segmentation based on geolocation from the application, follow the procedure. 1. Go to Decision Hub icon **Decision Hub > Segmentations** 2. On the item you want to remove, click Three dots icon.
The removal will affect the analytics dashboards to which you have added the removed segmentation.
3. Select the **Delete** option from the dropdown. # Adding trends to analytics dashboards When you create an analytics dashboard, you can add all types of analytics to it. ## Adding existing trends 1. Go to Decision Hub icon **Decision Hub > Dashboards > Add dashboard**. 2. On the dashboard, click the Trend icon icon. 3. From the list, select the trend you want to add. ## Adding a new trend 1. Go to Decision Hub icon **Decision Hub > Dashboards > Add dashboard**. 2. On the dashboard, click the Trend icon icon. 3. At the bottom of the list, select the **Create new** option. 4. Follow the steps in the procedure described [here](/docs/analytics/trends/creating-trends). # Removing funnels If you don't need a funnel anymore, you can remove it from the application.
The funnel is removed permanently.
1. To remove a funnel, go to **Decision Hub > Funnels**. 2. Find the funnel you want to remove.
The removal will affect any analytics dashboards you’ve added the funnel to.
3. Click the Three-dot icon icon on the right side from the dropdown and select the **Delete** option. # Removing reports To remove reports permanently from the application. Deleting a report is irreversible 1. Go to Decision Hub icon **Decision Hub > Reports** 2. Click the Three-dot icon icon available on an item you want to remove. 3. Select the **Delete** option from the dropdown. 4. On the pop-up confirm your choice. # Removing trends If you don't need a trend anymore, you can remove it from the application.
The trend will be removed permanently.
1. To remove a trend, go to **Decision Hub > Trends**. 2. On the list of trends, find the trend you want to remove.
The removal will affect the analytics dashboards which include this trend.
3. Click the Three-dot icon= icon on the right side and select the **Remove** option on the dropdown list. # Sankey Diagrams Sankey Diagrams in Synerise allow users to reconstruct the flow of customer actions before or after an occurrence of a particular event. Using an event as a reference point, users create diagrams that present steps to get the answers to questions such as "how much?" and "how is it connected with each other?". ## Benefits --- - Personalize the user experience on the website. - Minimize the number of steps to conversion. - Verify the most popular conversion paths and their soft spots. ## Requirements --- A tracking code implemented into the website. ## Sankey diagram example ---
Sankey chart preview
Sankey diagram preview
## Contents # Geoanalytics Geoanalytics in Synerise allow users to analyze events in the context of the location where they occurred. A single geoanalysis is created on the basis of the `start.session` event. This event gathers longitude and latitude parameters based on the IP addresses. On the basis of such an analysis, you can adjust communication and marketing strategies to the location of your customers. ## Business benefits --- - Better decisions related to marketing strategy that relies on location. - The ability to check how many of your customers are in a specific region. - The ability to estimate which region is best for a promotion for a specific product. - The possibility of identifying customers from a specific region and sending them specific personalized messages. -
You can view the change history for this analysis from its configuration - see [Audit Log](/docs/settings/workspace/audit-log).
## Requirements --- A tracking code implemented into the website. ## Geoanalysis example ---
Preview of geoanalysis
Preview of geoanalysis
## Contents # Use cases ## Contents # Decision Hub The Decision Hub is your central place for real-time data analysis and informed decision-making. Using events and profile attributes as inputs, it provides powerful tools to help you understand customer behavior and monitor business performance in real time. In this section, you’ll learn how to create segmentations for grouping customers, generate reports and dashboards for real-time insights, and track key metrics to measure success. Use histograms and trends to spot patterns over time, funnels to analyze customer journeys step-by-step, and geoanalytics to uncover location-based trends. Sankey diagrams help you visualize real-time flows and connections between data points. With the Decision Hub, you can easily turn data into actionable insights — all in real time — empowering you to make smarter decisions faster. ## Required user permissions See [Decision Hub permissions](/docs/settings/identity-access-management/permissions/analytics-permissions). # Static and dynamic analyses An analysis is called **dynamic** when it contains at least one dynamic key. ## What is a dynamic key? A dynamic key is a context parameter you can create by selecting an event property in the analysis and switching the value type to **Dynamic key**. This exposes two fields: **Dynamic key** (name of the key) and **Value** (default value, used when no other value is specified). When the analysis is added to a dashboard, you can identify the key by its name and set or change the key value directly from the **Dynamic keys** panel, without opening the analysis. An analysis can have multiple dynamic keys, each specifiable separately in the **Dynamic keys** panel. If multiple analyses in the dashboard use keys with the same name, you enter the value once and it applies to all of them.
The dashboard that contains metrics
The dashboard that contains the metrics that use a dynamic key
You can read more about creating dynamic keys and examples of use in [Value types in analyses and filters](/docs/analytics/i_events-parameter-value).
## Static analyses A static analysis contains no dynamic keys. In the list of analyses, it is labeled **Static** below the analysis title.
A 'Static' label under a metric title available on the list of metrics
A 'Static' label under a metric title available on the list of metrics
**Example**: A metric counting the total number of `newsletter.click` events in the last 30 days returns all occurrences of the event across the workspace. To see results for a specific campaign, you would need to open the metric and add a campaign ID filter manually - in such case, the metric also will be static.
Metric conditions that calculate the number of all newsletter.click events
Calculating the number of all newsletter.click events
Metric conditions that calculate the number of newsletter.click events from specific email campaign
Calculating the number of newsletter.click events from specific email campaign
## Dynamic analyses A dynamic analysis contains a dynamic key. In the list of analyses, it is labeled **Dynamic** below the analysis title. The dynamic key makes it possible to change the analysis context directly from the **Dynamic keys** panel on a dashboard which contains the analysis, without editing the analysis itself.
A Dynamic label under a metric title available on the list of metrics
A Dynamic label under a metric title available on the list of metrics
**Example**: A metric counting `newsletter.click` events filtered by a campaign ID uses a dynamic key for the ID. To see the results for a specific email campaign, instead of `0`, type the ID of the email campaign. When this metric is added to the dashboard and other analyses on the dashboard contain the same dynamic key, you can replace the dynamic key value on the dashboard and easily preview results for various campaigns.
Metric conditions that calculate the number of newsletter.click events from specific email campaign
Calculating the number of newsletter.click events from specific email campaign
For predefined dynamic keys (such as `id` for campaigns or `clientId` for profiles) and step-by-step instructions for creating dynamic keys, see [Dynamic data in dashboards](/docs/analytics/analytics-dashboard/creating-dashboards#dynamic-data-in-dashboards).
## Expressions and aggregates Expressions and aggregates are a special case. They are their own analysis types: expressions work as custom event or profile attributes based on mathematical formulas. Aggregates come in two types: profile aggregates summarize event data per individual customer over a time range, while event aggregates analyze an event occurrence and the occurrences before it, acting as custom event parameters that can be used in filters. Both expressions and aggregates can also be used as building blocks inside other analyses — for example, inside a metric condition or a segmentation filter. Profile aggregates and expressions calculate results per individual customer rather than returning a single aggregate value, so they behave dynamically by nature: each customer gets their own computed value. For this reason, the `clientId` dynamic key is added to profile aggregates and expressions automatically — you do not need to add it manually. When a profile aggregate or expression is added to a dashboard, the `clientId` key either activates the dynamic key option or appears as an additional field in the **Dynamic keys** panel alongside any other keys detected from other analyses on the dashboard. You can also define additional dynamic keys in expressions and profile aggregates. ## Inheriting dynamic keys An analysis does not automatically inherit dynamic keys from analyses nested inside it, such as event aggregates used in expressions or conditions. Even if a nested analysis uses a dynamic key, the parent analysis remains static — meaning the key cannot be adjusted on the dashboard. **Example**: A metric counts `transaction.charge` events that occur within 1 hour of a Dynamic Content display. The time difference is calculated using an expression that references an event aggregate (`[eventAgr] Last exit DC`). The event aggregate uses a dynamic key to store the DC campaign ID. However, because the dynamic key is defined only inside the nested aggregate — not at the top level of the metric — the metric itself is static. On the dashboard, the ID cannot be changed and must be manually edited in the metric each time a new campaign is analyzed.
A metric with a nested expression which contains an event aggregate with a dynamic key
A metric with a nested expression which contains an event aggregate with a dynamic key
An expression that contains an event aggregate with a dynamic key
An expression that contains an event aggregate with a dynamic key
**Solution**: To make the metric inherit the dynamic key, define the same dynamic key in the metric settings by adding a profile filter that uses exactly the same dynamic key conditions as in the nested analysis (the same event, dynamic key name, logical operator and dynamic key value). Once the key is present at this level, the metric becomes dynamic and the key can be adjusted directly on the dashboard without editing the metric.
A metric with applied profile filter that contains dynamic key
A metric with applied profile filter that contains dynamic key
# Inline analyses --- With inline analyses, you can create [segments](/glossary#segment), [aggregates](/glossary#aggregate), [expressions](/glossary#expression), and [metrics](/glossary#metric) directly while building an analysis. You define or adjust analytics objects in place, without leaving the area you are working in. You can also nest local objects inside one another, for example a local metric containing a local event aggregate. Objects created inline are **local** by default, meaning they are scoped to the analysis where they were created.
A local object can only be used in the single place where you created it. If you need the same object in two different places, create a regular analysis and use in both places.
## Availability and permissions Creating inline objects is available across the Decision Hub, with the exception of dashboards and Sankey diagrams - there, you can only select existing global objects. To create, edit, or apply a local object, you only need [permission to the main analysis type](/docs/settings/identity-access-management/permissions/analytics-permissions) you are working in (for example, the segmentation or report). No separate permission is required for the local objects you create or edit inside it. You can [clone an analysis to another workspace](/docs/settings/workspace/cloning-objects/cloning-analyses-to-workspaces) even if it contains local objects - they're cloned together with the main analysis. ## Which object types are available for inline creation You can create a local object of a given type wherever you could otherwise select an existing global object of that type. For example, if a field lets you choose a profile aggregate, you can also create a local profile aggregate there instead. ## Limits - You can create up to 100 local objects (of any type, including nested ones) within a single analysis. - Local objects can be nested up to 100 levels deep. This limit is enforced automatically - in practice, you'll reach the limit of 100 total local objects first. - You can create inline objects only in the Decision Hub. - A local segment can only contain a single segment definition. Creating multiple segments, as you can in the standalone [Segmentations](/docs/analytics/segmentations/introduction-to-segmentations), isn't supported inline. ## Creating a local object 1. In the analysis you are building, open a field that supports inline creation - for example, click **Add condition** or **Choose metric**, or open the dropdown for event parameters. **Result**: A search panel opens. It looks the same regardless of which field you opened it from, though the available options depend on the field (see step 2).
Search panel opened from Add condition in a segmentation, with an Actions section listing Add local segment, Add local profile aggregate, and Add local profile expression
An example search panel, opened by clicking Add condition in a segmentation
2. In the search panel that opens, under **Actions**, select the type of object to create. The available options depend on the field: - **Add local segment** - **Add local profile aggregate** - **Add local profile expression** - **Add local event aggregate** - **Add local event expression** - **Add local metric**
When you create a local metric, the system doesn't check whether it's compatible with the report or histogram you're adding it to. If it isn't compatible, you'll only find out when you save the main analysis - the save will fail with an error.
3. An editor opens. Fill in the details: - **Name** - enter a name for the object. - Local analysis conditions - define the conditions of the local analysis.
Editor of a local segment with a Has property condition using a nested local profile aggregate, and the Navigate panel showing the nesting hierarchy
A local segment with a nested local profile aggregate, shown in the Navigate panel
- **Apply** only confirms the local object's definition into the analysis you are building — it does not save the object or the analysis. Your changes are persisted only when you save the main analysis itself. - If the object isn't nested inside another local object, the **Back** button discards your changes and closes the pop-up, returning you to the main analysis. - If the object is nested inside another local object, the **Back** button discards your changes and returns you one level up. 4. Click **Apply**. **Result**:
A local segment added to the conditions of the segmentation
A local segment added to the conditions of the segmentation
## Editing a local object You can edit a local object the same way you would edit its global counterpart. Open its editor by clicking its name (or the pencil icon next to it), then adjust its conditions or definition using the same options available when creating it. Whenever you are in a local object's editor — while creating it or editing it later — you can create another local object inside it, following the same steps as in [Creating a local object](#creating-a-local-object). This lets you nest local objects, for example, a local metric containing a local event aggregate, which in turn contains a local event expression. In the object editor, click **Navigate** to open a panel that shows the objects related to the one you are editing (including any nested local objects), along with their status. Use it to move between nesting levels. ## Deleting a local object A local object doesn't appear in search results, so you can't find and delete it directly. To delete a local object, delete the condition, dimension, or parameter of the main analysis that contains it.
Deleting the condition, dimension, or parameter where a local object was created also deletes all local objects created inside it. This deletion isn't final until you save the main analysis - until then, you can revert it, for example by closing the analysis without saving.
# Date filtering Date filtering lets you analyze data from a chosen period or schedule certain actions. Date filters are available in multiple modules in two versions: - [date pickers](#date-pickers) - it lets you pick fixed date to schedule an action such as sending emails, text messages, or notifications. Some forms of communication, such as **dynamic content** or **promotions** are continuous, so you may select start and end date for them on the date picker. - [date range pickers](#date-range-picker) - it lets you select date ranges based on fixed dates or relative date ranges and it lets you further narrow down the selected period. When selecting the date and time in filters, the filter analyzes data that occurred exactly on or after the defined start date and time. For example, if you define a filter from August 5, 2024, at 13:00, the data that occurred at 13:00:00.000 on August 5, 2024 or later will be analyzed. ## Date pickers --- Date picker lets you select the date for performing a particular task. It's a calendar with which you can pick single dates and define exact time (by clicking the clock icon). It's available in the **Experience Hub**, **Data Modeling Hub**, and **Automation Hub**.
Date picker
Date picker
## Date range picker --- You may find date range picker in the **Decision Hub**.
Date range picker in a segmentation condition
Date range picker in a segmentation condition
### Selecting date range You can pick the time range in several ways.
Selecting a date range in the date range picker
Selecting a date range in the date range picker
1. You can pick the start and end date on the calendar; you can also define an exact time by clicking **Select time**. The analyzed period will be highlighted on the calendar. 2. You can select a **relative date range**. Unlike manually selecting fixed dates for data analysis, a relative date range will automatically adjust as time goes by, for example "3 weeks before current time". You can customize the relative date range by specifying how many days or weeks before or after the analyzed period you want to include or exclude, then the date range changes to **Custom**. The table below displays all the available relative date ranges in the date range picker. All examples use **August 12, 2024** as the current date.
[Events](/docs/assets/events/event-definitions) have different retention periods. For example, when analyzing an event with a one-month retention period and applying a Lifetime date filter, the results will be limited to that one month.
| Relative date range | Output | |---------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Today | Current day (August 12, 2024) from 00:00:00.000 to 23:59:59.999 | | Yesterday | The day before the current day (August 11, 2024) from 00:00:00.000 to 23:59:59.999 | | Last year | Period from January 1, 2023 to December 31, 2023 | | This month | Period from the first to the last day of the current month: August 1 to August 31, 2024 | | Last month | Period from the first to the last day of the previous month: July 1 to July 31, 2024 | | This week | Period from Monday (00:00:00.000) to Sunday (23:59:59.999) of the current week: August 12 to August 19, 2024 | | Last week | Period from Monday (00:00:00.000) to Sunday (23:59:59.999) of the previous week: August 05 to August 11, 2024 | | Last 7 days | Period of the last 7 days including today: August 05 (00:00:00.000) to August 12 (23:59:59.999), 2024 | | Last 3 months | Last 3 full months (May 1 to July 31, 2024). | | Last 6 months | Last 6 full months (February 1 to July 31, 2024). | | Lifetime | All available data from the past until now. | ### Applying additional filters This is an optional step that lets you narrow down the date range you have selected. For the [every month](#every-month) variant, you can create several rules for the additional filters.
Additional filters in date range picker
Additional filters in date range picker
#### Every day This option lets you narrow down the filters to specific hours of each day within selected date range. For example, to retrieve event data from August 5 to August 11, 2024 for events that occurred between 13:00:00.000 and 18:00:00.000. By selecting **Inverse selection**, you can retrieve data from events that occurred only outside of the 13:00:00.000 to 18:00:00.000 range every day within the [selected date range](#selecting-date-range).
Everyday option in additional filters
Everyday option in additional filters
#### Every week This option lets you narrow down the data to specific hours differently each day of the week within a [selected date range](#selecting-date-range). For example, between August 5 to August 11, 2024, the filter can be used to retrieve data: - from 13:00:00.000 to 18:00:00.000 on Monday, Wednesday, and Friday - from the entire day on the other days
Every week option in additional filters
Every week option in additional filters
#### Every month This option narrows down the data to specific hours differently each day of the week or month within a [selected date range](#selecting-date-range). You can create rules within the filter concerning the scope of daily and hourly activity. You can choose the order of the days. You can either display days of the month or the week from the first to the last day or from the last day to the first one. For example, on the 5th, 7th, and 9th day of the month the data will be filtered to only include events from 13:00:00.000 to 18:00:00.000, whereas on 6th, 8th, 10th and 11th day, events from the entire day will be included.
Every month option in additional filters
Every month option in additional filters
# Filtering Filters let you collect a group of profiles that meet specific conditions. Conditions can be built on the basis of events (actions profiles have performed or actions that were directed at profiles) or profile attributes. Filters can be applied in various places in the Synerise platform - they can be used in analyses, in workflows or, in the campaign settings in order to select recipients of the campaign. ## Where can you find filters? --- - In **Decision Hub** (funnels, segmentations, analytics, metrics, dashboards) - In **Experience Hub** (while selecting audience in the following channels: email, SMS, mobile, webpush, landing page, and dynamic content) - In **Automation Hub**, for example in "Profile filter" nodes - On the list in **Behavioral Data Hub** The configuration of the filter is not saved anywhere, so it's impossible to re-use them. ## Defining conditions --- In filters, you define a condition or conditions that profiles must meet in order to be included. These conditions can be based on events and their parameters and on customer attributes. If you add multiple conditions, you can specify the relationship between them as **AND** or **OR**. Additionally, event-based conditions can be limited to a specific time period. ### Selecting an event You can filter profiles based on the actions they have taken or the actions they have been subject of. In such case, use [events and event parameters](/docs/analytics/i_events-parameter-value#event-and-event-parameters-as-properties) as filter properties. 2. To select an event, click the button that lets you define the filter conditions (for example, it can be **Choose event** or **Add condition**). 2. From the dropdown list select the **Events** folder and then select an event. You can scroll through the list or find events using the search box and type the event action (for example `page.visit`) or its display name. If you're using only event display names, to see its action name, hover the mouse cursor over the event:
List of events and details of an event
Event description on the list of events
1. To set additional conditions for the event: 1. Click **+ where** and from the dropdown list select an event parameter you want to filter by. 2. Use the [logical operators](/docs/analytics/i_events-parameter-operators#operators-list-by-expected-value-type) to set the type of condition. 3. Define the [value](/docs/analytics/i_events-parameter-value) that will be used as the filter according to the logical operator. If the value is a string or dynamic key, it can't be longer than 21000 characters. If it's an array, it can't be larger than 65000 items, and items can't be longer than 21000 characters each. 4. By default, the system analyzes the last 30 days, but you can define your own time period by clicking the calendar icon in the lower right corner in the condition.
Including only profiles who visited website whose URL contain a specific word
Filtering in profiles who in last 30 days visited a website whose URL contains the word `trousers`
#### Defining funnels within conditions While defining a condition or conditions based on an event, instead of that one [event](/docs/assets/events/event-definitions), you can define a sequence of steps (events) a profile must go through to meet the conditions. The order of these steps is crucial, with the top event representing the first step in the funnel. Optionally, you can set a time limit during which these steps must be completed in the specified order. 1. After [selecting an activity](#selecting-an-event), add a next step to the condition by clicking a button under the main event that lets you add another event to the sequence (for example **Add funnel step** or **ant then...**). 2. From the dropdown list, select an event. Optionally, you can define additional conditions for the event parameters. 3. To impose the time limit on performing these steps: 1. Next to the calendar, click the clock icon. 2. Define the time within which a profile must perform these steps to be filtered in. Time is counted from the occurrence of the first step in the sequence.
Including profiles who visited website whose URL contained a word `trousers` and purchased any item in last 30 days
Filtering in profiles who visited website whose URL contained a word `trousers` and purchased any item in last 30 days
### Selecting a profile attribute You can filter profiles based on their [attributes](/docs/analytics/i_events-parameter-value#profile-attributes-as-properties). 1. To select an attribute to be used as a condition, click the button that lets you define the filter conditions (for example, it can be **Choose event** or **Add condition**). 2. Under the **Profiles** header, select a category of attributes from which you want to select a value. You can scroll through the list or find attributes using the search box and type source parameter name or property name (display name). If you're using property name, to check the source parameter name or description of the attribute, hover the mouse cursor over the attribute:
Attribute description on the list of profile attributes
Attribute description on the list of profile attributes
3. Use the [logical operators](/docs/analytics/i_events-parameter-operators#operators-list-by-expected-value-type) to set the type of condition. 4. Define the [value](/docs/analytics/i_events-parameter-value) that will be used as the filter according to the logical operator. If the value is a string or dynamic key, it can't be longer than 21000 characters. If it's an array, it can't be larger than 65000 items, and items can't be longer than 21000 characters each.
Including profiles who agreed to receive newsletters
Filtering in profiles who agreed to receive newsletters
### Combining conditions You can add more conditions and mix conditions based on attributes and events. The relationship between the conditions can be expressed by **AND** or **OR** logical operators. The more conditions you add, the more complicated it gets, read through [The logic of segmentation](/docs/analytics/segmentations/the-logic-of-segmentation) to find out how the conditions are interpreted, especially if there are more than two.
Filter in profiles who has agreed to receive newsletters and those who in the last 30 days visited your website that contained a word `trousers` in URL
Filtering in profiles who have agreed to receive newsletters and those who in the last 30 days visited your website that contained a word `trousers` in URL
### Reversing the filter logic By default, when creating a filter, the conditions you define include customers if they have certain attributes or have performed specific actions. However, you can reverse the logic and exclude those customers instead. You can apply it for individual conditions in the filter or apply it collectively for all conditions. You can do it in the following ways: - To apply exclusion for all conditions in the filter, in the **Analyze all profiles matching the conditions below** sentence, click the **matching** to change it to **not matching**. For example: 1. Select **not matching** for the entire filter. 2. Set a "has an XYZ attribute" condition to **not matching**. **Result**: The filter _includes_ profiles which have the XYZ attribute.
Changing the filter logic between matching and not matching a single condition
Changing the filter logic between matching and not matching a single condition
- To apply exclusion for a single condition, in the **Profiles matching attribute** or **Profiles matching funnel** sentences, click the **matching** word to change it to **not matching**.
Changing the filter logic between matching and not matching the entire analysis
Changing the filter logic between matching and not matching the entire analysis
# Operators in analyses and filters #### Profiles and attributes A profile represents an entity such as a person, organization, and so on. The summary of all data collected about a single profile is available in **Behavioral Data Hub > Profiles**. In Synerise such actions as preparing most analyses, sending communication ([email](/docs/campaign/e-mail), [text messages](/docs/campaign/SMS), [web push notifications](/docs/campaign/Webpush), [mobile push notifications](/docs/campaign/Mobile), and [in-app messages](/docs/campaign/in-app-messages)), preparing [promotions](/docs/ai-hub/promotions) and [recommendations](/docs/ai-hub/recommendations-v2), making [predictions](/docs/ai-hub/predictions) are profile-oriented. An attribute describes a trait of a profile, for example, an email address, marketing agreements, size, age, favorite brand, results of [aggregates](/docs/crm/aggregates) and [expressions](/docs/crm/expressions), and so on.
You can find more information about attributes [here](/docs/crm/customer-properties).
#### Events and event parameters [Events](/docs/assets/events/event-definitions) describe actions that occur within your website or mobile application, such as page views (available in a workspace as `page.visit`), clicks, and purchases. They are connected with profiles (for example customers) and they are generated as a result of implementing a tracking code into your website. Events contain parameters, which are the details of the action they describe. Thanks to them, you can analyze events in terms of various aspects. For example, you can measure visits to a specific subpage within your website.
You can learn more about [events here](/docs/assets/events/introduction-to-events) and check the full [Synerise event reference](/docs/assets/events/event-reference).
## Operators: list by expected value type While creating an analysis or creating conditions for filters, you can base them on events, event parameters, and attributes. Operators allow you to describe a particular quality of an event parameter/attribute. Operators are grouped by the data type they are used with: **string** (String data type icon icon), **number** (number icon icon), **boolean** (boolean icon icon), **null** (null icon icon) **array** (array icon icon), and **date** (date icon icon).
List of operators
The marked area on the screen presents the list of available operators
The figure above is an example of grouping customers who visited a website that contained the `shoe` phrase in the URL. This is done by creating a segmentation based on a `page.visit` event and the `uri` event parameter, and then choosing the String-type `Contain` operator with the value `shoe`. ### Empty, null, and boolean operator summary The table summarizes the behavior of operators that can be used to analyze boolean values, null values, and check if a string is empty. The details are described in each operator's section further in the article. - MATCH: the operator returns "true" (match) for the value - NO MATCH: the operator returns "false" (doesn't match) for the value | Example value | Is true | Is false | Is empty | Is not empty | Is null | Is not null | | :----------------------------: | :---------------------------------------------------------: | :---------------------------------------------------------: | :---------------------------------------------------------: | :---------------------------------------------------------: | :---------------------------------------------------------: | :---------------------------------------------------------: | | `""` | NO MATCH | MATCH | MATCH | NO MATCH | NO MATCH | MATCH | | `" "`, `"foo"`, `"null"` | MATCH | NO MATCH | NO MATCH | MATCH | NO MATCH | MATCH | | `1`; `"1"`; `true`; `"true"` | MATCH | NO MATCH | NO MATCH | MATCH | NO MATCH | MATCH | | `0`; `"0"`; `false`, `"false"` | NO MATCH | MATCH | NO MATCH | MATCH | NO MATCH | MATCH | | `-1`; `"-1"` | MATCH | NO MATCH | NO MATCH | MATCH | NO MATCH | MATCH | | `null` | NO MATCH | MATCH | MATCH | NO MATCH | MATCH | NO MATCH | | Empty array (`[]`) | NO MATCH | MATCH | MATCH | NO MATCH | NO MATCH | MATCH | | Non-empty array (at least one item) | NO MATCH | MATCH | MATCH | NO MATCH | NO MATCH | MATCH | #### Where can I find operators? Operators can be found across the whole [Decision Hub](/docs/analytics) in which you create analyses based on events, their parameters and profile attributes. Additionally, you can find operators in various filters across the application, for example on the list of profiles, while defining audiences for messages and workflows, where the operators are used in [Profile filters](/docs/analytics/i_profile-filter). You can also find operators while defining filters within item feed, such as defining the [filters for items to be displayed in AI recommendations](/docs/ai-hub/recommendations-v2/recommendation-filters).
When selecting an operator for an attribute or event parameter, pay attention to their data type. When an attribute or parameter is a string, use logical operators of the [string](#string) type, if it is a number/digit, use logical operators of the [number](#number) type, and so on.
### Array array icon {#array} --- An array is an ordered collection of elements of the same or different type. - If you want to operate on a value that is already an array of strings, no additional action is required to analyze the value. - If the array contains different data types (numbers, objects, arrays) it must be [converted into a string](#converting-arrays-into-strings) and analyzed as a string. #### Converting arrays into strings
Click here to expand the instruction of converting an array into a string
  1. Go to Behavioral Data Hub > Expressions > New expression.
  2. Set the Expression for option to Event.
    Profile attributes can also be arrays. In such case, the Expression for option would be set to Attributes.
  3. From the Choose event dropdown list, select an event whose parameter contains an object.
  4. Create the following configuration of an expression:
    Behavioral Data Hub expression formula for converting an array parameter into a string
    The configuration of the expression
  5. Click the Select node.
  6. From the dropdown list, select Event attribute.
    If it's an attribute expression, select Profiles.
  7. Click the Unnamed node.
  8. On the bottom, click Choose parameter button.
  9. From the dropdown list, select event parameter which contains the array that you need to convert into a string.
    Only arrays of strings don't need to be converted into strings before use in analytics.
  10. Save the expression.
    Result: You can select this expression as an event parameter which you can use in analyses and filters. In such case, you can use only the String operator type.
    If you created an attribute expression, it can be used as an attribute in analyses and filters.
The Array operator type contains the following logical operators: 1. **Equal** and **Not equal** - Choose these options to check if the array includes at least one item that matches the entered value exactly. 2. **Contain** and **Not contain** - Choose these options to check if any item in the array contains the entered value. For example, if the array is `["foo","bar"]` and the condition is `Contain "oo"`, the array matches the condition. 3. **Starts with** and **Ends with** - Choose these options if you want to check if the value you enter matches the first/last characters of any item in the array. For example, the array `["foo","bar"]` matches conditions such as `Starts with "f"`; `"Starts with "ba"`; `"Ends with "oo"`. 4. **Regular expression** - Choose this option to check if at least one item in the array matches a regular expression. ### Boolean boolean icon {#boolean} --- This operator type is used in analyses/filters to verify whether an attribute/event parameter/event exists, the value of an attribute is `false` or `true` (string or boolean) or `null`. This operator type contains the following logical operators: 1. **Is true** - Choose this operator to analyze event parameters and/or attributes whose value is `true` (string) or true boolean (attribute or parameter value sent to Synerise as a boolean value). 2. **Is false** - Choose this operator to analyze event parameters and/or attributes whose value is `false` (string), false boolean (attribute or parameter value sent to Synerise as a boolean value), `null`, empty. ### Null null icon {#null} ---
This operator is only available in Decision Hub and for filtering the list of profiles in Behavioral Data Hub.
Null-test operators can be used with all attributes, regardless of their regular data type. They can be used to check if the value of an attribute is `null`, which means the attribute has no value, or doesn't exist at all in the tested event/profile. The attribute/parameter is NOT null if it exists and has any value (including `""`, `" "`, `0`, and `false`) other than `null`. The string `"null"` is NOT the same as a `null` value. You can choose one of the logical operators: - **Is null** - **Is not null** If you want to test for empty strings (`""`), use the **Is empty**/**Is not empty** operators from the [String](#string) category. ### Date date icon {#date} --- This operator can be used only for event parameters and profile attributes whose value is a date/time string formatted according to ISO 8601. While defining the condition for this operator type, you can select a date from a calendar. All the operators are meant to narrow the scope of dates considered in the general date filter of the analysis/filter.
While creating an analysis/filter, if you select **Custom**/**Date**/**Current date** for an event parameter and define data in general date filter make sure dates are not mutually exclusive.
This type contains the following logical operators: 1. **Date** - you can test the date in an attribute against these conditions: - **More than**: date in attribute must be later thea the selected date and time. - **More or equal to**: date in attribute must be later than or the same as the selected date and time. - **Less than**: date in attribute must be earlier than the selected date and time. - **Less or equal to**: date in attribute must be earlier than or the same as the selected date and time. 2. **Custom** - Choose this option to check if the date in an attribute is in a selected range of dates.
Click here to see an example

The screen below presents a segmentation that groups profiles in terms of their date of birth. The conditions of the segmentation uses the Custom logical operator to define the date range for the birth date attribute.

The configuration of the segmentation with the Custom operator
The configuration of the segmentation with the Custom operator
3. **Current date** - This option lets you choose elements from the current date (the system takes into consideration the date of checking the result of the analysis). - **Matches current hour** - The system considers only the event occurrences that happened at the hour of the current date within the given date range. Assuming the current date is the 28th of February, 2023, 11.30 A.M., then while previewing the analysis of page visits in the last 30 days, the system will return results for the page visit events that occurred for 30 days backwards, every day between 11:00:00 and 11:59:59 from the current date (28th of February, 2023). - **Matches current day** - The system considers only the event occurrences that happened at the current day of the month. Assuming the current date is the 28th of February, 2023, then while previewing the analysis of page visits in the last 3 months, the system will return results for the page visit events that occurred on the 28th day of the month for 3 previous months. - **Matches current month** - The system considers only the event occurrences that happened in the current month. Assuming that February is the current month, then while previewing the analysis of page visits in the last 3 years, the system will return results for the page visit events that occurred only in February of the previous 3 years (including current year).
You can check the usage of **Matches current day** and **Matches current month** operators in the [Birthday email use case](/use-cases/birthday-coupon#set-up-the-birthday-attribute).
- **Matches current year** - The system considers only the event occurrences that happened in the current year. Assuming that the current date is the 28th of February 2023, then while previewing the analysis of page visits in the 6 months, the system will return results for the page visit events that occurred from current date backwards until the 1st of January, 2023 00:00:00. ### Number number icon {#number} --- This operator can be used only for event parameters or attributes whose values are expressed as numbers (including those sent as a string). For example, you can create a following condition: `size more than 8` (analyze the `size` attribute whose value is higher than 8, which is 9, 10, and higher). This type contains the following logical operators: 1. **Equal** and **Not equal** - Choose these options to check if the attribute is or isn't exactly the same as the value you enter. 2. **Less than** and **More than** - Choose these options to analyze an event parameter or attribute whose value is lower or higher than the provided value (for example, for the following condition - the `size` attribute is `More than 8`, the results will contain entities whose `size` attribute is 8,01 or higher). 3. **Less or equal to** - Choose this option if you want to analyze an event parameter or attribute whose value is lower than or equal to the provided value. 4. **More or equal to** - Choose this option if you want to consider the elements which are equal or bigger than the number you provide. ### Object --- If you want to analyze an object (a collection of key/value data) in the event parameters, that object must be [converted into a string](#converting-arrays-into-strings) and analyzed as a [string](#string). ### String String data type icon {#string} --- This operator can be used with event parameters and attributes whose values is a piece of text. For example,`favoriteBrand equals XYZ`. This type contains the following logical operators: 1. **Equal** and **Not equal** - Choose these options to check if the parameter/attribute value is or isn't the same as the value you enter. 2. **Contain** and **Not contain** - Choose these options to either include or exclude values that contain a specific phrase, respectively. 3. **Starts with** and **Ends with** - Choose these options if you want to include values that start or end with a particular string of characters. 4. **Regular expression** - Choose this option when you want to check if the value of an event parameter or attribute matches a regular expression.
If you want to test for empty strings, use the **Is empty**/**Is not empty** operators. DO NOT use `.+`, `.`, or similar expressions.
5. **Is empty** and **Is not empty** - Choose this option if you want to check if a string is empty (contains zero characters of any type). - These operators are only available in Decision Hub and for filtering the profile list in Behavioral Data Hub. - A string that consists only of whitespace characters (for example, a single space: `" "`) is NOT empty. - For this operator, a `null` value or a property that doesn't exist at all in the tested event/profile are considered empty strings. 6. **In array** and **Not in array** - With these operators, you can check the string-type attribute or parameter against a comma-separated list of strings. The parameter/attribute value must be an exact match to one of the strings. Examples: - if the value of an attribute is `shoes` and the filter is **In** `shoes, shirts`, the attribute matches the filter. - if the value of an attribute is `shi` and the filter is **In** `shoes, shirts`, the attribute does NOT match the filter, because there is no exact match. - if the value of an attribute is `t-shirts` and the filter is **In** `shoes, shirts`, the attribute does NOT match the filter, because there is no exact match.
The list is ALWAYS split on a comma (`,`). Escape characters aren't supported. **Example**: 1. an event has an `itemTags` attribute with a string value: `"garden,hobby"` 2. the filter is **In array** `garden,hobby` **Result**: The filter is split on a comma, so `itemTags` is checked separately against `garden` and `hobby`. The attribute doesn't match the filter, because `garden,hobby` isn't an exact match for any of the strings after the list is split.

If your attribute values contain commas, you can: - use the **Equal/Not equal** or **Contain/Not contain** operators to check against a single string. - use the **Regular expression** operator to check against multiple strings: For example, the regular expression `(garden,hobby|sports,summer)` matches two attribute values: `"garden,hobby"` and `"sports,summer"`
## What's next? --- After you select an operator, you must [define a value](/docs/analytics/i_events-parameter-value) which you want to operate on. # Value types in analyses and filters This article is a continuation of the [Event and attribute operators](/docs/analytics/i_events-parameter-operators) article. Once you define a logical operator in an analysis or a filter, you must define a value that will be used with the operator to check if the selected attribute or parameter meets the condition.
Filter in a segmentation
The screen presents a value in a condition in a segmentation
You can select the following value types: - [Array](#array) - [Dynamic key](#dynamic-key) - [Number](#number) - [String](#string) - [Synerise objects](#synerise-objects)
How to change a value type
Changing value type
## Value types ### Array --- If you want to analyze a parameter or an attribute in the filter or an analysis that is an array, you must use the [Array operator](/docs/analytics/i_events-parameter-operators#array). Then the field that appears next to the operator accepts the value of an array. The array can't include more than 65000 items. The items can't be longer than 21000 characters each.
The area marked on the screen is a field that accepts elements of an array
The area marked on the screen is a field that accepts elements of an array
- If the array contains different data types (numbers, objects, arrays) it must be [converted into a string](/docs/analytics/i_events-parameter-operators#converting-arrays-into-strings) and analyzed as a string. - If you want to analyze occurrences of more than one string, you can do it in the following way:
Analyze occurrences of strings in events
Analyzing occurrences of two strings in an event
#### Example The example below presents the condition in a metric that calculates the occurrences of an array that contains the `potato, steak` value in the products parameter in a `groceries.bag` event.
Analyze occurrences of strings in events
Analyzing occurrences of two strings in an event
### Dynamic key --- A dynamic key is a condition whose value can be changed when the analysis is requested. You can use a dynamic key to create a dashboard entirely dedicated for the analysis of a given aspect, for example, an item, a customer, a campaign, a brand, a product model, and so on. - The value and the default value can't be longer than 65000 characters. - There is no central location for managing dynamic keys — to view or modify a dynamic key, you must open the individual analysis it was created in.
The marked area on the screen presents the dynamic key value selected in a metric condition
The marked area on the screen presents the dynamic key value selected in a metric condition
#### How to create a dynamic key? While preparing any analysis (except for aggregates, expressions, and dashboards): 1. Select the property to test (profile attribute or event parameter) 2. After selecting the property, next to the operator, click the String data type icon icon until you get two fields: **Dynamic key** and **Value**.
How to change a value type
Changing value type
3. In the **Dynamic key** field, enter the source of the value for the dynamic key. The property will be compared with this value. You can: - use [predefined dynamic keys](/docs/analytics/analytics-dashboard/creating-dashboards#predefined-dynamic-keys). - access event parameters in the following way: `event.params.PARAMNAME` - use any name for the key (no special characters, only letters and digits allowed). Such a key is only useful in dashboards, because dashboards allow you to enter a value manually. 4. In the **Value** field, enter the default value. This value is used: - In Automation Hub: if the parameter from the **Dynamic key** field doesn't exist in the event/profile that is analyzed in the filter. - In Dashboards: As the initial value of the dynamic key.
Using a comma (`,`) in the value of a dynamic key splits the string. Such a value is treated as an array. Escaping the comma isn't supported.
5. Click **Save**. **Results**: You can use the dynamic key: - when you create a [dashboard](/docs/analytics/analytics-dashboard/creating-dashboards) and add this analysis, the **Dynamic key** button appears on the editing panel. Then, you can specify the value of the dynamic key or use the default one. - in analytics such as profile filters in Automation Hub. #### Example 1
An example of a dynamic key in a Profile Filter node
An example of a dynamic key in a Profile Filter node
In the above example: 1. A mobile application adds the `newsletterTrigger` parameter to events it sends. This parameter is the SKU of an item. **This is a custom parameter invented for the purposes of this example** 2. The `newsletterTrigger` parameter changes periodically. 3. A workflow is created to send a newsletter when a customer adds the required product to their cart. 4. A "Profile Filter" node is added to the workflow. In this node: 1. The `product.addToCart` event is analyzed. 2. The value of the `sku` parameter is tested. 3. The value to test against is a dynamic key: - The value is taken from the event's `newsletterTrigger` parameter. - If the parameter doesn't exist, the default value (`NONE`) is used. 5. If the value of `sku` in the event is the same as the value of `newsletterTrigger`, the profile matches the filter. Further nodes in the workflow send the newsletter to matching profiles. #### Example 2 The example below presents the condition of a metric that calculates the number of times a product was purchased. In this example, the `id` dynamic key is created and it will be compared with the values sent through the `$sku` parameter of the `product.buy` event. At this stage, the default value of the dynamic key is not important in this analysis, so it's set to `.`. The result for this metric will be 0, but the metric will be added to the analytical dashboard (figure 10) in which the value of the dynamic key (the SKU of the item) will be defined and produce results.
Metric conditions showing dynamic key configuration for a product purchase count metric
The metric condition
This metric is added to a dashboard. In the **Dynamic key** field, you can enter a SKU and the dashboard will show metrics result for events in which the `$sku` parameter was the same as the SKU you entered.
The dashboard that contains metrics
The dashboard that contains the metrics that use a dynamic key
### Number --- The numerical value is expected when you select the [number](/docs/analytics/i_events-parameter-operators#number) operator and/or the event parameter or attribute is sent to Synerise in the form of a number.
Metric conditions showing numerical value type selected for event parameter filtering
The marked area presents the numerical type selected
#### Example The example below presents the condition of a metric that calculates the number of transactions above a specific value. In this example, the **More than** logical operator is used (the [Number](/docs/analytics/i_events-parameter-operators#number) type operator) to narrow down the analysis to transactions where the monetary value was more than 100. Currency is a separate parameter. This example shows events with `$totalAmount` over 100 regardless of the currency.
Metric condition example for filtering transactions above a specific value using More than operator
The metric condition
### String --- This type of value allows you to enter a string of characters. It accepts special characters and spaces. The string can't be longer than 65000 characters.
Filter in a segmentation
The screen presents a value in a condition in a segmentation
#### How to select a string value After you select an [operator](/docs/analytics/i_events-parameter-operators), it's the default parameter/attribute value. #### Example The screen below presents the condition of a metric: it calculates the first occurrences of the `newsletter.open` event (an event which is generated when a profile opens an email) in a mobile channel. The is that the `source` parameter of the event must include the string `mobile`.
Filter in a segmentation
The area marked on the screen presents a value in a condition in a segmentation
### Synerise objects --- As the value of the condition, you can select an element created in Synerise. Then, the value of this element will be treated as the value for the condition.
The marked area on the screen presents the parameter value selected in an aggregate condition
The marked area on the screen presents the parameter value selected in an aggregate condition
The range of Synerise objects which you can use as values depends on the property type you select. You can select the following property types (remember that property types can also be Synerise objects): - [event and event parameters](#event-and-event-parameters-as-properties) - [profile attribute](#profile-attributes-as-properties) #### Event and event parameters as properties If you select an event as a property, you can specify its occurrence with the objects from the left column and analyze it against objects from the right column:
You can check the reference of [the Synerise objects in filters](#synerise-object-reference).
| You can test | Against | |----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | **Event parameters** | - Other event parameters
- Tags
- Profile attributes
- Segmentations
- Aggregates
- Expressions
- Specials (CLIENT_ID, TIMESTAMP) | | **Event expressions** | - Event parameters
- Tags
- Profile attributes
- Expressions
- Aggregates
- Segmentations
- Specials (CLIENT_ID, TIMESTAMP) | | **Event aggregates** | - Event parameters
- Tags
- Profile attributes
- Expressions
- Aggregates
- Segmentations
- Specials (CLIENT_ID, TIMESTAMP) | | **Specials (TIMESTAMP)** | - Event parameters
- Tags
- Profile attributes
- Expressions
- Aggregates
- Segmentations
- Specials (CLIENT_ID, TIMESTAMP) | #### Profile attributes as properties When you select any profile attribute as a property (left column of the table), you can select its value in accordance with the values from the right column:
You can check the reference of [the Synerise objects in filters](#synerise-object-reference).
| You can test | Against | |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | **Tags** | n/a | | **Attributes** | - Tags
- Other attributes
- Expressions (attribute expressions, event expressions)
- Aggregates
- Segmentations
- Specials (CLIENT_ID) | | **Attribute expressions** | - Tags
- Attributes
- Attribute expressions
- Profile aggregates
- Segmentations
- Specials (CLIENT_ID) | | **Profile aggregates** | - Tags
- Attributes
- Profile aggregates
- Attribute expressions
- Segmentations
- Specials (CLIENT_ID) | | **Segmentations** | - Tags
- Attributes
- Profile aggregates
- Attribute expressions
- Other segmentations
- Specials (CLIENT_ID) | | **Specials (CLIENT_ID)** | - Tags
- Attributes
- Profile aggregates
- Attribute expressions
- Segmentations
- Specials (CLIENT_ID) | #### Synerise object reference | Name | Description | Value type | Reference | |-------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------|---------------------------------------------------------------------------------------| | [Event parameters](/docs/assets/events/adding-event-parameters) | Event parameters are additional pieces of information about an activity the event describes. | string, object, number, integer, boolean, array, | You can find a list of parameters of a selected event in **Data Modeling Hub > Events** | | Tags | It is a label assigned to a profile, it helps in organizing your profiles into group which facilitates targeting of actions toward them | string, boolean | You can find a list of profile tags in **Data Modeling Hub > Profile tags**. | | [Attributes](/docs/crm/customer-properties) | It is a feature of a profile which describes them, for example, first name, date of birth, marketing agreement status, and so on. | string, number, boolean | You can find a list of attributes in **Data Modeling Hub > Profile attributes**. | | [Segmentations](/docs/analytics/segmentations) | It is a group of customers that share the same characteristics. | string, boolean | You can find a list of segmentations in **Decision Hub > Segmentations**. | | [Aggregates](/docs/crm/aggregates/introduction-to-aggregates) | - [Profile aggregates](/docs/crm/aggregates/creating-profile-aggregates) - You can summarize data set created on a basis of a selected event within a specified time range. This analysis includes profile context, allowing for displaying the result for individual profile.
- [Event aggregates](/docs/crm/aggregates/creating-event-aggregates) - They are summarized data sets created on a basis of a selected event within a specified time range which lack profile context. | string, number, array, boolean | You can find a list of aggregates in **Behavioral Data Hub > Live Aggregates**. | | [Expressions](/docs/crm/expressions/introduction-to-expressions) | - [Attribute expressions](/docs/crm/expressions/creating-expressions) - You can create your own indicators based on mathematical formulas or calculations for both profiles and events and use them as custom attributes.
- [Event expressions](/docs/crm/expressions/creating-event-expression) - You can create custom event attributes which you can use further in filters and analyses.
To check whether an expression is an attribute or event expression, go to **Behavioral Data Hub > Expressions**, find the expression on the list and go into its details. If the **Expression for** option is set to **Attribute**, it's an attribute expression. Otherwise, it's an event expression.
| string, boolean, array | You can find a list of expressions in **Behavioral Data Hub > Expressions**. | | Specials | This group contains the timestamp parameter which contains the time of event occurrence | string | n/a | #### Example The example below presents an aggregate that returns the list of last 100 IDs of transactions from the last 30 days which contain the products visited which were displayed in a defined recommendation campaign. The condition of the aggregate uses an aggregate that returns the SKUs of the clicked items within a particular recommendation campaign.
This example is a part of the [Calculating items purchased within a campaign](/use-cases/items-bought-after-clicking) use case.
1. Create an aggregate that returns the last visited recommendations in the defined time range. 2. Create a new aggregate: 1. Set the size of returned results to 100. 2. Select the **Consider only unique occurrence of the event parameter**. 3. Select the **Bought product** event. 4. As the event parameter, select **$orderId**. 5. After the **$orderId** parameter, add **$sku** parameter that occurs in the results of the aggregate from step 1.
Decision Hub Last Multi aggregate returning the distinct order IDs of products clicked in a recommendation campaign
The list of products clicked in the recommendation
# Timezones in Decision Hub The timezone of the workspace must be taken into account when creating analyses that use: - [Occurrence times (timestamps) of events](#event-occurrence-times) - [Profile attributes and event parameters (other than occurrence times)](#profile-attributes-and-event-parameters) ## Event occurrence times In the Synerise database, all events are stored with their times calculated into UTC, regardless of how the event was originally sent to Synerise. For example, if you send an event over the API with the date set to `2022-10-21T05:03:46+02:00`, the database saves it as `1666321426000` (Unix Epoch timestamp).
In transaction events, the occurrence time is saved in the `recordedAt` parameter. In other events, it's saved in the `time` parameter.
The Decision Hub does not consider the original timezone of events - the results are always shown in context of the timezone selected in the settings of the workspace.
UTC (time standard) doesn't equal GMT (timezone). Some countries in the GMT timezone use Daylight Saving Time, which may have an effect on analyses.
### Example: event times in different time zones 1. An event is sent with the date May 23, 23:00 in the PST timezone (UTC-8). 2. Its time is saved in the database as `1653375600000`. In terms of UTC, this is May 24, 7:00. 3. The event is viewed in a workspace whose timezone is CEST (UTC+2). The event's time in this view is May 24, 9:00. ### Example: event times in different time zones in context of an analysis 1. An event is sent with the date May 23, 23:00 in the PST timezone (UTC-8). 2. The workspace is set to the CEST timezone (UTC+2). 3. A metric which counts all events from May 23 (00:00-23:59 CEST) is created. 4. From the point of view of the workspace's timezone (UTC+2), the event from step 1 occurred on May 24 at 9:00. 5. The event from Step 1 isn't included in the metric's result. ### Example: change in workspace time zone settings 2. The workspace is set to the CEST timezone (UTC+2). 3. You create a metric to count events which occurred between 14:00 and 17:00 (12:00-15:00 UTC). 4. The settings of the workspace are changed and the timezone is now PST (UTC-8). 5. You open the same metric. 6. The metric result is different than before. This is expected behavior. In the new timezone of the workspace, the date range of the metric is now 14:00-17:00 PST, which calculates into 22:00-01:00 UTC. ### Example: Daylight Saving Time change This example is similar to [the previous one](#example-change-in-workspace-time-zone-settings), but the timezone in the workspace changes due to DST, not a change in the geographical timezone settings. 1. The workspace is set to the CEST timezone (UTC+2). 2. A trend is created on October 15. The trend shows events which occurred on October 10, in hourly intervals. 3. You open the trend and see that the most events occurred at 14:00. 4. On October 30, the DST changes. The workspace's timezone is now CEST (UTC+1). 5. You open the same trend on November 3 to view its results. 6. The trend shows that the most events occurred at 13:00. This is expected behavior. The results are always shown according to the current timezone of the workspace. If the timezone's DST status changed since it was last viewed, the analysis results are shown in context of the new DST status. ### Example: relative date filter with Daylight Saving Time change 1. The workspace is set to the CEST timezone (UTC+2). 2. A trend is created on October 15. It shows events from the last 30 days, in daily intervals. The 30-day period is set as relative to the time of viewing the trend. 3. You open the trend and see that 1500 events occurred on October 14. 4. On October 30, the DST changes. The workspace's timezone is now CEST (UTC+1). 5. You open the same trend on November 3 to view its results. 6. The trend shows that the number of events on October 14 is different than before. This is expected behavior. The results are shown according to the current timezone of the workspace. For example: - When an event occurred on October 14 at 00:30, it was in the UTC+2 timezone. - When you open the same analysis after changing to UTC+1, it is interpreted as 23:30 on October 13. ## Profile attributes and event parameters In the free-form additional data (`attributes` in profiles and `params` in events), you can send other dates/times as custom parameters, as required by your integration. Example attribute in a profile:
{
    "clientId": 6855607997,
    "email": "default_unique_71fa217a-4c72-4224-89d0-780b7fdfda16@anonymous.invalid",
    ...
    "agreements": {
        ...
    },
    "attributes": {
        "exampleCustomAttribute": "2023-08-03T11:30:00",
    },
    "tags": []
}
Example parameter in an event:
{
    "time": "2023-08-04T14:08:33.990Z",
    "action": "docs.read",
    "client": {
        "id": 6855607997,
        "email": "default_unique_71fa217a-4c72-4224-89d0-780b7fdfda16@anonymous.invalid",
        "uuid": "eb73d1c7-c9de-491a-a7bf-992a7167311c"
    },
    "params": {
        "exampleCustomParam": "2023-08-03T11:30:00"
    }
}
If you want to use that data in analytics, we highly recommend to send it in the ISO 8601 format. Thanks to this, you don't need to transform them into another format before running an analysis. The ISO 8601 format lets you declare the timezone of the date/time you send: - `2023-08-03T11:30:00` - this date/time doesn't have a time zone. When using an attribute/parameter with this value in an analysis, it's considered to be in the timezone of the workspace where you're creating the analysis. - `2023-08-03T11:30:00+02:00` - this date/time is in the `UTC +02:00` timezone. The workspace's timezone doesn't affect it. - `2023-08-03T11:30:00Z` - this date/time is in the UTC timezone (denoted by the `Z` suffix). The workspace's timezone doesn't affect it.
For explanations on how changing the workspace's timezone (including DST changes) may affect analytics, see the examples in ["Event occurrence times"](#event-occurrence-times).
# Sharing segmentation results
This article explains how to save a segmentation result as an attribute and assign it to profiles from the segmentation within your current workspace. If you want to mark the same profiles with an attribute across a group of workspaces, see [Sharing segmentation results to a workspace group](/docs/settings/workspace/multibrand-workspaces/sharing-segmentation-results) which is a part of [Co-Brand Decisioning Layer](/docs/settings/workspace/multibrand-workspaces).
Sharing segmentations lets you save the results of a segmentation as a [membership attribute](/docs/crm/customer-properties#managing-membership-attributes)—a true or false value—assigned to profiles who are in the segmentations in a currently used workspace. When you save segmentation results to a membership attribute in a workspace (you are logged in), you can track how these attributes change over time. This helps you see when profiles start matching the segmentation and when they stop. Besides creating the membership attribute, the system updates the attribute on a set schedule—every hour, every 6 hours, or once a day. During each update, it checks the source segmentation(s) for any changes and only updates the profiles that have changed since the last run. This way, the process runs regularly but only works on profiles that need updating. ## Generated events and attributes --- - [Membership attributes](/docs/crm/customer-properties#managing-membership-attributes) - One for each segmentation selected. The attribute is created during the first synchronization and then regularly updated. These are visible on the profile card, and you can find all membership attributes in your workspace under **Behavioral Data Hub > Attributes**. - [`profile.updated`](/docs/assets/events/event-reference/profiles#profileupdated) events: - Generated on both the source and target workspaces. - Occur once per synchronization process. - For every profile update: - On the first run, all profiles that are members of at least one shared segmentation are updated. - On subsequent runs, only profiles with changes in membership for at least one shared segmentation are updated. - If multiple membership attributes for a profile are updated, these are batched together and a single event is generated. - [`profile.MembershipAttributeUpdated`](/docs/assets/events/event-reference/profiles#profilemembershipattributeupdated) events: - Every change or creation of membership attribute generates the event on the current workspace or target workspace(s). - On the first synchronization run, all profiles that are members of at least one shared segmentation will be generated the events. - On subsequent runs, an event is generated for every change in membership attributes for profiles in at least one shared segmentation. These attributes and events help you keep your segmentation data accurate and up to date, making it easier to target your profiles well. They also let you analyze how often profiles are added or removed from a shared segmentation. ## Start sharing and synchronizing --- 1. Go to Decision Hub icon **Decision Hub > Segmentations**. 2. On the top bar on the segmentation list, click **Share as**. **Result**: A pop-up appears. 3. If the workspace you're working on is a [co-brand workspace](/docs/settings/workspace/multibrand-workspaces/about), the pop-up contains the synchronization type selection. To share segmentation results to one workspace only, select **Workspace Sync**. 4. From the **Process frequency** dropdown list, select how often membership attributes will be synchronized. - **Every hour** - The process will start every hour. The first synchronization is performed immediately after activating the process. - **Every 6 hours** - The process will start every six hours. The first synchronization is performed immediately after activating the process. - **Daily** - The process will start once a day at a random time between 4 A.M. and 6 A.M. 5. Click **Go to sharing process**. 6. On the pop-up, select the segmentations whose results will be shared and synchronized to the workspace you're logged in. The results will be saved as membership attributes. 7. Become familiar with the summary of the configured process: - The number of unique profiles that meet the criteria of at least one selected segmentation and have the specified profile ID. Each profile is counted only once, even if it appears in multiple segmentations. Become familiar with [limits](/docs/settings/workspace/multibrand-workspaces/limits-and-constraints). - The list of attributes which will be created and/or synchronized 8. To start the process, click **Apply**. 9. Confirm by clicking **Yes, start**. **Result**: The first synchronization job starts immediately. Other will occur according to the schedule. ## What's next ### Checking synchronization status To view the status of synchronization processes go to the details of the membership attribute (**Behavioral Data Hub > Attributes > Membership attributes**) and find the link to the synchronization process where you will find logs and statuses.
Preview of membership attribute details shared across a workspace group, accessible in Behavioral Data Hub > Attributes > Membership attributes
Preview of membership attribute details shared across a workspace group, accessible in Behavioral Data Hub > Attributes > Membership attributes
#### Job stages Synchronization takes three steps: - Fetching segmentations - Collecting groups of data based on specific criteria. - Attribute mapping - Linking data fields from the source to the correct fields in the destination - Queueing for materialization - Adding tasks to a waiting list to be processed and finalized. #### Job statuses You can monitor synchronization job statuses for each step and download job files for debugging purposes. Job statuses include: - **Success** – Job completed successfully. - **Processing** – Job is currently in progress. - **Warning** – Job completed with partial success, some issues may need attention. - **Failed** – Job ended with failure. ### Managing synchronization processes You can only add or remove segmentations from active processes. Other changes require creating a synchronization process. 1. Go to Behavioral Data Hub icon **Behavioral Data Hub > Membership Attributes Sync**. 2. Select the **Processes** tabs. 3. Open the details of a synchronization process. 4. Add or remove segmentations from the process. 5. Confirm changes by clicking **Apply**. **Result**: The synchronization process with the change is launched immediately. Other jobs will be performed as scheduled through the **Process frequency** option. ### I want to edit synchronization process - **Frequency and location cannot be edited for existing processes** To change the frequency or sharing location, you must create a new synchronization process. - **Segmentations can be added or removed from existing processes** Changes will take effect: - immediately for synchronizations scheduled every 6 hours - subsequent runs will be performed according to the schedule. - on the next scheduled run for daily synchronizations. - **Stopping synchronizations** To stop synchronizing, remove segmentations from the process. ### I want to manage membership attributes in a workspace - [Previewing attribute details](/docs/crm/customer-properties#viewing-attribute-details) - [Changing display name and attribute description](/docs/crm/customer-properties#changing-display-name-and-description) - [Changing attribute visibility across filters](/docs/crm/customer-properties#changing-membership-attribute-visibility) ### I want to analyze how profiles joined and left segmentations The analysis will be based on the `profile.updated` event, which captures changes to membership attributes. Since the state of a membership attribute indicates whether a profile belongs to the segmentation it was created from, analyzing the `profile.updated` event ensures reliable results. 1. Create a formula metric which will deduct the count of `profile.updated` events with the membership attribute value set to true from the count of `profile.updated` events with the membership attribute value set to false. 1. Go to Decision Hub icon **Decision Hub > Metrics > New metric**. 2. Select **Formula metric**. 3. Select **Event**. 4. Select `profile.updated`. 5. Click **+ where**. 6. From the dropdown list, select the attribute with the name of a membership attribute. 7. Set the condition to `is true`.
The first part of the formula
The first part of the formula - a profile.updated event with the parameter that signifies a membership attribute set to true
2. Create the second part of the operation:
The first part of the formula
The first part of the formula - a profile.updated event with the parameter that signifies a membership attribute set to false
3. Save the metric. 2. Create a histogram on the basis of the metric you created. 1. Go to Decision Hub icon **Decision Hub > Histograms > New histogram**. 2. Select the metric you created in the previous step. 3. Save the histogram. 3. Create a dashboard which displays the histogram results. 1. Go to Decision Hub icon **Decision Hub > Dashboards > Add dashboard**. 2. Click the Histogram icon icon on the dashboard. 3. Select the histogram you created in the previous step. 4. Click the histogram widget which has been added to the dashboard. 5. On the right panel, select the **Style** tab. 6. Select the following visualization type:
The Style tab of the histogram widget in the settings of the dashboard
The Style tab of the histogram widget in the settings of the dashboard
### How do I know my segmentation based on membership attributes is fresh? Go to the [details of the membership attribute](/docs/crm/customer-properties#viewing-attribute-details) based on which your segmentation is created, open its details, and check **Last synchronization jobs**. # The logic of segmentation Segmentation is the process of grouping customers based on specific characteristics such as attributes (for example, email address, shoe size), preferences (for example, favorite color, favorite brand), or actions (visit to the website, transaction, adding an item to a cart). By understanding how segmentation operates, businesses can tailor their strategies to target these distinct customer groups more effectively. At its core, segmentation utilizes logical constructs to partition diverse customer sets into meaningful segments. This process involves applying a set of predefined conditions or rules to determine customer inclusion within a particular segment. ## Logical functors and effects on sets --- In segmentations, the concepts of conjunctions, alternatives, and negations are essential for expressing relationships between conditions. By applying these functors while defining the conditions, you can filter customers with the desirable or non-desirable features out of the whole customer base you have. ### Conjunction Conjunction (**AND**) is the product of sets, the common part. You can use it to combine multiple conditions to create a more specific segmentation. For example, you can find customers whose names contain the letter `A` and who made a transaction. Both conditions must be met. The image below presents this condition on the interface:
Decision Hub segmentation configuration showing conjunction (AND) conditions
In the logical record it will look like this:
A conjunction diagram
### Alternative The alternative (**OR**) will be the sum of the sets. It offers the flexibility to specify different conditions for the segmentation. For example, you can find customers whose names contain the `A` letter or who made a transaction. Unlike conjunction, meeting just one of the conditions is sufficient for a customer to be included. The image below presents this condition on the interface:
Decision Hub segmentation configuration showing alternative (OR) conditions
Then the logical record will look like this:
A disjunction diagram
A disjunction diagram
### Negation Negation (**NOT MATCHING**) will be an exclusion from the set on the basis of possessing certain attributes or behaviors. For example, you can filter out customers whose names contain the `A` letter. The image below presents this condition on the interface:
Decision Hub segmentation configuration showing negation (NOT MATCHING) conditions
This is the result of the segmentation:
A negation diagram
### Combining functors in segmentation When creating a segmentation, you can add multiple conditions joined by conjunctions (AND) or alternatives (OR). To understand how your multiple conditions interact with each other, look at the parentheses at the top of the view. The parentheses are analyzed from left to right.
Segmentation conditions in parenthesis
Segmentation conditions in parenthesis
#### Example Let's create a segmentation of customers who are assigned `loyaltyCard` and `snacks` tags or have an email agreement enabled. Additionally, they must have a phone number assigned to their card in Synerise. These conditions will be defined in on the interface as follows:
The conditions of an example segmentation
The conditions of an example segmentation
To avoid ambiguity in the interpretation of relationship between the conditions, look at the top right corner to make sure how these conditions will be analyzed. In this case, the interpretation will be as follows: `((A and B) or C) and D` Let's break it down step by step: - `((A and B) or C)`: This part evaluates a logical OR between two expressions: `(A and B)` and `C`. In our example, `(A and B)` is true if a customer has both tags assigned, and `C` evaluates whether a customer has enabled their email agreement. The logical OR returns true if at least one of the expressions is true. - `((A and B) or C) and D`: This part combines the previous logical expression with another logical AND operator along with the expression `D`. `D` evaluates whether a customer has a phone number assigned to their profile card. The logical AND returns true only if both expressions on either side of it are true. This means that a customer will belong to the segmentation if they have both tags assigned or have enabled the email agreement. Additionally, they must have a phone number assigned to their profile card. In other cases, customers will not be included in the segmentation. **Results**: The table below only includes condition combinations that result in a customer being included in the segmentation. | | loyaltyCard tag assigned | snacks tag assigned | Email agreement enabled | Phone number assigned | |--------------------|-----------------------|---------------------------|-------------------------|-----------------------| | Customers who have | Green checkmark | Green checkmark | Green checkmark | Green checkmark | | Customers who have | Green checkmark | Green checkmark | Red checkmark | Green checkmark | | Customers who have | Green checkmark | Red checkmark | Green checkmark | Green checkmark | | Customers who have | Red checkmark | Green checkmark | Green checkmark | Green checkmark | | Customers who have | Red checkmark | Red checkmark | Green checkmark | Green checkmark |