1. Home
  2. Configuring
  3. Messaging smart routing actions

Messaging smart routing actions

Smart licence needed

[Reading time: 17 minutes]

Overview

messaging smart routing is built as a tree of actions. Each action performs a specific task — sending a message, branching on a value, distributing the interaction, calling a web service, etc. — and connects to one or more output branches that determine which action runs next.

This article describes all actions available in a messaging smart routing, grouped by category. For how to create and manage smart routings, see the Messaging smart routings article.

Prerequisites

  • Smart license.
  • Access to the Maker.
  • A messaging smart routing in development (a production version cannot be edited).
  • Depending on the actions used: value tablesvariablesdistribution queuescalendarsdatabasesCRM cardsweb servicesemail/SMS templates, etc. pre-configured.

Common concepts

Output branches

Each action has one or more output branches (links). After the action runs, the smart routing continues along the branch matching the action’s result. The most frequent labels shown in the Maker are:

LabelMeaning
OKThe action succeeded.
Error / Not OKThe action failed or returned a negative result.
Reference not found / Not foundA referenced item (queue, card, template, entry…) could not be found.
Response time exceededThe customer did not respond within the allotted time.
Link 1 … Link 10Numbered branches used for multi-choice or load-sharing actions.
By defaultFallback branch when no other condition matches.

I know / I want

Many actions offer an I know selector (sometimes labelled I want) that lets you choose how the target entity is identified. The two options offered are always specific to the entity manipulated by the action. For example:

  • For a queue: the queue or the queue reference.
  • For a calendar: the schedule or the schedule reference.
  • For an email template: the email template or the email template reference.
  • For a smart routing: the smart routing or the smart routing reference. Etc.

The first option lets you pick the entity directly from a dropdown. The second option lets you provide a reference code (static or dynamic via a variable), useful when the target depends on a flow variable. A few actions add extra options on top of these two (e.g. assigning to the preferred agent for a user distribution).

Warning: If a referenced entity is deleted or its reference is changed, the action will no longer work.

Variables in text fields

Text inputs marked as “magic” accept dynamic references to flow variables (e.g. a value captured by a question, a field returned from a database query, a customer property). The variable is resolved at runtime.

1. Actions and action tree

1.1. Start

Entry point of the smart routing. Automatically created when a version is created and cannot be deleted. Every interaction entering the smart routing begins here.

Parameters: none.
Output branches: OK.

1.2. Load sharing

Randomly splits incoming traffic across up to 10 branches, according to configurable percentage weights. Useful for A/B testing or progressively rolling out a new flow.

Parameters:

  • The loads (the sum must be equal to 100): 10 numeric inputs labelled Link load no. 1 to Link load no. 10. The total of all loads must equal 100.

Output branches: Link 1, Link 2, … Link 10, No link.

1.3. Add a checkpoint

Tags the interaction with a qualification tag. Useful to mark a specific step in the flow, to filter statistics later, or to trigger conditional logic downstream.

Parameters:

  • I knowthe checkpoint (pick from a dropdown) or the checkpoint reference (provide the reference code).

Output branches: OK, Reference not found.

1.4. Pause

Holds the flow for a configured duration before continuing to the next action.

Parameters:

  • Pause time (sec): duration in seconds.

Output branches: OK.

1.5. Node

Logical join / grouping point. Lets multiple upstream branches converge into a single downstream flow, or acts as a visual anchor to keep large trees readable.

Parameters: none.
Output branches: OK.

2. Messaging

2.1. Simple message

Sends a one-way text message to the customer on the current messaging channel. No response is expected.

Parameters:

  • Message: text content of the message (variables can be injected).

Output branches: OK.

2.2. Message awaiting response

Sends a welcome message followed by one or more questions. Each answer is validated against the expected type and stored in a flow variable. If the customer’s answer is invalid, a default error message is sent and the question is asked again, up to the configured limit.

Parameters:

  • Message: welcome text sent before the first question.
  • Maximum response wait time (sec): between 30 and 10,800 seconds (3 hours).
  • Maximum number of response attempts: between 1 and 10.
  • Default error message: sent when the customer’s answer fails validation.
  • Question (1 to 10), each with:
    • Question content: the question text.
    • Variable type: Number, Email, Date, Long text (10,000 characters), Image, Phone.
    • Variable and Field: target variable and field where the validated answer is stored.

Output branches: OK, Error, Maximum number of attempts reached.

Note: Validation rules — Number must be a valid numeric value, Phone is normalized to E.164, Email must follow the email format, Date must be a valid date, Image must be a valid image URL/MIME type on the channel.

2.3. Message with choice

Sends a message accompanied by quick-reply buttons and waits for the customer to pick one. Each reply is linked to its own branch.

Parameters:

  • Message: prompt sent before the buttons.
  • Maximum response wait time (sec): between 30 and 10,800 seconds.
  • Select responses (1 to 10): each button has a Response content and is associated to its own output branch (Link 1 … Link 10).

Output branches: Link 1, Link 2, … Link 10, Error.

Note (WhatsApp): quick-reply buttons must exactly match an approved WhatsApp template declared in the Business Solution Partner. A mismatch prevents the buttons from being rendered.

3. Sending

3.1. Send an email

Sends a templated email from within the messaging flow. The template can be linked to the interaction (for tracking) or sent as a basic email.

Parameters:

  • I knowthe email template or the email template reference.
  • Email template (or template reference). When a template is selected, its template variables appear and must be filled in.
  • TypeOutgoing interaction (saves the send as an outgoing interaction) or Basic send (no outgoing interaction created).
  • If Outgoing interactionDistribution queue (sender context).
  • If Basic sendMailbox (sender context).
  • TOCCBCC: recipients (emails or variables).
  • Subject: overrides the template’s default subject if provided.

Output branches: OK, Partially sent, Reference not found, Error.

3.2. Send a SMS

Sends a templated SMS to the specified recipient.

Parameters:

  • I knowthe SMS template or the SMS template reference.
  • SMS template (or template reference). When a template is selected, its template variables appear and must be filled in.
  • Content: optional text that overrides the SMS template content.
  • TypeOutgoing interaction or Basic SMS send.
  • SMS number: sender number.
  • Recipient: recipient phone number (variable supported).

Output branches: OK, Error, Not mobile, Reference not found.

4. Distribution

4.1. Distribution to queue

Routes the interaction to an ACD distribution queue (or queue group) so that an agent can take it.

Parameters:

  • Distribution toQueue or Queue group.
  • I know:
    • For a queue: the queue or the queue reference.
    • For a queue group: the distribution group or the distribution group reference.
  • Prioritize: if enabled, the interaction is placed first in the queue.

Output branches: Processed, Unprocessed, Reference not found, Overflow – No user, Overflow – Maximum estimated waiting time, Overflow – Maximum number of waiting interactions, Overflow, Dissuasion – Maximum wait time reached, Dissuasion – By the user, Dissuasion (all types).

4.2. Distribution to a smart routing

Hands the interaction off to another messaging smart routing. The target smart routing picks up processing from its Start action.

Parameters:

  • I knowthe smart routing or the smart routing reference. The target smart routing must use the same flow type and not be an end-of-interaction smart routing.

Output branches: Not found, Maximum number of distributions to a smart routing reached.

4.3. Distribution to a user

Assigns the interaction directly to a specific user / agent, bypassing the queue.

Parameters:

  • I knowthe userthe user reference, or I want to assign to the preferred agent.
  • If the user: pick an active user from the dropdown.
  • If the user reference: provide the user reference code.

Output branches: OK, Error, No response, Reference not found.

5. Cases & CRM

5.1. Associate the interaction with a case

Retrieves an existing case using its reference and attaches it to the current interaction.

Parameters:

  • Reference of the case with which the interaction is associated: lookup value (variable supported). If the reference is not entered, the last case associated with this customer (out of the last 3) will be selected.

Output branches: OK, Not found.

5.2. Dissociate the case from the interaction

Detaches the case currently linked to the interaction. Useful when re-qualifying mid-flow.

Parameters: none.
Output branches: OK.

5.3. Create a new case and associate it with the interaction

Creates a new case of a given type and immediately attaches it to the interaction.

Parameters:

  • New case title (variable supported).
  • I knowthe case type or the case type reference.

Output branches: OK, Error, Not found.

5.4. Modify a case

Updates fields of an existing case identified by its reference.

Parameters:

  • Case reference: lookup value (variable supported). If no value is entered, the case linked to the workflow will be used.
  • Field 1 … Field N (repeatable): each field combines a Case fields selector and a New value input.

Output branches: OK, Error, Not found.

5.5. Associate the interaction with a CRM card

Searches for a customer-contact CRM card using field-based search assertions. The matching card is linked to the interaction.

Parameters:

  • CRM in which to search for the card: target customer-contact directory.
  • Create a new file if not found: optional toggle (disabled for integration-backed CRMs).
  • Confirm the test ifall the following assertions (AND) or at least one of the following assertions (OR).
  • Search assertions: list of CRM card field + value, up to the configured maximum.

Output branches: OK, Not OK, Not found, By default.

5.6. Create a CRM card

Creates a new customer-contact CRM card.

Parameters:

  • CRM in which to search for the card: target directory.
  • CRM card fields: list of CRM field + value (up to the configured maximum).
  • Associate the CRM card with the interaction: toggle to attach the newly created card to the current interaction.

Output branches: OK, Error.

5.7. Associate the interaction with a CRM V2 card

Retrieves a card via a configured CRM V2 scenario and attaches it to the interaction.

Parameters:

  • CRM in which to search for the card.
  • CRM scenario (filtered by the chosen CRM). If a default scenario exists, it can be selected.

Output branches: OK, Not OK, Not found, By default.

5.8. Create a CRM V2 card

Creates a new CRM V2 card for a given CRM and CRM object.

Parameters:

  • CRM and CRM object.
  • CRM card fields: list of CRM field + value (up to the configured maximum).
  • Associate the CRM card with the interaction: toggle (only shown for smart routing actions).

Output branches: OK, Error.

5.9. Create a task

Creates a task linked to the interaction, with configurable start and end dates. If the task type is Salesforce, the Salesforce ID is stored in a variable.

Parameters:

  • Task name (variable supported).
  • Task category.
  • Task kind. If Salesforce: Variable containing the Salesforce Query ID (variable + field).
  • Date to start the taskNowAt a later date, or No start date.
  • If At a later dateTime interval (numeric value) + interval kind (HoursDaysWeeksMonths).
  • Date on which the task must endEnd postponed or No end date (no Now option).
  • If End postponed: same time interval / kind as above.

Output branches: OK, Error.

6. Data

6.1. Assign values to variables

Writes one or more values into flow variables for later use.

Parameters:

  • Variable 1 … Variable N (repeatable). Each block contains a Variable + Field selector and a New value input (variable references supported).

Output branches: OK, Error.

6.2. Test a value(s)

Evaluates one or more conditions on variables and branches accordingly.

Parameters:

  • Confirm the test ifall the following conditions are valid (AND) or at least one of the following conditions is valid (OR).
  • Condition 1 … Condition N (repeatable). Each block contains:
    • Variable: a magic input referencing the value to test.
    • Operator: comparison operator (=, ≠, ≥, ≤, contains, starts with, ends with, ExistsDoes not existIs emptyIs trueIs falseIs a dateIs the morningIs the afternoonIs the weekendIs an odd weekIs an even weekRegular expression).
    • Value: the comparison value (hidden for unary operators such as ExistsIs empty, etc.).

Output branches: Yes, No, Error.

6.3. Values table

Looks up an input value in a values table and stores the returned value into a flow variable. Typically used for translation tables, mapping codes, or routing matrices.

Parameters:

  • I knowthe values table or the values table reference.
  • Correspondence reference: the lookup value (variable supported).
  • Variable in which to store the corresponding value: target Variable + Field.

Output branches: OK, Reference not found, No value.

6.4. Fill in the variables from a database

Queries a custom database and stores retrieved field values into flow variables.

Parameters:

  • Database.
  • Select a conforming database entryall the following assertions (AND) or at least one of the following assertions (OR).
  • Search assertions: list of Database column + value (LIST fields use the proposal list).
  • Variable(s) in which to store the search result: list of Database column → Variable + Field.

Output branches: OK, Not found.

6.5. Save values to a database

Inserts a new row into a custom database.

Parameters:

  • Database.
  • Fields: list of Database field + value. Required fields are added automatically; LIST fields use the proposal list.

Output branches: OK, Not OK.

6.6. Modify the values of a database

Finds rows in a custom database matching the search assertions and updates selected fields.

Parameters:

  • Database.
  • Modify…Only the first value found or All values found.
  • Search assertions: list of Database column + value.
  • Fields to modify: list of Field to modify + new value.

Output branches: OK, Error, Column(s) not found, No value found, No modification.

6.7. Date and time (retrieval and calculations)

Reads or computes a date and time value and stores it in a flow variable.

Parameters:

  • Reference the date and timeof the passage in the action (now) or from a variable (input date).
  • If from a variableVariable input.
  • Operation on the date and timenoneaddsubtract, or set to.
  • For add / subtractDaysHoursMinutesSeconds.
  • For set to: a toggle Use the day of the week switches between Day of the month and Day of the week, then HoursMinutesSeconds.
  • Result storage: target Variable + Field.

Output branches: OK, Not OK.

6.8. Check the number of passages

Increments a counter each time the interaction passes through the action, then branches depending on whether the counter is below or above the configured threshold. Useful for retry loops or capping the number of attempts.

Parameters:

  • Maximum number of passages of interaction in this action: numeric threshold.
  • Reset the counter to 0 when the limit is reached: optional toggle.

Output branches: Less than or equal to, Greater.

6.9. Check Nth contact

Branches based on how many previous contacts the customer has had over a configurable time window. Useful to recognize returning contacts or escalate repeat callers.

Parameters:

  • Time interval to be counted (radio choices).
  • Value: number of days / period.
  • Link 1 … Link 10: 10 ordered numeric thresholds. The interaction takes the branch matching the closest threshold above the counted contacts. It is recommended to order them from smallest to largest (e.g. Link 1: 0, Link 2: 2, Link 3: 5).

Output branches: Link 1, Link 2, … Link 10, No link.

7. Time and dates

7.1. Test a schedule

Branches on whether the configured calendar is currently open or closed. Used to route out-of-hours interactions to a different message or queue.

Parameters:

  • I knowthe schedule or the schedule reference.

Output branches: Open, Closed, Not found.

7.2. Test if it is an even or odd week

Branches on whether the current ISO week number is even or odd. Typically used for bi-weekly routing schemes.

Parameters: none.
Output branches: Even, Uneven.

8. Interconnection

8.1. Web service

Calls a configured external HTTP web service. In synchronous mode, response fields can be mapped into flow variables for downstream use.

Parameters:

  • Web service: target definition.
  • Request settings: input variables passed to the web service (one input per declared variable).
  • Synchronous: toggle. If enabled, the smart routing waits for the response before continuing.
  • If synchronous: Variables in which to store the web service return: list of response field → Variable + Field.

Output branches: OK, Not OK.

9. Campaigns

These actions push a target into an outbound campaign — useful to schedule an outbound contact back after a messaging conversation. All three campaign actions share the same configuration model.

9.1. Insert a target in a WhatsApp campaign

Inserts a new target into a WhatsApp outbound campaign.

9.2. Insert a target in a voice campaign

Inserts a new target into a voice outbound campaign.

9.3. Insert a target in the SMS campaign

Inserts a new target into an SMS outbound campaign.

Parameters (common):

  • I know:
    • For a WhatsApp campaign: the WhatsApp campaign or the WhatsApp campaign reference.
    • For a voice campaign: the voice campaign or the voice campaign reference.
    • For an SMS campaign: the SMS campaign or the SMS campaign reference.
  • Insert if duplicate: toggle to bypass duplicate detection.
  • Phone number: target phone number (variable supported).
  • Start date: optional. If not entered, the current date will be used.
  • Priority: variable or numeric value within the configured range.
  • Campaign target layout (with optional None value).
  • Campaign target fields: dynamic list of fields driven by the chosen layout (typed accordingly).

Output branches: OK, Reference not found, Error, Duplication, Invalid number.

10. Survey

10.1. Survey

Attaches a survey to the messaging interaction so that the customer is invited to answer it.

Parameters:

  • I knowthe survey or the survey reference.

Output branches: OK, Reference not found, Error.

11. Payment and billing

11.1. Search for invoice

Looks up an invoice based on a customer-provided identifier (number, phone, customer ID, etc.) and stores the matching invoice in the bill flow variable for downstream actions.

Parameters:

  • I know (custom set of options for invoice identification):
    • the invoice number
    • the invoice mobile phone number
    • the invoice landline number
    • the customer number of the invoice
    • the invoice ID
    • the email address of the invoice
  • Value: the lookup value matching the chosen identifier (variable supported). The label of the field adapts to the selected identifier (e.g. Invoice referenceMobile phone numberCustomer no., etc.).
  • If several invoices are found, selectthe oldest or the most recent.

Note: The retrieved invoice is stored in the bill variable.

Output branches: OK, Not found.

11.2. Pay an invoice

Triggers a payment flow for an existing invoice or for a custom amount, through a configured payment module. Depending on the channel chosen, the customer is invited to pay via SMS link, email link or directly within the smart routing (Ino Pay only).

Parameters:

  • TypeInvoice or Amount.

If Invoice:

  • I know: same custom set of options as for Search for invoice (invoice number, mobile/landline phone number, customer number, invoice ID, email).
  • Value: lookup value (variable supported).
  • If several invoices are found, selectthe oldest or the most recent.

If Amount:

  • Amount (max 2 decimals).
  • Currency.
  • Invoice name.
  • Invoice reference.
  • Customer reference.
  • Comment.
  • Customized data.
  • Mobile phone number (must include the country code).
  • Fixed phone number.
  • Email.

Common to both types:

  • Payment module (filtered to internal, active or sandbox modules).
  • ModeSMSEmail, or Smart routing (Smart routing mode only available for Ino Pay payment modules).

Output branches: Payment stopped, Bank transfer error, Invoice not found, Fraudulent payment, Failed payment, Payment error, Payment successful, Notification successfully sent.

Updated on 2026-05-05
Was this article helpful?