Skip to main content

Scenario nodes

Description

Scenarios are described by logical blocks, which are called nodes. Each node performs one action and gives control to the next node.

Any scenario must contain a minimum of 2 elements connected to each other. The starting element is always a trigger (by default, an API call).

How to work with nodes

Adding a node

To add an node to the scenario, click the "+ Element" button on the toolbar. In the opened list, click on the desired element or drag it to the workspace while holding the right mouse button.

Setting up a node

Settings are defined for each scenario node. To open the settings window, double-click on the desired node. Press "Apply" to save the settings.

Adding a connection between nodes

Transitioning a profile from one scenario node to another is accomplished through connections. To link one node to another, drag the connection between the elements:

Elements can be linked not only sequentially. Using connections, it is possible to arrange repeated passage by the profile of the same section of the scenario or switch to an alternative sequence of actions:

Removing a node

To delete a node or a link between nodes, select the node by clicking on it, and then click on the trash bin icon or press Delete/Backspace. Deleting multiple elements, including the connections between them, is also available.

If you have deleted a node from the scenario, you can restore it. To do this, click the "Bin" button in the bottom right corner. A list with all deleted nodes will appear. Select the node you want to restore to the scenario. After restoration, the node will retain its previous settings.

You can also permanently delete all items from the trash by clicking the "Empty Bin" button.

Cloning a node

To clone a node, select it and press the left mouse button or use the keyboard shortcut Ctrl + C. You can also clone multiple elements, including the connections between them.

tip

To select multiple elements in the scenario, activate the Select tool. Then, hold down the right mouse button and drag to create a selection area around the desired objects, or hold down the Ctrl key and, while holding it, sequentially right-click on the desired objects.

Toolbar

Tools for managing nodes

— activate the "Select tool". It is used to control scenario elements: moving, connecting, highlighting, etc.

— activate the "Hand tool" (Space + drag). It is used to navigate through the workspace of the scenario.

— undo the last action (Ctrl + Z).

— repeat the last action (Ctrl + Shift + Z).

— clone a node

— detele a node

— show node's ID

Tools for setting up the scenario

— show information about the scenario (description, tags and groups for the scenario).

— show the scenario settings (profile re-entry mode in the scenario, etc.).

— activate scenario.

— deactivate scenario.

— view scenario analytics in channel report.

Tools for managing your workspace

— zoom in on the workspace (Ctrl +).

— zoom out the workspace (Ctrl -).

— change scale

— apply alignment. The nodes are aligned relative to each other inside the workspace.

— adjust the view. The scale changes to the optimal one, which allows you to see all the elements inside the workspace.

List of nodes

All the nodes of the scenario are divided into four categories:

  • Triggers — elements that define how to capture a profile in a scenario.
  • Operators — elements that affect the movement of the profile according to the scenario.
  • Channels — the elements by which a message is sent to the profile.
  • Actions — elements that trigger a specific action in the platform at the moment of profile entry.

Triggers

The trigger is the starting element of the scenario. It determines how the profile gets into the scenario. There are 2 ways available:

  • Event capture — the profile enters the scenario after a certain event occurs.
  • Scheduled segment capture — a group of profiles that meets certain conditions enters the scenario according to a specified schedule.

tip

What is the difference between the two capture methods in the scenario, as well as about setting up the trigger, can be found in this article.

Operators

Pause

Sets the intervals between the actions of the scenario. With this element, you can set the start time of the element following it. This allows, first of all, a more delicate approach to the issue of communication time with the client. The element can also expect certain events: the start of an advertising campaign, a holiday, etc.

Learn more

The following options are available:

Wait for a specific time period

To wait for a certain time after capturing the client's profile by the scenario or after performing a previous action, select the option "Wait for a specific time period":

tip

When changing the "Pause" element in an already active scenario, the platform will automatically recalculate the waiting time of those who are already in the scenario in this node. For example, you initially set a pause of 10 days, and then increased the waiting time to 20 days. In this case, the profile that is captured in the scenario after making changes will wait 20 days. As for the profile that was already in this node for 8 days before the changes were made, its waiting time will be another 12 days, not 20.

If you do not want the time to be recalculated, disable this option.

Wait for a certain time

These options put the scenario on pause until a certain time of day — at the nearest selected time, on a specific date, on the next day of the week. Moreover, if the time zone of the profile is known, it can also be taken into account.

  • Wait for a certain time — the exact time of the profile transition to the next node.
  • Wait for the date and time — the exact time and date of the transition to the next one is indicated the node.
  • Expect the day of the week and time — the exact time and one or more are set days of the week.
  • Expect dates from the list — the exact time and several dates are selected when the profile moves to the next node.

Wait for certain date and time

The option "Wait for certain date and time" sets the activity hours of the next scenario element. For example, if you want a certain campaign to run from 9 a.m. to 9 p.m.:

Expect date and time from profile

These settings will allow you to pause the scenario until the date or time specified in one of the profile fields arrives:

  • Expect date from profile - the profile will move on to the next element when the date specified in the selected field arrives, and the time specified in the "Pause" element's settings.

  • Expect time from profile (date-independent) - the profile will move on to the next element when the time specified in the selected field arrives. The date may not match the current one.

  • Expect date and time from profile - the profile will move on to the next element when the specified date and time in the selected field arrive.

Select the field in the database with the necessary data. This can be the birth date (_bdate), the registration date in the system (_regdate), or any custom field of the "Date" type (for example, the date of a planned event).

Next, configure the scenario's behavior if the profile's selected field is not filled in:

  • Skip pause - the profile will immediately move on to the next element, without waiting for the specified time to arrive.

  • Abort a scenario for a profile - the profile will exit the scenario.

If the date specified in the profile field has already passed, you can either immediately redirect the profile to the next scenario element, ignoring the pause, or stop the scenario for the profile, or move the date to the following year.

Best send time

Sets a pause before the next element of the scenario, calculated based on ML service data. The profile will not move to the next item until it comes the optimal time to send him a message.

The best way to work is to add an element from the Channels category after the "Waiting for the best delivery time" element. In this case, the campaign will send a message to the profile at the most convenient time for it.

Learn more
info

The calculation of the best time takes place through machine learning algorithms. The ML service determines the best hour when the probability of opening a message by a profile is the highest, and also selects an array with several good sending hours.

The element is available if the capture of profiles in the scenario comes from database for which machine learning is enabled.

The profile will move to the next node when its best sending hour arrives.

If the best hour has already passed when the profile hits the node, the node will wait for the next good hour to be sent. If the good hours have also passed, then the profile will immediately move to the next element.

If an node contains a profile that does not have data on the best sending time, it will also be immediately sent to the next node.

Condition

Implements the logical selection of the next step of the scenario for customer profiles. The selection condition is determined by the rules Segmentation. If the condition is met, the client profile will continue to move to the right according to the scenario. If the condition is not met, the profile will move down the scenario, and an alternative sequence of actions can be configured for it. The element can also wait for the condition to be fulfilled for a certain time.

tip

If you link several "Condition" elements vertically, you can create several alternative chains in one, depending on the results of the checks.

Learn more

Basic Settings

Enter the name of the element to display in the scenario.

tip

If you need to dynamically check the fulfillment of a condition, enable the option "Expect condition matching for a time period". So the check will happen several times. If the waiting time is fixed, do not enable this option, but instead add the element "Pause" before the condition.

Limitation

The condition is made up of rules and groups of rules similar to Segmentation rules. Subscribers can be distributed according to personal data, subscription data, and activity history:

JSON filter

If the scenario is called via the API, you can pass a special field content, with an undefined structure in JSON format (you define it). This data can be used to insert into messages, return to an Action Hook, or to build conditions in a scenario. For example, when a user performs an action, a website (or an application) activates the scenario and transfers all the data related to the action there. The "JSON filter" element defines further actions for the profile based on the verification of this data.

Learn more

The JSON filter works the same way as a normal condition. You can repeatedly use this element to build complex circuits.

You can set conditions in the code editor using logical operators and expressions.

Example of the "content" field in the API request:

{
"content": {
"customer_id": "12345",
"total_purchases": 5,
"last_purchase_amount": 250,
"average_purchase_amount": 100,
"preferred_category": "electronics",
"loyalty_points": 300,
"membership_status": "premium",
"discount_coupons_used": 2,
"active_coupon": "win0513"
}
}
OperatorExampleDescription
|| OR(preferred_category = "electronics") || (preferred_category = "computers")The condition is fulfilled if the client is interested in the categories "Electronics" or "Computers".
&& AND(total_purchases >= 5) && (average_purchase_amount >= 100)The condition is met if the customer has made 5 or more purchases and the average receipt exceeds 100.
= equalsmembership_status = 'premiumThe condition is fulfilled if the client has premium status.
!= not equalsmembership_status != 'standard'The condition is fulfilled if the client has a non-standard status.
> more thatlast_purchase_amount > (2 * average_purchase_amount)The condition is fulfilled if the customer's last purchase amount exceeds twice the average purchase amount.
>= more or equallast_purchase_amount >= 250The condition is met if the amount of the last purchase is equal to or exceeds 250.
< less thanloyalty_points < 500The condition is met if the number of bonus points is less than 500.
<= less or equalloyalty_points <= 500The condition is met if the number of bonus points is 500 or less.
~= regular expressionactive_coupon ~= '^winThe condition is met if the promo code starts with "win".

Note that the key of the JSON object is specified without quotes (for example, membership_status="premium").

Jump to scenario

Sends the profile to the beginning of another scenario or to a specific element of another scenario. In this case, the current scenario and the scenario to which the profile goes should use the same database.If the chain in the scenario continues after the transition element, then the profile moves to another scenario and at the same time continues to move along the current one.

Learn more

Enter the name of the element. Select the scenario to which you want to send the profile. If you want the profile to jump to the beginning of another scenario, select the input element as the element to jump to. If you want the profile to immediately appear on a certain element of another scenario, select this element from the list.

Distribution node

Creates several elements that separate scenario development options for customer profiles, regardless of any conditions. Brute force distribution and static distribution are available.

Learn more

Basic Settings

Select the distribution principle and the number of parts that the audience will be divided into. The percentage can be changed by editing the distribution elements.

Round-robin

The distribution of clients into groups will be organized in the order of the queue for getting into the scenario.

Static distribution

The same subscriber will always end up in the same group every time he finds himself in the scenario.

Channels

Items in this category launch a trigger campaign through a specific channel. A new campaign is created directly in the element editor.

tip

The "Placement" element allows you to launch a placement campaign in the scenario. Setting up such a campaign is described in this article.

Learn more

Basic Settings

Enter the name of the new campaign and add a description if necessary. Here you can also set custom tags and set highest priority for sending:

Campaign Settings

On the first tab of the settings, select the communication channel: each campaign can be sent only through one channel.

On the same tab, you can import an existing campaign into an element. This can be either a separate campaign or a campaign included in other scenarios:

Subscribers

The trigger in the chain will use the contact details of subscribers of one of your resources. Select the resource your target audience is subscribed to and proceed to the next step:

Additionally, you can filter subscribers by resource categories. Preliminarily, categories must be created in a resource. In the campaign settings, select categories that the profile should be subscribed to in order to receive the message.

You can filter by custom channel fields. To create a filter by fields, select the standard or optional subscription field. In the "Selection condition" field, select a logical operator and, if necessary, specify a value.

Content

On the third tab, select Message Template which you want to send to subscribers. It is possible to select several templates at once (up to 16 templates in one campaign). In such cases, they will be sent in random order. As when creating a campaign, you can open a preview of the desired template and proceed to edit it, if necessary:

After selecting the content, click the "Finish" button. The campaign settings will be displayed on one tab, and you can make the necessary changes at any time by clicking on the edit button:

Limitations

In this block that opens, you can set sending policy campaigns. By default, the policy of the selected resource or the global account policy is applied:

Smart settings

In the smart settings, you can further customize the campaign:

  • Statistics SUBID
  • Choosing a virtual sender
  • Custom domains for event tracking (in addition to the one configured in the resource)
  • The list of addresses for a BCC for sent emails
  • Other options depending on the platform configuration

Actions

Update profile

Updates the data of the selected fields of the subscriber's profile or deletes the values in these fields.

Related actions are available for different field types. The element can add tags, change the values of fields with a choice of options and numeric fields.

Learn more

In the drop-down list, select the field that you want to update. Then select an action and set the value of this field. Press "+ Add". The added field can be edited by clicking on the pencil icon, as well as deleted from the element.

ActionField typeDescription
Set valueThat's itA new field value is manually specified. For fields of the Enum type, the value changes to one of the specified fields in the list, for example, the selected service package. For Boolean fields, the value changes to Yes or No.
Remove valueThat's itDeletes a value from the selected field.
Take the value from the fieldAllValue is taken from the apicontent field. Used together with the element "API call", which is able to save the result of the request to the apicontent object.
Increase value byInteger aIncreases or decreases the value. To decrease the value, enter a negative number.
Add elementTagsAdd another tag to the field.
Remove elementTagsRemove one of the existing tags from the field.

You can also use this element to change the global profile status. If you allow unsafe status changes, the item will update profiles with statuses other than "Subscribed".

Import to database

Copies the subscriber's profile from the profile database for which the scenario was created to another one. You can also copy the profile history for a certain period and transfer custom profile fields.

Learn more

Enter the name of the scenario element and select the profile database to which you want to copy the client profile. If you want to update the profile data that is already in the target database, activate the option "Allow profile fields update". If there are custom fields in the source database, their data can be written to fields of the appropriate type of the target database. To do this, set up the matching fields.

You can also transfer profile history from the source database to the target database. To do this, use the option "Copy profile history for" and select the period for which you want to transfer the data. The profile history includes campaign actions (submissions, openings, clicks, etc.), subscription events, imports, pixels, assignment of promo codes and participation in static segments.

API Call

Send a GET or POST request to another system. You can add parameters with static data or taken from the subscriber to the request. It is used for integration with other systems.

Learn more

Enter the name of the element.

If necessary, change the authorization type to OAuth2. This way you can transfer profile data to external services that use the OAuth 2.0 protocol as an authorization method. To use this authorization method, you must first link an external service to the Altcraft platform via connection, and then select it when configuring the element:

Select the request type to the external system. In the URL field, enter the address of the service receiving the data. The request body can use the profile data captured by the element, or arbitrary values.

tip

When selected in the query parameter "custom value" you can use variables associated with the profile. For example, promocodes of loyalty programs. If the promo code from the selected loyalty program is not linked to the profile, an empty string "code": "" will be sent in the request. Insertion format:

{loyalty.<'Template name' from loyalty program settings>.promocode}

The request URL also uses variables. Press the </> button or enter the value manually. Example of using the promocode in the request address:

http://www.example.org/api/?Promocode={loyalty.black_friday.promocode}

If for some reason the request to the server fails, the platform proceeds to make repeated requests. You can configure the maximum number of repeated requests, as well as specify the frequency of sending them to maintain a uniform load on the server. Repeated attempts will be performed until the request is successful.

A request that meets the condition specified in the element is considered successful:

  • Status 200 — the server returns the HTTP response code 200.

  • Plain — the response from the server should go to the specified Regex.

  • Parsed — used if the server returns a JSON or XML object. Necessary specify the path to the field name and the expected value. The value can be empty.

After calling the API, you can save the received response (for example, a JSON object) to the variable {apicontent} and use this data in the next steps of the scenario. To do this, activate the option "Save the http response in the field {apicontent}".

Enter the name of the field in which the object will be written. This name will be used when substituting a variable into the message template. For example, if you set the field name to field_name, then in the template, accessing the JSON object will look like this: {apicontent.field_name}.

Statistical segment update

Adds a client profile to the static audience segment or removes it from the segment.
Learn more

In the item settings, select add or remove and an available static segment:

Subscriptions

Subscribes the client to a specific resource or updates the data of an existing subscription. Profile data or subscription data for another resource can be used as a subscription source.

Learn more

Enter the name of the element. You can add a subscription if the client has not yet subscribed to the resource, or change its status. For example, when confirming a subscription or when using custom unsubscribe scripts.

Select the subscription resource from the drop-down menu and the available communication channels. Change the subscription status if necessary. When adding a subscription, select the profile field data Email and Phone numbers or subscription data for another resource.

tip

For subscriptions to Push notifications, you can only use subscription data from another resource, which contains the IDs of the clients' devices to send Push.

Promocode

Assigns a promo code to the client's profile from the selected loyalty program. The promo code can then be sent to the customer using one of the items in the category "Channels" or used to calculate personal offers.

Learn more

Enter the name of the scenario element and select the required loyalty program. A sufficient number of promo codes must be generated in the program or the option to create promo codes by scenario must be active.

caution

If the profile already has a promo code for this loyalty program, the scenario will continue to run.

If the promocode cannot be assigned for one of the reasons below, the scenario will end on this element:

  • the promocode limit has been reached
  • the loyalty program is not active
  • the loyalty program does not have free promocodes, and its option "Script can create promocodes if there are not enough of them" is disabled

Goal registration

Records in the client's profile the achievement of a certain goal and the associated cost actions. Can be used for scoring subscribers, LTV and RFM segmentation, in reports by conversions and profits.

Learn more

Enter the name of the element and the pixel to which the target will be linked. Registering the same goals for different pixels can be used in affiliate programs or for A/B testing of the interface of your site or other resources.

Select existing goals below or add new ones. Specify the cost to be transferred for the purposes.

tip

The value for all purposes will be recorded the same. If you need to pass several goals with different values, add several such elements - one after the other, with different goals.

Suppression list

Adds specific customer contact details (email address and phone number) in suppression list platforms. Communication with the client using this data will be blocked. Or vice versa, removes contact information from the stop list, restoring the ability to communicate with the client.

Learn more

Enter the name of the element to display in the scenario. Next, you need to select the contact details of which subscriptions you need to block or restore. Select communication channel and priority of subscriptions to change:

Select the resource and subscription statuses whose contact details should be added to the stop list or removed from the stop list. At the bottom of the form, select the stop list to add or remove: