> Synerise Documentation — Troubleshooting > > This file contains the complete "Troubleshooting" 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 # FAQ Frequently asked questions (FAQ) is an online document that presents a series of the most common questions about using the Synerise platform and provides the answers to those questions.

# Decision Hub
Different data between analytics modules (trend)

To better understand this difference, look at the example below. We're creating a simple query which shows us page visit events and customers who performed this action.

Screenshot from the Synerise analytics module presenting choose event

Screenshot from the Synerise analytics module presenting trend result

Screenshot from the Synerise analytics module presenting trend result

In response to the same query, the chart shows that 737,545 page visit events have been recorded in May. This means that 284,119 clients generated 737,545 actions (page visits).

Yoi will find more information about segmentations at the link.

I meet both segment conditions, but I'm in only one segment in segmentation

If you build a segmentation based on two segments, you might be confused that you meet both conditions of the segments, but you are only in one of them. This situation is a result of logical operations on the data sets.

OR is the operator between segments in segmentation (which means we've got an alternative between segments). If customers meet conditions in the first segment, they should not appear in the next segment in this segmentation. Let's look at the example below. We have built a segmentation that consists of two segments: users who made a purchase and users who added a product to a cart.

Screenshot from the Synerise analytics module presenting choose event

Screenshot from the Synerise analytics module presenting segmentation result

Screenshot from the Synerise analytics module presenting segmentation result

These logical rules result from the fact that customers cannot be included twice in one segmentation, even if they meet both conditions.

Metric returns \"undefined\" as a result in a dashboard

This situation may occur if the analytics query is built incorrectly (for example, it contains a logical or mathematical error, like dividing by zero).

Screenshot from the Synerise analytics module presenting dashboard result

If you are dealing with such a situation, check the points below:

Screenshot from the Synerise analytics module presenting metric query

**If you haven't found the solution to your issue, please collect information and provide examples or screenshots to our [help desk](https://hgintelligence.atlassian.net/servicedesk/customer/portal/1).**
# Questions about Settings ## Workspace ### What do I do when I forget my password? You can reset your password. 1. On the Login Page, under the **Login** and **Password** fields, click the **Forgot your password?** button. 2. Fill in the **Your email address** field. 3. Submit the form by clicking **Reset**. A confirmation email is sent to the provided address. Click the **RESET PASSWORD** button in the received email. Enter the new password, repeat it, and click the **Change password** button. You can now log in using the new password. ### How many times can I change the password? There are no limits, so you can change your password as often as you like. We encourage you to change it frequently — this way your platform account is safer. ### Does the photo uploaded to the user account have to be a personal photo? No. You can upload any photo or avatar (provided it is of the required size). The photo makes it easier for yourself and your co-workers to recognize you in Synerise, so we suggest uploading an identifiable image. However, if you do not want to upload it, it is not necessary. ### How do I change my email address, phone number, first name, or last name? You can modify your account data in Settings. ### How do I change the language version of Synerise? You can change the language version in Settings. ## Permissions ### Is there a limit of users I can invite to my workspace? No, you can invite as many users as you wish. ### What is the difference between a user and an admin? An admin can edit and delete groups, as well as other users' accounts. A user can only edit their own profile. ### Can a user with admin privileges remove another user of the same level from the system? Yes, an admin user can delete the account of another user with the same access level. ## Newsletters ### Can I modify an existing newsletter or email template and save it as a new one? Yes. First, duplicate the chosen template, then add all needed updates to the duplicate and save it. ### What types of files can be placed in the newsletter? Accepted formats for newsletter attachments are `.png`, `.jpg`, and `.pdf`, up to 20 kB. For more information, see [Creating emails](/docs/campaign/e-mail/creating-email-campaigns). ### Can I upload my company's custom font in the email template? No. You need to choose one of the fonts implemented into the system by default from the drop-down list. ## Reports ### What kind of data does a report downloaded in this section contain? Reports downloaded from this section contain exported profile attributes (email, name, surname, custom attributes, etc.). # Settings ## Workspace or Your Account
I can't add another user or contact

Contact the administrator of your account for additional permissions.

I invited a new user, but they did not get an invitation email

Make sure you've entered the proper email address. If the email address was correct, describe your problem to our support center.

## API key
API key is not working

Check the access scope of the given API key. The API key menu is available here. To add an API key, you need to specify the name, audience, scope, and roles.

## Authentication for mobile apps
I receive `Template does not contain one of required data insert error` message

Whenever you receive that error, the error indicates that the selected email templates do not contain one of required data inserts (Jinjava tag) that is mentioned in this article.

I have configured OAuth endpoint but my users receive HTTP 400 error

In case of OAuth authentication, an HTTP400 error is usually the result of incorrect data mapping. If this is the source of the issue, under the `message` key there will be information such as `"Key email not found in oauth data"`, and usually it means that the response from the endpoint you have configured did not contain that key.

In all other cases, verify input data coming from your application.

If you didn't find the answer to your issue, please collect all relevant information and provide our [help desk](https://hgintelligence.atlassian.net/servicedesk/customer/portal/1) with examples or screenshots.
# Email can't be sent Before you contact the Synerise support, you can try the solutions described below. They are sorted according to how common each issue is. ## Debugging --- 1. Go to **Behavioral Data Hub > Profiles** and check a profile of a customer who was the recipient of the message. 2. On the activity list, search if there is one of the events:
message.send and message.notSent on the activity list
message.send and message.notSent on the activity list
- `message.send` - if this event is present on the activity list, it means the email was sent and it reached the mailbox or spam folder. Optionally, you can check the email provider's logs. - `message.notSent` - if this event is present on the activity list, double-click it to see its parameters and analyze the values of the event parameters.
Event parameters of the message.notSent event
Event parameters of the message.notSent event
- `newsletter.capping` - this event on the profile of a customer means that an email wasn't sent due to limit of emails that can be sent to a customer in a defined time frame.
Learn more about [capping configuration](/docs/settings/configuration/campaign-limits).
- `newsletter.dropped`, `newsletter.hardbounce`, or `newsletter.softbounce` - if any of the events is on the activity list, the email was sent, however it didn't reach the mailbox due to one or more of the following reasons: - the email address is invalid, - the recipient blocked receiving emails, - the inbox is overloaded, - a server error occurred, - the email is too big,
There is no specific standard that specifies the email size limit. Email servers and clients may impose their own limits on the email size.
- the email address from which you sent the email has been put on the blocklist. If any of these events is on the activity list, perform the following steps: 2. Go to the template of your email and open it in the code editor. 4. Click the **Preview** button.
The preview option in dynamic content
The preview option in dynamic content
5. Select a customer who was the recipient of the email. 6. If the preview doesn't render, perform the following steps: 1. Check if the aggregates, expressions, and other attributes included in the email template return the values for your customer's UUID. 2. If the template contains AI recommendations: - Check if the recommendation is active (go to the list of the recommendations, its status is visible directly on the list). - Check if the ID of the recommendation is correct. - Check if the AI recommendation can be previewed correctly for a selected customer and item. If not: - Check if the filters in the recommendation are not too restrictive (check if the feed contains the products that meet these filters). - Verify that the minimum item of displayed recommendations is lower than the number of items in the feed that meet the conditions of the filter. - If the recommendation requires the item context, ensure that there is an aggregate or any type of reference to this item in the template. - If the recommendation requires an item context, check if the item is included in the feed. - Check if the attributes you refer to are of the correct type, for example, mathematical operations on the string attributes won't produce any result. 4. If the template contains a reference to a [catalog](/docs/assets/catalogs), check if: - the catalog includes the element to which you refer to in the template, - the reference to a catalog item is made by using the column that is used as the unique identifier in the catalog, - the column exists in the catalog and its value for the item is not null, for example, if the template contains the `{{ item.title }}` insert, the `title` column must exist in the catalog and have a non-null value. - the catalog name doesn't contain the `_` character 5. If you performed all the above actions, corrected the potential sources of issues and the email preview is still unavailable, check the Jinjava syntax in the template. Look for loop constructs, conditionals, references to aggregates, recommendations and other types of inserts. Check if all variables used in the templates are defined. 7. In Synerise, go to **Settings > Communication Limits** and verify whether capping configuration didn't impact email sending. 8. Check if the integration has been carried out in accordance with the [instructions](/docs/campaign/e-mail/configuring-email-account). # Data Modeling Hub ## Managing items
I can't upload a catalog

Check if you have a minimum of 2 columns in the file and the format of your file is `.csv` (values separated by commas). The CSV file must be UTF-8 encoded. Remember that one of the columns must include unique keys, for example customer IDs, product SKUs, or some other unique identifier for the entry (CSV row). When uploading the file to Synerise, the system will ask you which column includes the keys.

image

I can't upload a code pool file

Check if your file is made up of one column, being the list of coupons, and that each coupon is unique. Also, note that your `.csv` file must be UTF-8 encoded and should not exceed 100 000 coupons. If you want to upload more than 100 000 coupons, do more imports in separate `.csv` files.

I can't edit a code pool file

Code pools cannot be edited. You can delete a code pool and upload a new one to replace it.

I have a problem with using attributes

Check if the property type of your attribute is correct.

image

Check if the property type of your attribute is correct. For example, if you add attributes that define marketing agreements and accept the following values: 1 for "yes" and 2 for "no", choose the `number` property type.

## Events
Why isn't the form.submit event sent every time it's supposed to?

Verify that your script is executed before redirecting the user to another website. If the script executes simultaneously with or after the redirect, the request to Synerise may not be sent.

I received a "Read timeout" error for the message.notSent event

A message.notSent event with the description:

An exception occurred: Exception reading response cause java.net.SocketTimeoutException: Read timed out

occurs when you select the SSL protocol. In your SMTP integration settings, change the protocol to TLS and verify that the correct port is entered.

I received the push.notSent event

The following list contains reasons why this event was generated:

I received the sms.notSent event with an error message

If you receive an sms.notSent event with the following error message: Sending date does not fulfill the time limit set on your account, check the SMS provider panel - you may have scheduled the messages for a time that exceeds the permitted hourly limit.

If you didn't find the answer to your issue, please collect all relevant information and provide our [help desk](https://hgintelligence.atlassian.net/servicedesk/customer/portal/1) with examples or screenshots.
# Questions about the Data Modeling Hub module ## Attributes and tags ### Is there a limit of events, attributes, or tags I can create in my workspace? No, you can create as many of them as you wish. ### How does it affect the system when I translate the event names? When you translate the event names, you can start searching the system using the new names. The names will also be replaced in all existing events.
One exception to this is: when querying for events using the Synerise API, you need to use the original event names.
### Why should I use enrichment of events? Enrichment of events is especially useful when you want to limit your data usage. ## Blocks The Blocks feature has been replaced with [Snippets](/docs/assets/snippets). Blocks are no longer available. Use Snippets for reusable content fragments in message templates. ## Catalogs ### How do I create a catalog of products? A **Catalog of products** is created automatically based on the site's `og:tags`. Make sure the `og:tags` contain `product:retailer_part_no` (identical to the product SKU in the product feed) and `og:type`. You can also upload a CSV file to create a product catalog. The content of the file should match the og:tags on your website. The file must be UTF-8 encoded and contain column names. During the import, you need to set one of the columns as a primary key. You can read more about catalogs [here](/docs/assets/catalogs). ### How do I update a product catalog that was already imported? Run a new import against the same catalog. Choose Create or overwrite records to replace entire item records with data from the new file, or Create or partial update to add and modify fields while preserving any fields not included in the new file. Use Automation Hub to schedule recurring catalog updates automatically. ### How can I edit my catalog? You cannot edit your catalog, but you can overwrite it by importing a CSV file with new content. ### How can I insert the catalog content into my template? You can do it by using [inserts](/developers/inserts) in the templates of emails, dynamic content, and so on. ## Events ### What is the difference between an event and a profile attribute? Events are time-stamped customer actions — such as a page visit, purchase, or form submission — used to track behavior. Profile attributes are persistent properties describing who a customer is, such as email, city, or a custom field. Events expire after a defined retention period; profile attributes persist until updated or deleted. ### How do I track a custom event on my website? Define the event first in Data Modeling Hub > Events by specifying its name in domain.action format (such as `video.play`), its parameters, and optional enrichment settings. Then send the event from your website using the Synerise Web SDK or API. If you send an event without defining it first, its definition is created automatically. ### What's the difference between webpush.permissionBlock and webpush.subscribeBlock events? The `webpush.subscribeBlock` event is related to web push communication in Synerise. The event is generated when a customer subscribed for notifications, but the browser is blocked from displaying them. The `webpush.permissionBlock` event is related to a browser and it is sent to Synerise when a customer denied permission to display notifications from this website. If the customer uses multiple browser, it is possible that only some of them block notifications from the website. ## File explorer ### Can I import a movie file using File explorer? No, you cannot import files with `.mp4` or `.gif` extensions. ### Can I change the file name on the platform after uploading? No. To change the name of the file, delete it from the file explorer and upload it with a new name. ## Reports ### What kind of data does a report downloaded from this section contain? Reports downloaded from this section contain exported profile attributes (email, name, surname, custom attributes, etc.). ## Voucher pools ### How should I prepare a CSV file to import a code pool? The file must be a single column representing the list of coupons (strings). Each coupon must be unique and the file must be UTF-8 encoded. ### Can I edit a code pool that I have already uploaded? No. You can delete a code pool and upload a new one to replace it. ### How do I know if a certain coupon from my pool has been assigned? You can display the full view by clicking the code pool name in the list. Each coupon has information about assignment status, assignment date, and when it was redeemed. ### Can I change the view of the code pool? Yes, you can sort the coupons by each of their attributes — assignment date, date of use, and so on. To do so, click the arrow icon next to the chosen attribute. ### What is a barcode and which barcode types do you support? A barcode is a visual, machine-readable representation of data. Synerise supports the following barcode types: EAN_13, EAN_8, EAN_128, CODE_39, ITF_14, CODE_128, POSTNET, QR-CODE, UPC-A, and UPC-E. For the authoritative list, see [Voucher pools](/docs/assets/code-pools). ### How do I assign a coupon to a user? The most popular way is to assign one via automation, after the user performs some action. You can find the full description [here](/docs/automation). You can also assign a coupon by inserting it in your template — click **Insert** and choose a coupon from the list of available fields. ### How do I know if a user's coupon has been used? When you insert a coupon into your message template, it is automatically assigned to the user who receives the message and marked as "assigned" in the code pool. Each coupon can only be assigned to one customer. # Behavioral Data Hub ## Filters
There are no clients in the list after applying the filter
The search engine doesn't return people with a given attribute

Make sure that customers with the given attribute exist.

If you want to search for a specific name, surname, email or UUID, just enter it in the box.

You can enter only one attribute at a time. A combination of the name and surname will not show any results.

If you want to search for another attribute, select it from the list in the upper-right area of the list. It can be an attribute, tag, or any other data. You must select an attribute to search for. Entering only the value, for example, a phone number, will not yield any results.

No results when an attribute is not selected

Click the search box and choose the type of search. In this case, by Phone.

Selecting an attribute to search by

When you choose the attribute, enter the value to search for.

Entering the search query

## Client cards
I can't see any aggregates, segments, or expressions on the customer's card

Check that you added the segments, aggregates, or expressions to customers by using the Show in profile card option in Decision Hub.

Location of the "Show in profile card" slider

## Imports
No columns shown in the CSV import

Please make sure that every column in your source file has a header and that the file is a properly-formatted `.csv` document.

Mapping menu is missing the left panel

Import with error

This means that you don't have an appropriate API key generated. Create an API key with a proper scope here.

Upload error

Import upload error

Please make sure that your file is saved with UTF-8 formatting.

## Exporting clients
Export takes too long

Waiting times may vary, but exports of under 100,000 entries may take up to 10 or 15 minutes, with larger exports taking more time. Factors that may influence this time include:

Try again and wait some time. If this doesn't help, report the task to the [help desk](https://hgintelligence.atlassian.net/servicedesk/customer/portal/1) with this information: - Workspace ID/Name - Date and time when the problem occurred - CampaignId, ClientId, AutomationId, and so on, in link format - if applicable - Screenshot/attachment if possible We will check if the export is queued or if it's necessary to execute it once more.
If you didn't find the answer to your issue, please collect all relevant information and provide our [help desk](https://hgintelligence.atlassian.net/servicedesk/customer/portal/1) with examples or screenshots.
# Questions about Behavioral Data Hub ## How can I filter clients in Profiles?
Filtering options in Profiles
In the Synerise GUI, you can filter clients by events (1) or profile attributes (2). You can also use manual filtering (3). ## Can I send messages from a profile card? Yes. You can send any supported message type directly from a profile card — email, SMS, or web push. Each channel requires its own prerequisite: a configured sending account for email, a configured SMS gateway for SMS, and a Firebase integration for web push. For more information, see [Profile overview](/docs/crm/crm-profile).
Sending a message to a customer
## What details can I add on the profile card? In the customer card, you can add tags and change marketing consents to individual communication channels. You can also use advanced editing to change the details of a profile. ## What is the difference between customId, email, and uuid? Email is the default primary identifier for recognizing customers. customId is an alternative primary identifier you can configure for workspaces that manage customers by their own ID system. UUID is a system-generated identifier automatically assigned to every profile, including anonymous visitors, and cannot be edited. Only email or customId can serve as the primary identifier. ## How do I merge duplicate customer profiles? Merging happens automatically when an update request contains identifiers that match multiple profiles — during imports, API calls, or SDK events such as `client.login` or `form.submit`. Manual merging requires the dedicated merge API endpoint. Merging is irreversible, and profile attributes from the source profile that already exist on the target are not transferred. ## Can I add custom attributes to customer profiles? Yes. Go to Behavioral Data Hub > Attributes and add a new attribute by defining its source name, display name, and data type. Custom attributes can also be created automatically when you send an API update or import that includes an attribute not yet defined in your workspace. # Automation Hub ## How long are tokens for establishing connections between Synerise and Google services valid? Tokens are valid for approximately 183 days (about 6 months) from the moment they are generated or last refreshed. This means that if you use such a token to establish [connection](/docs/settings/tool/connections) between Synerise and Google service, you can generally expect the token to stay active for up to 6 months without needing to refresh it. To help you manage this, reminders about token expiration will appear in the Insights tab of your workflow, ensuring you have enough time to renew it on schedule.
Token expiration warning in the Insights tab in a workflow
Token expiration warning displayed in the Insights tab in a workflow view in the Automation module
## Issues with sending data to Google BigQuery Verify the size of the request body - for a fast and error-free process of your request, we recommend preparing a request body that does not exceed 500 KB. ## Can I edit a structure in a running workflow? You can't edit the structure of a running workflow due to the inconsistencies in the statistics this action can cause. To edit a running workflow, pause it, duplicate it, make change to the duplicate and run the duplicate as a new workflow. ## Email display issues When the content of your message is displayed correctly except for the dynamic elements (recommendations, inserts, and so on), check if Jinjava is correctly embedded into the email. ## Email is displayed incorrectly or differently than in the editor Email clients and providers may interpret your content in various ways. Test your content on different email clients to make sure that it's displayed correctly regardless of the customer's software. ## The email is not displayed correctly on mobile devices In the drag & drop creator, you can check how your message will be displayed on mobile devices. Remember that if you use an HTML editor to create your message, the template may not be responsive and adaptive to all devices. ## The email looks different than the template that was used in the automation Changes made to the email template do not affect an already launched automation. When you introduce changes, create a copy of the automation, stop the old automation and start the copy. If your analytics are based on the ID of an email sent from an automation, you need to update those analytics. The start of each copy of a workflow generates a new message ID. Each irregularity in sending messages is best checked on the customer's card. In the Synerise platform, go to **Behavioral Data Hub > Profiles** and click a customer to see the details and identify the problem. 1. There is a `message.notSent` event present in the customer's card. This event has a parameter called **extra**, which contains information on why the message was not sent. Here are the two most common reasons: - missing **parameter** value - There is a parameter in the message based on an aggregation or a catalog that the system could not retrieve. In this case, check the following items: - the event on which the aggregate is based is present in the customer's card - the aggregate or elements retrieved from the catalog are correctly embedded in the email message - the aggregate used in the email message is properly constructed - the elements used in the email are present in the catalog - missing **attribute** value for **tag** - There is an insert in the message based on a customer attribute that the system could not retrieve. In this case, check the following items: - the parameter is present on the customer's card - the parameter is embedded correctly in the email 2. There is no `message.notSent` event on the customer's card, and the automation has been completed. In this case, check the following items: - the customer's marketing agreements were enabled when sending the message - if messages were to be sent without checking the marketing consent, please make sure that the **Send without marketing agreement** option was switched on in the automation's email block - the embedded elements that use jinjava do not contain mistakes - the communication created by the node was not deleted. The UUID of the communication is available in the node's details. If that communication was deleted, you need to re-create the automation so that a new communication is created. 3. The `message.send` event is present on the customer's card, but the customer **did not** receive the message. In this case, check the following items: - the SMTP integration is configured correctly (please confirm that you can send test emails with the content "test" from the level of **Experience Hub**) - the customer has a valid email address - the customer has checked their SPAM folder - ensure that your email provider is not blocking the messages that you're trying to send 4. The message has been sent, but there is a **soft/hard bounced** event on the customer's card. This is information sent by the recipient's mail server about the inability to deliver a message. There are two types of bounces: - soft bounce - the reason for not delivering the message is temporary (for example, caused by a full inbox) and the message can be delivered at the next attempt - hard bounce - the reason for not delivering the message is permanent (for example, a recipient's email address does not exist) and you should not attempt to re-deliver the message or send any subsequent messages to the given email address. Such addresses will be blacklisted by EmailLabs, but if you are integrated with a different provider, you need to handle blacklisting yourself (for example, by building your segmentation in a way that filters out customers with a hard bounce event).
If you are sure that a given email address hard bounced but should not have been blacklisted, contact your provider.
- Check if the **SMS gateway** is configured correctly. Confirm that you can send test SMS with the word "test" from the level of **Experience Hub**. - Check if the customer meets the requirements to receive the message (has a valid phone number and consent given to receiving SMS messages). - If **inserts** are used in the text of the SMS message, check that those inserts are correct and confirm that the user has the information necessary to display the contents of the insert. - If the `sms.send` event is on the customer's card, confirm that the SMS gateway does not currently have errors on its side. In that case, confirmation with the external supplier is necessary. - Verify that the communication created by the node was not deleted. The UUID of the communication is available in the node's details. If that communication was deleted, you need to re-create the automation so that a new communication is created. ## Mobile push notification not sent - Check if the customer meets the requirements to receive the notification and has given consent to receive Mobile Pushes. - Check if **inserts** are used in the body of the mobile message. If they are, make sure that the customer has the information necessary to display the contents of the insert. - Test mobile messages using **Experience Hub**. Check if sending mobile messages works outside of automation. If it does, review the rules of your automation again. - Verify that the communication created by the node was not deleted. The UUID of the communication is available in the node's details. If that communication was deleted, you need to re-create the automation so that a new communication is created. ## Web push not displayed - Check if the customer meets the requirements to receive the notification, has given consent to receiving Web Pushes, and uses a browser that displays this type of notifications correctly. - Check if anything had been changed in the Web Push configuration before the error occurred. For example, a service worker on the website may have been moved. - Check if **inserts** are used in the body of the Web Push message. If they are, confirm that the customer has the information necessary to display the contents of the insert. - Test Web Pushes using **Experience Hub**. Check if Web Push works outside of automation. If it does, review the rules of your automation again. - Verify that the communication created by the node was not deleted. The UUID of the communication is available in the node's details. If that communication was deleted, you need to re-create the automation so that a new communication is created.
If you didn't find the answer to your issue, please collect all relevant information and provide our [help desk](https://hgintelligence.atlassian.net/servicedesk/customer/portal/1) with examples or screenshots.
# Questions about Automation Hub ## What is Automation Hub in Synerise? Automation Hub is Synerise's workflow engine for building multi-step customer journeys triggered by events, profile changes, or schedules. It combines filters, time delays, communication nodes, and branching logic to automate personalized interactions across email, push, SMS, and other channels without manual intervention for each individual customer. ## What triggers can I use to start a workflow? Several trigger types are available — see [Trigger nodes explained](/docs/automation/triggers) for a complete list. ## What is the difference between Automation Hub and Experience Hub? Automation Hub handles complex, multi-step customer journeys with branching logic, delays, and real-time event triggers. Experience Hub focuses on standalone campaigns sent to a defined audience at a scheduled time. Use Automation Hub for behavioral, triggered journeys and Experience Hub for broadcast-style one-time or recurring campaigns. ## What is the difference between stopping and pausing an automation? Pausing temporarily halts a workflow — customers freeze at their current step and resume from there when the workflow is reactivated. Stopping permanently halts a workflow — customers complete their current step but cannot continue. In most cases, a stopped workflow cannot be reactivated and must be duplicated to run again. The exception is workflows that use the Audience trigger: activating a stopped Audience-triggered workflow restarts it for all customers, including those who previously completed it. For more information, see [Workflow scheduler](/docs/automation/workflow-scheduler). ## Can I edit a workflow while it is active? In an active or paused workflow, you can edit individual node settings but cannot add or remove nodes. To restructure the workflow, you must stop it first. Deleting a communication template used by a send node while the workflow is active breaks that node and prevents it from functioning. For more information, see [Creating workflows](/docs/automation/creating-automation). ## Are there any limits on how long a customer can stay in a workflow? A customer can remain in a single workflow for a limited time. If a profile is still in the workflow after the allowed period — for example, because it did not meet the conditions of an Event Filter node — it is automatically removed. For current limits, see [Limits](/docs/automation/automation-capping) and [Workflow scheduler](/docs/automation/workflow-scheduler). ## Which sender account is used in the Email Alert node in a workflow? The Email Alert node sends a notification to specified Synerise users — not customers — from an email account selected in the node settings. The node is prefilled with the workspace default account, but you can change it per node. The send event is recorded on the triggering customer's profile, regardless of the alert recipient's address. For more information, see ["Email Alert" node](/docs/automation/actions/send-email-alert-node). ## How long are tokens for establishing connections between Synerise and Google services valid? Tokens are valid for approximately 183 days (about 6 months) from the moment they are generated or last refreshed. This means that if you use such a token to establish [connection](/docs/settings/tool/connections) between Synerise and Google service, you can generally expect the token to stay active for up to 6 months without needing to refresh it. To help you manage this, reminders about token expiration will appear in the Insights tab of your workflow, ensuring you have enough time to renew it on schedule.
Token expiration warning in the Insights tab in a workflow
Token expiration warning displayed in the Insights tab in a workflow view in the Automation module
## What happens to customers already in a workflow when I stop it? Customers already in the workflow complete their current step and then exit — they are not removed mid-journey. For reactivation behavior, see [What is the difference between stopping and pausing an automation?](#what-is-the-difference-between-stopping-and-pausing-an-automation) ## Can the same customer enter the same workflow more than once? Yes, controlled by workflow capping. In the workflow settings, define how many times the workflow can be triggered per customer within a time window — for example, three times per day. The maximum capping period is 20 years. Without capping, a customer enters the workflow every time the trigger condition is met. ## Can I test a workflow before activating it? You can test outgoing integration nodes — such as webhooks or Google Ads conversions — in draft, paused, or active workflows using test profiles and their historical events. There is no full end-to-end simulation of an entire workflow. The Issues tab flags missing connections or configuration errors before you activate. For more information, see [Testing outgoing integrations](/docs/automation/test-requests-for-outgoing-integrations). ## What is the difference between a Delay node and an Event Filter node? A Delay node pauses a customer for a fixed or randomized amount of time before moving to the next step. An Event Filter node waits for the customer to perform a specific action. With a time limit configured, Event Filter creates two paths: one if the event occurs within the window, one if it does not. ## Can I run multiple workflows for the same customer at the same time? Yes. A customer can be enrolled in multiple different workflows simultaneously. Within a single workflow, the trigger limit (default: 1) controls how many concurrent paths a customer can follow. Increasing the trigger limit allows a customer to start a new path in the same workflow before completing the previous one. ## How do I limit how frequently a customer enters a workflow? Use workflow capping, configured via the Set capping button in the workflow settings. Define a maximum number of entries and a time window — for example, once per week per customer. The timer starts when the workflow is triggered. The maximum capping period is 20 years. For more information, see [Limits](/docs/automation/automation-capping). ## Can I add or remove nodes after a workflow leaves the draft status? No. Once a workflow is saved beyond the draft status, its structure is locked. In active, paused, or pending workflows, you can only modify individual node settings — you cannot add new nodes, remove nodes, or rewire connections. To restructure the workflow, stop it and duplicate it, then make structural changes in the new draft. For more information, see [Creating workflows](/docs/automation/creating-automation). ## What is the maximum delay I can configure, and does it count toward the 60-day workflow limit? A Delay node has a per-node maximum time limit. If a workflow contains more than one Delay node, the combined total across all of them is subject to the same ceiling — adding a second Delay node does not allow more total delay time overall. For current limits, see ["Delay" node](/docs/automation/flow-control/delay-node). ## What is the difference between a defined and a randomized delay? A defined delay applies the same fixed waiting period to every customer who passes through the node. A randomized delay picks a new random value from a configured range each time a customer passes — including repeat passes by the same customer. There is no sticky randomization: a customer who re-enters the same Delay node receives a freshly randomized delay, independent of any previous delay they received at that node. For more information, see ["Delay" node](/docs/automation/flow-control/delay-node). ## What happens to downstream connections if I remove the time limit from an Event Filter node? Removing the time limit from an Event Filter node that already has nodes connected to its paths deletes those downstream connections. An Event Filter without a time limit produces only a single MATCHED path; the NOT MATCHED path disappears along with anything wired to it. Reconfigure the time limit before removing it if you want to preserve the downstream logic. For more information, see ["Event Filter" node](/docs/automation/conditions/client-event-filter-node). ## When I filter by multiple parameters in an Event Filter, does the customer need to meet all of them or just one? All of them. When you define multiple parameters for the same event in an Event Filter node, the node uses AND logic — the customer must perform an action that satisfies every parameter simultaneously. If you need OR logic across different events or parameter values, you must use separate Event Filter nodes on branching paths. For more information, see ["Event Filter" node](/docs/automation/conditions/client-event-filter-node). ## What is the difference between a Profile Filter node and an Event Filter node? A Profile Filter node checks whether a profile matches a segmentation — which can be based on profile attributes, behaviors, or other criteria — at the moment the customer reaches the node. An Event Filter node waits for the customer to perform a specific action after reaching the node. Use a Profile Filter to route customers based on who they are right now; use an Event Filter to wait for and react to something they do next. For more information, see ["Profile Filter" node](/docs/automation/conditions/client-filter-node) and ["Event Filter" node](/docs/automation/conditions/client-event-filter-node). ## What happens to the other branches in a Split Path when one branch reaches an End node? By default, when any branch in a Split Path reaches an End node, all other branches that are still in progress for that customer are immediately terminated. If you need the other branches to continue and finish independently, configure the End node to not stop the remaining paths. This behavior also applies when multiple Event Filters run in parallel after a Split Path — if both filters are matched, actions on each path may execute more than once. For more information, see ["Split Path" node](/docs/automation/flow-control/split-path-node). ## How do I prevent a customer from passing through a Merge Paths node more than once? By default, the Merge Paths node processes a customer every time they arrive at it. In a workflow with a Split Path followed by a Merge Paths node, a customer who takes multiple branches can trigger the Merge Paths node — and any actions after it — multiple times. To prevent this, set a flow control limit directly on the Merge Paths node. For more information, see ["Merge Paths" node](/docs/automation/flow-control/merge-paths-node). ## Can a workflow send a message to a customer who has already reached their daily communication limit? Yes, if the send node has the **Ignore limits** option enabled. By default, workspace-level communication limits apply and prevent over-messaging. Enabling **Ignore limits** on supported send action nodes bypasses those workspace limits for that specific send. This is intended for transactional messages such as order confirmations, shipping updates, or payment notifications. For more information, see [Limits](/docs/automation/automation-capping). ## What are the limits of activity tracking data in workflow nodes? The numbers shown directly on a node (how many profiles entered, finished, and so on) are stored separately from events and are not affected by retention. However, the profile list inside a node — which shows the individual customers who passed through — depends on the retention of the `automation.clientStartPath`, `automation.clientPathStep`, and `automation.clientEndPath` events. Customers whose events have expired will not appear in the list, even though they are included in the aggregate count. The 7-day chart on a node shows daily aggregated data on a logarithmic scale. The Statistics tab shows up to the last 30 days by default, with custom date ranges available up to a maximum of 93 days. Timeline charts only include data from November 20, 2025 onward — activity before that date is not shown. For more information, see [Statistics and tracking automation events](/docs/automation/automation-activity-tracking). # Questions about Experience Hub ## General ### What is Experience Hub in Synerise? Experience Hub is Synerise's multichannel campaign management module for creating and sending one-time or recurring communications. Supported channels include email, SMS, web push, mobile push, dynamic content, in-app messages, and landing pages. It includes audience targeting, A/B testing, send-time optimization, and campaign performance tracking in a single interface. ### What channels are available in Experience Hub? Experience Hub supports email, SMS, web push notifications, mobile push notifications, dynamic content (on-site messages and web layers), in-app messages, and landing pages. Each channel has dedicated configuration for audience targeting, content personalization, send-time optimization using AI, and delivery tracking. ### Can I run A/B tests on campaigns in Experience Hub? Yes. A/B testing is available for email, SMS, web push, mobile push, dynamic content, and in-app messages. The number of supported variants depends on the channel: email, web push, and SMS support unlimited variants, mobile push supports up to three, and dynamic content supports up to six (Insert Object type only). ### How do I set up a control group in a campaign? In the Audience section of the campaign creation form, open Advanced options and enable the control group. Customers assigned to it receive no message but are tracked with a control group event, letting you compare behavior between recipients and non-recipients to measure the true impact of the campaign. ### Can I resend a campaign to customers who didn't open it? There is no built-in resend-to-non-openers feature in Experience Hub. To achieve this, build a segment of customers who did not generate a `newsletter.open` event for the original campaign, then create a new campaign targeting that segment. For recurring resend logic, use an Automation Hub workflow with a Scheduled Run trigger. ### What is the difference between a one-time and a recurring campaign? One-time campaigns are created in Experience Hub and sent immediately or scheduled up to 10 days in advance. Recurring campaigns are set up in Automation Hub using a Scheduled Run trigger, which supports daily, weekly, monthly, or custom intervals and allows you to limit the total number of repetitions. ### Is the UTM feature enabled by default in Synerise? No. UTM parameters are not added automatically. To include them, configure the UTM Parameters section in your campaign. Note that UTM parameters only attach to links wrapped with the `preparelink` insert — bare links in templates are not affected. ### What kind of data is saved in `_snrs_params`? `_snrs_params` is a browser cookie that stores parameters from the most recent Synerise campaign a customer interacted with. The cookie has a 72-hour TTL. If a customer completes a transaction within that window, the campaign parameters are automatically attached to the transaction event, enabling campaign attribution reporting. ## Dynamic content ### What's the dynamic content status after the scheduled time has expired? When the scheduled end time passes, dynamic content moves to the **Finished** status. A finished campaign cannot be re-launched or edited. To run the same content again, duplicate the campaign, update the schedule, and activate the copy. ### Is the `dynamicContent.show` event sent automatically? Yes, when the dynamic content element is visible in the browser's viewport. The element cannot have `display: none` or `visibility: hidden` applied — if it does, the event is not sent until the style changes and the element becomes visible. Elements outside the viewport generate the event only after the user scrolls them into view. Elements added via the JS section of the dynamic content editor are not observed and never generate this event automatically. ## Mobile push notifications ### What is the best image size for the Banner mobile push type? The Banner mobile push type is deprecated. Banner-style messages are now delivered using the [Introduction to in-app messages](/docs/campaign/in-app-messages/introduction-to-inapp-messages) feature. See the ready-made templates in **Experience Hub > In-app messages > Templates > Predefined templates**. ### Can I send a push notification featuring a product recently added to a customer's favorites? Yes. If a customer adds a product to favorites in the mobile app but does not purchase, you can trigger a mobile push with that product. If the app supports deep linking, the notification can take the customer directly to the favorited product. ### How can I target customers in a specific location with mobile push? Synerise does not have a dedicated geolocation filter in the mobile push creation interface. Target location-based audiences by building a [segment](/docs/analytics/segmentations) using collected location or city profile attributes, then using that segment as your campaign audience. ### Can I change the sender account while creating a mobile push campaign? No. The sender configuration for mobile push is determined by the Firebase Cloud Messaging (FCM) credentials configured in **Settings > Apps & Services > Firebase**. The sender cannot be changed at the campaign level — all mobile push campaigns use the FCM credentials defined in the workspace settings. ## Web push # Communication The list below contains the most common issues the Synerise user encounters. You can find instructions how to get to the core of the issue by yourself. Before you proceed to the articles, check the [application status](https://status.synerise.com/).
If you didn't find the answer to your issue, please collect all relevant information and provide our [help desk](https://hgintelligence.atlassian.net/servicedesk/customer/portal/1) with examples or screenshots.
# Dynamic content isn't displayed Before you contact the Synerise support, you can try the solutions described below. The solutions are sorted according to how common each issue is. ## Debugging --- 1. Check if your website has HTTPs protocol enabled. If it’s not enabled, Synerise’s SDK will not process any campaign data due to UUID not being saved in your browser. 1. Use the console in your browser to check if your dynamic content is uploaded. To do so, enter the `SR.dynamicContent.getRendered()` command in the console. This command returns the list of dynamic content on your website. 2. Perform one of the following actions: - If the command returns an `SR is not defined` error, go to [tracking code implementation](/developers/web/installation-and-configuration#creating-a-tracking-code) - If the dynamic content is in the list, go to this [section](/troubleshooting/campaign/dynamic-content-troubleshooting#if-the-dynamic-content-was-downloaded) - If the dynamic content is not the list, go to this [section](/troubleshooting/campaign/dynamic-content-troubleshooting#if-the-dynamic-content-wasnt-downloaded) ### If the dynamic content wasn't downloaded Perform the following steps: 1. Make sure a tracking code is implemented in the website - use the developer tools in your browser and in the console, enter `SyneriseTC`. If no errors are returned, the code is implemented correctly. 2. Check if you (your UUID in your browser) belong to the audience of the dynamic content. 1. In Synerise app, include the test user (you) in the group of dynamic content recipients (add this user to the segmentation which is selected as the audience of the dynamic content). 2. If the **Show in profile card** toggle is off, enable it. 3. Preview the dynamic content on the website.
Checking if UUID is present in the segmentation for more advanced users: 1. Retrieve UUID of a user out of `_snrs_p` cookie, under the `uuid` key. 2. Use this UUID to get the user's details through API with this [method](https://hub.synerise.com/api-reference/analytics-suite#operation/addSegmentationPOST_v3). 3. In the response, check the ID of the user. 4. Check if the ID of the user belongs to the segmentation.
3. In the settings of the dynamic content, check for the typos in the URL where dynamic content is supposed to be displayed. 4. Check if the aggregates, expressions and other attributes included in the dynamic content template return the values for your UUID. 5. If the dynamic content template contains AI recommendations: - Check if the AI recommendation is active. - Verify if the ID of the recommendation used in the dynamic content template is correct. - If the recommendation requires the item context, ensure that the page where you show the dynamic content includes `product:retailer_part_no` in its OG tags or, alternatively, if an item context is included in the Jinjava code in the dynamic content template. - If the recommendation requires the item context, check if this item exists in the feed. - Check if the attributes to which you refer in the template are defined in the feed and returned in the recommendation. - Check if the attributes you refer to are of the correct type, for example, mathematical operations on the string attributes won't produce a valid result. Make sure that price or other attributes that must be numbers are defined correctly. 6. Check if the preview of the AI recommendation included in the dynamic content template returns items for your item ID and user ID. If not: - Check if the filters used in the AI recommendation are not too restrictive - make sure that the feed contains items that meet the conditions of the filter. - Verify the number of items you set to be returned in the AI recommendation - make sure there is sufficient number of items in the feed that meet the conditions of the filter. - Check if the ID of the item in the feed is the same as the ID of this item on your website. (`product_retailer_part_no`) and in transactional events. 7. If the dynamic content template contains a reference to a [catalog](/docs/assets/catalogs): - Check if the catalog contains the element to which you refer to. - Check if the reference to a catalog item is made by using the column that is used as the unique identifier in the catalog. - Check if the referenced column exists in the catalog and its value for the item is not null, for example, if the template contains the `{{ item.title }}` insert, the `title` column must exist in the catalog and have a non-null value. - Ensure the catalog name doesn't contain the `_` character. 8. If you performed all the steps and corrected the mistakes, check if the dynamic content can be correctly previewed for a selected customer in a browser. - If the preview isn't correctly displayed, check the Jinjava syntax. Look for loop constructs, conditionals, references to aggregates, recommendations and other types of inserts. Check if all variables used in the templates are defined. ### If the dynamic content was downloaded Perform the following steps: 1. Check if the page contains the selector targeted by the dynamic content: 1. To verify it, copy the selector from the Dynamic content settings in the Synerise application:
CSS selector in the Dynamic content settings
CSS selector in the Dynamic content settings
2. In the browser, right-click and select the Inspect option. Press CTR + F and paste the name of the selector. 2. In the Dynamic content settings, check if the selector name is correct. If it's a CSS class, the name must contain `.` at the beginning, for example `.example_class.css`. If the class is an ID, the name must contain `#` at the beginning, for example `#notificationController`. 3. Check if the settings defined in the **Display settings** section don't block the display of your dynamic content.
Display setting section
Display setting section
4. Check if your dynamic content wasn't overwritten by other dynamic content for the same selector. 5. Verify that the template container does not have the CSS display attribute set to `none`. 6. The browser plugins (for example, Adblock) may set the CSS to `display:none`- check if the display of the dynamic content is not blocked by the plugin settings. # Questions about API keys ## Why do I need an API key? API keys are necessary for communication between Synerise and other applications and for using our SDK or plugins. They are also necessary for API authorization. There are two different types of API key — for the workspace and for clients — used depending on who you want to authorize as. ## How many API keys can I create in my workspace? You can create as many API keys as you wish. By giving them different access scopes, you can specify access levels for different purposes. ## Does my API key have an expiration date? No, you can use the API key you created for as long as you wish. ## How do I get an API key? You can create one in **Settings > API Keys** by clicking **Add API Key**. You need to specify the key type (workspace or profile) and a name. After creation, configure permissions and optional allowlists or denylists in the key's settings. For more information, see [API Keys](/docs/settings/tool/api). ## What kind of profile should I choose in the API section: workspace or profile? Keys for workspace login are used for operations which couldn't be logically bound to any client or user — usually they deal with items such as profile administration or batch processing. Because of the high access level, we recommend using many keys with different scopes assigned. Using the "one for all" approach may result in problems if the key is stolen by an unauthorized person. # Time in the Optimal sending time option changes after selecting it
Use recommended date in the email wizard
Use recommended date in the email wizard
When the time on the **Use the recommended date** option changes after you select it, verify if time zone selected for your workspace in **Settings > Profile Details > Preferences** is correct. # Dynamic elements don't display in the messages If the template contains dynamic elements (inserts) such as an expression, aggregate, AI recommendation, customer's attributes, verify whether these inserts return a correct, non-null values in the preview of the message. It's applicable for all types of communication. # I can't send SMS with a custom sender name Only verified sender names are accepted. Custom sender names must be added both to the panel's provider and to Synerise. If you use SMSAPI gateway, you may receive the `Invalid from field` error when you send a message with a non-accepted custom sender name. # The form.submit event isn't sent sometimes Verify that your script is executed before redirecting the user to another website. If the script executes simultaneously with or after the redirect, the request to Synerise may not be sent. # Lack of dynamicContent.show event on customer’s profile after a page visit The dynamicContent.show is sent to Synerise, the user must scroll to the Dynamic Content. The event will not be sent if it’s on your website, but the user has not seen it yet.
You can find more information about troubleshooting issues connected with dynamic content [here](/troubleshooting/campaign/dynamic-content-troubleshooting)
# Web push didn't reach all recipients A customer receives a web push notification only if they agreed to receive such notifications (through an [agreement form](/docs/campaign/Webpush/two-step-agreement-form)) and they must have an active token. To verify the number of customers who will receive the notification, perform the following steps: 1. Create a segmentation. 2. In the first condition, use a `receive_webpush_messages` attribute set to `true`. 3. In the second condition, use a `snrs_has_webpush_devices` attribute set to `true`. 4. Define the dependency between two conditions as `AND`. 5. Click **Save** and check the preview. # Questions about AI Hub ## What is AI Hub in Synerise? AI Hub is a set of AI-powered tools in Synerise that delivers personalized product recommendations, propensity predictions, and send-time optimization. Built on Synerise's Cleora AI engine, it analyzes each customer's behavioral and transactional data to surface relevant content across websites, emails, push notifications, and mobile apps — without manual model configuration. ## How do AI recommendations work in Synerise? Synerise AI recommendations use the Cleora engine to analyze customer visit history, purchases, and product feed data, generating real-time personalized suggestions. The model retrains weekly and after feed updates to stay current. Results are delivered across channels: website dynamic content, email, web push, mobile push, and mobile apps. ## What is the difference between AI recommendations and rule-based recommendations? Rule-based recommendations apply static logic such as "most popular products" or "recently viewed items" uniformly across customers. AI recommendations use machine learning to model each customer's individual preferences and predict which products they are most likely to engage with, producing more precise and personalized results at scale. ## What types of Predictions does Synerise offer? Synerise offers four Prediction types: Regression and Classification (predicts probability of events like churn or conversion), Lookalikes (finds customers who resemble your top performers), Propensity (calculates likelihood to purchase items with specific attributes like brand or category), and Best Fit (identifies the most suitable item or attribute value per customer). ## How are Prediction results used in campaigns? After training, Predictions save scores as events on customer profiles. The event name depends on the prediction type: Propensity saves `snr.propensity.score`, Best Fit saves `snr.bestfit.score`, Lookalikes saves `snr.lookalike.score`, and Custom (Regression/Classification) saves `snr.prediction.score`. These scores are available across Decision Hub, Experience Hub, and Automation Hub, letting you build segments of high-propensity customers or trigger personalized automations based on each customer's predicted likelihood to act. For more information, see [AI Predictions](/docs/ai-hub/predictions). ## What are response attributes in AI feed configuration? Response attributes are the product properties returned in the recommendation payload to your website or application. You select them during AI engine configuration from two types: textual attributes such as product name, brand, or color, and range attributes such as price or size. Select only attributes you plan to use in templates to minimize payload size. ## What happens if I turn off the Feed auto update feature in AI engine configuration? Turning off Feed auto update stops the AI engine from syncing with the latest version of your product catalog. The catalog data itself stays current, but the AI engine continues operating on the snapshot taken before the feature was disabled, potentially serving recommendations based on outdated or discontinued products. ## Which events are taken into consideration when using the time optimizer? The events analyzed depend on the selected mode. The Email mode uses `page.visit`, `newsletter.open`, and `newsletter.click`. The Mobile mode uses `screen.view` and `screen.interaction`. The Web mode uses `page.visit`, `product.addToCart`, and `form.submit`. Custom modes let you select one predicted event and up to six input events. ## What is the maximum time range in Predictions? The maximum time range in a Predictions expression is 90 days. This window defines how far back the model looks when calculating propensity scores. If you need to evaluate longer behavioral patterns, consider combining Predictions with segmentation conditions that cover a wider historical range. ## Can AI recommendations work for anonymous visitors? Yes. Synerise generates recommendations for both recognized and anonymous visitors. For customers with no purchase or browsing history, recommendations are based on items clicked by other first-time visitors in the last 90 days. This ensures relevant suggestions are shown from the very first visit, without requiring login or identification. ## How many products do I need in my catalog for recommendations to work? There is no fixed product minimum for most recommendation types. For optimal performance, Synerise recommends at least 50,000 unique profiles who have visited multiple products and over 1,000,000 interaction events. The Top items type requires at least 10 unique products with 10,000 page visits or transactions. Data quality matters more than catalog size. ## Can I exclude certain products or categories from recommendations? Yes. You can apply filters using the visual builder or IQL queries to exclude products by category, brand, price range, or any custom item attribute. Filters can be applied at the slot level within a recommendation, and global item filters defined in AI engine configuration apply across all recommendation campaigns. ## How do I know if my recommendations are performing well? Each recommendation campaign has a Statistics tab showing CTR (clicks divided by generated recommendations), conversion rate, revenue, and average revenue per customer — all calculated over a rolling 30-day window. An item-level breakdown shows top-performing products by clicks, generations, and revenue. You must generate `recommendation.click` events for complete statistics. ## Can I filter recommendations by category, brand, or price range? Yes. Filters support category (including subcategory hierarchy levels), brand, price range, and any custom item attribute using operators such as equals, does not equal, less than, or greater than. You can also apply Distinct filters to ensure variety — for example, showing no more than two items per brand in a single recommendation. # I received the sms.notSent event with error message If you receive an `sms.notSent` event with the following error message: `Sending date does not fulfill the time limit set on your account`, check the SMS provider panel - you may have scheduled the messages for a time that exceeds the permitted hourly limit. # Expired capping blocks sending other messages If an event from the following table is saved to a profile's card after sending email/SMS/web push/mobile push communication, your message wasn't sent due to [capping](/docs/settings/configuration/campaign-limits). | Event name | Description | |----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `newsletter.capping` | An email wasn't sent due to limit of emails that can be sent to a customer in a defined time frame. | | `push.capping` | A mobile push wasn't sent due to limit of mobile pushes that can be sent to a customer in a defined time frame. | | `sms.capping` | An SMS wasn't sent due to limit of SMSes that can be sent to a customer in a defined time frame. | | `webpush.capping` | A web push wasn't sent due to limit of web pushes that can be sent to a customer in a defined time frame. | If an expired capping (for example, capping was set to 24 hours, but blocked a message that you wanted to send after more than 24 hours since the last message) is blocking your messages, contact Synerise Support. # The "preview in browser option" doesn't work in a test email Make sure that you send the test email to the email address in your CRM (an email address in the **Clients** section). If this email address is selected in the **Custom emails** section, the link will not work, even if this email address is available in CRM.
Test email section
Test email section in the email wizard
# I received the push.notSent event The following list contains reasons why this event was generated: - If you created the mobile push template by using the code creator, check if the `priority` parameter is in line with the FCM documentation ([Firebase Cloud Messaging HTTP protocol](https://firebase.google.com/docs/cloud-messaging/http-server-ref)). The default values are `high` or `normal`. - If you received the event with a `message key duplicated` error, it means that there were multiple attempts to send the message in too short intervals. In general, it means that deduplication worked correctly and one message has been sent instead of multiple identical messages. # Web push doesn't display in Safari Safari doesn't support web push notifications. # Questions about Decision Hub ## Funnels ### Why can't I find the same list of events as in the example in the documentation? The list of events depends on your profile and the kind of events you track. For example, if you have added the tracking code to your website, you will see such events as a `page visit`. ### Can I change my funnel whenever I want? Yes. If the funnel is already saved, you can change it anytime. After adding your changes, remember to save them. You will find more information about funnels by following this [link](/docs/analytics/funnels). ## Segmentations ### What is the difference between a static and a dynamic segment? In Synerise, all segments are dynamic — they are continuously recalculated based on their conditions. You can build conditions on static profile attributes such as name, city, or tags, or on dynamic ones such as aggregates, expressions, or event history. The distinction is in the condition types you choose, not in the segment itself. ### How frequently do segments update? When shared as a membership attribute, a segmentation updates either every 6 hours or once daily at a random time between 4 and 6 AM, depending on the schedule you select. In preview mode, segmentations show real-time results. During each update, only profiles that have changed since the last run are recalculated. ### Can I use Prediction scores in segment conditions? Yes. Prediction results are saved as events on customer profiles — for example, `snr.prediction.score` for classification or regression, `snr.propensity.score` for propensity, and `snr.lookalike.score` for lookalikes. Because these are standard events with parameters, you can filter by them in segment conditions just like any other event. ### Can I export a segment's customer list? Yes. Go to Behavioral Data Hub > Profiles and click Export. You can filter by segmentation membership and choose which profile attributes, expressions, and aggregates to include. Supported export formats are CSV, JSON, and JSONL. The exported file includes a true/false membership value for each selected segmentation. ### What is the difference between funnels and segments? Funnels and segments are both connected with data gathered from customer activity. The main difference between them is that segments will present the number of users who have met specific conditions (for example, all steps completed in a funnel) and funnels show you how many of them have met the conditions at a particular step. Click the links for more information about [segmentations](/docs/analytics/segmentations) and [funnels](/docs/analytics/funnels). ## Geoanalytics ### What happens when customers change their place of residence? The segments in Synerise are dynamic. If a user changes their location to another city or even a different country, they will be automatically removed from the segment. If they appear in the same city again, they will once again be added to the segment without any extra action needed. Read more about geoanalytics [here](/docs/analytics/geoanalytics). # Questions about Imports **FAQ dictionary** - Mapping — the part of the import process where you configure how to import each column from your file. This process tells the Synerise platform about the relationships between the fields in your file with the fields in our database. Thanks to this, you don't need to change the field names in your own database. - Template — Jinja expressions to combine several columns and/or mix them with strings, math operations, and so on. ## Can I add additional columns to my file while mapping? No. You cannot add new columns to the imported file during mapping. However, you can use templates (Jinja expressions) to create virtual columns by combining or transforming columns that already exist in your file. You can find more information [here](/docs/assets/imports/importing-clients). ## Can I update a customer by importing data? Yes. If an imported customer already exists in Synerise, their data will be updated — new attributes will be added and existing ones will be changed. ## Can I import new and existing customers in one file? Yes — a customer who already exists in Profiles will be updated, and a new customer will be created. ## Can I import transactions with multiple currencies in one import? No. When you import transactions, you have to separate the files for transactions with each currency and prepare a separate import for each file. The currency must be included as a column in each source file before importing. ## What is the valid date format? In Synerise, if you want to import an attribute and treat it as a date, it must be in the YYYY-MM-DD format. If you have a different date format in the file, you can transform it while mapping. ## Can I add new attributes while mapping? Yes. If you want to map a column with an attribute that doesn't exist in your workspace yet, you can add a new attribute while mapping. You can find more information about customer imports [here](/docs/assets/imports/importing-clients). ## Can I map the same column with two or more attributes? Yes, the same column can be imported as different attributes — simply map it several times. ## How many rows should the sample mapping file have? The file needed for data mapping should be a representative sample of the data you intend to import. Take up to 50 rows from the final file. ## Can I merge two or more columns while mapping? Yes. If you want to merge separate columns from your file, you can use templates — Jinja expressions to combine several columns and/or mix them with strings, math operations, and so on. If you have trouble with merging columns, contact your Synerise representative. ## How long will my import take? The time needed to import data depends on the size of the file. You can check the status of your import in the progress bar. ## What values should the marketing agreement fields in my file have? To import marketing agreements such as email, SMS, or push, your fields must have one of the following formats: **0/1**, **true/false**, **True/False**, **TRUE/FALSE**. If you use different values, you can use templates to transform them. ## Can I switch off an import? Yes. If you're importing data from an FTP server, go to **Settings > Import** — this is where you will find all your imports and where you can switch an import off or on. ## What type of files can I import? You must use one of the file types supported by the application: - Comma-separated file (CSV or txt) - JSON - XML (used only for a product feed) ## Can I edit an existing mapping? No. When you save the mapping it cannot be changed. You need to prepare a new mapping. ## Can I add two imports with the same name? No. Each import must have a unique name. ## Are there any restrictions to column names in my file? The column names shouldn't contain spaces or any special characters (only basic letters, digits, hyphens, and underscores) — this is especially important if you want to use templates. ## What is the maximum allowed size of an imported file? 200 MB. For more information, see [Introduction to data import](/docs/assets/imports/introduction-to-imports). # Web push doesn't display
Remember that a web push will be shown during the second and subsequent visits.
1. Make sure the web push notification doesn't contain errors. - In case there are any [snippets](/docs/assets/snippets) used in the template, make sure that the item of information you want to display using an snippet is available on the customer cards of the recipients. For example, if you want to mention the recipient's city name in the template, check if all recipients have the name of the city in the customer's card, otherwise, this snippet will not display. - If a web push is displayed differently than expected, check how the specific browser, operating system, or device handles web pushes. 2. If the web push notification is created correctly, go to your website. 3. Open the console. 4. Search for `SR.init`. 5. If there is the `disableWebPush` parameter, contact your developers to remove it.
Browser developer console showing the SR.init call with the disableWebPush parameter that prevents web push notifications from displaying
Console view
If the source of issue still hasn't been found: - Check if the web push **integration** has been set up correctly. 1. Check if you downloaded the **manifest.js** and **service worker** files from **Settings > Web push**. 2. Check if the files have been embedded on your webserver. 3. Check if the HTML code from **Settings > Web push** was embedded on your website. More information can be found [here](/docs/campaign/Webpush). - Check if the recipient's browser supports web push notifications. - Check if a limit was set on the display of web push notifications.
More information about limits is available [here](/docs/settings/configuration/campaign-limits).
- Check if the recipients have given web push consent. - Verify whether it's a global issue or if it concerns only several recipients - check the customer cards and look for `webpush.send`, `webpush.show`, `webpush.click`, and `webpush.capping` (this event is generated when a web push notification wasn't sent due to the limits of web pushes that can be sent to a customer in a defined time frame) events.
Learn more about [capping configuration](/docs/settings/configuration/campaign-limits).
- Verify if the notification wasn't deleted. - Verify the status of sending on the list of web push notifications (it might still be waiting to be sent). - Check if the recipient of the message belongs to the proper segment. # Read timed out error for the message.notSent event A `message.notSent` event with the description:
An exception occurred: Exception reading response cause java.net.SocketTimeoutException: Read timed out
occurs when you select the SSL protocol. In your SMTP integration settings, change the protocol to TLS and verify that the correct port is entered. # Mobile push wasn't delivered ## Only some customers didn't receive mobile push --- - Check if there are the following events on the customer's profiles: - `push.notSent` - a push wasn't sent due to an error which is specified in the parameters of the event. - `push.capping` - a push wasn't sent due to the limit of pushes that can be sent to a customer in a defined time frame.
Learn more about [capping configuration](/docs/settings/configuration/campaign-limits).
- `push.skipped` - a message wasn't sent due to [silence hours](/docs/campaign/Mobile/creating-mobile-push#schedule-the-notification) - Check if a `push.sent` and `mobilepush.received` events are present in the customer's card. If not: - Check if the recipient of the message belongs to the audience of the message. - Check if the recipients have given mobile push consent. - Check if the recipients gave marketing agreements and that communication limits are not exceeded. - Check if the recipients have a valid Firebase token. - The mobile push notification is not delivered when: - a customer's device is disconnected - a customer's device is in battery saving or "do not disturb" modes - a customer uninstalled the application ## Mobile push wasn't sent at all --- - Check if there are the following events on the customer's profiles: - `push.notSent`
Check why you received this event [here](/troubleshooting/campaign/push-not-sent-error).
- `push.skipped` - a message wasn't sent due to [silence hours](/docs/campaign/Mobile/creating-mobile-push#schedule-the-notification) - In **Settings > Tools > Integration**, check if Firebase is configured correctly. - Check if mobile SDK is integrated.
Have a look at the detailed [Android](/developers/mobile-sdk/configuring-push-notifications/android) and [iOS](/developers/mobile-sdk/configuring-push-notifications/ios) specifications.
- Check if the template is built correctly. - In the settings of the template, check if the operating system has been correctly defined. - If the template includes an image, check if it's in correct format (`.jpg` and `.png` up to 1MB) - If you used [snippets](/docs/assets/snippets) in the template, make sure that the item of information you want to display using a snippet is available on the customer cards of the recipients. For example, if you want to mention the recipient's city name in the template, check if all recipients have the name of the city in the customer's card, otherwise, this snippet will not display. - Check the status of the message - if it's finished, contact the support. # SMS campaign wasn't delivered - Check if the SMS gateway is configured.
The instructions on SMS gateway configuration is available [here](/docs/settings/configuration/sms-account).
- Check if the **SMS gateway** works properly. - Check if `sms.notSent` event is generated on the customer's activity list. If so, check the event parameters to see the source of the issue. It may also be caused by time limits imposed by the SMS provider. - Check if `sms.capping` event is generated on the customer's activity list. If so, the message wasn't sent due to the limit of SMSes that can be sent to a customer in a defined time frame.
Learn more about [capping configuration](/docs/settings/configuration/campaign-limits).
- Check if the customer meets the requirements to receive the text message (a valid phone number and a valid marketing consent). - Check if the template is built correctly. - The number of allowed characters. - If your message contains special characters, make sure the gateway accepts special characters. - If [snippets](/docs/assets/snippets) were used in the SMS template, make sure that the item of information you want to display using a snippet (aggregate, expression, first name, and so on). - Check if this issue concerns only selected recipients or the whole audience - look for `sms.send` or `sms.notSent` on their profiles. - If some customers didn't receive the message, check if they belong to the audience of the message. - Check the status of SMS (it can be still in progress). - Verify if the SMS communication is not deleted. # Images don't display in web push notifications on MacOS devices MacOS devices display only images which are added as icons in the web push notifications. The table below contains an example of the same web push notification on MacOs and Windows devices: | Web push on Windows machine | Web push on MacOS machine | |-----------------------------|---------------------------| | Example of web push on Windows device | Example of web push on MacOs device | # Landing page doesn't display - Ensure that the tracking code is implemented. - Check if any of the customers have the `page.visit` to the landing page on the activity list in their profiles. - Verify that the HTML of the landing page is correct. - If the landing page includes images, check if the images were previously added to the Synerise server (**Data Modeling Hub > Files explorer**).