Tools
Our Tools section includes several useful modules that can enhance your Action Flow.
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 Action Flow 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 Action Flow 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 Action Flow sends an email to the first recipient after every odd Action Flow run, and to the second recipient after every even Action Flow 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 Action Flow flow for up to 300 seconds (5 minutes).
Delay | Enter the number of seconds the Action Flow 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 Action Flow into two Action Flows:
The first Action Flow would contain the part before the pause
The second Action Flow would contain the part after it
The first Action Flow would end up storing all the necessary information in a data store together with the current timestamp. The second Action Flow 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 Action Flow.
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 Action Flow 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 Action Flow 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 Action Flow 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 Action Flow. Verify the Set Variable module's output, adjust/simplify the formula, execute the Action Flow 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 Action Flow. 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 Action Flow. Verify the Set Variable module's output, adjust/simplify the formula, execute the Action Flow 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. When using regex patterns, make sure to adhere to the ECMAScript flavor. |
Else | Enter the value that is returned when the criteria set in the Cases field are not met. |
Execute a Action Flow
Status: PLANNED
- see the Workaround section below.
Workaround
Employ the HTTP > Make a request module in the main Action Flow to call the other Action Flow. Employ the Webhooks > Custom webhook module in the other Action Flow to receive the call. Employ the Webhooks > Webhook response module in the other Action Flow to return the response.
Stop / Throw (an error)
In some cases, you may want to forcibly stop the Action Flow 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.