Conditions Blocks
Most Conditions blocks check the contact's compliance with a certain condition and split the workflow into two paths — Yes and No — running one of them depending on the result. Two blocks work differently: Split divides the workflow into up to 10 arbitrarily-weighted branches instead of a Yes/No fork, and Branch lets you define multiple rule-based branches evaluated top-to-bottom, sending the contact down the first branch whose rules match. Unlike Actions blocks, which perform a task without branching the workflow, and Sending blocks, which deliver a message through a specific channel, every Conditions block routes the contact onward based on a check rather than sending anything itself.

The Conditions group contains the following blocks, in the order they appear in the panel:
- Branch
- Check values
- Variable matches regular expression
- Included in segment?
- Check event
- Delivered?
- Clicked?
- Split
- Contact confirmed
- Opened?
- Verify contact field matches event parameter
- Contact exists
- Current day/time
- Sent?
- Check the checkbox list fields
- Check parameter by date/time value
Branch
The Branch block lets you define multiple alternative paths in one place. Instead of chaining separate Condition blocks, you add branches inside a single block and set rules for each — the system evaluates them top-to-bottom and sends the contact down the first branch whose rules match.
Branch rules can be based on the start event parameter, a contact field, an external event, engagement with earlier Sending blocks, segment membership, current day/time, or channel availability. It's typically used to replace long chains of Condition blocks with one compact, easy-to-review decision point — for example, routing contacts by order value, favorite category, or channel availability.
More detailed information about the Branch block >
Check values
The condition allows you to check:
- Values in event context parameters: for example, promo code type.
- Values in contact fields: for example, subscriber city.
- Click Select rule.
- Specify an event parameter and its value, or select a contact field from the list.
Note
- You do not need to wrap the parameter name in
${}.- Event parameters can be passed in either numeric or string format.

-
Select one of the available validation operators depending on the event parameter or field type.

Operator Event parameters Number field type Text field type Dropdown field type equals ✓ ✓ ✓ ✓ does not equal ✓ ✓ ✓ is false ✓ ✓ ✓ is true ✓ ✓ ✓ is set ✓ ✓ ✓ ✓ is empty ✓ ✓ ✓ ✓ contains ✓ ✓ does not contain ✓ starts with ✓ ✓ does not start with ✓ ends with ✓ ✓ does not end with ✓ one of ✓ ✓ ✓ is not one of ✓ ✓ matches ✓ ✓ between ✓ ✓ greater than ✓ ✓ greater than or equal ✓ ✓ less than ✓ ✓ less than or equal ✓ ✓
You can add multiple checks using AND/OR logic — there is no limit to the number of conditions.
This allows you to avoid creating separate dynamic segments in the workflow.
More about:
Variable matches regular expression
The task is to check a certain variable from the event or the data received from other blocks.
For example, you can check if your recipient is a male or a female and send them different messages.

The task has 2 parameters:
- Name: variable name. It could be an event parameter. The parameter name is entered in this field without
${}. If you check the data obtained by other workflow blocks (for example, Get contact), specify the system variablesmartMessageJsonin the field. - Pattern: regular value checked for compliance. For example, to check whether the event parameter address contains the word "London", specify London in the Pattern parameter.
Included in segment?
The block checks whether the contact is included in a certain segment.

The block has one basic parameter — Segment. In the field, select the segment to check for the contact's membership in that segment.
In this workflow, the subscribers who are included in the segment Valid email receive an email; the subscribers who aren't included receive an SMS. Similarly, you can use other subscriber data (activity, orders, personal data, etc.) to create the most effective and personalized campaigns.
The block also contains advanced parameters, which are detailed in a separate article.
Check event
The task is to check whether a particular event occurred since the workflow was launched. Events are searched by keys.

The task has 3 parameters:
- Unique key: event key. For example, it can be an email address; thus, this field should contain a parameter with an email address. This is a parameter from the event that launched the current workflow. If it's emailAddress, enter
${emailAddress}in the field. - Event: event type. This is a required field without which the workflow will not start.
- Period: you can set the time before the start of the workflow, during which the event must be checked. By default, the block checks for events since the activation of the workflow.
Delivered?
The block checks whether the message was delivered.

In this example, subscribers who received the first message would eventually receive the second one, and the rest would be in the segment with invalid contacts. Based on the result, you'll be able to analyze the effectiveness of email as a communication channel and reduce the error rate in subsequent campaigns.
NoteThe Sent?, Delivered?, Opened? and Clicked? blocks check messages within one workflow and do not consider whether a similar action has been performed with a message in another workflow.
Each of these four blocks has two alternative check options. The logic described below applies equally to each block, depending on the status it checks.
- Only the last message. The block checks only the last message before it. If the message has the required status, the workflow continues along the Yes branch. If the message does not have this status, the workflow continues along the No branch.

- All messages. The block checks all messages before it. If at least one message has the required status, the workflow continues along the Yes branch. If none of the messages have this status, the workflow continues along the No branch.

NoteWe recommend also using a Timer block (see the Actions blocks) before the Sent?, Delivered?, Opened?, and Clicked? blocks. Otherwise, for a major part of your subscribers, the workflow will run the No path.
Since the system immediately checks the condition compliance, and subscribers can't immediately respond to your campaign, there is no reliable data to run the Yes path.
Clicked?
With this block, you can check whether the contact clicked on the message and set alternative actions based on the results of the check. The block takes into account any click on any link except the unsubscribe link. Note that you can't choose to check a specific link.

In this workflow, the contacts who clicked in the first email and are expected to be interested in your offer, are sent the following email with a special discount, more details, benefits of the presented product or brand, etc. This workflow ends for those recipients who didn't click.
It shares the same Only the last message / All messages check options, the cross-workflow scope note, and the Timer recommendation as Delivered? above.
Split
The block is used to split-test messages. It splits the workflow into several branches (up to 10) and arbitrarily divides contacts between them. By default, the number of branches is 2, the probability of each of them being triggered is 50/50.

For example, you can create a workflow to test the effectiveness of two different communication channels or two campaign types within one channel by setting the same split percentage.
The above example is a workflow testing Email and Viber. Based on the set percentage, one half of your subscribers will receive an email, and the other half will receive a Viber message. Further analysis will help determine which channel is more effective.
Contact confirmed
The task is to check whether the contact's email has been confirmed.

For example, a person has subscribed to your newsletter, and you want to send a welcome email.
The task works as follows:
- The contact is added to the eSputnik database but has an unconfirmed status.
- A confirmation email is sent to the contact.
- The task checks whether the subscription is confirmed.
- If it is confirmed, the Yes path is triggered, and a welcome email is sent.
- If it isn't confirmed, the No path is triggered.
The task has 2 parameters:
- Email: contact's email address;
- Contact ID: contact's ID in the system.
By default, the system checks whether the contact is confirmed by email. Specify the name of the variable or the email address in the Email field. For example, ${emailAddress} or [email protected]
If you want to use a contact ID for confirmation, specify ${contactId} in the Contact ID field.
One of the parameters must be specified.
Opened?
The block checks whether the recipient opened the message, and depending on the result (Yes/No) splits the workflow into two paths. For example, if the recipient didn't open your email over a certain period of time, you can send one more email but with a different subject, or send a Viber message or SMS with the same content.

It shares the same Only the last message / All messages check options, the cross-workflow scope note, and the Timer recommendation as Delivered? above.
Verify contact field matches event parameter
The task allows checking if the contact field matches the passed value in the event parameter.
For example, you want to check if the subscriber's city matches the city value passed in the event. If that is not true, you can place the contact update block downstream.

The task contains two basic parameters described in the table below.
| Parameter | Description |
|---|---|
| Contact field | The field from the contact information that has to be verified. Click the down arrow to select a field from the dropdown list or enter the field's name in the box. You can compare the following field types:
|
| Parameter | The event parameter. The task checks if the contact's field matches this parameter. You can enter the value as a variable in the format of ${parameterName} (the parameter's name in an event, for example, ${city}), and in this case the contact's field is compared with the value of the parameter in the event.Using the 123abc format is acceptable (for example, Kyiv), in this case the contact's field is compared with the specific value in the parameter (Contact's field 123abc?). Select case sensitive if this operation is case-sensitive. |
The task also contains advanced parameters.
More about advanced workflow block parameters >
Contact exists
The task is to check whether the contact exists. It works similarly to Contact confirmed.

The task has 3 parameters:
- Email;
- Phone;
- Contact ID.
By default, the system uses an email address. If you want to use a contact ID, specify ${contactId} in the Contact ID field. To identify a contact by phone number, specify ${phoneNumber} in the Phone field.
Current day/time
The block checks whether the current path is triggered based on a certain date, weekday or time.

You can set up the following conditions for sending:
- certain day of the week;
- specific date;
- specific time;
- specific time on a specific date/day of the week.
Setting a specific date excludes the option to choose a day of the week. You can specify the date or day of the week and time either together or separately. By default, the time check option is inactive.
If you select a time without specifying a day, the specified time period will be checked every day.
If you choose both a day and time, the time will be checked on the specified day.
The time is checked according to the user's local time, eliminating inaccuracies associated with daylight saving time changes.
The specified boundary values are included in the check. For example, if you set the time from 08:00 to 12:00, and at the time of the check, it is 12:00, the script will follow the Yes branch.
Activating the Use contact's time zone parameter will allow you to send a message at a specific time, taking into account the contact's time zone.

Let's look at how the block works. For example, on April 5, 2023, at 7:00 PM, there is a webinar that you can register for until the beginning of the broadcast. Depending on the date and time of the user's registration, you want different versions of email messages to be sent to them:
- Email 1: Before the day of the event – "We look forward to seeing you at the webinar on April 5 at 7:00 PM."
- Email 2: On the day of the event until 5:00 PM – "Already today! See you at 7:00 PM."
- Email 3: On the day of the event after 5:00 PM – "Starting very soon! Don't miss the beginning at 7:00 PM."
The workflow operates as follows:
- The workflow proceeds to the Current day/time block and checks today's date (Is it now 05/04/2023?);
- If the date does not match the one specified in the parameter, the workflow will follow the 'No' branch – sending Email 1;
- If today is 05/04/2023, the workflow will follow the 'Yes' branch and check the time of day;
- If it is not later than 17:00, it will send Email 2;
- If the current time does not match the specified time – it means it is later than 17:00, and in that case, it will send *Email 3.

Also, using the same conditions, you can opt not to send your campaign:
- On specified days

- On specified time

- At certain times on certain days

- At a certain time and day

Sent?
The block checks whether the message was sent.

The example above shows the workflow where the mobile push with the experimental recommendation algorithm is sent first. The system will not send this message without data to generate such recommendations.
At the same time, in addition to the Delivered status, mobile push notifications also have the In Progress status. It can take a long time between sending and delivery, so the Delivered? check is unsuitable.
If the check shows the system did not send the first message, the workflow will send the second one with a universal recommendation algorithm.
The Timer block is necessary for the system to have time to check the fact of sending a message. The recommended time in the timer settings is 5 minutes.
It also shares the same Only the last message / All messages check options and the cross-workflow scope note as Delivered? above.
Check the checkbox list fields
The purpose of the task is to check for empty or specific checkboxes in the contact card.

The list of checkboxes displays checkboxes created in the Additional fields section.
The following checking options are available:
- Check for empty checkbox fields options
- Check for specific checkbox field options
- Check for the presence of one of the specific checkbox field options
Check parameter by date/time value
The purpose of the task is to check the date from the event parameter.

When creating a workflow, the user's time zone is taken into account. Time will be saved in UTC.
For example, The date and time being checked is 2020-07-30 13.00. The user's time zone is GMT +3 (Europe/Kyiv). The following value will be passed to the event: "2020-07-30T13:00 + 03:00".
The task contains 2 parameters:
- Parameter. It is required to state the parameter's value passed in the parameter. By default, this is a variable
${parameter}. The date is in ISO 8601 format. - Date. Select an option from the list for a single date, time or the date/time range.
Parameter
The Parameter field accepts the parameter name in the system.
Enter the parameter name as a variable or a string. The format example: $USERID or 123abc.
Selecting the Date and/or Time Settings
To select the date and/or time settings:
- Click the down arrow and select one of the options from the list:
- Date
- Date with time
- Date range
- Time range
- Date/time range
- Date before
- Date after
- Date and time is greater that current by

- Configure the required date and time settings for the selected parameter as explained below.
Configuring the Date Settings
When you select the Date parameter, the block checks if the event date matches the selected date for this parameter.
To select the Date settings:
- Click the calendar icon and select the required date.

Top TipClick the left or right-pointing arrows to change the month, or click the section of the calendar to switch to the month or year selection.

Configuring the Date with Time Settings
When you select the Date with the time parameter, the block checks if the event date matches the selected date and time for this parameter.
To select the Date with time settings:
- Click the calendar icon and select the required date in the date selection window.
- In the hour selection window, select the required hour.

Configuring the Date Range Settings
When you select the Date range parameter, the block checks if the event date matches the selected date range for this parameter.
To select the Date range settings:
- Click the date beside the left field and select the initial date of the range.
- Click the date beside the right field and select the final date of the range.

Configuring the Time Range Settings
When you select the Time range parameter, the block checks if the event time range matches the selected time range for this parameter.
To select the Time range settings:
- Click the time beside the left field and select the initial time from the time selection window.
- Click the time beside the right time field and select the end time from the time selection window.

Configuring the Date/Time Range Settings
When you select the Date/time range parameter, the block checks if the event date and time range match the selected date and time range for this parameter.
To select the Date/time range settings:
- Click the left date and select the required initial date in the date selection window.
- In the hour selection window, select the required hour.
- In the minute selection window, select the precise time. The time values in this window are within the range of 1 hour with an increment of 5 minutes.
- Click the right date and select the final date, hour and minutes, the same as for the initial ones.

Configuring the Date Before Settings
When you select the Date before parameter, the block checks if the event date received as a parameter is within the date range before the selected date.
To select the Date before settings:
- Click the calendar icon beside the date field and select a date.

Configuring the Date After Settings
When you select the Date after the parameter, the block checks if the event date received as a parameter is within the date range after the selected date.
To select the Date after settings:
- Click the calendar icon beside the date field and select a date.

Configuring the Date and Time Is Greater Than Current By Settings
When you select the Date and time is greater than current by option, the block checks if the event date and time received as a parameter are greater than the current date and time by N minutes/hours/days.
Example:
The date and time of your webinar is 2022-10-10, 16:00.
You have configured to send 3 messages to the registered persons: 30, 10 and 5 minutes before the webinar start.
The person's registration date and time is 2022-10-10, 15:52 (the current date and time).
The block compares the current time and the time from the event parameter. As the result of the comparison:
- Sending the first message is cancelled because the condition for sending the message (30 minutes before the event) is false.
- Sending the second message is cancelled because the condition for sending the message (10 minutes before the event) is false.
- The third message will be sent as scheduled because the condition for sending the message (5 minutes before the event) is true.
To configure the Date and time is greater than current by option:
- Enter the required value in the field and select its format from the dropdown list: minutes, hours or days.

Updated about 7 hours ago