> Synerise Documentation — First Steps > > This file contains the complete "First Steps" 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 ---
Introduction - First Steps
For the purpose of this lesson, let's imagine you're a Marketing Director at a company, which has its own eCommerce store. Your company has just signed an agreement with Synerise and you're about to start the implementation process. Your goal is to implement Synerise in the short term, with the minimum resources. Your board expects to receive from you the business report with the ROI from Synerise implementation within the next 2 months. Challenge you might face if you haven't worked on Synerise before: Synerise is a Behavioral Data platform with a wide range of features. You won't have a chance to learn all about it in a day, but your team expects to receive the implementation plan from you and created a backlog of tasks to be done. **Solution** In this chapter, you'll learn more about the integration tasks that might be needed in order to integrate your eCommerce site with Synerise as well as you'll find here an example implementation timeline you can use for your project. Following our implementation timeline advice, you'll cover all of the necessary integrations and use cases that will enable you to achieve business results fast. ## Target group --- This chapter might be useful for everyone who wants to start working with Synerise. ## Learning objectives --- **From this chapter you will learn:**

Arrow down icon how to prepare to the integration process,

Arrow down iconhow to set up the timeline,

Arrow down iconhow to create the first checklist. ## What Synerise is --- Synerise is a leading customer data platform that enables businesses to unlock the full potential of their customer data. With its powerful suite of tools and services, Synerise helps businesses to better understand their customers, create personalized experiences, and increase customer loyalty. This tutorial will provide an introduction to the first steps in the platform, helping businesses to get up and running with Synerise quickly and easily. This guide is designed to help you get started in the platform and provide you with the necessary tools to make the most out of it. **So, let's get started!**
Introduction to the First Steps
## Synerise Demo Shop --- Welcome to Synerise Demo workspace! Experience the power of Synerise’s Artificial Intelligence and Machine Learning technologies in action and see how personalization and marketing automation can work in your ecommerce store. [Synerise Demo Shop](https://demoshop.synerise.com/) gives you the opportunity to test campaigns, features, and integrations in a real-world environment. ![Screenshot presenting integration](/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/first-steps/integration-essentials/_gfx/demo.png)
The Demo Shop will be a necessary element of your learning path, so be sure that you have an access to the Demo workspace.
If you don’t have access to the Synerise Demo workspace, please leave your contact details in this [form](https://demo.synerise.com/request), and our representative will contact you shortly.
# Lesson 1 Integration --- ## Introduction ---
Integration - First Steps
In the previous chapter, you've learnt how the overall integration checklist and implementation plan look like. Now, let's move forward and go deeper into each of the topics. It's crucial that you understand the integration process no matter what your role in the organization is. The reason is simple: having this knowledge will allow you to understand the data structure in Synerise and how you can use it in analytics to create dashboards and audiences for your campaigns. It will also allow you to create omni-channel campaigns and more personalized campaigns, as you'll know which data sources are connected to Synerise and what their structure is (for example, if you want to filter your AI recommendations frames with the products from the NEW collection, you need to know from the beginning what data you'll need to have in your feed and ask the developers to include it). If you work in the technical team, this knowledge will allow you to properly run the integration and have a clear understanding of how it will be used by the business teams later on. Please, don't skip the business definitions. ## Target group --- This chapter might be useful for everyone who want to start working with Synerise, especially developers, members of IT or Product teams responsible for the integration process. Information from this chapter might be also useful for everyone who wants to know how Synerise and its integration process works. ## Learning objectives --- **From this chapter you will learn:**

Arrow down iconhow to create workspace,

Arrow down iconhow to implement tracking code on your website,

Arrow down iconabout user identification, integration of forms and marketing consents,

Arrow down iconabout product management and events integrations,

Arrow down iconhow to conduct the review of your integrations. ![Screenshot presenting integration](/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/first-steps/integration/_gfx/Fundamentals.png) # Lesson 2 Campaigns --- ## Introduction ---
Campaogns - First Steps
Imagine being able to connect with your customers in the most personalized and effective way possible, with just a click of a button. Welcome to the world of automated campaigns with Synerise! By now, you should have a good understanding of how to properly run the integration and how it can benefit your business teams. However, now it's time to focus on your customers and make customer relationships even more impactful. In this chapter, you'll learn how to create your own automated campaigns with Synerise, allowing you to deliver targeted messages and offers to desirable customer segments with ease. With Synerise's powerful automation capabilities, you'll be able to streamline customer communication and improve customer satisfaction in a way that was previously unimaginable. You'll discover the different types of campaigns available on the Synerise platform, such as email campaigns, push notifications, and SMS campaigns. Also you will be able to create more advanced campaigns using time optimizer and create omnichannel communication. The Automation module also enables communication with external tools and platforms through webhooks, such as Facebook, Slack, Google Analytics and many more. It also allows, for example, sending leads to call centers, etc. You can use ready-made integrations or build your own. Additionally, it allows for easy and quick import of data as well as transformation and synchronization of it (Data transformation). We'll show you how to choose the right customer segments and optimize the performance of your campaigns, so that each customer interaction is tailored to their unique needs. With Synerise, you'll be able to build successful relationships with your customers and take your campaigns to new heights. ## Target group --- This chapter is perfect for anyone who wants to start their first campaigns, especially members of marketing and communication teams responsible for campaign management and data analyst who works with data and wants to synchronize them, send to different tools and manage them in an effective way. The information in this chapter is also useful for anyone who wants to know how the campaign integration process looks. So, get ready to create your own personalized and effective campaign story with Synerise. We'll guide you every step of the way and give you the tools and knowledge you need to succeed. Let's begin a new chapter in your customer communication journey! ## Learning objectives --- **From this chapter you will learn:**
Arrow down iconhow to start sending campaigns,
Arrow down iconabout Automation module and its usage in sending communication. ![Screenshot presenting communication](/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/first-steps/campaigns/_gfx/Communication.png) # Lesson 3 Analytics --- ## Introduction ---
Analytics - First Steps
This chapter will lead you through one of the most exciting features of the Synerise platform. Soon you will learn that with our analytics, you can achieve incredible business results. Dive in and discover the many opportunities it offers. One of the most important aspects of the campaigns you lead is whether they are measurable. If you can measure the results, you can optimize the effects and reaction time crucial for the campaign success. In Synerise we differentiate a few types of analytics; - segments - funnels - metrics - histograms - trends - geoanalytics - expessions - aggregates - dashboards - reports All of them will be described in next steps. ## Target group --- This chapter might be useful for everyone who want to start working with analytics; build analysis, monitor effectiveness of campaigns and KPIs. It might be useuful generally for members of marketing, product teams but also members of the board. ## Learning objectives --- **From this chapter you will learn:**

Arrow down iconhow to create segmentations,

Arrow down iconhow to create metrics, trends, aggregates and expressions,

Arrow down iconhow to build dashboards. ![Screenshot presenting analytics](/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/first-steps/analytics/_gfx/Analyticsmain.png) # Lesson 4 AI --- ## Introduction ---
AI - First Steps
The Synerise platform is a powerful tool that leverages Artificial Intelligence algorithms to deliver personalized recommendations to customers based on their behavioural and transactional data. In this Lesson, you will learn how to integrate the AI capabilities of Synerise into your own systems and how to build AI engines using real-time customer data. By the end of this chapter, you will be able to run your first AI campaigns with Synerise. ## AI products --- **Are you having trouble offering relevant products to your customers?** Our **AI Product Recommendations** can help by providing personalized product recommendations based on each customer's past purchases and browsing history. This can increase customer engagement and sales by showing customers products they are likely to be interested in. **Are your customers having difficulty finding what they are looking for on your site?** Our **AI Personalized Search** can help by providing customized search results based on each customer's past search history and preferences. This can improve the customer experience and make it easier for them to find what they are looking for. **Are you interested in predicting customer behavior and characteristics to improve targeted marketing and personalized recommendations?** Our **AI Predictions** can help by making predictions about a customer's likelihood to make a purchase, their interests, and other characteristics. These products can also be used to optimize campaign costs by more precisely targeting customers who are most likely to be interested in the products or services being offered. **Do you want to improve the effectiveness of your marketing efforts by reaching out to customers at the best time?** Our **Time Optimizer** can help by predicting the best time to contact each customer based on their past interactions and activity. This can help you get the most value out of your outreach efforts and increase the effectiveness of your marketing activities. Overall, these products - AI Product Recommendations, AI Personalized Search, AI Predictions, and Time Optimizer - can help you improve the customer experience and increase engagement and sales by providing personalized and relevant recommendations and predictions. They are particularly useful for e-commerce, retailers, and other businesses from different industries that rely on customer data to inform their marketing and sales efforts, both online and in the offline world. Let's check the next chapters to learn more about each of them! ## Target group --- This chapter might be useful for everyone who wants to start working with personalized recommendations in Synerise, especially developers, members of IT or Product teams, and also marketing team members who are responsible for recommendations campaigns. ## Learning objectives --- **From this chapter you will learn:**
Arrow down iconwhat types of recommendations Synerise offers,
Arrow down iconwhat the requirements for AI campaigns are,
Arrow down iconhow to create AI recommendations. ![Screenshot presenting ai](/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/first-steps/ai/_gfx/AIRecommendations.png) # Lesson 5 Jinjava ## Introduction ---
Jinjava - First Steps
Are you ready to revolutionize your customer communication? This chapter will take you on a journey through Jinjava, the powerful template engine that effortlessly separates application logic from its presentation layer in the Synerise platform. Think about being able to personalize every customer interaction, from emails to push notifications, with just a few lines of code. Jinjava makes this a reality. You'll learn how to use Jinjava tags to tailor your communication to each customer's unique needs, such as addressing them by name, referencing their last transaction or highlighting their loyalty points. Jinjava also enables you to create an omnichannel experience by tracking the customer's context (e.g., recently visited pages, bought products, favorite categories),allowing for truly personalized communication at every touchpoint. With Jinjava, you can use Synerise's platforms such as Inserts, AI recommendations campaigns, and the Automation module to revolutionize your communication with customers and make your campaigns truly unique. ## Target group --- This chapter is designed for developers on the client side who work on implementation, as well as those who create campaigns in Synerise and want to take their communication to the next level. Join us on a journey as we explore the limitless possibilities of Jinjava in Synerise and revolutionize your customer communication. Picture a new chapter in your customer communication story. ## Learning objectives --- **From this chapter you will learn:**

Arrow down iconwhat is jinjava,

Arrow down iconhow to use jinjava in Synerise,

Arrow down iconabout types of jinjava tags. ![Screenshot presenting jinjava](/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/first-steps/jinjava/_gfx/Jinjava.png) # STEP 3 Advanced analytics --- ## Introduction --- Let's focus on more advanced analytics in Synerise: Expressins. Expressions provide the capability to create custom indicators based upon mathematical formulas or calculations for both profiles and events, which can then be utilized as custom attributes. The utility of expressions lies in their ability to be used for building loyalty programs and scoring structures. This allows you to reward profiles with points and bonuses if they complete a certain action. Additionally, expressions can be used to construct custom profile attributes which values are updated in real time. **From this chapter you will learn:**

Arrow down iconwhat kind of advanced analytics we have in Synerise,

Arrow down iconhow to use expressions in Synerise. ### Expressions --- #### Watch our Webinar! **Part IV:** How to use Expressions.
First steps in Analytics - Part 4 - Expert Analytics
#### Expressions Expressions allow you to create your own indicators based on mathematical formulas or calculations for both customers and events and act as derived attributes. They can be used as tools to build loyalty programs and award points. - [Expressions](/docs/crm/expressions) - check this article to learn more about expressions. - [Types of functions in expressions](/docs/crm/expressions/functions-in-expressions) - read about types of functions in expressions. They allow you to perform mathematical operations on the values received from customer attributes or events.] # STEP 2 Basic analytics --- ## Introduction --- Synerise Analytics is the powerful analytics and forecasting tool that helps you understand and optimize your business performance. It provides a range of features and tools that enable you to track, analyze, and forecast your business’s performance. In this chapter you will discover basic analytics, you will learn how to use them and what you can measure. Those Analytics also allows you to create and track KPIs, build custom dashboards, and easily communicate your results to stakeholders. We encourage you to watch our analytics video traingin series, watch all episodes in the specific order to understand basic analytics and discover how to use them building basic use cases. **From this chapter you will learn:**

Arrow down iconwhat kind of analytics we have in Synerise,

Arrow down iconwhat are the main definitions of each analytics, when we can use them, and where to find the full documentation. ## Types of basic analytics --- In Synerise we differentiate a few types of analytics - all of them are described below. Remember to watch all videos from our analytics training, to beter understand how to use every type of analytics in your daily work with Synerise. ### Metrics, Funnels, Segmentation and Geoanalytics --- #### Watch our Webinar **Part I:** How to use Metrics, Funnels, Segmentation and Geoanalytics.
First Steps in Analytics - Part 1 - Introduction to analytics
#### Metrics In metrics we are operating on events or profile attributes and analyze the number of times that a specific event has occurred in the system. Thanks to metrics you can also count your KPIs. [Metric documentation](/docs/analytics/metrics) - check this article to learn more about Synerise metrics. #### Funnels The funnel shows the customer's journey divided into individual events that follow each other in a particular order. This way you can detect soft spots as you see at which step you lose customers in the process. [Funnels documentation](/docs/analytics/funnels/introduction-to-funnels) - check this article to learn more about Synerise funnels. #### Segmentation Segmentation allows you to group customers on the basis of various criteria, like age, gender, actions on your site, purchase histories, etc. They allow you to properly target your campaigns. [Segmentation documentation](/docs/analytics/segmentations/introduction-to-segmentations) - check this article to learn more about Synerise segmenattions. #### Geoanalytics Geoanalytics in Synerise allow you to analyze customers from a specific area that you can dynamically mark on a map. This is helpful when creating segments of people you want to send specific messages to them, based on their specific location. [Geoanalytics documentation](/docs/analytics/geoanalytics) - check this article to learn more about Synerise geoanalytics. ### Aggregates --- #### Watch our Webinar! **Part II:** How to use Formula Metrics and Aggregates.
First Steps in Analytics - Part 2- Advanced Analytics
#### Aggregates An aggregate is prepared with the intention of analyzing the actions of an individual customer. The analysis is based on a particular event occurrence (which can be specified by the event parameters) within the defined time range. [Aggregates documentation](/docs/crm/aggregates/introduction-to-aggregates) - check this article to learn more about Synerise aggregates. ### Trends, Reports, Histograms, Sankey Diagrams and Dashboards. --- #### Watch our Webinar! **Part III:** How to use Trends, Reports, Histograms, Sankey Diagrams and Dashboards.
First steps in Analytics - Part 3 - Advanced analytics
#### 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. [Trends documentation](/docs/analytics/trends/introduction-to-trends) - check this article to learn more about Synerise trends. #### Reports A report is a visual presentation of data aspects contained in metrics. Each parameter (for example, event parameters, customer attributes or expressions) analyzed in metrics can be presented in reports in different dimensions. 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. [Reports documentation](/docs/analytics/reports/introduction-to-reports) - check this article to learn more about Synerise reports. #### Histograms Histograms are a way of mapping the values of a metric. They are used to compare the values of different metrics within specific time intervals. The analysis of the selected metrics will be presented on the chart. [Histogram documentation](/docs/analytics/histograms) - check this article to learn more about Synerise histograms. #### Sankey diagram Sankey Diagrams in Synerise allow you to reconstruct the flow of customer actions before or after an occurrence of a particular event. Using an event as a reference point, you can create charts that present steps to get the answers to questions such as “how much?” and “how is it connected with each other?”. [Sankey documentation](/docs/analytics/sankey-charts) - check this article to learn more about Sankey diagrams. #### Analytics dashboard All of the analytics described above can be displayed on the dashboard. This helps you better manage and monitor your campaigns. This is where you can select the analytics you want to display on the dashboard. - [Dashboards documentation](/docs/analytics/analytics-dashboard) - check this article to learn more about dashboards. - [Dynamic keys in dashboards](/docs/analytics/analytics-dashboard/creating-dashboards) - check this article to learn more about usage of dynamic keys in dashboards. # STEP 3 Campaign preparation --- ## Introduction --- In this chapter, we will discuss how to properly prepare for an AI campaign, including considerations for display settings, filter, preview, and more. We will also cover strategies for integrating AI into existing campaigns. **From this chapter you will learn:**
Arrow down iconabout using AI recommendations in different places,
Arrow down iconabout AI campaign preparation.
## Campaign preparation --- Campaign preparation consists of a few parts described below. 1. [Choosing campaign type](/first-steps/ai/campaign-preparation#choosing-campaign-type) 3. [Adding recommendation filters](/first-steps/ai/campaign-preparation#adding-recommendation-filters) 4. [Previewing recommendations](/first-steps/ai/campaign-preparation#previewing-recommendations) 5. [Recommendation statistics](/first-steps/ai/campaign-preparation#recommendations-statistics) 6. [Distributing recommendations](/first-steps/ai/campaign-preparation#distributing-recommendations) ### Choosing campaign type --- Create an AI campaign that indicates what products will be displayed to customers – first of all you have to choose an AI campaign type. - [Campaign types and preparation](/docs/ai-hub/recommendations-v2) - learn more about campaign types you can use and campaign preparation. ### Adding recommendation filters --- Filters can apply additional logic on top of recommendation results served by the AI engine. They are used in two situations: - For filtering, to exclude or include items from a recommendation. - For score boosting, to promote or demote matching items. - [Recommendation filters](/docs/ai-hub/recommendations-v2/recommendation-filters) - learn more about examples of recommendation filters. ### Previewing recommendations --- You can check the preview of the recommendation to: - See the set of items recommended when there is a specific item or items in the shopping cart. - See the set of items recommended for a selected customer. The context of the preview depends on the recommendation type selected. - [Preview of the recommendations](/docs/ai-hub/recommendations-v2/previewing-recommendations) - learn more about preview of the recommendations. ### Recommendations statistics Synerise offers you a panel with full statistics of the recommendation. - [Recommendations statistics](/docs/ai-hub/recommendations-v2/recommendation-statistics) - learn more about recommendation statistics. ### Distributing recommendations You can add recommendations to many different campaigns and communication channels such as emails, webpush, dynamic content, mobile campaigns, and so on. - [Distributing recommendations](/docs/ai-hub/recommendations-v2/distributing-recommendations) - learn more about distributing recommendations. # STEP 4 Campaign checklist --- ## Introduction --- Below, you can find the checklist, necessary to be able to send various campaigns from Synerise platform. In the table below you will find the types of campaigns which you can integrate, the implementation methods, additional comments, and links to documentation. ## Campaign checklist --- **Campaign checklist important to start your first campaigns:** **Integration** | **Implementation** | **Comments** |**Documentation** --- | --- | --- | --- **Webpush** | Firebase, worker | - Integration with Firebase
- Placing webpush worker on the website
- Launching a campaign for agreement collection|[Firebase webpush configuration](/docs/campaign/Webpush) **SMS** | SMS gateway | Choose and integrate one of the SMS gateways available in Synerise |[SMS configuration](/docs/campaign/SMS). **Facebook** | Webhooks | You can send Custom Audience to Facebook as well as run integration on sending any events collected by Synerise to Facebook. |[Facebook](/docs/automation/integration/facebook/ ) **AI Hub** | API | API backend integration or API calls from Dynamic content
- Events integration
- Configuration in the panel
- Autocomplete
- Listing
- Suggestions|[AI Search Integration:](https://hub.synerise.com/api-reference/ai-search)
- [Search](https://hub.synerise.com/api-reference/ai-search#tag/Search)
- [Listing](https://hub.synerise.com/api-reference/ai-search#tag/Listing)
- [Suggestions](https://hub.synerise.com/api-reference/ai-search#tag/Suggestions-Configuration)
- [Search Analytics](https://hub.synerise.com/api-reference/ai-search#tag/Analytics) **AI recommendations** | Dynamic content/API| - Dynamic content or API
- Events in case of API integration|[Recommendation inserts](/developers/inserts/recommendations-v2)
[API integration](https://hub.synerise.com/api-reference/ai-recommendations) **External integrations** | [API/Webhooks](/docs/automation/integration)| Now, you're all set to move forward and go through the integration process in more details! # STEP 3 Data transformation ## STEP 4 Data transformation --- ### Introduction --- This module allows you to modify your data, create effective import of your files and automate the entire workflow. **From this chapter you will learn:**
Arrow down iconWhat are the main assumptions of data transformation,
Arrow down iconwhere to find the information about basic configuration. ### Data Transformation --- The Automation module allows you to import data to Synerise and export data from Synerise. Before the import, if needed, you can make modifications to the data and its structure so they meet the requirements. **Data Transformation** can be used to transform your data before the import, in the course of an automation. [Data Transformation documentation](/docs/automation/data-transformation-and-imports) - check the complete documentation of the data transformation. ### Webhooks - integration --- The **Integration** section within the Automation module allows you to prepare integrations with external systems for use in workflows. There are two types of integrations that can be prepared: - [Incoming](/docs/automation/integration/incoming-webhook-node) - This type of integration allows you to receive data from external systems and trigger workflows. - [Outgoing](/docs/automation/integration/outgoing-webhook) - This type of integration allows you to send data from Synerise to external systems. It can be used in the workflow as an action node. In Synerise we also have native integrations that allow you to send data to external systems. Beyond already existed integrations, user can also create their own connections with external tools based on their business needs. [Webhooks documentation](/docs/automation/integration) - check the complete documentation of the webhooks. # STEP 1 AI Integration requirements --- ## Introduction --- Implementing AI solutions gives yous many benefits. It not only reduces costs and increases sales; it can reduce cart abandonment rates and increase general customer satisfaction by presenting relevant results quickly. In this chapter, you will find the requirements for implementing AI campaigns. **From this chapter you will learn:**
Arrow down iconwhat the requirements for AI recommendation campaigns are,
Arrow down iconwhere to find AI documentation. ## Requirements --- To integrate AI recommendations on your website, you need: - [Tracking codes](/developers/web/installation-and-configuration); to collect events and deliver dynamic content with the use of SDK - [OG tags](/developers/web/og-tags); item ID from `product:retailer_part_no` is the most important - [Transactional events](/developers/web/transactions-sdk); used to train models and create statistics - [Item feed](/developers/product-feed); to provide information about items
In the case of AI campaign conversion and recommendation models, the unique item ID values must be the same: retailer_part_no in page.visit events, sku in transactional events, and item ID in the item feed.
Individual AI recommendation types may have special requirements on the number of events in the database.
#### Video: Business Part: How to get started on AI integration?
#### Video: Technical Part: How to get started on AI integration?
- [AI recommendations requirements](/docs/ai-hub/recommendations-v2/introduction-to-recommendation-campaigns) - learn more about requirements for starting recommendations campaigns. - [Configuring item catalog for recommendations](/docs/ai-hub/recommendations-v2/configure-item-feed-ai-recommendations) - learn more about configuring item catalog for recommendations. - [Managing items catalogs](/docs/ai-hub/recommendations-v2/item-feed-requirements) - learn more about managing items catalogs. # TEST YOURSELF --- **Are you ready to put your knowledge to the test and challenge yourself?** Solve a few tasks to check your knowledge! You can solve them using the Synerise platform (Synerise Demo workspace). If you don't have access to the Synerise Demo workspace, please leave your contact details in this [form](https://demo.synerise.com/request), and our representative will send you the access shortly. Good luck on this exciting adventure! (Note: The videos with answers are available below. Make sure to watch them to check if you did well!)
Find your uuid on the website [Synerise Demo](https://demoshop.synerise.com/) and search for this user in Synerise Profiles.
In Synerise Demo Workspace, create a Profile and: - turn on SMS agreement, - add tag: Training, - add “Italian” to existing attribute “language”, - add the attribute “training” with the value “1”, - hide any attribute from the profile view.
What is the default retention of page.visit events?
A. 30 days
B. 90 days
C. Infinite
Check the answer for question 3

Answer A.


certification
### Want more? Pass the Synerise Integration Certification! This chapter will enable you to easily obtain the **SYNERISE INTEGRATION CERTIFICATION**. Do not hesitate! You have a knowledge about the different data sources, 360-degree customer view profiles, and a good overall understanding of Synerise applications, so you are ready to grab this Certificate today! ➡️ **Log in to Synerise [Academy](https://academy.synerise.com/course/integration) and start your Integration Course .** # STEP 2 Item management --- ## Introduction --- To let Synerise track data related to items, you must import an item feed. It is the list of all items and their attributes. In most cases, you upload the data into a catalog (catalogs allow you to store all kinds of data) which is then used to configure AI engine. In case of Google Merchant XML files, it's also possible to import the data from a URL when configuring the AI engine. You can use the data to: - generate recommendations, - offer an item search engine, - [enrich events](/docs/assets/events/adding-event-parameters#enriching-events-with-data-from-catalogs) (not covered in this article) with data from the catalog, so you don't need to store all the data on the item's web page (this doesn't require configuring an AI model for the catalog), - you can also use this data in campaign inserts to display product data. **From this chapter you will learn:**

Arrow down iconhow to import an item feed to a Synerise catalog from a CSV, JSON, or Google Merchant XML file (recommended),

Arrow down iconhow to use that item feed to create an AI model for recommendations.
Arrow down icon **Why you need this integration:** To store data about your items in Synerise Arrow down icon**What type of campaigns require such integration:** All campaigns that have a product context, such as abandoned cart, last viewed product, AI recommendations, AI search, and so on. ## Importing manually --- You can import data manually when: - It meets the requirements listed in the ["Requirements for item catalogs" section of this article](/docs/ai-hub/item-feed/item-feed-in-catalog). If the file doesn't meet the requirements, use [Automation](#importing-with-automation) to transform it. - You only want to import the data once. If you want to import data periodically, it's better to [automate](#importing-with-automation) the process. ### From CSV CSV files can be imported manually into a catalog in the **Data Modeling Hub**. If the file meets the requirements listed in the ["Requirements for item catalogs" section of this article](/docs/ai-hub/item-feed/item-feed-in-catalog), you can import it: 1. Go to **Data Modeling Hub > Catalogs**. 2. Click **New Catalog**. 3. Enter a name for the catalog. 4. Open the catalog. 5. Click **Import CSV** and upload the file. 6. As the **Primary key**, select the **itemId** column. If your file doesn't have this column, it doesn't meet the requirements and the file can't be imported this way as an item feed. You can now use data from the catalog to enrich events. If you want to use it for recommendations, proceed to ["Selecting the catalog as the item feed for recommendations"](#selecting-a-catalog-as-the-item-feed-for-recommendations). Enabling AI search for the catalog is covered in later lessons. Watch our video to see how to do it in practice.
Integration - CSV import
### From JSON (API only) JSON files can be manually imported into a catalog by using the API. If the file meets the requirements listed in the ["Requirements for item catalogs" section of this article](/docs/ai-hub/item-feed/item-feed-in-catalog), you can import it: 1. Go to **Data Modeling Hub > Catalogs**. 2. Click **New Catalog**. 3. Use the ["Batch add items" API endpoint](https://hub.synerise.com/api-reference/data-management#operation/addItemsBatch). You can now use data from the catalog to enrich events. If you want to use it for recommendations, proceed to ["Selecting the catalog as the item feed for recommendations"](#selecting-a-catalog-as-the-item-feed-for-recommendations). Enabling AI search for the catalog is covered in later lessons. ## Importing from a Google Merchant Center XML file ---
This is the recommended solution.
The Google Merchant Center XML can be imported in the following ways: - If it meets the requirements listed in [Google Merchant Center XML item feed](/developers/product-feed), you can import from a URL it when configuring the AI engine. - If it doesn't meet the requirements, you must use [Automation](#importing-with-automation) to transform the data and import into a catalog. After you upload the data or have the Google Merchant Center XML file available under a URL, you can import it as described in the User Guide: [AI Engine Configuration](/docs/settings/configuration/ai-engine-configuration). ## Importing With Automation --- You can use Automation to: - Import data periodically. If you only need to import CSV data once and it meets all the requirements, it may be more convenient to do it from the Data Management module. - Import data that needs to be transformed first. If the data doesn't meet the requirements (for example, column names need to be changed) you can use the data transformation capabilities of Automation to modify the data "on the fly" while importing.
You can now use data from the catalog to enrich events. If you want to use it for recommendations, proceed to ["Selecting the catalog as the item feed for recommendations"](#selecting-a-catalog-as-the-item-feed-for-recommendations). Enabling AI search for the catalog is covered in later lessons.
- [Automation](/docs/automation) - automation lets you import data periodically and/or modify it during the process. ## Selecting a catalog as the item feed for recommendations --- Create an AI model from the catalog according to the User Guide: [AI Engine Configuration](/docs/settings/configuration/ai-engine-configuration). When you choose a catalog as the base of an AI model, the model is updated whenever the catalog's content changes (the update may take up to an hour). This section provides a verification checklist **for ITEM FEED** to ensure that all of the necessary steps are taken. It includes a list of information that must be collected and evaluated to make sure that everything works. # STEP 1 Introduction to communication --- ## Introduction --- Let’s look at our Communication module, which helps you to properly target your communication and build stronger relationships between your customers and your brand. Synerise offers you several communication channels, from emails and text messages to Web Push notifications, mobile applications, and communication through a website. **From this chapter you will learn:**
Arrow down iconwhat the basic configuration of communication channels looks like,
Arrow down iconwhat kind of analytics you should know at the beginning of the work with communication module effectively. ## Basic configuration --- The following configuration elements are common to all communication types: ![Screenshot presenting configuration of communication](/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/first-steps/campaigns/_gfx/campaign-confi.png) 1. **Audience:** where you define the recipients of the message (ex. segment of people who made a transaction last week). 2. **Content:** where you define the content of the communication, for example the text of a push message or layout of dynamic content. 3. **Schedule:** where you define when the communication should be activated and de-activated (if applicable to the communication type). 4. **Display settings:** important in emission campaigns such as dynamic content and in-app, here you can specify how often and where your dynamic content should be displayed. 5. **UTM & URL parameters:** where you define parts of the URL that allow you to measure message results. 6. **Additional event parameters**: where you can add additional parameters to your campaign. - [Campaigns configuration](/docs/campaign) - learn more about campaigns configuration. Additionally, you can use **Snippets** in your communication. In Synerise, you can create various types of analytics that perform calculations on customer actions; you can work with metrics which allow you to analyze the events; you can personalize the content with dynamic variables, such as the value of the transaction in a given month or the date of the last visit, and AI-powered recommendations to offer your customers exactly what they want. To make use of them to the fullest, you can use them while creating content to your communication. They are available in communication content creators in the form of **Snippets**. Snippets can also be easily re-usable pieces of content or references that change in all templates whenever you change the snippet definition. - [Snippets](/docs/assets/snippets) - learn more about using snippets. ## Basic Analytics necessary to build the Audience --- In this chapter we will present you the fundamental concepts of analytics that are essential for creating successful and targeted marketing campaigns. To effectively create an audience of your future campaigns you should know the basics of analytics in Synerise. Analytics play a pivotal role in helping you understand your audience, their behaviors, and preferences. By harnessing the power of analytics, you can effectively **segment your user base** and **send personalized communications to specific individuals or groups**, thereby maximizing the impact of your campaigns. Rather than sending generic messages to your entire customer database, personalization is the key to connecting with your audience on a deeper level. By identifying specific user segments that meet certain conditions or criteria, you can tailor your messaging to their needs, interests, and preferences. Building a basic segment begins with **segmentation, funnels and aggregates**, three powerful tools in the Synerise Campaigns arsenal. ### Segmentation --- Segmentation involves dividing your customer base into distinct groups based on shared characteristics, such as demographics, purchase history, browsing behavior, or engagement level. This process allows you to gain insights into the unique needs and behaviors of different segments, enabling you to create targeted campaigns that resonate with specific user groups. [Segmentation documentation](/docs/analytics/segmentations/introduction-to-segmentations) - check this article to learn more about Synerise segmenattions. Watch this video below to see how to build the basic segmentation in your Audience tab in the campaign creator.
Campaigns  - Segmentations
### Aggregates --- It's time to harness the potential of aggregates. By creating an aggregate, you can unlock a world of possibilities for understanding your customers' actions and crafting targeted campaigns. Aggregates are the invaluable tools for analyzing individual customer actions within specific event occurrences and defined time ranges. You can delve into the depths of data and extract key insights such as minimums, averages, maximums, and beyond. [Aggregates documentation](/docs/crm/aggregates/introduction-to-aggregates) - check this article to learn more about Synerise aggregates. In the upcoming chapters **Decision Hub**, we will present you more analytics and the full potential of Synerise Analytics! Be ready! # STEP 6 Integration review ## STEP 5 Integration review --- ### Introduction --- Once you have the integrations done by the development team, it's time to review if everything was done correctly, according to the checklist in this article. Below, you can find the checklist to go through in order to make sure the integration is done properly. ### Integration review --- #### Tracking code --- 1. Check the way the data is stored in the system. Check how many page visits are collected and if possible, compare the amount with other data sources. 2. If there are not enough page visits, make sure that the tracking code is available on all pages within the domain. 3. If there are too many page visits, look for pages where page visits are sent more than once (it usually happens on listing or item pages). 4. If tracker is implemented on a SPA website, check if the page visit events are generated properly as well as if dynamic content works correctly (you can activate a test dynamic content campaign and check if it is rendered). 5. Make sure that the tracker is not blocked by adblockers & 3rd party cookies (If it is, check the SDK implementation. It’s probably implemented not by tracker in the page's source code, but by GTM or 1st party tracking mechanism was not set up). #### Online Transactions --- 1. Check the number of transactions (especially in case of SDK). 2. Check if there are duplicates of the events. 3. Check if `transaction.charge` events generate product.buy events – the number of product.buy events should be equal to number of distinct items bought. 4. The sum of values of `product.buy` events generated out of one orderID must be the same as the totalAmount value in the transaction.charge event for that order. 5. Check if the event data includes the data needed for campaigns and analytics. If you want to use some events parameters later on while preparing analyses, make sure you send them to Synerise. For example, if you send POS transactions to Synerise and you want to analyze the performance of different stores, you should send a custom parameter in addition to the "POS" source indicating the ID of the store where the transaction was made. If it is important to differentiate payment methods for the analysis purposes, such data should be sent as a specific parameter. 1. The sum of “FinalUnitPrice”’s of product.buy events is the same as the value of TotalAmount in transaction.charge 2. Check if all the parameters that are sent are registered in the event. Pay attention to the metadata of transaction: sometimes customers send additional custom attributes of transactions outside of the metadata object, and such attributes are not saved. 3. Make sure that item SKUs in transactional events match the product.retailer_part_no in og:tags and productID in item feed. If you’re not sure if the IDs match, please contact Synerise Service Desk team and ask for a review. 4. If you use eventSalt in transactions, try to send two events with eventSalt and the same time parameter and see if the transaction has been updated (correct behavior) or a new one was generated (incorrect behavior). 5. Check if transactions are sent with the correct occurrence time.
- If you send the time `2020-05-11T05:00:00Z`, then the `Z` parameter indicates that this is a time sent in the UTC time standard. - If you send no time, the time of receiving the event is inserted. - If the local time zone is Asia/Kolkata, the time is: `2020-05-11T05:00:00+05:30` - If the local time zone is Europe/Warsaw (DST in effect), the time is `2020-05-11T05:00:00+02:00`. For more details on formatting the date/time string with a time zone, see ISO 8601.
The time of occurrence sent by SDKs/APIs with the event doesn't affect and isn't affected by the settings of the workspace.
When the event is saved in Synerise storage, all times are re-calculated into UTC. Then, when you access that event (for example in Analytics or when examining the events of a profile), the portal shows the time re-calculated from UTC into the time zone of the workspace, regardless of the time zone (if any) that was sent with the event.
Ensure that you are not sending a time that is in the future. Such times are rejected and the time of receiving the event is used instead.
1. Check if the price values are saved in the proper attributes (net/gross). 2. If you have custom item parameters in the transaction.charge events, verify that the product.buy events for each item include those parameters. When sending the transaction.charge event, these attributes must be sent in each item's entry in the `products` array in order to be transferred into the product.buy events. #### OG:tags --- 1. Go to Catalogs and check if the catalog “Snrs-produktu-ogTag" has been created. 2. Ensure that the item IDs match between feed and transactions. If you’re not sure if the IDs match, contact the Synerise Service Desk team and ask for a review. 3. If og:tags are not collected, ensure that they are registered after the initialization of the tracking code. 4. Visit the item pages and see if data about those products appears in the catalog in Synerise. 5. Ensure that the tag with item ID is named `product:retailer_part_no` #### Item feed --- 1. Make sure that custom parameters start with `c:` instead of `g:` 2. Remember that should be equal to `product:retailer_part_no` the item IDs in other modules (fields such as SKU and itemId in the APIs/SDKs). 3. If you want to use custom parameters, ensure that the `xmlns:c="http://base.google.com/cns/1.0"` namespace is included in the XML prolog. 4. Check the first line in the feed – feed tags – make sure the headers are the same as in the documentation (RSS or Atom standard) 5. Ensure that the feed includes all of the required parameters included in the documentation. 6. Ensure that parameters aren't duplicated, for example: `, `. 7. Ensure the items in the feed have all the parameters required to launch campaigns, enriching transactions, and so on. 8. If you suspect that a value of a tag/attribute might contain the following symbols `/&` you should use the specific format or use the following representation. Example: ` Jeans > Bootcut Jeans]]>` or ``. Warning! Do not combine the `>` representation with CDATA. 9. `g:product_type` must be the same as the category on the website. 12. Ensure that attributes such as gender and availability are formatted according to Google's documentation. 12. Ensure the feed has all the necessary parameters: `, <g:availability>, <g:product_type>, <g:price>, <link>, <g:image_link>, <g:id>.` 13. Check the size of the images. If the size is too large, it might influence the speed of loading dynamic content campaigns where you insert data from the feed. 12. Ensure that parameters which are numbers use a dot (`.`) as the decimal separator. 13. If an attribute represents a monetary value (for example `g:price` or `g:sale_price`): - The number must be first and the currency second, for example `15.00 USD` - The currency code must be compliant with ISO 4217. 15. Product type can have only one of the formats: ``` <g:product_type><![CDATA[ Man > all > clothes > shirts ]]></g:product_type>``` , ``` <g:product_type>Man > all > clothes > shirts</g:product_type>``` There should be spaces between '>' or '>' otherwise it will be treated as one category. This example will also be stored as one category: ``` <g:product_type><![CDATA[ Man > all > clothes > shirts ]]></g:product_type>``` 16. Ensure that all tags in the feed are closed. 17. Ensure that the feed ends with: - `</channel>` and `</rss>` for RSS. - `</feed>` for atom feed. ### Cart.status event --- 1. Ensure that every change in the cart (including removing items) triggers the event. 2. Ensure that cart changes are tracked not only the cart page, but also in listings. 2. An `cart.status` with an empty cart should be sent after the `transaction.charge` event in order to clear the cart status. 3. Ensure that the limit of parameters is not exceeded (2048 characters). 4. Ensure that `cart.status` event is triggered only when the status of the cart is changed and by nothing more. 5. Item ID must be the same as in all of the other transactional events, og:tags, and item feed. You can check the status of your item for consistency with item-related events. Eliminating discrepancies allows you to improve your item data and optimize your recommendations. See ["Item consistency" in "Monitoring Item feed status"](/docs/settings/configuration/ai-engine-configuration/feed-status#item-consistency). ### addToCart/removeFromCart events --- 1. Item ID must be the same as in transactional events, og:tags, and item feed. You can check the status of your item for consistency with item-related events. Eliminating discrepancies allows you to improve your item data and optimize your recommendations. See ["Item consistency" in "Monitoring Item feed status"](/docs/settings/configuration/ai-engine-configuration/feed-status#item-consistency). ### Profile management --- 1. Check all the places in which customers might leave their data (email, customId, phone, agreements, other attributes). Information from filled forms must be sent to Synerise correctly. Verify that data is saved to profiles (correct update of attributes). 2. Try the following scenarios on your site and check the results: **First option:** anonymous to new recognized - Open the site in incognito mode and find your UUID.* - Find the corresponding profile in Synerise. You can search it based on UUID. - Verify that this profile is anonymous. - Fill the one of forms on the site, using an email which already exists in one of the profiles. - After filling the form, refresh the profile in Synerise and check for changes. You should see an update in the email field and extra information which you left in the form. **Second option:** anonymous to existing recognized - Open the site in incognito mode and find your UUID.* - Find the corresponding profile in Synerise. - Verify that this profile is anonymous. - Fill the one of forms on the site, using an email which already exists in one of the profiles. - After filling the form, refresh the profile in Synerise You should see that the profile no longer exists. This is because the anonymous profile was merged into the existing recognized one (recognized before the form was filled in). - Find the profile by email which you used and ensure that a `client.merge` event exists in the list of activities. **Third option:** recognized to recognized - Open the site in incognito mode. - Fill in one of the forms on the site with an email. - In Profiles, find the profile whose email was used. - Visit a few pages. - Ensure that the new page visits are recorded in the profile whose email was used last. If you see activities in the earlier profile, something is incorrect with integration – check UUID reset. - Fill in one of the forms with a different email address than before. - In Profiles, find the profile whose email was used. - Visit a few pages and check events on the client’s profile in CRM, you should see your last activities on the second client’s profile. If you see activities at the first client’s profile, something is incorrect with integration – check UUID reset. 3. Every form should have a unique tag or parameter indicating the place where clients leave the data, for example login page, newsletter, agreement. Those tags are visible in the profile. <div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content"> By default, only recognized profiles may be shown in the list. Searching for anonymous customers, remember to change the **Show** option to **All**. </div></div></div> - [Form integration](/developers/web/tracking-form-data) - more information about trancking form data you can find here. ### Check how to find your UUID Check how to find your UUID in the incognito mode in the video below. <div class="vimeo-embed vimeo-facade not-prose" data-vimeo-id="830795831" role="button" tabindex="0" aria-label="Play Integration - Find your UUID"><img src="https://i.vimeocdn.com/video/1675796015-a28212d3c9066fda26d3aba74cfed4a1662f5b99e3a4fd40f14d000a8aae920f-d_1280?region=us" alt="Integration - Find your UUID" class="vimeo-facade-thumb" loading="lazy" /><span class="vimeo-facade-play" aria-hidden="true"><svg viewBox="0 0 68 48" width="68" height="48"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.64 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="#00adef"/><path d="M45 24 27 14v20" fill="white"/></svg></span></div> ### AI model training --- 1. Item ID must be the same in transactional events, og:tags, item feed, cart events. You can check the status of your item for consistency with item-related events. Eliminating discrepancies allows you to improve your item data and optimize your recommendations. See ["Item consistency" in "Monitoring Item feed status"](/docs/settings/configuration/ai-engine-configuration/feed-status#item-consistency). 2. Make sure you meet the minimum data requirements to launch the models. - [AI requirements](/docs/ai-hub/recommendations-v2#requirements) - more information about AI models requirements, you can find here. ``` # STEP 2 Jinjava tags --- ## Introduction --- Jinjava tags are a powerful tool. This chapter will explain how to use jinjava tags to access and manipulate data, as well as how to use them to create interactive elements. By leveraging the power of jinjava tags, developers can create dynamic and engaging campaigns that will keep their customers coming back. **From this chapter you will learn:** <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">how to use jinjava tags, <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">about specific examples of use cases. ## Jinjava tags --- Tags are jinjava-based functions created by Synerise. They enable easier access to some jinjava expressions, with additional or alternative logic tailored to the needs of our clients. Thie video below is an introduction to Jinjava tags. It explains how to use them in Synerise campaigns. It covers a range of topics from creating simple tags to using advanced features such as filters, expressions and more. It also provides code examples to help you understand how to use the tags. Whether you're a beginner or a programmer, this video will give you a thorough understanding of the features and usage of Jinjava tags. ### Jinjava Advanced | Expressions and aggregates --- With Jinjava, you can use expressions to evaluate and manipulate data within templates, making it easier to display calculated values. You can also add inserts with aggregates, and this enables you to present information in a concise and organized manner. <div class="vimeo-embed vimeo-facade not-prose" data-vimeo-id="830462191" role="button" tabindex="0" aria-label="Play Jinjava Advanced | Expressions and aggregates"><img src="https://i.vimeocdn.com/video/1675291039-ec6765544ea7c1c5bd5e44ced1d58e0c3b9d8fc5abd21210c89deb69ac8dcd34-d_1280?region=us" alt="Jinjava Advanced | Expressions and aggregates" class="vimeo-facade-thumb" loading="lazy" /><span class="vimeo-facade-play" aria-hidden="true"><svg viewBox="0 0 68 48" width="68" height="48"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.64 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="#00adef"/><path d="M45 24 27 14v20" fill="white"/></svg></span></div> <br> ### Jinjava Advanced | Recommendations --- Jinjava engine is useful for recommendations. By harnessing its capabilities, you can add inserts with you recommendation campaigns that suggest relevant content or products to users based on their preferences, previous interactions, and so on. <div class="vimeo-embed vimeo-facade not-prose" data-vimeo-id="830462347" role="button" tabindex="0" aria-label="Play Jinjava Advanced | Recommendations"><img src="https://i.vimeocdn.com/video/1675290649-e63e75b35bf2269b65e3784747902de96b3b9619968a9fd5e7a7383fe17db83f-d_1280?region=us" alt="Jinjava Advanced | Recommendations" class="vimeo-facade-thumb" loading="lazy" /><span class="vimeo-facade-play" aria-hidden="true"><svg viewBox="0 0 68 48" width="68" height="48"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.64 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="#00adef"/><path d="M45 24 27 14v20" fill="white"/></svg></span></div> <br> ### Jinjava Advanced | Catalogs --- Jinjava lets you retrieve and work on data stored in catalogs. <div class="vimeo-embed vimeo-facade not-prose" data-vimeo-id="830462450" role="button" tabindex="0" aria-label="Play Jinjava Advanced | Catalogs"><img src="https://i.vimeocdn.com/video/1675290748-5197a90f73319af5b329f4295112f6349a6bad36fb9716213a5640bff2dfe4f7-d_1280?region=us" alt="Jinjava Advanced | Catalogs" class="vimeo-facade-thumb" loading="lazy" /><span class="vimeo-facade-play" aria-hidden="true"><svg viewBox="0 0 68 48" width="68" height="48"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.64 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="#00adef"/><path d="M45 24 27 14v20" fill="white"/></svg></span></div> <br> ### Jinjava Advanced | Campaigns and automation inserts --- You can use Jinjava with automations and campaigns. It enables marketers and automation specialists to create dynamic email templates with personalized content based on recipient data or specific campaign parameters. By using Jinjava in email marketing workflows, businesses can deliver highly tailored and engaging messages to their audiences, leading to improved customer engagement, higher conversion rates, and streamlined campaign management. <div class="vimeo-embed vimeo-facade not-prose" data-vimeo-id="830462500" role="button" tabindex="0" aria-label="Play Jinjava Advanced | Campaigns and automation inserts"><img src="https://i.vimeocdn.com/video/1675290857-c31cd4b43b5d92a2f3a0162f95332c187dd309491e64137495848621b5015bb5-d_1280?region=us" alt="Jinjava Advanced | Campaigns and automation inserts" class="vimeo-facade-thumb" loading="lazy" /><span class="vimeo-facade-play" aria-hidden="true"><svg viewBox="0 0 68 48" width="68" height="48"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.64 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="#00adef"/><path d="M45 24 27 14v20" fill="white"/></svg></span></div> <br> - [Jinjava documentation](/developers/inserts/tag) - check the complete documentation connected with specific jinjava tags. # STEP 3 Automation --- ## Introduction --- This user-friendly module allows you to create, validate, and automate the entire customer workflow, starting from transactional emails (thanks to emails, confirmations, and so on) to advanced multi-path marketing strategies. **From this chapter you will learn:** <br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">What the Automation module looks like, <br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">where to find the information about basic configuration. ## Automation module --- Every automation process could be built from five types of nodes: 1. **Triggers** - When their conditions are met, they start the automation. 2. **Conditions** - These narrow down the number of target profiles and eliminate those who shouldn't be the subject of further actions. 3. **Operation nodes** - This is a collection of nodes which are meant to transfer, upload files and transform data. 3. **Actions** - These are actions taken by the system in relation to profiles, such as updating data or sending messages. 4. **Flow control** - These nodes organize the automation flow. Learn more about nodes and creating easy automations from our video! <div class="youtube-embed youtube-facade not-prose" data-youtube-id="cxch2GUlkWM" role="button" tabindex="0" aria-label="Play Campaigns - Workflows"><img src="https://img.youtube.com/vi/cxch2GUlkWM/hq720.jpg" alt="Campaigns - Workflows" class="youtube-facade-thumb" loading="lazy" /><span class="youtube-facade-play" aria-hidden="true"><svg viewBox="0 0 68 48" width="68" height="48"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.64 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="red"/><path d="M45 24 27 14v20" fill="white"/></svg></span></div> - [Automation documentation](/docs/automation) - check the complete documentation of the Automation module. # STEP 3 Events --- ## Introduction --- Synerise platform mainly works on events. In the parameters of each event you can pass detailed information about specific interactions with all customer/brand touchpoints. Within the event, we collect data about interactions such as page visits, displaying dynamic content in mobile app, opening the newsletter and so on. The event is the main data in Synerise that we can collect and later use to create personalized communications, recommendations and analytics. **From this chapter you will learn:** <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">how to implement transactions, <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">how to import historical transactions, <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">about the cart.status event, <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">about OG tags. <div class="vimeo-embed vimeo-facade not-prose" data-vimeo-id="830794987" role="button" tabindex="0" aria-label="Play Introduction to events"><img src="https://i.vimeocdn.com/video/1675794757-4ea6c41a4defcaea410351d0810a308ab19f6bcaa92ad32474c149db0f1b62d2-d_1280?region=us" alt="Introduction to events" class="vimeo-facade-thumb" loading="lazy" /><span class="vimeo-facade-play" aria-hidden="true"><svg viewBox="0 0 68 48" width="68" height="48"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.64 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="#00adef"/><path d="M45 24 27 14v20" fill="white"/></svg></span></div> ## Events --- The tracking code collects events, which store the data of touch points with your brand (all customer’s activities on the website). For example, opening the page is saved as the page.visit event. Sometimes, events also define the activities directed at the user, such as sending an email (message.send) or a web push notification (webpush.send). The application can generate these events thanks to the implementation of a tracking code and/or SDKs and the API. - **Some events are collected by default, for example:** - page visits - session start/end for anonymous users - system events such as: message sent, newsletter open - **Other events must be implemented additionally, for example:** - adding to cart - transactions - adding to favorites - button clicks - and anything else you need to track, including custom events - [Events](/docs/assets/events/event-definitions) - read more details about events, their types and places in Synerise in which you can find them. Among this chapter in documentation you will find information about: - [Definitions](/docs/assets/events/event-definitions) - [Event parameters and enrichment](/docs/assets/events/adding-event-parameters) - [Event authentication settings](/docs/assets/events/event-settings) - [Synerise event reference](/docs/assets/events/event-reference/default-events) <div class="vimeo-embed vimeo-facade not-prose" data-vimeo-id="830794766" role="button" tabindex="0" aria-label="Play Events Usage"><img src="https://i.vimeocdn.com/video/1675797909-198bfa7e92ae38a4f9a946f09844e521158bed9cb3f0c8aaa3a03c5fb351f83d-d_1280?region=us" alt="Events Usage" class="vimeo-facade-thumb" loading="lazy" /><span class="vimeo-facade-play" aria-hidden="true"><svg viewBox="0 0 68 48" width="68" height="48"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.64 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="#00adef"/><path d="M45 24 27 14v20" fill="white"/></svg></span></div> ## Implementing transactions --- <img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/themes/book/static/images/icon-api.svg" alt="Arrow down icon" class="icon"> **Why you need this integration:** To collect transactional events in real-time. <img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/themes/book/static/images/icon-communication.svg" alt="Arrow down icon" class="icon">**What type of campaigns require such integration:** You will need this data for ecommerce performance analyses, creating more advanced segments for campaigns, creating an abandoned cart campaign, training AI recommendation models such as cross-sell. Transaction events are one of the most important events that you can store in Synerise. You store them as a `transaction.charge` event with all the details regarding the transaction, for example which products have been bought (`products` parameter), the transaction value (`$totalAmount` parameter), the discount value (`$discountAmount` parameter) or the transaction source (`$offline` parameter), and so on. Additionally, each `transaction.charge` event generates an additional `product.buy` events. They are generated separately for each bough product, which means that in a transaction event with 5 different product IDs generates 1 `transaction.charge` and 5 `product.buy` events in Synerise. The `product.buy` event stores data about the product bought (ID, price, color, link, and so on). Both the `product.buy` and `transaction.charge` events will consist of default (required) and custom attributes. A few examples of custom attributes are information about the chosen delivery option, ID of the point of sale (POS) where the transaction was made, used coupon, and so on. You can use any custom names for such attributes. With default attributes, however, you should follow the Synerise guidelines as those must be named in a specific way and should have a specific format. Such attributes are tagged with a special ‘$’ character in the name, such as: transaction.charge: - $currency - $orderStatus - $paymentType - $offline - $source - $revenue - $totalAmount - $orderId product.buy: - $currency - $regularPrice - $discountPrice - $finalUnitPrice - $netUnitPrice - $tax - $orderStatus - $sku - $quantity - $name - $image - $categories - $category - $orderId ### Ways to integrate online and offline transactions --- #### Integration by JS SDK - with dataLayer - with syneriseLayer This section provides a verification checklist **for ONLINE TRANSACTIONS** to ensure that all of the necessary steps are taken. It includes a list of information that must be collected and evaluated to make sure that everything works. - [Creating a transaction by JS SDK](/developers/web/transactions-sdk) - learn more about creating a transaction by JS SDK. #### Integration by API Online transactions can also be integrated by the API. You have to create an [API key](/docs/settings/tool/api) with the appropriate scope and permission. <div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content"> The SKU in the transaction frame must be the same as the `product:retailer_part_no` and product ID in the product feed. </div></div></div> - [Creating a transaction by the API](https://hub.synerise.com/api-reference/data-management#operation/CreateATransaction) - learn more about creating a transaction by the API. #### Other ways of integration The integration way described above is the default one. There are also additional options such as: - Running a file import through Data Transformation modules – data will be transferred to Synerise in files. There is a possibility to import such a file manually and/or schedule an import from SFTP/FTP. The minimum necessary transaction details should be included in the file and formatted according to the documentation in order to upload the file. If the data format is different from Synerise requirements, check if the data might have been automatically transformed in Synerise Shovel (the import module). If so, remember that once defined, the data structure should remain the same for all imports made with that configuration. - ["Import Transactions" node documentation](/docs/automation/actions/synerise-integrations/import-transactions) - [Use case example with Data Transformation](/use-cases/import-transactions-dt) - If you can’t use the default way of integrating transactions, you can choose the incoming webhooks integration. Synerise will generate a custom endpoint which can receive any custom data format. The events might be sent out as soon as the endpoint is configured. However, it is necessary to prepare a specific configuration of the data flow. To do this, go to the Automation module and create a path, which will capture the data frame of a transaction, convert it into a format corresponding to Synerise and send it to the customer's card. Remember that currently, requests sent to incoming webhooks are not authorized in any way (we are working on introducing this functionality), while each endpoint is generated individually for a specific integration on a given workspace. - [Incoming webhook node](/docs/automation/integration/incoming-webhook-node) - learn more about incoming webhook node. ### Event salt --- This parameter is used for example to generate an UUID for the transaction event. When a transaction has an eventSalt, it can be overwritten by sending another transaction with the same eventSalt and recordedAt as the original transaction. A transaction that has no eventSalt cannot be overwritten. The parameter cannot be added at a later time. <div class="admonition admonition-important"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content"> eventSalt must be unique in the whole system. The parameter cannot be retrieved later. You must keep track of the values that you send. In case we use an eventSalt , it is necessary to check if the overwritten events are stored properly in the CRM and analytics </div></div></div> ## Import of historical transactions --- <img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/themes/book/static/images/icon-api.svg" alt="Arrow down icon" class="icon">**Why you need this integration:** To store historical transaction information in the system and provide data for AI models. <img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/themes/book/static/images/icon-communication.svg" alt="Arrow down icon" class="icon">**What type of campaigns require such integration:** When you want to launch an AI campaign, our algorithm will need data to learn from. If you’ve already been working on Synerise for a while and there is already a substantial amount of data in the system, this step may be skipped. However, if you’ve just started your journey with Synerise and there is no data in the system yet (or small amounts), then it is necessary to supply our algorithm with historical data for some AI campaigns. <img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/themes/book/static/images/icon-communication.svg" alt="Arrow down icon" class="icon">**Which types of AI campaigns require transactional data:** Cross-sell, cart recommendations, bestsellers. <div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content"> The documentation below describes the entire import process. Remember that productID/SKU must be the same as product:retailer_part_no. </div></div></div> - ["Import Transactions" node documentation](/docs/automation/actions/synerise-integrations/import-transactions) - [Use case example with Data Transformation](/use-cases/import-transactions-dt) ## cart.status event --- <img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/themes/book/static/images/icon-api.svg" alt="Arrow down icon" class="icon">**Why you need this integration:** This will give you exact information about what products a customer had in their cart. <img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/themes/book/static/images/icon-communication.svg" alt="Arrow down icon" class="icon">**What type of campaigns require such integration:** It will be used for AI cart recommendation campaigns and abandoned cart emails, but it will also let you prepare dynamic content campaigns on the cart level – for example, if a user has 2 items from the same brand in their cart, you can show them a promotion. This step is not mandatory, but it has an impact on the quality of the recommendations and abandoned cart scenario. This section provides a verification checklist **for CART STATUS EVENT**to ensure that all of the necessary steps are taken. It includes a list of information that must be collected and evaluated to make sure that everything works. - [Cart.status documentation](/developers/web/cart) - learn more about the cart.status documentation ## OG:tags --- OG:tags are specific `<meta>` tags in the item's page HTML code that describe the details of the item. For example: <pre><code class="language-html"><!DOCTYPE html> <html lang="en"> <head> ... <title>First Steps :: Synerise Hub</title> <!-- OG tags --> <meta property="product:retailer_part_no" content="1a4d3380"> <!-- obligatory! --> <meta property="og:title" content="First Steps" > <meta property="og:url" content="/first-steps/" > <meta property="og:description" content="Learn how to use Synerise efficiently, to have greater impact on your customers, and to overcome every challenge that your brand faces. Visit this section frequently, as we add more and more use cases regularly" > <meta property="og:image" content="https://upload.snrcdn.net/9bbb7035ecf3565cceed63d321d7d9b31236850d/default/origin/d566594dc7f7a725f4fa9578457aab8f.png" ></code></pre> The metadata must be included after the script which initializes the tracking code. The most important tag is `product:retailer_part_no`, which is the item's unique ID (same as the itemId in the item feed, or the SKU in API requests). **This tag is obligatory.** It lets you associate page view events with a particular item. They come in two forms: - `og:property_name` - basic information such as type, image, site_name, url - `product:property_name` - additional information such as price, brand, color, and so on Whenever a page.visit event is sent, all the OG tags of the viewed page are included in the event data. This allows you to use that information, for example in Automation, or in Jinjava inserts. Additionally, the OG tag data from page.visit events is automatically saved to a catalog named `Snrs-produktu-ogTag`. You can use data from this catalog in inserts or automations, but an item's data is only updated when someone visits the page, so it's not recommended to rely on this catalog as the primary source of data. The catalog is useful for checking if data from events is collected properly. <div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content"> If too many OG tags are sent with a page.visit event, they may be blocked by the browser due to too many characters in the request. In case of exceeding the limit, page.visit event is sent without og:tags. These are the limits for different browsers: Browser | Request length --- | --- Google Chrome™ | 32779 Android™ Browser | 8192 Firefox | >64k Safari® | >64k Internet Explorer | 112047 Microsoft Edge 16 | 162047 </div></div></div> This section provides a verification checklist **for OG:TAGS**to ensure that all of the necessary steps are taken. It includes a list of information that must be collected and evaluated to make sure that everything works. - [OG:tags documentation](/developers/web/og-tags) - OG tags are described in more detail in the Developer Guide. # TEST YOURSELF --- **Are you ready to put your knowledge to the test and challenge yourself?** Solve a few tasks to check your knowledge! You can solve them using the Synerise platform (Synerise Demo workspace). If you don't have access to the Synerise Demo workspace, please leave your contact details in this [form](https://demo.synerise.com/request), and our representative will send you the access shortly. Good luck on this exciting adventure! (Note: The videos with answers are available below. Make sure to watch them to check if you did well!) <br> Create a segmentation of female customers who are from Washington city, who haven't purchased anything so far and have added an item to the cart in the last 30 days only during weekdays. <br> Create a trend of transactions made in October 2022 that is presented in the form of daily intervals. <br> Create an aggregate that returns names of last 2 products added to cart. <br> <figure> <img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/first-steps/campaigns/_gfx/cert.png" alt="certification" class="full no-frame" > </figure> ### Want more? Pass the Synerise Certification! This chapter will enable you to easily obtain the **SYNERISE ANALYTICS CERTIFICATION**. Do not hesitate! You have a knowledge about the analytics, so you are ready to grab those Certificate today! #### SYNERISE ANALYTICS ➡️ **Log in to Synerise Academy and go to [Analytics Course](https://academy.synerise.com/course/analytics) and pass the certification.** # First Steps ## Welcome to the Synerise First Steps! ...the ultimate guide, on your way to becoming a Synerise pro-user! <div style="max-width:600px"> <div class="youtube-embed youtube-facade not-prose" data-youtube-id="O-Aa5CnQhVk" role="button" tabindex="0" aria-label="Play SYNERISE FIRST STEPS"><img src="https://img.youtube.com/vi/O-Aa5CnQhVk/hq720.jpg" alt="SYNERISE FIRST STEPS" class="youtube-facade-thumb" loading="lazy" /><span class="youtube-facade-play" aria-hidden="true"><svg viewBox="0 0 68 48" width="68" height="48"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.64 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="red"/><path d="M45 24 27 14v20" fill="white"/></svg></span></div> </div> ### What is the goal of this guide --- We’ve prepared this onboarding process to help you better understand our system and enable you a smooth and **quick start with Synerise**. If you're feeling a bit lost in the vast expanse of our system, fear not! We've got you covered with this guide that'll have you up and running in no time. <img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon"> Our First Steps Guide will teach the basics of the Synerise Platform, from setting up your account to launching your first campaigns. <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">You will also learn how to wield the power of AI and gain insights into customer behavior to deliver personalized experiences. <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">With our help, you will be optimizing your processes and launching successful campaigns before you know it. ### What you can learn --- Accomplish our First Steps program and be ready to start your daily work in Synerise! With **SYNERISE FIRST-STEPS GUIDE** you can: <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">find out how the entire integration process looks, step by step, <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">easily integrate your website with Synerise platform, <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">learn how to set up your first campaigns, <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">discover the possibilities of analytics in Synerise, <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">learn how to prepare your first AI recommendations. <br> ### How to use this Guide --- To get the most out of our guide, don't skip any lessons and stick to the order we've laid out. Our Client Success and Implementation team experts have carefully prepared the order of the lessons so that it is easy to understand how to prepare the integration process. In every chapter you will find a few types of content: <img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">**Introduction and basic information** – read them all to become familiar with the topic. <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">**Links to our knowledge base and documentation** – presented in the special frame - where you will find links to documentation and technical instructions where you can find more information and complete documentation. <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">**Videos** – video materials created by our experts which give you a wider perspective and show you examples of use. <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">**Quiz** – a few questions which let you check how to use your knowledge in practice. Solve them and watch the video below each question, in which we show how to do the task step by step, to be sure that you did it well! <br> In case of questions you can always contact us at any time - using our form, directly or via Service Desk. **Enjoy your learning process!** *Synerise Team* <br/><br/> # TEST YOURSELF --- **Are you ready to put your knowledge to the test and challenge yourself?** Solve a few tasks to check your knowledge! You can solve them using the Synerise platform (Synerise Demo workspace). If you don't have access to the Synerise Demo workspace, please leave your contact details in this [form](https://demo.synerise.com/request), and our representative will send you the access shortly. Good luck on this exciting adventure! (Note: The videos with answers are available below. Make sure to watch them to check if you did well!) ## Communication --- <br> Create an email campaign in which only you will be the audience. Create an A/B test: - Create the basic template - Change the subject of the email - Variant A: We have a special offer for you! - Variant B: [Insert customer firstname], check your offer! To do this task you will need [inserts](/developers/inserts/insert-usage). - Create 2 segments: - users who got campaign with variant A - users who got campaign with variant B <br> Go to Dynamic Content campaign and prepare easy pop up which will be displayed on the Synerise Demo anytime user will scroll 50% of the website. (Add to the audience only your user to be sure that nobody apart you will see it). <br> Create SMS template, where you will add: - customer firstname - short url - https://demoshop.synerise.com/ - make sure the clicks form this url will be tracked To do this task you will need short link [instruction](/docs/campaign/SMS/creating-SMS-template#short-links). <br> <br> ## Automation --- <!-- <br> Create automation which will update customer’s newsletter agreement (newsletter_agreement). Turn on newsletter agreement when user visits website fill in the form – in Synerise Demo add the email to the newsletter subscription form. --> <br> Import [product feed](https://snrcsi.blob.core.windows.net/items/feed.xml) to your newly created catalog. No data transformation is needed, use import. <br> Using data transformation add the [file](https://snrcsi.blob.core.windows.net/items/feed.xml), used in the previous task. - Transform email address and phone number according to API documentation - Add column “import” with current date - Merge columns import with column “customerStatus” <br> <!-- Create birthday automation which sends email messages with coupons. You can find a similar use case in our use case base. --> <br> <figure> <img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/first-steps/campaigns/_gfx/cert.png" alt="certification" class="full no-frame" > </figure> ### Want more? Pass the Synerise Certification! This chapter will enable you to easily obtain the **SYNERISE CERTIFICATION**. Do not hesitate! You have a knowledge about the campaigns and automation so you are ready to grab those Certificate today! #### SYNERISE SMS ➡️ **Log in to Synerise Academy and go to [SMS Course](https://academy.synerise.com/course/sms-campaigns) and pass the certification.** #### SYNERISE MOBILE ➡️ **Log in to Synerise Academy and go to [Mobile Course](https://academy.synerise.com/course/mobilecampaigns) and pass the certification.** #### SYNERISE WEB PUSH ➡️ **Log in to Synerise Academy and go to [Web Push Course](https://academy.synerise.com/course/webpush) and pass the certification.** #### SYNERISE EMAIL ➡️ **Log in to Synerise Academy and go to [Email Course](https://academy.synerise.com/course/email) and pass the certification.** #### SYNERISE DYNAMIC CONTETN ➡️ **Log in to Synerise Academy and go to [Dynamic Content Course](https://academy.synerise.com/course/dynamic-content) and pass the certification.** #### SYNERISE AUTOMATION ➡️ **Log in to Synerise Academy and go to [Automation Course](https://academy.synerise.com/course/automation) and pass the certification.** # STEP 4 Predictions --- ## Introduction --- Predictions are a codeless AI-powered tool built on top of Synerise analytics to predict any type of event or action in a customer’s journey. **From this chapter you will learn:** <br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">how predictions work, <br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">where to find full predictions documentation. <div class="vimeo-embed vimeo-facade not-prose" data-vimeo-id="830795153" role="button" tabindex="0" aria-label="Play AI - Predictions"><img src="https://i.vimeocdn.com/video/1675796930-669271963b0721eab21f9c59daedc131a0b3c9884035342109ee98d0e335d756-d_1280?region=us" alt="AI - Predictions" class="vimeo-facade-thumb" loading="lazy" /><span class="vimeo-facade-play" aria-hidden="true"><svg viewBox="0 0 68 48" width="68" height="48"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.64 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="#00adef"/><path d="M45 24 27 14v20" fill="white"/></svg></span></div> - [Predictions](/docs/ai-hub/predictions) - learn more about Synerise predictions. ## Requirements --- The following list explains basic requirements necessary to start working with predictions: 1. [Enable Predictions](/docs/ai-hub/predictions/enabling-predictions). Decide which of the predictions types you would like to enable: - [Lookalikes](/docs/ai-hub/predictions/lookalikes) - [Custom predictions](/docs/ai-hub/predictions/custom) - [Propensity predictions](/docs/ai-hub/predictions/propensity) Further steps depend on whether your workspace contains the minimum required data. 3. Once the set-up is ready, it usually takes a few hours to initialize predictions on your workspace. Once the initialization is done, you can make your first prediction. - [Quick start with predictions](/docs/ai-hub/predictions) - learn more about quick start with Synerise predictions. ## Types of predictions --- Synerise offers 3 types of predictions, described below. ### Custom predictions --- You can use the Custom prediction type to predict any type of event or customer’s action that can be calculated in an expression and produce a numerical or 1/0 (true/false) value. Here are a few examples of what you can predict: - Churn likelihood - Conversion - Open rate (OR) - Click-through rate (CTR) - Click-to-Open rate (CTOR) - Who will visit - Purchases from abandoned basket - [Custom predictions](/docs/ai-hub/predictions/predictions-introduction#regression-and-classification-predictions) - check the requirements for custom predictions. ### Lookalikes predictions --- You can use Lookalikes for discovering new segments of customers, extending reach, picking the most promising new comers with regards to their similarity to your best customers. The list contains a few examples of what you can discover: - Segment of customers likely to convert to your yearly repeating marketing campaign - The best offline, fresh customers - Best customers in a specific location - And many more - [Lookalikes predictions](/docs/ai-hub/predictions/predictions-introduction#lookalikes) - check the requirements for lookalikes predictions. ### Propensity predictions --- Propensity predictions let you evaluate how likely customers are to buy products with specific features, such as: - Brand - Category - Color - And many more - [Propensity predictions](/docs/ai-hub/predictions/predictions-introduction#propensity-predictions) - check the requirements for propensity predictions. # STEP 5 Marketing consent Synerise lets you use default marketing agreements (such as for email newsletters) and create your custom ones, for example consent to receive communications that feature alcohol. The custom agreements are profile attributes, which are then used to recognize the customers who enabled them (for example, to create target audiences for an ad) and can be managed like any other attribute with the APIs and SDKs. <div class="admonition admonition-important"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content"> If you use the [WooCommerce](/docs/settings/tool/woocommerce-integration) or Magento ([v1.x](/docs/settings/tool/magento/magento-integration) or [v2.x](/docs/settings/tool/magento/magento-integration-multistore-support)) plugins, you can configure agreement collection and data synchronization in those plugins instead of following the scenarios described further in this article. </div></div></div> You can: - [Collect agreements in other tools and import them into Synerise to facilitate communication with customers.](#pulling-data-from-other-systems-into-synerise) - [Use Synerise as the main agreement collection tool and database and export that data to your other databases.](#synerise-as-the-central-agreement-database) ## Pulling data from other systems into Synerise | If you want to: | then: | | --- | --- | | <ul><li>use an external system as the central agreement database,</li><li>use the external system and Synerise to send communications,</li><li>use Synerise to collect additional data about customers from their activity,</li></ul> | <ol><li>Collect consent data in the external system.</li><li>[Upload consent data (and then consent updates) into Synerise](#importing-data-into-synerise).</li><li>[Send data to the external system about new/updated profiles in Synerise](#exporting-data-from-synerise).</li><li>**Optional**: Collect email opt-out data [with a resignation page](#collecting-opt-out-data-with-a-resignation-page).</li></ol> | |<ul><li>use an external system as the central agreement database,</li><li>use the external system and Synerise to send communications,</li> | <ol><li>Collect consent data in the external system.</li><li>[Upload consent data (and then consent updates) into Synerise](#importing-data-into-synerise).</li><li>**Optional**: Collect email opt-out data [with a resignation page](#collecting-opt-out-data-with-a-resignation-page).</li></ol> | ### Importing data into Synerise You can import profile data into Synerise in the following ways: - By using the [`/v4/clients/batch`](https://hub.synerise.com/api-reference/profile-management#operation/BatchAddOrUpdateClients) API endpoint. If a profile sent in the request doesn't exist in Synerise, it is created. Custom agreements are sent as properties of the `attributes` object. See [developer guide](/developers/api/clients/profiles#creatingupdating-multiple-profiles). - By using the ["Import Profiles" node](/docs/automation/actions/synerise-integrations/import-customers) to upload the data from a CSV, XML, JSON or JSONL files from a server or from your device. This solution lets you use data transformation to modify data while importing in order to meet the requirements (such as column names) of the Synerise database. Thanks to this, the data on your server or device doesn't need to be modified before being uploaded to Synerise. - By using [incoming integrations](/docs/automation/integration/incoming-webhook-node) to upload data. Such an incoming integration should be secured with JWT. The above solutions can be used in real-time (for each profile as soon as it changes) or periodically (for example, once a day for the whole profile database). ## Synerise as the central agreement database | If you want to: | then: | | --- | --- | | <ul><li>use Synerise collect and store consent data;</li><li>use Synerise to send communications;</li><li>export the data to an external system</li></ul> | <ol><li>**Only for email**: Set up the [automation for collecting consent](/docs/settings/configuration/newsletter-sign-up).</li><li>Create consent collection mechanisms.<ul>You can use:<li>[Collecting newsletter agreements](/developers/web/newsletter-agreements)</li><li>[Collecting custom agreements (custom agreements are profile attributes)](/developers/web/tracking-form-data)</li><li>Other methods, such as updating a profile over API, depending on your integration needs</li></ul></li><li>Use one of the [methods of exporting data](#exporting-data-from-synerise).</li><li>**Optional**: Collect email opt-out data [with a resignation page](#collecting-opt-out-data-with-a-resignation-page).</li></ol> | | Use only Synerise to: <ul><li>collect and store consent data;</li><li>send communications</li> | <ol><li>**Only for email**: set up the [automation for collecting consent](/docs/settings/configuration/newsletter-sign-up).</li><li>Create consent collection mechanisms.<ul>You can use:<li>[Collecting newsletter agreements](/developers/web/newsletter-agreements)</li><li>[Collecting custom agreements (custom agreements are profile attributes)](/developers/web/tracking-form-data)</li><li>Other methods, such as updating a profile over API, depending on your integration needs</li></ul></li><li><li>**Optional**: Collect email opt-out data [with a resignation page](#collecting-opt-out-data-with-a-resignation-page).</li></ol> | ### Exporting data from Synerise Profile data can be exported from Synerise into your other systems by using Automations: - The [outgoing webhook integration](/docs/automation/integration/outgoing-webhook) lets you send an API request to any service. The target endpoint must be capable of accepting large amounts of data in multiple requests. These exports can be made: - in real-time, triggered for each profile when it's created or when its data changes. - Periodically, for the entire profile database or by using analytics to only send profiles that were created or modified since last export. Each profile update/creation is a separate request to the external API. A batch export option is not available in Automation. - The [SFTP](/docs/automation/integration/sftp-integrations/sftp-send-file) and [HTTP](/docs/automation/integration/http-integrations/http-send-file) "Send File" nodes let you export a segment of profiles as a CSV file to another service. An example of using SFTP integration with the "Get Profiles" node is described in [Efficiently Sync Customer Data Across Multiple Platforms Using Automation](/use-cases/synchronize-profile-data-with-external-services). <div class="admonition admonition-important"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content"> If you export data from Synerise and also import data into Synerise, be careful not to create a loop of requests which will trigger each other endlessly. </div></div></div> ## Collecting opt-out data with a resignation page You can use a resignation page to collect email opt-outs. It can be created in one of your systems or in Synerise. ### External resignation page When creating an email in Synerise, you can add a link to your own resignation page that sends data directly to your system. After the customer opts out, you need to inform Synerise about the consent update. - If your integration is configured to push data into Synerise immediately when a profile is updated, you don't need to do anything additionally. - If you normally import data periodically, you should update opt-out data immediately. You can do this: - with the [methods for importing data](#importing-data-into-synerise) into Synerise. - by including the tracking code to send an event and trigger an [automation that updates the profile](/docs/automation/actions/change-attribute-node) with the new consent status (`newsletter_agreement = disabled`). ### Resignation page created in Synerise If you use a [Synerise landing page](/docs/campaign/landing-page) to collect opt-outs, you need to: 1. Update the agreement in one of the following ways: - use an event with information about the opt-out to trigger [an automation that updates the profile](/docs/automation/actions/change-attribute-node) with the new consent status (`newsletter_agreement = disabled`). - use a [form or the JS SDK](/developers/web/newsletter-agreements). 2. [Export the updated consent data to an external system.](#exporting-data-from-synerise). # STEP 4 Customer identification --- ## Introduction --- If you want to collect data about your customers from forms, website etc. and effectively identify them, you should implement user identification methods. In this part, we will show you how to do it in a few simple steps. **From this chapter you will learn:** <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">about form integration, <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">about API integration, <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">about profile import methods, <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">about marketing consent, <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">about the Profiles module. <div class="vimeo-embed vimeo-facade not-prose" data-vimeo-id="830795286" role="button" tabindex="0" aria-label="Play Integration - Profiles"><img src="https://i.vimeocdn.com/video/1675795250-4e11735217fc2fbec6d0144e80e3f267ff141f5c6ee8cb91e01cf1961ed0c02a-d_1280?region=us" alt="Integration - Profiles" class="vimeo-facade-thumb" loading="lazy" /><span class="vimeo-facade-play" aria-hidden="true"><svg viewBox="0 0 68 48" width="68" height="48"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.64 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="#00adef"/><path d="M45 24 27 14v20" fill="white"/></svg></span></div> <div class="admonition admonition-warning"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L4.082 16.5c-.77.833.192 2.5 1.732 2.5z" /></svg></div><div class="admonition-body"><div class="admonition-content"> **Upcoming breaking change (effective July 6, 2026):** Synerise is introducing changes to how user identifiers and UUIDs are handled. These changes may affect profiles with accented or diacritical characters in identifiers, profiles with leading or trailing whitespace in identifiers, and profiles with duplicate UUIDs. For details and recommended actions, see [Upcoming changes to handling identifiers](/docs/settings/configuration/identifier-standardization). </div></div></div> ## Main assumptions --- <img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/themes/book/static/images/icon-api.svg" alt="Arrow down icon" class="icon">**Why you need this integration:** This step will let you assign email addresses to anonymous customers after completing forms on the site. You will gather more data about your customers for better personalization. <img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/themes/book/static/images/icon-communication.svg" alt="Arrow down icon" class="icon">**What type of campaigns require this integration:** Starting from simpler use cases such as collecting user email addresses in order to send our email campaigns, to more advanced ones such user identification in different channels in order to create omnichannel campaigns. **There are 4 main profile identifiers in Synerise:** 1. **email address** – by default, the main profile ID. Customers with this ID are considered recognized. 2. **customId (custom_identify)** - external profile ID, which is not an email address. It can take any form. It is used, for example, in the case of loyalty card numbers. CustomID might be used in imports and API requests. You can use customID as an addition to the email address (in this case, email must still be unique and will be the main ID) or make customID the main identifier (in this case, email address doesn't need to be unique). 3. **UUID** – these are Synerise cookies assigned to the profile. This cookie is assigned per browser. One profile might have many UUIDs, as this depends on the number of devices/browsers used by a profile. Each profile in the CRM will always have an UUID, so even if you are importing the database through API, a UUID will be generated. 4. **clientId** – internal profile ID generated by Synerise. <div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content"> The UUID is generated by Synerise, however there is a way to generate your [own defined cookies](/developers/web/uuids#resetting-customer-uuids). Check [how to find your UUID](/first-steps/integration/integration-review#check-how-to-find-your-uuid). </div></div></div> Synerise has a few default attributes which have the following names: - email - firstName - lastName - city - birthDate (value must be in YYYY-MM-DD format) - phone Any other attribute can have a custom name, e.g. if you would like to store attributes which will indicate if a user is a club member or not, you can decide how such an attribute should display, e.g., ClubMember, club_member, ClubMember etc. but once you choose one option, it can not be changed. There is also a list of attribute names that are created by various Synerise components and cannot be sent, available [here](https://hub.synerise.com/api-reference/profile-management#operation/CreateAClientInCrm) in the description of the attributes field. - [OG:tags documentation](/docs/settings/configuration/non-unique-emails) - check the complete documentation about setting customId as the main identifier. ## Form integration --- If you want to recognize customers, you have to integrate the forms you have on the website first. Then, after a customer sends a tagged form, an event is generated (form.submit). The event is then assigned to the ID used (email, uuid, clientID, customID). This step will allow you to assign email addresses to anonymous customers after completing the forms on the site. You will gather more data about your customers, for better personalisation. - [Event tracking documentation](/developers/web/event-tracking) - check the complete documentation about event tracking. ## API integration --- You can send form data from the backend (by using our API) but it’s a more complicated process. When you integrate forms using our JS SDK, it (by default) resets the UUID. This means that any time a customer provides a different email address on the same browser, Synerise recognizes them as a new profile – so when 2 customers use the same browser and log in to your website, their data will be collected as separate profiles in the CRM. In an API integration you are responsible for resetting UUIDs, so if you would like to use API integration, **please contact Customer Success & Implementation.** ## CRM import --- You can also import your current customer base with all necessary attributes and agreements to Synerise. To do this, please follow instructions in our help documentation. - [CRM import documentation](/docs/assets/imports/importing-clients) - check the complete documentation about CRM import here. ## Profiles module --- In the Customer profile, all information about an individual customer collected by Synerise can be found in one place. Below, you will find all important information about our Profiles module. ### Types of profiles --- In Synerise, there are two kinds of profiles: anonymous and recognized. **Anonymous profiles** These are customers for whom you do not possess identifying information in the form of an email (the primary identifier in Synerise). Such customers are created by: - A system based on the tracking code, with each user given a unique identifier (UUID) - Imported data, such as transactions (in which the user’s identifier is different than email or custom ID, for example UUID, profile ID, and so on. **Recognized profiles** Profiles whose email address is saved in your database. Emails can be added to the system by: - Completing a properly tagged form on the site - Import - Through API - When registering in the mobile app via SDK <div class="admonition admonition-important"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content"> You don't lose the profile's history when an anonymous profile becomes recognized. The operation updates the anonymous profile instead of creating a new one. </div></div></div> - [Profiles module](/docs/crm) - learn more about Profiles module. - [Profile attributes documentation](/docs/crm/customer-properties) - learn more about profile attributes, which helps you create the attributes you can assign to profiles. - [Tags - documentation](/docs/assets/tags) - learn more about Tags in Synerise and how to manage them. They are substitute of attributes, which allows marking profiles for filtering. - [User identification](/developers/web/user-identification) - learn more about user identification in Synerise. ### Profiles list --- To check how many profiles in the database are recognized/anonymous profiles, you can use the main Profiles view and select which types you want to include in the list. - [Profiles list](/docs/crm/filtering-profiles) - learn more about the Profiles module and searching for profiles. ### View of customer profile --- The profile view contains all important information about a specific profile. It consists of three columns. ![Screenshot presenting CRM list](/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/first-steps/integration/_gfx/crmlist2.png) 1. The left column includes demographic data about the profile, as well as information about the devices and browsers they use. This is where you can edit the profile, manage marketing consents, add attributes, delete or assign tags, and store contact details. 2. The middle column shows an overview of all activities, including events connected with profile behavior and system-related events. In this section, you can also send a message to the customer, add notes to the profile, or manually add events. 3. The column on the right shows dynamic information, such as expressions, segments or aggregates. - [Profiles module](/docs/crm/crm-profile) - learn more from the documentation connected with the Profiles module. ### Tags and Attributes --- Both anonymous and recognized profiles can be enhanced with tags and attributes. #### Tags Tags are a kind of label you can use to identify customers. Tags are permanently assigned to profiles: - When submitting a form from a site - During the import process - Directly on the profile card When a tag is added to a profile, a system profile is generated. ![Screenshot presenting tags](/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/first-steps/integration/_gfx/tags.png) 1. This is where you can find all the tags assigned to the profile. 2. Using this section, you can add or remove tags. - [Managing tags](/docs/crm/customer-tag) - learn more about managing tags. #### Attributes Attributes are variables that have a certain value. Compared to events, attributes are permanently assigned to profiles. - When submitting a form from a site - During the import process - Directly on the customer card - In automations When an attribute is added or changed, a system event is generated Attributes cannot be deleted for specific customers, only their values can be changed. Attributes can be edited from the customer detail view. Use the pencil icon to change the attribute. ![Screenshot presenting attributes](/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/first-steps/integration/_gfx/attributes.png) This section provides a verification checklist **for PROFILE MANAGEMENT** to ensure that all of the necessary steps are taken. It includes a list of information that must be collected and evaluated to make sure that everything works. - [Managing attributes](/docs/assets/events/adding-event-parameters) - learn more about managing attributes. # STEP 6 Time optimizer --- ## Introduction --- The time optimizer function is a powerful tool, which will help you to identify the best time to launch campaigns and optimize the time to get the best results. It uses data-driven insights to analyze past campaigns and make predictions on the most effective time to launch future campaigns. It also offers powerful insights on the effectiveness of your campaigns and helps you to adjust your strategies to achieve desired goals. **From this chapter you will learn:** <br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">what is time optimizer, <br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">how to use time optimizer. <div class="vimeo-embed vimeo-facade not-prose" data-vimeo-id="830795781" role="button" tabindex="0" aria-label="Play AI - Time Optimizer"><img src="https://i.vimeocdn.com/video/1675795935-c4ec31fd82bd18bf074c51f3be19b09cfab0ac17646a1d6c1854035869bd5670-d_1280?region=us" alt="AI - Time Optimizer" class="vimeo-facade-thumb" loading="lazy" /><span class="vimeo-facade-play" aria-hidden="true"><svg viewBox="0 0 68 48" width="68" height="48"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.64 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="#00adef"/><path d="M45 24 27 14v20" fill="white"/></svg></span></div> ## Time optimizer --- Synerise Time Optimizer is a powerful AI-driven automation tool that helps businesses to optimize their workflows, saving time and energy on tasks that can be automated. It also helps to identify opportunities to streamline processes, allowing businesses to focus on high-value tasks. With its intuitive interface and powerful AI engine, Synerise Time Optimizer is the perfect tool for businesses looking to improve their efficiency and productivity. You can use time optimizer in: - **Automation** - time optimizer can be utilized for automation purposes via the Optimize Time node, which tailors predictions to each customer individually. - **Experience Hub** - It can also be used for communication, such as when scheduling emails, mobile push notifications, SMS, and web push notifications. In this instance, time optimizer will generate predictions for the optimal time to send a message to the entire audience. - [Time optimizer](/docs/settings/configuration/time-optimizer) - learn more about time optimizer. # STEP 2 AI products recommendations - campaign types --- ## Introduction --- AI recommendations allow you to present unique AI-powered item recommendations through several channels in order to promote items and encourage customers to make a purchase. In this article, you will find more information about campaign types in Synerise. **From this chapter you will learn:** <br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">about the main AI campaign types, <br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">where you can find documentation about each campaign type. <div class="vimeo-embed vimeo-facade not-prose" data-vimeo-id="830795455" role="button" tabindex="0" aria-label="Play AI - Recommendations"><img src="https://i.vimeocdn.com/video/1675795865-17635102755808b57ad70de37f3ac51cf94ed0f0bd53ee0c7c659bacfc7ff60e-d_1280?region=us" alt="AI - Recommendations" class="vimeo-facade-thumb" loading="lazy" /><span class="vimeo-facade-play" aria-hidden="true"><svg viewBox="0 0 68 48" width="68" height="48"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.64 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="#00adef"/><path d="M45 24 27 14v20" fill="white"/></svg></span></div> ## Campaign types --- In general, recommendation types are divided into 3 groups, depending on their context, which determines where and how each campaign may be implemented. ### Recommendation in context of an item --- - **Similar** – shows related offers and recommends similar products to the ones the customer is looking for, based on item feed attributes and which products are frequently viewed together by customers on your website. - **Visual** - shows results of visually similar items, because the model analyzes images of the items from the item feed. - **Cross-sell** - offer complementary items to the ones the customers are viewing and get them to add more items to their shopping carts. - **Item comparison** - it shows the attributes of similar and previously viewed items in a table, which makes them easy to compare with the current item. Typically, these types of campaigns are implemented on the product page, but it’s possible to prepare, for example, cross-selling campaigns on the home page, with recommendations matching recently purchased products. Also in the context of an item we can use cart recommendations used in **multiple item context**. - **Cart recommendations** - items commonly bought with items added to the basket. You can place such recommendations in various places, e.g. on the product page or on the cart page. ### Recommendation in the context of a particular customer --- - **Personalized recommendations** - shows products which are best suited for each customer. The model is trained on the basis of the behavior of all customers. Based on personalized recommendations models each customer will get a unique set of recommended products. - **Last seen** - display the items which have been viewed recently by a particular customer. - **Recent interactions** - allows you to promote items towards which the customers performed a specific action which you select. - **Section** - allows you to display a section with personalized item features such as a category, brand, style, collection, and so on. [Read more ->](/docs/ai-hub/recommendations-v2/creating-section-recommendations) - **Attributes** - allows you to promote the features of the items, such as brand, styles, categories or any kind of attributes which are selected for each customer individually. [Read more ->](/docs/ai-hub/recommendations-v2/creating-attribute-recommendations) This type of campaign may be implemented in any page on your website, from home page to 404, and in emails. ### Recommendation with no context - **Top items** - display top items, such as bestsellers of the last 30 days, items which have been viewed the most during the last 30 days, etc. - [Recommendation types](/docs/ai-hub/recommendations-v2/recommendation-types) - learn more about types of recommendations. # STEP 1 Introduction to analytics --- ## Introduction --- Imagine being able to harness the power of the Synerise Analytics to gain insight into your customers' behaviour, analyse your data, and make data-driven decisions. With Synerise Analytics, you can quickly and easily identify trends, uncover opportunities, and explore the performance of your campaigns. In this chapter, you will learn how to use Synerise Analytics to get the most out of your marketing efforts. You will learn how the events and attributes are build and how to use them in further analysis. **From this chapter you will learn:** <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">how the analytics in Synerise are build, <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">how to prepare basic analytics. <div class="youtube-embed youtube-facade not-prose" data-youtube-id="TpA-wN5jMjU" role="button" tabindex="0" aria-label="Play First Steps in Analytics - Intro"><img src="https://img.youtube.com/vi/TpA-wN5jMjU/hq720.jpg" alt="First Steps in Analytics - Intro" class="youtube-facade-thumb" loading="lazy" /><span class="youtube-facade-play" aria-hidden="true"><svg viewBox="0 0 68 48" width="68" height="48"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.64 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="red"/><path d="M45 24 27 14v20" fill="white"/></svg></span></div> ## Events & attributes --- The analytical module consists of various types of elements that don't differ much in construction. Main element you will use during your work in analytics module is Event. Below you will find more information about options you have if you want to narrow it down and describe it in details. You can analyze whole events or narrow them down to specific parameters and choose their specific value. ![Screenshot presenting analytics](/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/first-steps/analytics/_gfx/analytics.png) 1. **Event;** Choose the event from the list of integrated events 2. **Parameter;** If you want to specify the event parameters, click the + where button. This way you can narrow your analysis to only particular occurrences of a type of event. 3. **Operator;** In this field you can define the operator. Possible options to choose from: - Date - It's connected with time; once you choose this parameter, you need to describe the date it refers to. Available options: Less than/more than - Number - It refers to numerical values. Available options: Less than, more than, less or equal to, more or equal to. - String - It refers to sequence of characters (letters, numbers, special characters). Available options: Equal, not equal, contain, not contain, starts with, ends with, regular expression, in, not in. - Boolean - You may use this operator to define if a specific event exists or use it as an exclusion. Available options: is true, is false - Array - You can describe the parameter value as an array (many values of one parameter separated by commas). 4. **Parameter’s value;** Here you can enter the value of the parameter. - [Analytics operators](/docs/analytics/i_events-parameter-operators) - if you want to learn more about those **operators**, read this article. - [Parameter's values](/docs/analytics/i_events-parameter-value) - if you want to learn more about those **parameter's values**, read this text. ## Date filters --- Date filter is an in-built option in the application that allows you to either perform certain actions or analyze data concerned with a chosen period. Date filters are scattered over the whole application and there are two versions of data filter. [Date filter](/docs/analytics/i_date-filters) - if you want to learn more about **date filters**, and how to use them read the documentation. ## Profile filters --- Profile filter lets you filter out a group of profiles that performed specific events or have specific attributes. As a result, you can create a separate group of profiles which will become a target of specific actions, e.g. profiles in such a group can be recipients of an email, web push or you can prepare analytics concerning this group. [Profile filter](/docs/analytics/i_profile-filter) - if you want to learn more about **profile filters**, and how to use them read the documentation. # STEP 1 Workspace & tracking code --- ## Introduction --- When you start working with Synerise, it is necessary to create your workspace and implement a tracking code to collect data about customer behavior. In this part, we will show you how to do it in a few simple steps. **From this chapter you will learn:** <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">how to create workspace, <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">is it better to create one or more workspaces, <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">how to implement tracking code. <!--<div class="youtube-embed youtube-facade not-prose" data-youtube-id="Y2U_VYx5tls" role="button" tabindex="0" aria-label="Play ANETA MASTERCLASS LESSON 1 INTRODUCTION"><img src="https://img.youtube.com/vi/Y2U_VYx5tls/hq720.jpg" alt="ANETA MASTERCLASS LESSON 1 INTRODUCTION" class="youtube-facade-thumb" loading="lazy" /><span class="youtube-facade-play" aria-hidden="true"><svg viewBox="0 0 68 48" width="68" height="48"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.64 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="red"/><path d="M45 24 27 14v20" fill="white"/></svg></span></div>--> ## Workspace --- It is necessary to provide information regarding the workspace and configure some data in the system. In this part, we will show you how to do it. ### One or more workspaces --- Synerise allows you to create one or more workspaces depending on your business needs. The workspace lets you manage your company information and users and their permissions. A workspace is where you collect data. If you have multiple websites or one website in multiple languages, you can: - Create a workspace for each of them, to store data separately. You will need to create a tracking code in each workspace and use it on the corresponding site or sites. - Create a shared workspace for multiple sites, to store data collected on those sites in the same database. You can use the same tracking code on all sites, or create multiple codes (data will still be sent to the same database). <div class="admonition admonition-important"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content"> If you use the same tracking code in multiple domains, the website visitor will receives cookies with the same identifiers in each of the domains – Synerise uuid – on each of them. If you generate and use different codes, the uuid will be different. </div></div></div> - [Installation & configuration](/developers/web/installation-and-configuration) - learn more about the installation and configuration. - [Cookies documentation](/developers/web/cookies#cookies) - learn more about the cookies documentation in Synerise.] #### Pros and cons of both options As described above, to achieve cross-domain tracking, implementing tracking codes on each domain and store data under one workspace is enough. There is no limit to the number of tracked sites in a given workspaces, nor the types of languages, currencies or product feeds, therefore operations on a global scale are not a limiting factor for Synerise. You can store as many product feeds as you like in the platform under one workspace. They may be multi-currency and multi-language, allowing to create as many AI models as needed. However, we know that each implementation is different and there may be different important factors of having one or more workspaces. Below, we provide you with a list of pros and cons, so that you can choose the most suitable solution for your business. Pros and Cons of collecting data from different domains in one / separate workspaces: **Number of business workspaces** | **PROS** | **CONS** --- | --- | --- **One business workspace** | Instant access to customer data from all domains.<br> Campaigns are easy to duplicate.<br> Access to all of the campaign statistics on one dashboard.<br> Customer data enrichment from different domains will help to create better segmentation and use the 360° customer profile for better targeting. If we want to create cross-domain AI campaigns, data enrichment from the domains will help you to train the model and target the audience better. | You mix our database from different domains within one workspace. The logic of source attributes is needed in order to properly manage the database.<br> If several mobile apps are integrated, there will be a complication with push campaigns (there is no possibility to store different tokens under one workspace so there will be no possibility to use encryption of the pushes).<br> Web push messages as above.<br> If there are different agreement policies between the domains, you will have to create custom attributes to define the consent policy in the system.<br> While sending a campaign, you should always pay attention to the chosen audience.<br> If we collect transactional data in different currencies, you can not use default analytics dashboards for revenue. Custom dashboards will have to be created. **Two or more business workspace** | Clear separation of the databases between the domains.<br> Using Synerise-native marketing agreements.<br> It is easier to manage the campaign setup (dynamic content, emails, etc.) because you don’t need to worry about checking the audience before sending (only the database from domain X) You also don’t need to indicate the direct URL/domain where the content will be displayed (you can just show content on all pages).<br> In the system, you will find default revenue analytics dashboards. If you have different currencies on the domains, you will only be able to use those default analytics when you store transactions in separate workspaces. | You will have to copy campaigns between the profiles. That will require more time.<br> You will have to run separate integrations for each workspace. <div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content"> <br>There is a possibility to transfer customer data between workspaces with the help of webhooks. <br>For now, you should copy campaigns manually between the workspaces. </div></div></div> ### Cross-domain scenarios worth remembering --- **Scenario: Anonymous user visits 2 domains from the same browser.** **Outcome:** User will have the same UUID (for example Synerise cookie) on each domain, so the user activity will be stored in Synerise under the same customer card. Exceptions are only in cases, when the user has already been identified on only one of the domains and is still anonymous on the other. **Scenario: Anonymous user visits 2 domains from the same browser, but then becomes identified on only one of the domains.** **Outcome:** When you identify a user on the domain (by sending the send form data event), the user UUID will be changed to a recognized one. From this point onwards, the user activity will be stored separately on the domains. **Scenario: Anonymous user visits 2 domains from the same browser, but then becomes identified on only one of the domains with an email which already exists in the database (for example, through a manual import).** **Outcome:** The anonymous profile will be merged by email address with the identified profile. The result is a single customer card. **Scenario: Anonymous user visits 2 domains from the same browser, but then the user becomes identified on both domains with the same email.** **Outcome:** Both UUIDS will be saved under the one customer card in Synerise, which will let you have the customer's behavioral history in one place. However, UUIDs will remain different on the browser level (in case they were different from the beginning). **Scenario: Anonymous user visits 2 domains from the same browser, but then becomes identified on both domains with different emails.** **Outcome:** UUIDS will be saved under separate customer cards in Synerise. The email will be merged with the UUID from each domain. In case the user had the same UUIDs on both domains from the beginning, then there will be a new UUID generated using the method “Send form data” (this method triggers the UUID reset in such cases). ### Workspace users --- When your account is created, you can think about adding your team to Synerise. Invite new users to the workspace. <br> 1. If you want to create more roles than the default ones (roles are used for permission management): 1. Go to **Settings > Access groups**. 2. Click **Add role**. 3. Name and save the role. 4. Edit the permissions of the role. 1. Go to **Settings > Users** and click **Invite**. 2. Fill in the details. 3. Assign a role or roles to the user. 4. Send the invitation. Watch our video to see how to add new roles and edit the permissions for each of them. <div class="vimeo-embed vimeo-facade not-prose" data-vimeo-id="845290868" role="button" tabindex="0" aria-label="Play Integration - Roles and permissions"><img src="https://i.vimeocdn.com/video/1697715203-d5c328c54aa9761af94f473b5958fd6ed42ad786a576919b944243e559a38849-d_1280?region=us" alt="Integration - Roles and permissions" class="vimeo-facade-thumb" loading="lazy" /><span class="vimeo-facade-play" aria-hidden="true"><svg viewBox="0 0 68 48" width="68" height="48"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.64 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="#00adef"/><path d="M45 24 27 14v20" fill="white"/></svg></span></div> <div class="admonition admonition-tip"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z" /></svg></div><div class="admonition-body"><div class="admonition-content"> If you want to establish a clear process of decision making with regard to campaigns, you can assign reviewers and an approver. These users will be responsible for verifying the quality and correctness of the campaign templates and approving them. Read more about approval services [here.](/docs/settings/configuration/service-approval) </div></div></div> - [Identity access management](/docs/settings/tool/iam-for-apps) - learn more about identity access managements.Among this chapter in documentation you will find information about: - [Adding new users](/docs/settings/identity-access-management/users) - [User permissions](/docs/settings/identity-access-management/permissions) ## Tracking code --- Tracking code implementation is the first step of integration. It is responsible for collecting data in our system. The tracking code allows us to set up a profile in Synerise and collect basic events such as page.visit, session.start, session.end. This script also initiates Synerise SDK, which allows you to integrate web push, track forms, set dynamic content on the website, and much more. See in our video how to generate our tracking code. <div class="vimeo-embed vimeo-facade not-prose" data-vimeo-id="844555838" role="button" tabindex="0" aria-label="Play Integration - Tracking code"><img src="https://i.vimeocdn.com/video/1697659688-b5350127c5918214f4161826b3d624a03ba986d5892698ca48760484ab5fabc8-d_1280?region=us" alt="Integration - Tracking code" class="vimeo-facade-thumb" loading="lazy" /><span class="vimeo-facade-play" aria-hidden="true"><svg viewBox="0 0 68 48" width="68" height="48"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.64 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="#00adef"/><path d="M45 24 27 14v20" fill="white"/></svg></span></div> - [Adding a tracking code](/docs/settings/tool/tracking_codes) - learn more about adding a tracking code step by step. - [JS SDK installation & configuration materials](/developers/web/installation-and-configuration) - learn more about JS SDK installation & configuration materials. ### Implementation --- To properly integrate a website with our platform, the tracking code must be added to the website. You should copy the script code by clicking **Copy to dashboard** and paste it into the code of each sub-page on the website before the `</body>` closing tag. The tracking code can be found in [**Settings > Tracking Codes**](https://app.synerise.com/spa/modules/settings/profile/tracking-codes/list/1). <div class="admonition admonition-important"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content"> The tracking code can also be implemented **via GTM** – but we recommend inserting it directly into the source code, because GTM may be blocked by tools such as adblock. </div></div></div> <div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content"> Check how to [find your UUID](/first-steps/integration/integration-review#check-how-to-find-your-uuid). </div></div></div> #### Event authentication settings By default, JS SDK collects some events without any authentication and since it's running on a website, you should consider adding the authentication element here for sensitive elements that you want to implement, such as transactional events. For that we provide a JWT token-based identity verification where we validate if incoming data has a valid JWT token for a given user. It's up to you to define which events can be accepted anonymously and which require JWT tokens. - [Events settings](/docs/assets/events/event-settings) - learn more about the events settings. Worth considering: - Choosing one integration way only If you choose to place the tracking code directly into the website code, you must remember that the rest of the integration should be done in exactly the same way (for example transactional events, form events, custom events, and so on). It is important because in some cases, GTM might be blocked by plugins such as ad blockers, but our tracking code placed directly into the source code will not be blocked. So, if you choose to do all of the integration directly through the source code of the website and send form events through GTM, it might cause a situation where page visits will be tracked properly, but form events will not be collected for the visitor. - We strongly encourage you to activate custom domain tracking. Custom domain tracking involves placing our SDK on a link within the client's domain to treat Synerise as 1st party data. This helps to bypass ad blocks and ghosters that might block your requests. It is a very helpful and highly recommended solution. Why is this integration needed? Custom domain tracking is a way to maintain tracking and handle the tracking protection mechanism introduced by: - browsers (Safari's Intelligent Tracking Prevention (ITP) or Mozilla's Enhanced Tracking Protection (ETP)) - ad blockers (adblock, ublock etc.) This section provides a verification checklist **for TRACKING CODE INTEGRATION** to ensure that all of the necessary steps are taken. It includes a list of information that must be collected and evaluated to make sure that everything works. <br> - [Custom tracking domain](/developers/web/first-party-tracking) - Learn more about the third party tracking. ### Tracking code variants --- There are several versions of our tracking code. Each version has a different feature set. - [Tracking code variants](/developers/web/installation-and-configuration) - learn more about the tracking code variants. ### SPA/PWA websites --- If your website is in SPA (single-page application) or PWA (progressive web application) technology, you must add the tracker and send events in a different way. - [Tracking code in single page application](/developers/web/installation-and-configuration) - learn more about the tracking code in single page application. Once this initial integration is done, you can start running your first campaigns on the website for anonymous customers! # STEP 5 AI Search --- ## Introduction --- AI search engines are capable of understanding user intent and providing intelligent search results that are more accurate and up-to-date. AI search is more than just providing relevant keywords, it can help discover hidden relationships and data patterns, making it easier to find the answers by your customers. In this chapter, we will explore the various AI search techniques and technologies available in Synerise. **From this chapter you will learn:** <br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">how to prepare basic search, <br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">what kind of requirements you should meet. - [AI Search](/docs/ai-hub/ai-search) - learn more about AI Search. <div class="vimeo-embed vimeo-facade not-prose" data-vimeo-id="830794659" role="button" tabindex="0" aria-label="Play Integration - AI Search"><img src="https://i.vimeocdn.com/video/1675794263-8fbb1add61cfa7adaa2558e102e169fad0536d6ee37ef2eca3f22ca8b86de1c5-d_1280?region=us" alt="Integration - AI Search" class="vimeo-facade-thumb" loading="lazy" /><span class="vimeo-facade-play" aria-hidden="true"><svg viewBox="0 0 68 48" width="68" height="48"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.64 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="#00adef"/><path d="M45 24 27 14v20" fill="white"/></svg></span></div> ## Configuring AI Search --- The article linked below describes the process of enabling the AI search engine on a website. First, the feature is configured, then the configuration is implemented so it can become operational. - [Configuring AI Search](/docs/ai-hub/ai-search/introduction-to-ai-search#configuring-ai-search) - learn more about configuring AI Search. ## Query suggestions --- The feature allows influencing phrases suggested to the customer whilst typing in the query in a search box and provide a customer with the optimal search experience. - [Query suggestions](/docs/ai-hub/ai-search/query-suggestions) - check this article to learn how to configure query suggestions. ## A/B testing --- By preparing A/B tests in AI Search, you can find out which configuration of the AI search brings better results in terms of conversion, revenue, and CTR in your business. - [A/B testing](/docs/ai-hub/ai-search/configuring-ab-test) - check this article to learn how to prepare the A/B test. ## Previewing AI Search results --- To test the results of the search engine or to check the results for a particular customer, you can use the Preview section in AI Search Engine. - [Previewing AI Search results](/docs/ai-hub/ai-search/previewing-search-engine-results) - check this article to see how you can preview your AI Search results. ## AI Search engine statistics --- The statistics module of the AI search engine allows you to break down the search results of the customers into data categories such as filter usage, popular searches, and so on. It also gives you an insight into the words and phrases the customers use. - [AI Search statistics](/docs/ai-hub/ai-search/ai-search-statistics) - check this article to see the way the statistics are counted. # STEP 1 Introduction to Jinjava --- ## Introduction --- Jinjava is a Java-based template engine, allowing the separation of application logic from its presentation layer. The principle of Jinjava operation consists in placing tags in the content’s source files. The tags are then replaced with content generated by the application. The system allows the use of control structures (tests (if), loops (for), and so on). It comes with an easy-to-use filter system. Places where you can use jinjava in Synerise platform are: - Inserts – used in communication module as a reference to created earlier analytics or AI recommendations. They can be used for example, if you want to personalize your email with the client’s name, adding the value of your client's last transaction or the number of loyalty points. - AI recommendations campaigns with a specific context (for example presenting products from a specific brand), - Automation module. Based on jinjava you are able to create consistent, omnichannel communication. By collecting information about a specific customer, you can create the best customer experience on different channels. All of that - keeping the client's context (e.g., his last visited pages, bought products, favorite categories) based on which you can create personalized communication with him at every touchpoint. **From this chapter you will learn:** <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">what jinjava is, <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">where in Synerise you can use jinjava. ## Jinjava basics --- Watch the videos below to learn the basics of Jinjava. With Jinjava, you can easily create custom templates, filter and manipulate data, and even build your own logic. Check it out and see how it can help you get the most out of Synerise! ### Jinjava Basics | Definition, delimiters and variables --- Jinjava engine allows you to use delimiters. Jinjava delimiters are special characters that mark the boundaries of instructions within a template. There are two types of delimiters: - Print Delimiters: They use double curly braces ({{ }}) and are used to display dynamic content in the template. Anything inside these delimiters will be evaluated and the result will be shown in the final output. - Tag Delimiters: They use curly braces with a percent sign ({% %}) and are used for executing logic and control structures within the template. You can use also variables, which represent dynamic data that will be rendered when the template is processed. Jinjava supports a wide range of variable types, including strings, numbers, lists, and objects, enabling developers to incorporate various data sources and manipulate them as needed. <div class="vimeo-embed vimeo-facade not-prose" data-vimeo-id="830461953" role="button" tabindex="0" aria-label="Play Jinjava Basics | Definition, delimiters and variables"><img src="https://i.vimeocdn.com/video/1675302913-bb4157735445e33df30e151026d5a563cf05e9c5749a53604d25352a279eda38-d_1280?region=us" alt="Jinjava Basics | Definition, delimiters and variables" class="vimeo-facade-thumb" loading="lazy" /><span class="vimeo-facade-play" aria-hidden="true"><svg viewBox="0 0 68 48" width="68" height="48"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.64 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="#00adef"/><path d="M45 24 27 14v20" fill="white"/></svg></span></div> <br> ### Jinjava Basics | Conditional statements and loops --- In Jinjava, one of the essential aspects is the utilization of conditional statements and loops. With conditional statements, such as "if" and "else", developers can add logic to their templates and control the rendering of specific content based on certain conditions. This enables dynamic rendering and the display of different content depending on the data or user input. Additionally, loops, like "for", provide the ability to iterate over collections or repeat a certain block of code multiple times, allowing for efficient and dynamic rendering of lists or other repetitive elements. <div class="vimeo-embed vimeo-facade not-prose" data-vimeo-id="830462024" role="button" tabindex="0" aria-label="Play Jinjava Basics | Conditional statements and loops"><img src="https://i.vimeocdn.com/video/1675290503-aae9fb57ee21c29f0c0102a9c16500f83b61b23a9165b44ecd904d425a4c454a-d_1280?region=us" alt="Jinjava Basics | Conditional statements and loops" class="vimeo-facade-thumb" loading="lazy" /><span class="vimeo-facade-play" aria-hidden="true"><svg viewBox="0 0 68 48" width="68" height="48"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.64 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="#00adef"/><path d="M45 24 27 14v20" fill="white"/></svg></span></div> <br> ### Jinjava Basics | Filters --- Another fundamental aspect of Jinjava Basics is the implementation of filters. Filters are functions that can be applied to variables within Jinjava expressions to modify their values or format them in a specific way. For example, filters can be used to convert text to uppercase or lowercase, format dates, truncate strings, or perform mathematical operations. Jinjava provides a wide range of built-in filters, and developers can also create custom filters to suit their specific needs. Filters enhance the flexibility and versatility of Jinjava templates by enabling data transformation and formatting without modifying the underlying data source. <div class="vimeo-embed vimeo-facade not-prose" data-vimeo-id="830462085" role="button" tabindex="0" aria-label="Play Jinjava Basics | Filters"><img src="https://i.vimeocdn.com/video/1675302850-2426797f1faffebc7c585107e228a96116e81ae65266cbc3c1ce880a916b5133-d_1280?region=us" alt="Jinjava Basics | Filters" class="vimeo-facade-thumb" loading="lazy" /><span class="vimeo-facade-play" aria-hidden="true"><svg viewBox="0 0 68 48" width="68" height="48"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.64 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="#00adef"/><path d="M45 24 27 14v20" fill="white"/></svg></span></div> <br> - [Jinjava documentation](/developers/inserts) - check the complete documentation connected with jinjava inserts. # STEP 3 Integration checklist --- ## Introduction --- In this step, we will show you examples of integration checklists. It is a basic one which can be necessary during the whole process of preparation for integration with Synerise. In the table below, you will find the elements which should be implemented, the implementation methods, additional comments, and links to documentation. Based on this table, you can create a task backlog for the team. You'll learn more about each of the integration tasks in the next chapters. ## Best practices --- **A few important notes before you start:** <br> <br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">The steps described below are presented as a reference for an ecommerce sector integration. <br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">Not all the integrations are needed to kick your project off. <br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">Check if some of the [plugins](/docs/settings/tool) can be used to simplify the integration. ## Basic checklist --- **Integration** | **Implementation** | **Comments** |**Documentation** --- | --- | --- | --- **Tracking code** | Source code/GTM | Allows to track data from web. <br> Recommended implementation is via tracking code with the first party tracking. |[Implementation](/developers/web/installation-and-configuration#creating-a-tracking-code)<br> [Custom tracking domain](/developers/web/first-party-tracking) **Product feed**| Import | Feed allows to create product catalog in Synerise and implement AI campaigns. <br> Product ID must be the same in product feed, og:tags, and transactions. <br> Google Merchant XML is preferred. | [Google Merchant requirements](/developers/product-feed)<br> [Product feed import](/developers/product-feed) **Transaction events**| Google Data Layer (enhanced e-commerce)/API | Events: transaction.charge<br> Possible implementation:<br> - Google Enhance Ecommerce<br> - Synerise Layer; possibility to prepare events, which look exactly like Enhanced ecommerce events<br> - API integration<br> Product ID must be the same in prodfuct feed, og:tags, and transactions. | [SDK transactions](/developers/web/transactions-sdk)<br> [API transactions](https://hub.synerise.com/api-reference/data-management) **OG:Tags**| Source code | product:retailer_part_no is obligatory – it's required for AI recommendations to recognize product context.<br> Product ID must be the same in product feed, og:tags, and transactions. | [OG:Tags](/developers/web/og-tags) **Cart events**| Google Data Layer (enhanced e-commerce)/API | Events: product.addToCart, product.removeFromCart, cart.status (optional, useful for abandoned basket campaign)<br> Possible implementation:<br> - Google Enhance Ecommerce (product.addToCart, product.removeFromCart) <br> - Synerise Layer; possibility to prepare events, which looks exactly like Enhanced ecommerce events (product.addToCart, product.removeFromCart)<br> - JS SDK<br> - API integration<br> Product ID must be the same in prodfuct feed, og:tags and transactions.| [Data Layer](/developers/web/transactions-sdk)<br> [Cart status](/developers/web/cart) **Historical transactions**| CSV import/API | Transactions are important to train AI models and count revenue. Transaction will be used for customers segmentation. <br> Product ID must be the same in prodfuct feed, og:tags, and transactions.| [Import](/docs/automation/data-transformation-and-imports/introduction)<br> [API](https://hub.synerise.com/api-reference/data-management#operation/BatchAddOrUpdateTransactions) **Email account**| SMTP | You can use Synerise email account (Emaillabs as a provider) or any SMTP of your choice. DNS configuration is required to ensure the credibility of your sending domain. IP warm up is crucial for the new SMTP.| [Email account configuration](/docs/campaign/e-mail/configuring-email-account) **Forms**| SDK/API | Possible integration methods:<br> - JS – added in source code or in GTM<br> - HTML – data-synerise added in the forms<br> - API backend integration| [JS integration](/developers/web/tracking-form-data/tracking-form-data-sdk)<br> [API integration](/developers/web/tracking-form-data/tracking-form-data-api) **CRM import**| File synchronization/API | Client base CSV one time import.<br> SFTP synchronization<br> API| [Import clients](/docs/automation/data-transformation-and-imports/introduction) **Marketing agreements**| - | Consent integration is important when you need to store data about agreements not only in Synerise. You should choose a proper integration methods to allow the synchronization of agreements betweeen the systems. | **Additional events**| SDK/API| For example: add to wishlist, loyalty events |[JS integration](/developers/web/tracking-form-data/tracking-form-data-sdk)<br> [API integration](/developers/web/tracking-form-data/tracking-form-data-api)] # STEP 1 Useful links --- ## Introduction --- In this first step, you will find all the essential information and resources to help you get started with Synerise and make the most of its features and capabilities. Whether you are a new user looking for basic information or an experienced marketer seeking advanced guidance, the Synerise platform offers a wealth of resources to help you achieve your marketing goals. Below are all useful links to explore. By exploring these resources, you can benefit from Synerise's powerful features and capabilities, and gain a deeper understanding of how to use the platform to optimize your marketing efforts. So, start your journey with Synerise today and take advantage of all the resources available to help you succeed! Let's go the the next step and learn more about the prepartion for the integration process! ## Help Center --- <figure> <img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/first-steps/integration-essentials/_gfx/hc.png" alt="Help center" class="full no-frame" > </figure> In our Help Center you can find many interesting and useful materials. We recommend you to be familiar with them during your learning process. - [**Use cases**](/use-cases/) Synerise offers a range of use cases, demonstrating how the platform can help businesses of different sizes and industries to improve customer engagement, boost sales, and achieve marketing objectives. - [**User Guide**](/docs/) The Synerise documentation provides detailed information on how to use the platform. - [**Developers guide**](/developers/) Guidelines for developers team. ## Roadmap, Changelog, Status Page --- <figure> <img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/first-steps/integration-essentials/_gfx/changelog.png" alt="Change log" class="full no-frame" > </figure> In our help center you can find also Roadmap, Changelog, and Status Page: - [**Roadmap**](https://roadmap.synerise.com/roadmap?year=2023&quarter=2) A list of our plans and goals to achieve each quarter. You will find information about the development of the platform, priorities, dates, our strategies, and product vision. The roadmap can help you understand what to expect from Synerise in the future. - [**Changelog**](https://roadmap.synerise.com/release-notes) Information about changes made to our platform. Changes may include new features, bug fixes, performance improvements, or changes to the user interface. The changelog can help you understand what has changed in Synerise and what benefits may result from it. - [**Status Page**](https://status.synerise.com/) Information about the current state and availability of services. It includes information about outages, planned service interruptions, and also indicates when everything is working smoothly. In case of service issues, the status page can help you understand what is happening and what actions we are taking to ensure everything runs smoothly. ## Synerise Academy --- [**Synerise Academy**](https://academy.synerise.com) is a program designed to recognize and validate your knowledge and skills in using the Synerise platform. By becoming certified, you can demonstrate your proficiency in using Synerise's marketing automation, customer insights, and personalization tools to drive business growth and deliver exceptional customer experiences. The certification program presented on Synerise Academy includes several courses and exams that test your knowledge of Synerise's features and functionality, as well as your ability to use these tools to achieve specific business objectives. **While the exams can be challenging, the good news is that by reading the first steps, you can get a head start and increase your chances of passing them with ease.** Go to [**Synerise Academy**](https://academy.synerise.com)! <!-- ## Subsribe to our product communication --- Are you eager to stay up-to-date with the latest insights, valuable product information, options, and case studies? Look no further! By subscribing to our newsletter, you'll gain exclusive access to a wealth of valuable resources. Why should you consider subscribing? Here's why: - **Valuable Product Information**: Stay in the know about our latest product updates, enhancements, and releases. Discover the full potential of our offerings and learn how they can benefit you. - **Inspiring Case Studies:** Gain inspiration from real-life success stories. Our newsletter will showcase case studies highlighting how our products have can help businesses, helping them achieve remarkable results. To subscribe, all you need to do is **visit our contact page, fill out the form**, **and select the marketing consent checkbox.** You can simply choose "marketing" as the inquiry type, and you'll be on your way to receiving these valuable materials. We assure you that your privacy is of utmost importance to us, and we will only use your information to provide you with the relevant content you've subscribed to. You can unsubscribe at any time if you feel the information is no longer valuable to you. What kind of emails you will get from us? <figure> <img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/first-steps/integration-essentials/_gfx/pm.png" alt="Certification" class="medium no-frame" > </figure> **ON MONDAY - Power Monday (Technical Newsletter)** Power Monday is a weekly newsletter that provides you with quick, concise, and actionable tips, tricks, and strategies on how to maximize your marketing campaigns and boost the business growth. The newsletter includes information about new integrations, functionalities, practical advice and real-life examples how to use them. The focus is on empowering marketers and business owners with the knowledge and tools they need to succeed in a highly competitive market. <figure> <img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/first-steps/integration-essentials/_gfx/insp.png" alt="Certification" class="medium no-frame left" > </figure> **ON WEDNESDAY - Inspirations (Business Newsletter)** The goal of these materials is to inspire and present the broad possibilities of using the full potential of Synerise to implement the most advanced and effective business marketing scenarios. From this newsletter you will certainly get many interesting ideas, scenarios and use cases. !--> # STEP 2 Communication channels --- ## Introduction --- Let’s look at our Communication channels available in Synerise and discover the assumptions and prerequisites which are necessary at the beginning. From this chapter you will learn how the process of creating each campaign looks like and discover the new possibilities. Synerise offers a number of different types of communication: - Email - SMS - Mobile Push - In-app messages - Dynamic content - Landing Page - Webpush - Screen views - Promotions All of them will be described below. **From this chapter you will learn:** <br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">how the basic configuration of different communication channels looks like, <br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">about the requirements for every configuration. ## Email configuration --- You can send personalized email messages from Synerise to your customers. The content of the email can consist of something more than words. The various data collected by Synerise can be reused for personalization purposes, so you can make the recipients feel that the message is really directed at them. **Requirements** To do so, you need to: 1. [Configure a sending account](/docs/campaign/e-mail/configuring-email-account) and choose an email provider. 2. Configure [single or double-opt ins](/docs/settings/configuration/newsletter-sign-up). 3. You must have profiles in your database who agreed to receive marketing content sent through an email channel. 4. Configure [email campaign limits](/docs/settings/configuration/campaign-limits). 5. Create an email template and define individual elements of the email campaign. You can create a template for the email content in the following ways: - [Use creators available in the Synerise app](/docs/campaign/e-mail/creating-email-templates) (visual builder and code editor) - [Import a template from a `.zip` file or URL](/docs/campaign/e-mail/importing-email-templates) 6. When your template is ready, you can send an email using one of the methods: - To send emails manually to a predefined group of contacts or the entire database: - If you're in the template editor, click **Use in communication**. The campaign creator opens. - If you're not in the template editor, go to **Experience Hub > Email** and click **Create new**. The campaign creator opens. - You can send emails automatically by using the [Automation Hub](/docs/automation) module. In response to customer activity, update of profile data, or other events (check the list of [triggers](/docs/automation/triggers) that start a workflow), an email can be sent. Watch our video to learn more about creating email campaigns in Synerise! <div class="vimeo-embed vimeo-facade not-prose" data-vimeo-id="846566896" role="button" tabindex="0" aria-label="Play Campaigns - Email"><img src="https://i.vimeocdn.com/video/1699550436-f1bfb8d86bdbfef36fd6f77493745b7d5d94d1afa584ae48cdc9f003961c92a1-d_1280?region=us" alt="Campaigns - Email" class="vimeo-facade-thumb" loading="lazy" /><span class="vimeo-facade-play" aria-hidden="true"><svg viewBox="0 0 68 48" width="68" height="48"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.64 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="#00adef"/><path d="M45 24 27 14v20" fill="white"/></svg></span></div> [Email configuration](/docs/campaign/e-mail) - check instructions for creating emails in our documentation. ## SMS configuration --- The SMS channel in Synerise allows you to send text messages to all recipients who provided their phone number and agreed to receiving messages (in case of sending marketing communication) through this channel. This channel lets you send personalized messages to your customers and establish direct contact with them, providing an efficient and cost-effective way to reach out to a large audience in a short time. **Requirements** - You must [integrate Synerise with an SMS gateway](/docs/campaign/SMS/configuring-sms-gateway#enable-integration) (<img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/settings-icon.svg" alt="Settings icon" class="icon"> **Settings > Apps & Services**). In this documentation you can also find the list of available gateways. - After integration, [create an SMS account](/docs/campaign/SMS/configuring-sms-gateway#create-sms-account) from which you will send the text messages. - Collect phone numbers and SMS communication agreements in [profiles](/docs/crm/crm-profile). Watch the video to see how it works in practice! <div class="youtube-embed youtube-facade not-prose" data-youtube-id="ySsiM-7o6h4" role="button" tabindex="0" aria-label="Play Campaigns - SMS"><img src="https://img.youtube.com/vi/ySsiM-7o6h4/hq720.jpg" alt="Campaigns - SMS" class="youtube-facade-thumb" loading="lazy" /><span class="youtube-facade-play" aria-hidden="true"><svg viewBox="0 0 68 48" width="68" height="48"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.64 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="red"/><path d="M45 24 27 14v20" fill="white"/></svg></span></div> [SMS configuration](/docs/campaign/SMS) - check instructions for creating SMS in our documentation. ## Mobile configuration --- This section covers messages which are connected with your mobile application. In Synerise we have several outgoing campaigns which are listed below. However, this is not the entire scope of mobile campaigns and we can do much more - we can fully personalize applications (see also [in app](/docs/campaign/in-app-messages), [screen views](/docs/campaign/screen-views), [promotions](/docs/ai-hub/promotions)). In mobile section of campaign module you can use: - Simple Push - Silent Push - Banner - Walkthrough - First run message - Mandatory update [Mobile configuration](/docs/campaign/Mobile/mobile_campaign) - check instructions for creating mobile campaigns in our documentation. ## In-App messages --- In-app messages allow you to display any creation in a mobile application. This feature allows you to implement use cases such as abandoned cart, discount codes, or any information campaign, such as application update - all you need in your mobile application. In contrast to push notifications which are sent (pushed) to the app user by Synerise, in-app messages are requested (pulled) by the user’s device through Synerise mobile SDK. Thanks to this, you can design your mobile application to show the content precisely when you need to. In-app and push notifications can complement each other perfectly. Push messages can generate traffic to the application and in-app can personalize the user experience in the application to maximize conversion. Combining this with the capabilities of segmentations and the Analytics module that allow you to measure the performance, in-app messages can be targeted better and more effective. [In-app configuration](/docs/campaign/in-app-messages) - check instructions for creating in-app campaigns in our documentation. ## Dynamic content --- Dynamic content is a powerful feature that can tailor the content of your website to the preferences of the visitor. With different pieces of data such as first name, date of birth, and location, you can personalize the content to make it feel as if it was created specifically for them. For example, you can use their name in the greeting. This feature can also be used for more advanced personalization, such as product recommendations or displaying collected loyalty points analyzed through Synerise. Dynamic content allows you to: - modify existing content (for example, some parts of a webpage code directed to a specific segmentation of customers), - insert new content – various kinds of campaigns, social proof, AI recommendations, and so on. This mechanism allows you to personalize your website for visitors. Dynamic content can be presented in the following ways: 1. As a web layer (popup) 2. As an embedded page element, such as a banner. It can be inserted after a specified element (HTML tag or CSS selector) or replace it. **Requirements** - A tracking code implemented into your website. See how to launch a dynamic content campaign in Synerise in our video below. <div class="vimeo-embed vimeo-facade not-prose" data-vimeo-id="846899778" role="button" tabindex="0" aria-label="Play Campaigns - DC"><img src="https://i.vimeocdn.com/video/1700016685-0c9c8f52a821b1cb3def54679c5d910a07922dce399f6723161519f3a6db95f8-d_1280?region=us" alt="Campaigns - DC" class="vimeo-facade-thumb" loading="lazy" /><span class="vimeo-facade-play" aria-hidden="true"><svg viewBox="0 0 68 48" width="68" height="48"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.64 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="#00adef"/><path d="M45 24 27 14v20" fill="white"/></svg></span></div> [Dynamic content configuration](/docs/campaign/dynamiccontent) - check instructions for creating dynamic content campaigns in our documentation. ## Landing page --- A landing page is a place where customers are redirected after clicking a link (for example, a link in an email, advertisement on Facebook, and so on). It can be an independent website which will contain useful information, a microsite that will be a part of a larger website, or it may serve as a tool in promotional campaigns, for example, in which you want to promote an item or service. These various methods allow you to draw the attention of customers. No matter which option you choose, Synerise makes it possible to create simple and functional landing pages that will meet your business goals. To create a landing page, you can use one of our wizards: a WYSIWYG wizard or a code editor. **Requirements** If you want to publish a landing page within your own domain, you must: - Submit a request for configuring your domain in Synerise to the customer service. - Send the SSL certificate or give an approval for generating a certificate through Let’s Encrypt by Synerise. - Configure DNS - add a CNAME record and set it to lp.synerise.com [Landing page configuration](/docs/campaign/landing-page) - check instructions for creating landing pages in our documentation. ## Web push --- Web push notifications enable you to maintain communication with customers through a web browser, no matter if they are viewing your website or not. Apart from this, the unobtrusive character of web push notifications will keep your message away from spam folders or ad blocking software. The notifications will always be displayed to customers who have agreed to receive them. **Requirements** To send this type of message, you must first: - Integrate this communication channel. - Prepare a widget that gathers web push agreements. - More requirements you can find in [our documentation](/docs/campaign/Webpush/?helpCenterAi=web%20push#requirements) Watch the video to see how it works in practice! ((<vimeo 846579955>)) [Web push configuration](/docs/campaign/Webpush) - check instructions for creating web push campaigns in our documentation. ## Screen views --- Displayed in the mobile application. A screen view campaign allows you to recycle documents you may have had a chance to create in the application and dedicate their display to specific groups of customers. This is a subsequent feature that allows you to use the power of content personalization to display it to those who are interested in it the most. Documents allow users to build mobile applications or create single elements to be displayed in an application. All of these allow you to develop mobile applications without the necessity of releasing other versions and even recycle the content you created in the Synerise application, so you can develop coherent marketing communication. **Requirements** - Implement a tracking code into the website. - [Create segments of customers](/docs/analytics/segmentations/creating-segmentations) (optionally). - [Create documents](/docs/assets/documents/creating-documents). - More requirements you can find in [our documentation](/docs/campaign/screen-views/introduction-to-screen-views#requirements) - [Screen views configuration](/docs/campaign/screen-views) - check instructions for creating screen views campaigns in our documentation. ## Promotions --- Promotions let you prepare customized, special offers for your customers, and introduce a system of awarding and spending loyalty points. With the Synerise Promotions, you can create campaigns that are tailored to your customers’ needs and preferences for maximum engagement and ROI. This module provides you with the tools to create targeted, timely and relevant promotions that will drive customer loyalty, purchases, and overall satisfaction. The Promotions module in Synerise makes it easy to create, manage, and track promotional campaigns. You can create promotions for specific item or for the whole basket. You can also use data-driven insights to create personalized promotions that are tailored to specific customer segments. **Requirements** - Import an [item feed](/use-cases/import-product-feed-to-catalog) into Synerise. - Import a list of stores to the [Catalogs](/docs/assets/catalogs) module. [Promotions configuration](/docs/ai-hub/promotions) - check instructions for creating promotions in our documentation. In Data Modeling Hub you can also create **voucher pools.** Voucher pool is a place where you can import discount codes and coupons, which you can later use through many communication channels (email, SMS, mobile push, web push, and dynamic content). [Voucher pools usage](/docs/assets/code-pools) - check instructions for creating voucher pools in our documentation. # STEP 2 Integration timeline --- ## Introduction --- Each project is unique and has its own specifics. While starting the implementation process it's important to define the business cases you want to achieve and deadlines you want to reach. As you have only 2 months for the Synerise implementation and ROI report, the common mistake you might make is to focus too much on the integration checklist itself and through the whole team on the integration tasks in order to finish them asap. On the one hand, such approach is great, because having all of the integrations from the beginning, you'll have the full freedom in the use cases launch later on. On the other hand, you have 2 month to show the ROI. If you focus all of the resources on integrations, you might not have time to deliver the business value. There might be different unexpected challenges during the integration process that might block you from moving from integration phase to use cases one ( for e.g. you want to integrate your SMTP with Synerise. Integration itself will be done in a few minutes, however it might turn out that your SMTP is not prepared for the mass mailing and you'll need to increase the limits/ capacity, which might take time). **Solution:** Below, you'll find a timeline that will address all of the initial integrations but those are chosen the way that will allow you to launch business use cases almost immediately. You'll start from the simpler integrations or the ones that will allow you to achieve KPI's faster. You'll work simultaneously on integrations and delivering business results. ## Best practices --- **Best practices before the project starts:** <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">This timeline should be treated as an example. Its scope can be implemented a lot faster or, in some cases, postponed. <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">At the beginning of implementation process there will be an integration phase. The developer on the client side should be available during this process. <br></br><img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/icons/check-s.svg" alt="Arrow down icon" class="icon">While confirming the timeline, we should check if we can deliver the campaign templates in the defined time period (e.g. email templates). ## Example timeline --- **TIMELINE** | **Sprint I (2 weeks)** | **Sprint II (2 weeks)** |**Sprint III (2 weeks)** | **Sprint IV (2 weeks)** --- | --- | --- | --- | --- **Integration** | <br> [Tracking code](/docs/settings/tool/tracking_codes) <br> [OG Tags](/developers/web/og-tags) <br> [Product feed](/use-cases/import-product-feed-to-catalog) <br> Training of [AI models](/docs/ai-hub/recommendations-v2/recommendation-types#personalized) <br> [Email account and DNS configuration](/docs/campaign/e-mail/configuring-email-account)| Training of [AI models](/docs/ai-hub/recommendations-v2/recommendation-types#personalized) <br> [Transactions](/docs/automation/data-transformation-and-imports/introduction)<br> [Historical transactions – import](/docs/automation/data-transformation-and-imports/introduction) <br> Implementation of [AI recommendations](/docs/ai-hub/recommendations-v2/recommendation-types) <br> Defining requirements for marketing agreement integration <br> Defining requirements for [AI search](/docs/ai-hub/ai-search)| IP warm up <br> [CRM base](/docs/crm) <br> Collecting [form data](/developers/web/tracking-form-data) <br> [AI search](/docs/ai-hub/ai-search) – beginning of implementation | [Custom events](https://hub.synerise.com/api-reference/data-management#operation/CustomEvent) <br> [Web push](/docs/campaign/Webpush) / [SMS](/docs/campaign/SMS) integration <br> [AI search](/docs/ai-hub/ai-search) – implementation <br> [External integrations](/docs/automation/integration) ( e.g. Facebook, BigQuery, etc) **Possible scenarios**| <br> [Similar recommendations](/docs/ai-hub/recommendations-v2) <br> Personalization campaigns on the website based on analytics (personalized banners, progressive forms, etc.) <br> [Analytical dashboards](/docs/analytics/analytics-dashboard) and clients [segmentation](/docs/analytics/segmentations) based on the events from the website. For example: popular categories, sources of visits, visits funnels, top viewed products, etc. | Cross sell recommendations on product page <br> Personalized recommendations on home page, empty cart, categories, 404 error pages <br> A/B tests of website personalization <br> Advance [analytical dashboard](/docs/analytics/analytics-dashboard) with sales/revenue data | Abandoned cart use case <br> [AI recommendations](/docs/ai-hub/recommendations-v2) in emails <br> In case we have enough data, you can launch [AI predictions](/docs/ai-hub/predictions) and more advanced analytics, AI segmentation campaigns | Product similar to the whishlisted products <br> [Web push](/docs/campaign/Webpush) campaigns <br> [SMS](/docs/campaign/SMS) campaigns <br> At this stage, you can use [AI recommendations](/docs/ai-hub/recommendations-v2) both in emails, sms, webpushes <br> Send events to Facebook based on AI predictions (e.g. churn segments, customers with the highest propensity to buy, to convert via FB channel) # TEST YOURSELF --- **Are you ready to put your knowledge to the test and challenge yourself?** Solve a few tasks to check your knowledge! You can solve them using the Synerise platform (Synerise Demo workspace). If you don't have access to the Synerise Demo workspace, please leave your contact details in this [form](https://demo.synerise.com/request), and our representative will send you the access shortly. Good luck on this exciting adventure! (Note: The videos with answers are available below. Make sure to watch them to check if you did well!) ## AI Configuration --- **Important!** AI product feed imported in the first task will be used in other task in AI configuration. Make sure that you solve the first task and import the feed to solve other tasks. <br> <br> Import the product feed from [this link](https://snrcsi.blob.core.windows.net/items/feed.xml). Go to **Settings > AI Engine Configuration > Add feed** and name it with your full name. <br> In the AI engine configuration for the product feed from Task 1, enable the model training for the Similar items recommendation type. <br> For the feed imported in Task 1, set up item attributes that will be returned in the recommendation: - Brand - Category - Title - Price.value - SalePrice.value - Link - ImageLink - ItemId <br> For the product feed imported in Task 1, select the following attributes to filter the recommendation results: - Brand - Category - Title - Price.value - SalePrice.value - Link - ImageLink - ItemId - Discount - DiscountAmount <br> For the feed imported in Task 1, set up the following attributes to be used in a distinct filter to increase the item variety in recommendations: - Brand - Category <br> Enable search engine for the product feed imported in Task 1. ## AI Recommendations --- Using the feed you’ve imported, prepare a similar recommendation campaign that displays from 1 (min.) to 10 (max.) items; each brand in the recommendation can occur only once and the recommendation cannot display items purchased by the customers in the last 30 days. <br> Using the feed you’ve imported, create a similar recommendation campaign with a static filter with the following conditions: - category set to the currently displayed by a customer - the `price.value` attribute higher than 50 <br> Create a similar recommendation campaign with the following conditions: - the first slot will contain one item whose price.value is lower than the price of the currently displayed product - the second slot will contain 3 items whose price.value is higher than the price of the currently displayed product <br> Preview results for different products. ## AI Search --- Create a search index based on the item feed you’ve already imported: - Set up search personalization to 100%, - Add rating in response attributes. ## AI Predictions --- A. In the **AI engine configuration**, add the “products” catalog as the new feed and enable Propensity predictions for this feed. <br> B. Create propensity to buy “man’s category” prediction on the “products” catalog. Create one-time calculation, and present results in 5-scale. <br> C. Create a segmentation of customers who received low or very low scoring from this prediction. <br> <figure> <img src="/api/docs/image/f8a57079df9dd82ae8b22dc747691385d7d51d29/first-steps/campaigns/_gfx/cert.png" alt="certification" class="full no-frame" > </figure> ### Want more? Pass the Synerise Certification! This chapter will enable you to easily obtain the **SYNERISE AI CERTIFICATION**. Do not hesitate! You have a knowledge about the AI, so you are ready to grab those Certificate today! #### SYNERISE AI RECOMMENDATION CERTIFICATION ➡️ **Log in to Synerise Academy and go to [AI Recommendations Course](https://academy.synerise.com/course/ai-recommendations) and pass the certification.** #### SYNERISE AI SEARCH CERTIFICATION ➡️ **Log in to you Synerise Workspace and go to [AI Search Course](https://academy.synerise.com/course/ai-search) tab.** #### SYNERISE AI PREDICTIONS CERTIFICATION ➡️ **Log in to you Synerise Workspace and go to [Predictions Course](https://academy.synerise.com/course/predictions) tab.**