Tools¶
Getting started with Tools¶
Our Tools section includes several useful modules that can enhance your scenario.
Triggers¶
Basic trigger¶
Allows you to create a custom trigger and define its input bundles.
Bundle | Create custom bundles by adding array items. The array consists of the name-value pairs. |
You can use it, for example, for contacts or any other list that is scheduled to be sent to a specified email address (Email > Send an Email, Gmail > Send an Email modules), or as a simple reminder to be triggered whenever you want.
Increment function¶
Note
See our scenario template for the Controlled distribution of data flow.
Returns a value incremented by 1 after each module's operation. It is possible to configure the module to reset the value:
-
After one cycle
-
After one scenario run
-
Never
Example
One of the module's uses is to implement a so-called Round robin assignment of tasks/leads/emails/etc. to users in a group. The algorithm chooses the assignees from a group in some rational order, usually going from the top to the bottom of a list and then starting again at the top of the list and continuing until finished (like you would deal a deck of cards).
The following scenario sends an email to the first recipient after every odd scenario run, and to the second recipient after every even scenario run.
Configure the module to never reset the value:
There are two conditions used after the router module:
1. Odd – set the condition using the modulus math function that equals 1
:
Do not forget to change the Equal to operator from the default Text operator to the Numeric operator!
2. Even – set the condition using the modulus math function that equals 0
:
Sleep¶
Allows you to delay the scenario flow for up to 300 seconds (5 minutes).
Delay | Enter the number of seconds the scenario will be paused for. |
This function can be useful, for example, if you want to lower the target service server load or to simulate more human behavior when sending bulk SMS or emails.
If you wish to pause the flow for longer periods of time, we suggest splitting your scenario into two scenarios:
-
The first scenario would contain the part before the pause
-
The second scenario would contain the part after it
The first scenario would end up storing all the necessary information in a Data store together with the current timestamp. The second scenario would periodically check the Data store for records with a timestamp older than the intended delay, retrieve the records, finalize the processing of the data, and remove the records from the Data store.
Set Variable¶
Creates a variable that can be mapped by other modules in the route or by the Get Variable module for every route in the scenario.
Variable name |
Enter the variable name. This name will be displayed when mapping the variable in other modules. |
Variable lifetime |
One cycle The variable is valid only for one cycle. Useful when multiple webhooks in one scenario run are received (more webhooks = more cycles). One execution The variable is valid for one execution. One execution can contain more cycles. |
Variable value |
Enter the value of the variable. |
Set Multiple Variables¶
Creates multiple variables that can be mapped by other modules in the route or by the Get Multiple Variables module for every route in the scenario within a single operation.
The main benefits of the Set multiple variables module are:
-
one Set multiple variables module can replace a whole series of Set variable modules
-
one Set multiple variables module consumes just a single operation
Variables |
Add multiple variables you want to set.
|
||||
Variable lifetime |
One cycle The variable is valid only for one cycle. Useful when multiple webhooks in one scenario run are received (more webhooks = more cycles). One execution The variable is valid for one execution. One execution can contain more cycles. |
Possible uses of the Set/Get (multiple) variable(s) modules:
-
To store a calculated value for later use, even in a different route. Especially in cases when the value is used in multiple modules and the formula to calculate the value is overly complex.
-
To debug a formula. If a formula used in a module does not seemingly provide a correct result, copy the formula and paste it into a Set Variable module that you insert before the relevant module. Disconnect the module(s) after the Set Variable module and execute the scenario. Verify the Set Variable module's output, adjust/simplify the formula, execute the scenario again, and continue to do so until the issue has been resolved.
Get Variable¶
Retrieves a value that was previously created by the Set Variable module.
Note that this module can read a variable that was set anywhere in the scenario. The only requirement is that the Tools > Set Variable is executed before (in time) the Tools > Get Variable module. See the documentation for the Router module for information about the order in which routes are processed.
Get Multiple Variables¶
Retrieves values that were previously created by the Set Multiple Variables module within a single operation.
The main benefits of the Set multiple variables module are:
-
one Get multiple variables module can replace a whole series of Get variable modules
-
one Get multiple variables module consumes just a single operation
Variables |
Add multiple variables you want to get.
|
Possible uses of the Set/Get (multiple) variable(s) modules:
-
To store a calculated value for later use, even in a different route. Especially in cases when the value is used in multiple modules and the formula to calculate the value is overly complex.
-
To debug a formula. If a formula used in a module does not seemingly provide a correct result, copy the formula and paste it into a Set Variable module that you insert before the relevant module. Disconnect the module(s) after the Set Variable module and execute the scenario. Verify the Set Variable module's output, adjust/simplify the formula, execute the scenario again, and continue to do so until the issue has been resolved.
Aggregators¶
Table Aggregator¶
Merges values from the selected fields of received bundles into a single bundle using a specified column and row separator (which allows you to create a table).
Source module | Select the module you want to aggregate fields from. |
Aggregated fields | Select the fields from the module selected above whose values you want to aggregate into one bundle. |
Column separator | Select or enter the type of separator that will separate the field value columns in the resulting bundle. |
Row separator | Select or enter the type of separator that will separate the field value rows in the resulting bundle. |
Group by | Define an expression containing one or more mapped items. The aggregated data will then be separated into Groups with the same expression's value. Each Group outputs a separate bundle containing a Key with the evaluated expression and the aggregated text. By doing this, you can use the Key as a filter in subsequent modules. |
Text Aggregator¶
Merges values from the selected fields of received bundles into a single bundle.
Example
You can use the text aggregator tool to insert more values (e.g. customer names or notes) into a single bundle and send an email containing all the values in the email body or the email subject.
Numeric Aggregator¶
This module allows you to retrieve numerical values, then apply one of the selected functions (SUM, AVG, COUNT, MAX,...), and return the result in one bundle.
Example
The module sums up values under the number parameter.
Transformers¶
Compose a String¶
Converts any value to a string data type (text). It makes the mapping easier when mapping e.g. binary data.
Convert the Encoding of the Text¶
Converts entered input text (or binary data) to the selected encoding.
Input data | Enter the content you want to convert. |
Input data codepage | Enter the input data encoding type. This is important for the binary form of data. |
Output data codepage | Select the target encoding of your data. |
Switch¶
Checks the input value for a match with the provided list of values. Returns output based on the result.
Input | Enter the expression you want to evaluate. |
Cases | If the input contains a value entered to the Pattern field, then the value entered to the Output field is returned. If the condition is not met, then no output is returned OR the value from the Else field (below) is returned. |
Else | Enter the value that is returned when the criteria set in the Cases field are not met. |
Execute a Scenario¶
Status: PLANNED
- see the Workaround section below.
Workaround¶
Employ the HTTP > Make a request module in the other scenario to return the response.
Stop / Throw (an error)¶
In some cases, you may want to forcibly stop the scenario execution after the rollback or commit phase or to stop the processing of a route and optionally store it in the queue of incomplete executions.
Status: PLANNED
- see the Throw module.
55ad5 "Make a request") module in the main scenario to call the other scenario. Employ the Webhooks > Custom webhook module in the other scenario to receive the call. Employ the Webhooks > Webhook response module in the other scenario to return the response.