Flow Designer Activities
Below is a list of activities that you can use to build telephony flows, bots, webhooks, blacklist, and much more. Let's get started!
Bot start Bot
This activity is the mandatory starting node in every bot flow. When executed, it automatically initializes context variables with the incoming interaction information. No configuration is required.
Available variables
The following variables are initialized at the start of the flow, regardless of the channel:
- CHANNEL: channel through which the interaction arrives (e.g.
webchat,sms,whatsapp,email,messenger,instagram). - GUID: unique identifier of the interaction.
- CAMPAIGN: campaign to which the interaction belongs.
- VARIABLES: JSON object with the interaction's additional data.
Additionally, depending on the channel, the following variables are initialized:
WebChat
- CLIENT_ID: customer identifier.
- PHONE_NUMBER: customer's phone number.
- CLIENT_NAME: customer's name.
- INITIAL_MESSAGE: initial message sent by the customer.
SMS
- CLIENT_ID: customer identifier.
- SMS_PROVIDER_TYPE: SMS provider type.
- INITIAL_MESSAGE: initial message received.
- CLIENT_NAME: customer's name.
Messenger
- CLIENT_ID: customer identifier.
- CLIENT_NAME: customer's name.
- PAGE_NAME: Facebook page name.
- INITIAL_MESSAGE: initial message received.
Email
- EMAIL_BODY: body of the last email received in the interaction.
- EMAIL_SUBJECT: email subject.
- CLIENT_NAME: sender's name.
- CLIENT_ID: sender's email address.
WhatsApp
- CLIENT_ID: customer identifier.
- PROVIDER: configured WhatsApp provider.
- INITIAL_MESSAGE: initial message received.
- CLIENT_NAME: customer's name.
Instagram
- CLIENT_ID: customer identifier.
- INITIAL_MESSAGE: initial message received.
- CLIENT_NAME: customer's name.
Webhook start Webhook
This activity is the mandatory starting node in every webhook flow. When executed, it automatically initializes context variables with the data from the incoming HTTP request. No configuration is required.
Available variables
- HEADERS: JSON object with the incoming HTTP request headers.
- BODY: JSON object with the request body (available if the request includes a body).
- METHOD: HTTP method of the request (GET, POST, PUT, etc.).
- FORM_PARAMS: JSON object with the form parameters sent in the body (available if applicable).
- QUERY_PARAMS: JSON object with the URL query string parameters (available if applicable).
Channel provider start Channel provider
This activity is the mandatory starting node in every channel provider flow. When executed, it automatically initializes context variables with the data of the processed message. No configuration is required.
Available variables
- AGENT: name of the agent assigned to the interaction.
- MESSAGE: content of the sent message.
- TO: destination number or address of the message.
- ATTACHMENTS: JSON array with the message attachments.
- CAMPAIGN: campaign associated with the interaction.
- GUID: unique identifier of the interaction.
Additionally, depending on the channel:
- SMS_GUID: message identifier for the SMS channel (SMS channel only).
- WHATSAPP_GUID: message identifier for WhatsApp (WhatsApp channel only).
Blacklist start Blacklist
This activity is the mandatory starting node in every blacklist flow. When executed, it initializes the context with the data of the call to be evaluated. No configuration is required.
Available variables
- CALL: JSON object with the data of the incoming call being evaluated against the blacklist.
Answer Telephony IVR
This activity is used to answer an incoming call on a channel. It is essential to include it to establish communication with the customer.
Properties
- Delay: This property allows you to specify the amount of time in seconds the activity will wait before answering the call. The default is 0 seconds.
Hang up Telephony IVR
This activity is used to end a call.
Properties
- Hangup cause: This property allows you to specify the reason why the call was terminated.
- 16: Normal call clearing
- 17: Busy
- 19: No answer
- 21: Rejected
- 34: Congestion
Is on time Bot Webhook Blacklist Channel provider
This activity is used to verify if the interaction is within the configured campaign service hours.
Properties
- Schedule: predefined time schedule against which the current date and time will be evaluated. It can include days of the week, time ranges, holidays, etc.
Schedule format
- Period: defined as days;hours, where ; separates the valid days (days) from the time range (hours).
- Days: use lowercase abbreviations: sun, mon, tue, wed, thu, fri, sat.
- Separators: separate multiple days with a comma (,).
- Examples: mon,tue,fri or sat,sun. All days: sun,mon,tue,wed,thu,fri,sat
- Hours: define a range
HH:mm-HH:mm(24h format, e.g.: 09:00-17:30). The dash (-) separates start and end.- Example: 08:30-17:00. All day: 00:00-23:59
- Multiple period combination: join multiple days;hours periods with &.
- Example:
mon,fri;09:00-17:00&sat;10:00-13:00 - Active Monday to Friday 9am-5pm and Saturday 10am-1pm.
- Example:
Dial Telephony IVR
This activity is used to make calls, enabling the connection between the Contact Center and the customer.
Properties
- Type: This property allows you to specify the type of dial to perform.
- Identifier: In this property, you must indicate the phone number of the destination, i.e., the number to be called.
- Timeout: This is the maximum time in seconds that the activity will wait for the call to be answered before automatically ending it. For example, if set to 20 seconds, the activity will wait 20 seconds before hanging up the call if it is not answered within this time frame.
- Options: This property allows you to specify additional options to customize the call behavior.
- A: A (x): plays the file x to the recipient.
- a: immediately answers the calling channel when the called channel responds.
- B: before initiating the outgoing call(s), "Gosub" to the specified location using the current channel.
- b: before initiating an outgoing call, "Gosub" to the specified location using the newly created channel. The "Gosub" will execute for each destination channel.
- C: resets the call detail record (CDR) for this call.
- c: if the Dial application cancels this call, always sets ${HANGUPCAUSE} to "answered elsewhere."
- F: when the caller hangs up, transfers the called party to the specified destination and begins execution at that location.
- g: continues execution of the dial plan at the next priority in the current extension if the destination channel hangs up.
- K: allows the caller to enable call parking by sending the DTMF sequence defined for call parking in the
features.conffile. - k: allows the called party to enable call parking by sending the DTMF sequence defined for call parking in the
features.conffile. - L: limits the call to (x) milliseconds. Plays a warning (y) when (y) milliseconds remain. Repeats the warning every (z) milliseconds until the time expires.
- m: provides hold music to the caller until the requested channel answers.
- R: by default: indicates ringing to the caller, even if the called party is not actually ringing.
- T: allows the caller to transfer the call to the called party.
- t: allows the called party to transfer the call to the caller.
- U: executes a "Gosub" routine for the called channel before connecting to the calling channel. x - Name of the subroutine context to execute via "Gosub." arg - Arguments for the "Gosub" routine.
- URL: This property allows you to specify a URL for a webhook to integrate call events with external systems.
Transfer queue Telephony IVR
This activity allows you to transfer a call to a specific campaign to be attended by an agent.
Properties
- Campaign: Select the campaign to which you want to transfer the call. You can choose a campaign directly from the dropdown list or use a dynamic variable from the flow.
- Existing campaign: Choose a campaign from those available in the system.
- Dynamic variable: If the campaign name is stored in a variable within the flow, use the format
${variableName}to reference it. For example:${supportCampaign}or${salesCampaign}.
Read Telephony IVR
This activity allows playing an audio file for the customer to enter digits, which are then stored in a variable. It is commonly used in IVRs for customers to select an option, enter their ID number, etc. The variable can then be used by other activities to perform different actions.
Properties
- Variable: In this property, you must specify the name of the variable where you want to store the information.
- Audio: In this property, you must select an audio file to play to the customer.
- Options: In this property, you must select the options for the audio playback.
- s: returns immediately if the line is not active.
- i: plays the filename as a tone indication from the
indications.conffile. - n: reads digits even if the line is not active.
- Maximum digits: In this property, you must specify the maximum number of digits the customer can enter.
- Attempts: In this property, you must specify the maximum number of incorrect attempts. For example, if the customer does not enter anything and the audio is replayed, it counts as a failed attempt.
- Maximum time: In this property, you must specify the maximum time in seconds.
Send DTMF Telephony IVR
This activity sends DTMF digits.
Properties
- Digits: List of digits 0-9, *#,ad,AD to send.
- Maximum time: Amount of wait time in milliseconds between tones.
- Duration: Duration in milliseconds of each digit.
- Channel: Channel where the digits will be played.
Set caller id Telephony IVR
This activity is used to get or set the caller ID on the channel.
Properties
- Variable: The allowed data types are: num, name, all, ANY, DNID, RDNIS.
Sip add Telephony IVR
This activity allows you to add SIP headers to a call made through the DIAL activity. You can add as many headers as you need.
Properties
- Header: In this property, you must specify the header.
- Content: In this property, you must specify the content.
Sip remove Telephony IVR
This activity allows you to remove SIP headers previously added with the SIP Add activity. If no parameter is provided, all headers will be removed. If a specific header is provided, only matching headers will be deleted.
Properties
- Header: You must specify the header to be removed.
Volume Telephony IVR
This activity allows you to set or get the TX (outgoing) or RX (incoming) volume of a channel. By default, it is set to 0. Positive or negative values can be used, depending on whether you want to increase or decrease the channel's volume.
Properties
- TX volume: This is the volume level of the agent's voice.
- RX volume: This is the volume level of the customer's voice.
Variables Telephony IVR
This activity allows you to create variables and optionally assign them an initial value.
Properties
- Name: The name that identifies the variable and that will be used in other activities in the flow to access and/or modify its value.
- Value: The initial value the variable will have; it can be empty by default.
Menu Telephony IVR
This activity plays an audio file for the user to select an option, stores the selection in a variable, and then redirects the call flow to different paths based on defined conditions. Its behavior is similar to an IVR.
Properties
- Variable: Name of the variable where the value entered by the user will be stored.
- Audio: Audio that will be played when the activity is executed, which should include the corresponding options. You can use existing audio files or upload a new one.
- File name: Name of the audio file to play.
- Option:
- Maximum digits: Maximum number of digits the user can enter.
- Attempts: Number of times the system will repeat the audio if no valid response is received after the configured maximum response time.
- Maximum time: Maximum time in seconds the system will wait for the user to enter an option.
- Conditions: Allows defining different flow paths based on the value entered by the user.
- An example condition could be
$["${option}"=="2"]. This condition checks if theoptionvariable equals 2.
- An example condition could be
Output connections
Once conditions are defined, you can connect the activity to the different flow paths based on the value entered by the user. Use the blue circle located on the node and link each condition to the corresponding activity according to the desired path.
Evaluate Telephony IVR Bot Webhook Blacklist Channel provider
This activity allows you to evaluate one or more custom conditions within the flow. Based on the result of these conditions (for example, a comparison between variables), the flow execution can be redirected along different paths.
Properties
- Conditions: One or more logical expressions that will be evaluated at runtime. Each condition can be based on flow variables (for example:
$["${option}"=="2"]). When a condition is met, the corresponding path is followed.
If time Telephony IVR
This activity allows you to evaluate the current time and date to execute different paths within the flow. It is useful for setting service hours, redirections based on the day, or executing specific logic outside business hours.
Properties
- Schedule: Predefined time schedule against which the current date and time will be evaluated. It can include days of the week, time ranges, holidays, etc.
- Timezone: Timezone that will be used as a reference for the time evaluation. It is important to configure it correctly if the system manages flows in multiple regions.
Schedule format
- Period: defined as days;hours, where ; separates the valid days (days) from the time range (hours).
- Days: use lowercase abbreviations: sun, mon, tue, wed, thu, fri, sat.
- Separators: separate multiple days with a comma (,).
- Examples: mon,tue,fri or sat,sun. All days: sun,mon,tue,wed,thu,fri,sat
- Hours: define a range
HH:mm-HH:mm(24h format, e.g.: 09:00-17:30). The dash (-) separates start and end.- Example: 08:30-17:00. All day: 00:00-23:59
- Multiple period combination: join multiple days;hours periods with &.
- Example:
mon,fri;09:00-17:00&sat;10:00-13:00 - Active Monday to Friday 9am-5pm and Saturday 10am-1pm.
- Example:
If neither the Schedule nor the Timezone is specified, the values configured in the campaign will be used.

SQL Query Telephony IVR Bot
This activity allows you to execute a SQL query directly against the system database. It is useful for retrieving information that can be used later in the flow, such as customer data, process statuses, etc.
Properties
- Variable: Name of the variable in which the query result will be stored for later use in the flow.
- Query: SQL statement to execute. You can include flow variables to build dynamic queries.
Command Telephony IVR Bot
This activity allows you to execute a command directly on the server for advanced actions that require interaction with the operating system.
Properties
- Command: The command statement to execute, which must use the syntax corresponding to the server's operating system.
- Variable: Name of the variable where the command output will be stored.
Web Service Telephony IVR Bot
This activity allows you to make an HTTP request to an external service during the flow execution. It is ideal for integrations with third-party systems, external validations, or data submission.
Properties
- Headers: Allows adding custom HTTP headers, such as
Authorization,Content-Type, etc., needed to access the service. - Variable: Name of the variable in which the request response will be stored.
- URL: Address of the web service to which the request will be sent.
- Method: HTTP method to use. Can be
GET,POST,PUT,DELETE, orPATCH. - Body: Request body (applies to methods other than GET). It can include data in JSON format and flow variables (for example:
{"clientId":"432842887"}).
Language Telephony IVR
This activity allows you to set the language that will be used in the flow. It is important to define it correctly, as it is the language in which audios will be played.
Properties
- Language: Select the language you want for the playback of flow audios.
Playback Telephony IVR
This activity allows you to play an audio file for the user within the call flow. It is useful for providing information, instructions, or messages before continuing with other actions.
Properties
- Audio: Audio that will be played. You can use existing audio files or upload a new one.
- File name: If enabled, allows manually specifying the name of the file to play.
- Options: Additional parameters that affect audio playback.
- s: skips message playback if the channel is not in "active" state, i.e., it has not yet been answered. If this happens, the application will automatically return.
- n: do not answer the channel before playing the files.
- m: only stop if a digit pressed matches a single-digit extension in the destination context.
- Background: If enabled, allows the audio to finish playing in case the user presses any key or DTMF.
- Language override: Allows selecting a specific language for this playback, different from the one defined globally in the Language activity.
Start MoH Telephony IVR
This activity allows you to start playing hold music during a call. This music plays until the flow indicates otherwise (for example, using the Stop MoH activity) or when execution ends.
Properties
- Hold music: Select the hold music that will be played.
Stop MoH Telephony IVR
This activity allows you to stop the hold music that was previously started with the Start MoH activity.
Properties
This activity has no configurable properties.
Send email Telephony IVR
This activity allows you to automatically send emails from the flow. It is useful for notifications, alerts, sending reports, or any email interaction required during a call or process.
Properties
- Sender name: Name that will appear as the sender of the email.
- Address: Email address of the recipient.
- CC: Field for adding email addresses that will receive a copy of the message.
- BCC: Field for adding addresses that will receive a hidden copy of the message.
- Subject: Text that will be displayed as the email title.
- Body: Message body. It can contain plain text or HTML, and use flow variables to personalize the content.
- Attachments: Allows adding files that will be sent as attachments in the email.
Random number Telephony IVR
This activity allows you to generate a random number within a defined range.
Properties
- Result: Name of the variable in which the result will be stored.
- Minimum: Minimum numeric value.
- Maximum: Maximum numeric value.
Log Telephony IVR
This activity allows you to record messages in the system logs during the flow execution. It is especially useful for debugging, monitoring behaviors, or leaving traceability of important events.
Properties
- Level: Log level at which the message will be logged. It can be
ERROR,WARNING,NOTICE,DEBUG,VERBOSE, orDTMF, depending on the type of message to be recorded. - Message: Text that will be written to the log. It can include flow variables to show dynamic values.
No operation Telephony IVR
This activity logs a message to the Asterisk console. It can be used to log responses from external services, variable values, messages, etc.
Properties
- Variable: Content to be logged.
Mix monitor Telephony IVR
This activity allows you to start recording the call audio, storing it in a file.
Properties
- File name: Name with which the recording will be saved on the server. It is generally the interaction GUID.
- Options: Allows configuring the recording behavior. Multiple options can be combined to activate different functions.
- a: appends the recording to the existing file if it already exists.
- b: starts recording before the call is answered (channel B).
- B: executes a command at the start of the recording.
- d: records on both channels (incoming and outgoing).
- v: records only the voice from channel A (incoming call).
- V: records only the voice from channel B (outgoing call).
- W: allows channel A to interrupt the recording.
- r: replaces existing files without asking for confirmation.
- t: adds a timestamp to the file name.
- i: includes channel identification information.
- p: automatically pauses the recording on certain events.
- P: automatically answers if the call has not been answered.
- Command: Command that will be executed when the recording ends.
- Stereo: If enabled, the recording is saved in stereo format (each audio channel on a separate track).
Stop Mix monitor Telephony IVR
This activity allows you to stop the recording of a call through the Mix Monitor ID.
Properties
- Mix monitor ID: Indicates which Mix Monitor ID's recording should be stopped.
Goto Telephony IVR
This activity allows you to redirect the flow execution to another defined flow. That is, when passing through this activity, execution will continue from a specific activity within the target flow.
Properties
- Context: Name of the context in which the target flow is located.
- Extension: Name of the flow within the previously selected context.
- Step: Specific activity within the flow from which execution should continue.
Go sub Telephony IVR
This activity temporarily redirects the flow execution to another defined flow, executing a subprocess. Unlike the Goto activity, when the target flow ends, execution returns to the next point in the original flow from where it was called. It is useful for reusing common logic or encapsulating processes without losing the continuity of the main flow.
Properties
- Context: Name of the context in which the target flow is located.
- Extension: Name of the flow within the previously selected context.
- Step: Specific activity within the flow from which the subflow execution should begin.
Include Telephony IVR
This activity allows you to include another context within the current flow, inheriting its extensions and steps. It is useful for reusing logic defined in other flows without duplicating configurations, facilitating maintenance and modularity.
Properties
- Context: Name of the context to include in the current flow. The extensions defined in that context will be available during execution.
Return Telephony IVR
This activity ends the execution of a subflow started via the Go sub activity and returns to the point in the main flow where it was called. It is essential for correctly closing the execution of nested flows and continuing with the original logic.
Properties
- Value: The value specified in this property will be stored in the variable
GOSUB_RETVALand will be accessible from the flow it returns to.
Index of Telephony IVR
This activity allows you to get the index at which a specific value is found within a string separated by a delimiter. If the value is not found, -1 is returned.
Properties
- Result: Variable where the found index will be stored.
- Variable: Text or list (as a string) where the value will be searched.
- Value: Text to search for within the string.
- Delimiter: Character or sequence that separates elements within the string (for example,
,,|,;, etc.).
Trim Telephony IVR
This activity allows you to remove specific characters (by default, whitespace) from the beginning, end, or both ends of a text string.
Properties
- Type: Defines which part of the text to clean.
- Left: from the beginning.
- Right: from the end.
- Both: from the beginning and end.
- Variable: Variable where the final result of the cleaned text will be stored.
- Value to trim: Original string to be cleaned. It can be direct text or a flow variable.
Upper case Telephony IVR
This activity allows you to convert all the content of a text string to uppercase. It is useful for normalizing data before comparisons or for output formatting.
Properties
- Result: Name of the variable where the text converted to uppercase will be stored.
- String: Original text string to convert to uppercase. It can be direct text or a flow variable.
IVR Function Telephony IVR
This activity allows you to execute a previously defined IVR function, with the goal of modularizing the call flow, reusing common logic, and avoiding repetition of code within the general flow.
Properties
- Function name: Name of the function you want to execute.
- Parameters: Allows sending one or more values to the function. These values must be entered in the same order the function expects to receive them. Within the function, parameters are accessed using variables of the type
${ARGn}, where n represents the parameter position (for example,${ARG1},${ARG2}, etc.).
Example
Suppose an IVR function is called with the following parameters:
- Parameter 1:
52732635 - Parameter 2:
Montevideo - Parameter 3:
Carlos Martinez
Within the IVR function, these values can be used through the following variables:
${ARG1}=52732635${ARG2}=Montevideo${ARG3}=Carlos Martinez
This allows the same function to be reusable in different contexts, simply by changing the values sent as parameters.
Lower case Telephony IVR
This activity allows you to convert all the content of a text string to lowercase. It is useful for normalizing data before comparisons.
Properties
- Result: Name of the variable where the text converted to lowercase will be stored.
- String: Original text string to convert to lowercase. It can be direct text or a flow variable.
Replace Telephony IVR
This activity allows you to search and replace text fragments within a string. It is useful for dynamically adapting, correcting, or transforming data within the flow.
Properties
- Result: Name of the variable where the resulting text after the replacement will be stored.
- Variable: Variable containing the original string on which the operation will be performed.
- Find: Text or string to search for within the variable.
- Replace: Text with which each found match will be replaced.
Sort Telephony IVR
This activity allows you to sort a list of elements, either alphabetically or numerically, in ascending order. It is useful for organizing data before presenting or processing it.
Properties
- Result: Variable where the sorted list will be stored.
- List: Variable containing the elements to sort. Elements must be separated by a delimiter (for example, commas).
AES decrypt Telephony IVR
This activity allows you to decrypt information previously encrypted with AES encrypt, using the same secret key. It is essential for recovering protected data and using it in later stages of the flow.
Properties
- Variable: Name of the variable where the decrypted text will be stored.
- Key: Key used to decrypt the content. It must be the same one with which the text was originally encrypted.
- Decrypt: Encrypted text to decrypt. It can be entered manually or come from another flow variable.
AES encrypt Telephony IVR
This activity allows you to encrypt information using the AES encryption algorithm. It is useful for protecting sensitive data within the flow, such as passwords, tokens, or other critical information.
Properties
- Variable: Name of the variable where the encrypted text will be stored.
- Key: Secret key used to perform the encryption. It must be a secure and consistent string so it can be decrypted later.
- Encrypt: Original text to encrypt. It can be entered manually or come from another flow variable.
Math Telephony IVR
This activity allows you to perform logical and mathematical operations between two values, called Left and Right.
Properties
- Result: Name of the variable where the operation result will be stored.
- Result type: Data type of the result.
- Float: decimal number (for example, 3.14).
- Integer: integer number (for example, 42).
- Hex: number in hexadecimal format (for example, 0xFF).
- Char: ASCII character resulting from the value (for example, 65 = 'A').
- Left: Value of the left operand in the operation. It can be a number, text, or a flow variable.
- Operators: +, -, *, /, %, ^, <, >, >=, <=, AND, OR, XOR, >>, <<, MIN, MAX, and ABS.
- Right: Value of the right operand in the operation. It can be a number, text, or a flow variable.
While Telephony IVR
This activity allows you to execute a block of activities repeatedly while a logical condition is met.
Properties
- Condition: Logical expression that must evaluate to true for the block of activities to execute. This condition is evaluated before each iteration.
- Example:
${status} != "finished" - Explanation: The condition evaluates whether the variable
${status}has a value other than "finished".
- Example:
Stop While Telephony IVR
This activity allows you to manually interrupt the execution of a While loop, even if the loop condition is still true.
Properties
This activity has no configurable properties.
Wait Telephony IVR
This activity allows you to temporarily pause the flow execution for a specified amount of time.
Properties
- Wait type: Defines the unit of time in which the wait will be applied. Available options are:
- Seconds: pauses the flow for a specific number of seconds.
- Seconds: field where the numeric value of the wait time is defined. A number can be entered directly (for example, 3) or a variable (for example,
${wait_time}).
- Seconds: field where the numeric value of the wait time is defined. A number can be entered directly (for example, 3) or a variable (for example,
- Until: waits until a certain condition is met (for example, a variable with a certain value).
- Epoch date: date in epoch (timestamp) format until which to wait.
- For noise: waits until noise is detected.
- Maximum time: total maximum wait time.
- Iterations: number of cycles in which noise will be evaluated.
- Noise required: amount of noise needed to continue.
- For silence: waits until a continuous period of silence is detected.
- Maximum time: total wait duration.
- Iterations: analysis cycles.
- Silence required: amount of silence required.
- For extension: waits until an extension is dialed.
- Seconds: wait time before canceling.
- Options:
- m: use hold music while waiting for the extension.
- d: play dial tone on the channel while waiting for digits.
- For digit: waits until the user presses a key.
- Seconds: maximum wait time.
- Digits: number of expected digits.
- For ring: waits until a ring signal is detected.
- Maximum time: maximum wait duration.
- For tone: waits until a DTMF tone is detected.
- Maximum time: maximum listening duration.
- Tone frequency: expected frequency.
- For signal: waits until a specific signal is received.
- Maximum time: wait duration before cancellation.
- Signal name: exact name of the signal to wait for.
- For condition: pauses until a logical condition is met.
- Maximum time: wait limit duration.
- Replacement char: character that can be used as a wildcard (if applicable).
- Expression: logical condition (for example,
${status} = "active"). - Interval: time between each evaluation of the condition.
- Seconds: pauses the flow for a specific number of seconds.
Filter Telephony IVR
This activity allows you to filter the characters of a text string, keeping only those that are within an allowed set.
Properties
- Result variable: Name of the variable where the filtered text will be stored.
- Allowed characters: List of valid characters.
- Example:
0123456789to allow only numbers, orABCDEFabcdeffor hexadecimal values.
- Example:
- Input variable: Variable containing the original text to be processed by the filter.
Pop Telephony IVR
This activity allows you to extract (and remove) the first element from a list of values separated by a delimiter and work with it.
Properties
- Variable: Name of the variable containing the list of values.
- Example:
${my_list}→ "John|Peter|Lucy".
- Example:
- Delimiter: Character that separates elements within the list.
- Example:
|,,,;, etc.
- Example:
Push Telephony IVR
This activity allows you to add a new value to the end of a list of elements separated by a delimiter.
Properties
- Variable: Name of the variable containing the list (or where it will be created if it does not exist yet).
- Example:
my_list
- Example:
- Delimiter: Character that will separate the elements within the list.
- Example:
|,,,;, etc.
- Example:
Read message Bot
This activity allows you to receive a message sent by the customer during the interaction and store it in a variable for later use in the flow.
Properties
- Variable: Name of the variable in which the message received from the customer will be stored.
- Maximum time: Sets the time limit in seconds that the activity will wait to receive the customer's message.
Read file message Bot
This activity allows you to receive a file sent by the customer (such as an image, PDF, audio, etc.) and store the reference to it in a variable, for later use in the flow.
Properties
- Variable: Name of the variable where the reference to the file received from the customer will be stored.
- Maximum time: Sets the time limit in seconds that the activity will wait to receive the file from the customer.
Wait bot Bot
This activity pauses the bot flow execution until the customer sends the next message. Unlike Read message, it does not store the content of the received message. It is useful for waiting for any response from the user before continuing with the next activity.
Properties
This activity has no configurable properties.
Send message Bot
This activity allows you to send a message to the customer during the interaction.
Properties
- Message: Content of the message that will be sent to the customer. It can be plain text or include variables to personalize the response (for example,
Hello ${name}).
Send attachment Bot
This activity allows you to send an attachment file to the customer during the interaction. It can be an image, document, audio, or video.
Properties
- File name: Here you must specify a name for the file that will be sent to the customer.
- Type: In this field you must specify the type of attachment to send, for example:
image,video,audio. For documents, the structure isapplication/type, for example to send a PDF:application/pdf. If you need to send another type of document, contact our Support team. - URL: URL address from where the file to be sent to the customer will be obtained. This can be a fixed URL or built dynamically using flow variables (for example,
${url_document}).- Example:
https://yoursite.com/documents/user_manual.pdf
- Example:
Attention: it is important that the URL is public, meaning that uContact can access the file to be able to send it.
Send email Bot
This activity allows you to send an email to the customer using a predefined template, dynamically filling its content with flow variables.
Properties
- Template: Name of the email template to use. Templates must be previously configured in the system.
- Variables: Here the variables are defined that will complete the dynamic fields of the template.
Transfer bot Bot
This activity allows you to transfer the interaction to another campaign with the possibility of assigning it to a specific user.
Properties
- Destination: Name of the campaign to which the interaction will be transferred.
- Agent: If you want to assign the interaction to a specific user in that campaign, you can enter the username.
- Timeout for agent: Time in seconds to wait for the user to take the interaction.
Finish interaction Bot
This activity allows you to finish the interaction with the customer.
Properties
This activity has no configurable properties.
Disposition Bot
This activity allows you to disposition the interaction within the bot flow, assigning it a disposition and optionally a comment. It is equivalent to manually dispositioning an interaction from the inbox.
Properties
- Levels: Disposition tree represented as a string of selected levels.
- Comment: Additional comment that will be recorded along with the disposition.
- DispositionsIds: List of selected disposition IDs in array format (for example,
[5,12]).
Client Name Bot
This activity allows you to set or update the customer's name within the interaction, which can be used to personalize messages and improve the conversational experience.
Properties
- Customer name: Value that will be assigned as the customer's name. It can be fixed text or a variable obtained previously.
- Example:
${entered_name}.
- Example:
Function Bot
This activity allows you to call a Bot or IVR function previously created in the system, executing it as a reusable subflow. Unlike the Procedure activity, no code is written here — instead, a saved function is referenced by name.
Properties
- Function name: Name of the function previously created in the system that you want to invoke.
WebChat Event Bot
This activity allows you to emit a custom event toward the customer connected through a WebChat session. It is useful for sending real-time data to the client interface, such as status updates, notifications, or additional information to be displayed in the chat.
Properties
- Data: JSON object with the event data that will be sent to the customer via the active WebChat session. It can include any information that the WebChat interface is configured to process.
Fuzzy Search Bot
This activity allows you to perform approximate (fuzzy) searches over a list of elements, comparing an input text with the list elements and returning results sorted by similarity. It is useful when you need to find matches even with typographical errors, spelling variations, or partial user inputs.
Properties
- Variable: Name of the variable where the search result will be stored. The result will be a JSON object array sorted by relevance, where each object contains the found string and its similarity score.
- Word: Word or text to search for within the list. It can be text entered directly or come from a flow variable (for example,
${user_text}). - List: List of elements against which the comparison will be made. It must be an array of strings in JavaScript format (for example,
["product1", "product2", "product3"]).
Procedure Bot Blacklist Channel provider Webhook
This activity allows you to execute JavaScript code directly within the flow to perform custom operations.
Properties
- Code: JavaScript code block that will be executed. It can include conditional logic, flow variable manipulation, function calls, etc.
Query JSON Bot Webhook
This activity allows you to execute a SQL query and store the result directly as a parsed JSON object. Unlike SQL Query, the result is stored as a structured object, allowing direct access to its fields using JavaScript notation (for example, VARIABLE[0].name).
Properties
- Variable: Name of the variable in which the result will be stored as a JSON object.
- Query: SQL statement to execute. You can include flow variables to build dynamic queries.
Log Op Bot Blacklist Webhook Channel provider
This activity allows you to add a log entry when the flow is executing. When the flow passes through this node, the configured message will automatically be logged.
Properties
- Log: Message that will be logged in the system. It can include flow variables.
XML JSON Bot Blacklist Webhook Channel provider
This activity allows you to convert a string in XML format to JSON. The result is available as a structured JSON object, making it easy to access its values using JavaScript notation.
Properties
- XML: Text string in XML format to convert. It can be a direct value or a flow variable (for example,
${xmlResponse}). - Variable: Name of the variable where the result in JSON format will be stored.
Receive message Webhook
This activity is used to process an incoming message from a channel provider (such as SMS or WhatsApp) and inject it into the system as a new interaction.
Properties
- From: Number or address from which the message originated.
- DID: Destination number (DID) that received the message. Used to determine which channel (SMS or WhatsApp) the interaction belongs to.
- ID: Unique identifier of the received message.
- Client name: Customer's name, if available.
- Attachment: Indicates if the message contains attachments.
- Message: Text content of the received message.
Message result Channel provider
This activity registers the result of a message processed in an interaction, such as whether it was delivered, failed, or resent.
Properties
- ID: Identifier of the message to which a result is assigned.
- Result: Final status of the message, for example: delivered, failed, resent.
Message status Channel provider
This activity updates or stores the current status of a message within the flow.
Properties
- ID: Identifier of the message to monitor.
- Status: Current status of the message (sent, delivered, read, etc.).
Result Blacklist
This activity allows you to define an action to take based on the result associated with the contact or message.
Properties
- Result: Action that will be taken as a consequence of the obtained result.
- Call: Indicates that a call should be made.
- Do not call: Marks the contact as not contactable.
- Respool alternative: Reassigns the contact to a retry alternative or secondary queue.
Webhook response Webhook
This activity allows you to configure the HTTP response that the flow will send back to the system that made the webhook call. It is useful for indicating the processing result, sending response data, and defining response headers.
Properties
- Status: HTTP status code of the response (e.g., 200, 404).
- Headers: Headers to return in the response.
- Body: Response message body, generally in JSON or plain text format.
- Method: HTTP method of the response.
Resume Bot
This activity allows you to resume a previously paused interaction using its unique identifier.
Properties
- Interaction GUID: Unique identifier of the interaction to be resumed within the flow.
Set data Bot
This activity allows you to update the data (VARIABLES) of an active interaction identified by its GUID. It is useful for modifying the state of another in-progress interaction from an external flow, for example when used together with the Resume activity.
Properties
- GUID: Unique identifier of the interaction whose data you want to update.
- Data: JSON object with the new data to assign to the interaction. This data will be available as
VARIABLESin that interaction's flow.
Json decode Telephony
This activity decodes a value from a JSON string stored in a channel variable and saves the result in another variable.
Properties
- Result: Name of the channel variable where the extracted value will be stored.
- Variable: Name of the channel variable that contains the JSON string to decode.
- Item: Key or dot-separated path to the value you want to extract. For example, to access
{"user":{"name":"John"}}, useuser.name. - Separator: Character used to separate nested path segments. Defaults to
.. - Options: Additional options for the function.
- c: Returns the count of elements in the array or object instead of a value.
Using Json decode as a function
This activity can also be used inline as a function within other activities such as Evaluate or Set, without needing a result variable:
${JSON_DECODE(VARIABLE,key)}Example in Evaluate:
$["${JSON_DECODE(CAMPAIGN,autoAnswer)}"=="1"]
Parse XML Telephony
This activity parses an XML string and automatically creates channel variables for each XML element, using the element name as the variable name and its text content as the value.
Properties
- XML: The XML string to parse. This can be a literal string or a channel variable containing it (e.g.,
${xmlResponse}).
How it works
After executing this activity, each element in the XML tree becomes an accessible channel variable. For example, given the following XML:
<res>
<body>
<msgtype>12</msgtype>
<langflag>zh_CN</langflag>
<tokensn>1000000001</tokensn>
</body>
</res>The activity will set the following variables:
${msgtype}→12${langflag}→zh_CN${tokensn}→1000000001
If two XML elements share the same name at different levels of the tree, the last one processed will overwrite the previous value.
