Steps

Workflow Step

Once a trigger is configured, you can build the Workflow by adding Steps. When a Workflow has been triggered, its step(s) will be carried out sequentially on the triggering contact
Below are the actions that can be performed with Steps:

Add a step

To specify a new action within the Workflow, add a step by clicking on the + node and selecting the desired action.

Limitation

Maximum 100 Steps per Workflow.

Configure a step

After adding a step, configure the step in the configuration drawer. Each step has different configuration possibilities. Configurations that can be added include content, channel, action and advanced settings.

Move a step

To move a Workflow step, hold the step and drag it to the desired position. Parent steps that are tied to child branches cannot be moved.

Edit a step name

To edit the step name, click on the Edit icon and input the desired name for this step. Click the green βœ“ icon to confirm the name.

Delete a step

To remove a step from Workflow, click Delete at the bottom of its configuration drawer.
All actions stemming from this step (e.g. Branch, Ask a Question) will be deleted along with it. A dialog box will open to confirm this action.
Here is the comprehensive list of the available steps:
Step
Description
​Send a Message​
Send a message with the specified content to the Contact
​Ask a Question​
Send a specified question to the Contact on the Last Interacted Channel
​Assign To​
Assign Contact to a user
​Branch​
Create Workflow Branches based on conditions
​Update Contact Tag​
Add or remove one or many Contact tags
Modify contact field values for the Contact
​Open Conversation​
Open a Conversation with the Contact
​Close Conversation​
Close a Conversation with closing notes
​Add Comment​
Add an internal comment to the Contact
​Jump To​
Jump to a different step in the journey
​Wait​
Wait for a stipulated period of time before advancing
​Date & Time​
Create Workflow Branches based on date or time conditions

Step: Send a Message

This step sends a message with the specified content to Contacts who meet all the conditions.

Configuration

There are two key configurations for sending a message: Channel and Message Content.
Channel refers to the chosen channel for sending the message. The options are Last Interacted Channel, which specifies that the message will be sent through the last channel of interaction with a Contact, or a choice from all connected channels.
Once the channel has been specified, move on to Message Content. Choose between sending a Default Message or a Channel Response.
To send a Default Message, choose from two message types: a text-based message or a media message.
Text-based messages can be configured to include emojis, variables or Snippets. To include variables, add the prefix "quot; to support the interpolation of static text and variables. To include a Snippet, add "/" and select the preferred Snippet.
Media messages can be sent in the form of a file or image. Select the desired file from the device or the File library.
To send a Channel Response, configure a channel-specific response. Choose a channel and the message type (text or file/image). Some channels even have special message types, which can be selected from the Message Type dropdown menu. This includes template messages by supported channels such as WhatsApp and Facebook.

How It Works

A message will be sent via the chosen channel. If a Channel Response has been specified, it will be used. Otherwise, the default message will be sent.
If Last Interacted Channel is selected, the message format will depend on the existence of a Channel Response. If a Channel Response for that channel exists, the channel-specific response will be sent. If no Channel Response for that channel exists, the default message will be sent.
If email is chosen as a channel, the message will be sent to an existing email thread. Should a thread not exist, it will compose a new email thread with a blank subject line.

Potential Failure

There are two potential failures in sending a message. The first occurs if the Contact does not have an associated channel. The second is attributed to general failures, such as the expiry of API keys, closed messaging windows or network issues.
The contact will exit the workflow upon encountering the above failures.

Step: Ask a Question

This step sends a question to the Contact on the Last Interacted Channel if all conditions are met.

Configuration

There are two key configurations in Ask A Question: Question Text and Question Type.
In Question Text, input the desired question for the Contact.
Question Type offers a variety of response possibilities, as shown below:
Question Type
Description
Text
This field will accept any text-based answers
Multiple Choice
This field will share up to 10 possible answers to choose from. Each answer is limited to 20 characters.
Number
This field will only accept a number value. It is possible to set minimum and maximum values for the expected answer.
Date
This field will only accept a date in a specified format
Format: mm/dd/yyyy (e.g. 18/09/2021)
Phone
This field will only accept a phone number value
Format: country code with number (e.g. 60135566778)
Email
This field will only accept an email address
Website/URL
This field will only accept a valid URL
Rating
The Contact can pick a rating between 1 and 5 stars
Once the Question Type has been determined, the Save Response field will open. There are three options as to how responses can be saved: as contact fields, as variables or as tags (only for multiple-choice responses).
Turn the contact field toggle ON to save the answer the Contact provides as a contact field. Choose the appropriate contact field from the dropdown menu.
Turn the variable toggle ON to save the answer the Contact provides as a variable. Name the variable in the field to the right.
Learn more about variables here!
Turn the tags toggle ON to save the answers the Contact provides as tags. This is only applicable for multiple-choice questions.

Advanced Settings

Add a Timeout Branch to the step to set how much time the Contact has to answer the question. The timeout period can be set for up to 7 days or the equivalent, or the default period of 7 days will be implemented. Add steps to define the journey for Contacts who do not respond in time, or the Workflow will end when the timeout is reached.

How It Works

The Contact will be asked a question on their Last Interacted Channel. The Contact needs to answer the question in the correct format within the allocated time to continue their journey. For multiple-choice questions via email, answer options will automatically be numbered (1, 2, 3...). The Contact can answer with the number value or the text in full.

Failure Branch

Invalid answers or answers that do not conform to the response format will fall under the Failure Branch. If there are no steps configured under the Failure Branch to define the Contact's subsequent journey, the Workflow will end.

Potential Failure

There are 3 potential causes of failure here. The first occurs if the Contact does not have an associated channel and cannot receive the question. The second occurs when a Contact does not answer the question within the timeout period. The third is attributed to general failures, such as the expiry of API keys, closed messaging windows or network issues.
The contact will exit the Workflow upon encountering the above failures.

Step: Assign To

This step assigns the Contact to a specific user, a user in a specific team, a user in the space, or unassigns: the Contact.

Configuration

There are two key configurations in the Assign To step: Action and Assignment Logic.
In Action, Contacts can be directed to one of four assignment actions:
  • A specific user: Assign the Contact to a chosen user
  • A user in a specific team: Assign the Contact to anyone in a chosen team
  • A user in the space: Assign the Contact to any user in the space
  • Unassign: Unassign the Contact from their assigned user or team
In Assignment Logic, choose one of two options (only available for A user in a specific team and A user in the space assignment options):
  • Assign to users round-robin: This method assigns new Contacts equally to every user in turn
  • Assign to the user with least open contacts: This method assigns Contacts to the user with the fewest open contacts
Advanced Settings
The two settings here are independent of each other and are only available for A user in a specific team and A user in the space assignment options. The first, Only assign to online users, assigns Contacts only to users with statuses set to Online. The second, Only assign to users with fewer than XX open contacts assigned to them, assigns Contacts to users with fewer open Contacts than the user-defined threshold.
A Timeout Branch can be added to define the allocated period for the Contact to be assigned to a user. The timeout period can be set for up to 7 days equivalent, or the default period of 7 days will be implemented. Add steps to define the journey for Contacts who do not respond in time, or the Workflow will end when the timeout is reached.

How It Works

Contacts will be assigned to users according to the specified assignment action and conditions. If Advanced Settings are switched ON and there are no users who fulfill the conditions at the moment, Contacts will be placed in a queue until they are assigned, or the timeout period is reached.

Potential Failure

There are three potential causes of failure in the Assign To step. The first occurs if the Contact is not assigned to anyone within the default timeout period of 7 days and there is no Timeout Branch to continue the journey. The second is if the chosen specific user has been deleted from Workflows. The third occurs if the chosen team a Contact is assigned to has no users or is empty.
The contact will exit the Workflow upon encountering the above failures.

Step: Branch

The step creates appropriate Contact journeys according to Branch conditions.

Configuration

Each Branch created consists of one to four conditional branches and an Else branch.
Branch conditions can be defined using contact fields, tags, variables or previous interactions. A maximum of 10 conditions with either AND or OR logical operators are allowed per branch. Each condition has to have a defined category, operator and value.
The categories available within a condition include contact field (inclusive of all custom fields), contact tag, variables (inclusive of trigger variables and output variables from the Shortcut form), Last Interacted Channel, Time Since Last Incoming Message, Time Since Last Outgoing Message and Assignee Status.

How It Works

If the Contact meets all the conditions of a branch, they will proceed with the journey down the branch. If the Contact fails to meet the conditions of all the conditional branches, they will be redirected to the Else branch.

Step: Update Contact Tag

The step adds or removes a Contact's tags according to specified conditions.

Configuration

There are two key configurations within this step: Action and Tag.
In Action, choose between add and remove tag as a condition. Next, select the desired tag from the dropdown menu or type in the tag name to specify it.

Step: Update Contact Field

This step updates a contact field with a defined value if conditions are met.

Configuration

There are two key configurations within this step: Contact Field and Contact Field Selected.
In Contact Field, select the contact field to be updated. In Contact Field Selected, specify the value to be updated. It is possible to type $ and select the appropriate variable to update the contact field with a variable.

How It Works

When the Workflow is triggered, the contact field in this step will be updated with the defined value.

Step: Open Conversation

This step opens a Conversation with the Contact.

How It Works

When the Workflow is triggered, a Conversation with the Contact will open. The Message Module will display 'Conversation opened by {Workflow name}'. If the Conversation is already open when this step is triggered and executed, the Contact will proceed to the next step.

Step: Close Conversation

This step closes a Conversation with the Contact.

Configuration

Both configurations in the Close Conversation step are optional but might prove useful for documentation or analytics. The two configurations are Conversation Category, in which users can select the appropriate category from the available options in Closing Notes on the platform, and Summary, which provides a summary of the Conversation.

How It Works

When triggered, the Conversation with the Contact will close. If the conversation category and summary are configured, the conversation will close with the Closing Notes appended.

Step: Add Comment

This step adds a note to the Contact for internal reference or action.

Configuration

The sole configuration in this step is the comment itself. Write the desired comment in the text field. Use $ to add a variable or @ to tag another user.

How It Works

Once confirmed, the comment will be added to the Contact's profile. If a user is tagged in the comment, they will be notified and can take the necessary action.
  • E.g. Workflow {Workflow Name} has mentioned you in a comment.

Step: Jump To

This step allows the Contact to jump to another specified step in the Workflow.

Configuration

There are two configurations within this step: Step and Allow a maximum of __ jumps.
In Step, select the step from which the Contact's journey will continue. The jump can occur in any direction to any step in the Workflow.
In Allow a maximum of __ jumps, define the number of times the jump can occur. The maximum input is 10.

How It Works

The Contact will jump to the specified step and continue the journey along its path. The Contact can repeat the jump step until they hit the maximum number of jumps allowed. When the maximum is reached, the Contact will skip the jump on the next attempt and proceed to the next specified step after the jump step. If no next step exists, the Contact will exit the Workflow.
The jump counter resets when the Contact exits the Workflow.

Step: Wait

This step establishes a waiting period before the next step commences.

Configuration

The sole configuration in this step is the Wait For field. It determines how long the Contact will wait before the next step commences. The maximum wait period is 7 days or the equivalent.

How It Works

The Contact stays at this step for the configured waiting time and then proceeds to the next step.

Step: Date & Time

This step checks the current date and time against the defined conditions and directs Contacts along the Workflow accordingly.

Configuration

There are two possible configurations within this step: Business Hours and Date Range.
In Business Hours, each day's working hours within a specified timezone are set. In Date Range, a start and end date within a specified timezone are set.

How It Works

The current date and time are checked against the configured conditions. If the step occurs within the permissible date and time, the Contact will proceed to the next step.

Failure Branch

If the date and time conditions are not met, the Contact will be redirected to the Failure Branch. If there are no steps configured under the Failure Branch, the Workflow will end.

Step: HTTP Request

This step allows HTTP Requests to be sent and their responses saved as variables
This step is available for Enterprise Plan only

Configuration

There are two key configurations in the HTTP Request step: HTTP request method and URL.
HTTP Request Method refers to the specific method needed for the request to run. Select the applicable request method from the dropdown list.
In the URL field, input the URL endpoint of the external API you would like to retrieve data from. To include variables, add the prefix "quot; to support the interpolation of static text and variables.
Expand the Body section to include a body and the Content-Type Header for correct decoding by the request recipient. To include variables, add the prefix "quot; to support the interpolation of static text and variables.
Expand the Header section to include headers in the HTTP request. The configuration operates in pairs, with the key representing the header name and the value representing the header value used in sending the HTTP request. You can select variables as headers with the prefix β€œ$”. A maximum of 10 headers is allowed.
For JSON API responses with key-value pairs, you can save response elements as variables. In the Response Mapping section, input the key of the JSON object in the field on the left and name the variable in the field on the right. A maximum of 10 response mapping settings is allowed. Please note that, only JSON response is able to be saved.

Example

How to fill in the JSON key to save a response for different response formats:
1
{
2
"name": "Jason",
3
"zip_codes": "12345",
4
"phone": "123123"
5
}
Copied!
To save the phone number in the above response, use $.phone as the JSON key
1
{
2
"custom_fields": {
3
"firstName": "John",
4
"lastName": "Doe",
5
"locale": "en_GB",
6
"timezone": "5",
7
"gender": "male",
8
"phone": "123123",
9
"email": "[email protected]",
10
"customerid": "1"
11
},
12
"created_at": 1575618542
13
}
Copied!
To save the phone number in the above response, use $.custom_fields.phone
1
{
2
"data": {
3
"id":"1776025372480910",
4
"contacts" : [
5
{
6
"firstName":"John",
7
"lastName":"Doe",
8
"locale": "en_GB"
9
},
10
{
11
"firstName":"Jane",
12
"lastName":"Doe",
13
"locale": "en_GB"
14
}
15
]
16
}
17
}
Copied!
To save the first name β€˜Jane’ in the above response, use $.data.contacts[1].firstName
Turn the Save Response Status as Variable toggle ON to save the response status from the HTTP request as a variable. Name the variable in the field below.

How it works

When triggered, this step will make an HTTP request to the URL with the defined body and header.
You can direct a Workflow journey according to the response status. For example, you can create a Branch for β€œstatus code is equal to 200”. If any other response status code is received, a jump step could return Contacts to the HTTP request step. Alternatively, the Contact could be redirected to the Failure Branch if branch conditions are not met. If there are no steps configured under the Failure Branch, the Workflow will end.

Potential Failure

There are many potential failures in executing HTTP requests. Ensure the correct HTTP method and Content-Type Header are used, the Content Type is valid, and you have the authorization to make the HTTP request.
The Contact will skip this step and proceed to the remaining journey upon encountering the above failures.

Step: Add Google Sheets Row

This step appends new rows to a Google Sheets worksheet with the defined column mapping values
This step is available for Business Plan and above only

Configuration

There are three key configurations for adding a new row to Google Sheets: Google Sheets, Worksheet(Tab) and Column Mapping.
Select the Google Sheets file you would like to populate from Google Picker.
Make sure you have editing access to the worksheet you are trying to connect to
When the desired Google Sheets file is chosen, select the Worksheet or Tab you would like to populate.
Make sure the sheet name doesn’t include punctuation and the first row of the worksheet is a header row with filled-in column names. A missing value in the first row of Column A will result in data being inserted to the top of the sheet rather than to the bottom.
Once the Worksheet(Tab) has been determined, the Column Mapping configuration drawer will open. A maximum of 26 columns (Column A to Column Z) will be displayed for configuration.
Fill in the column fields in the configuration drawer with the desired data. To include variables, add the prefix "quot; to support the interpolation of static text and variables. You may also want to add system variables as the Column Mapping value and it would serve as a timestamp when new Google Sheet Rows are added so you’re always on top of what happened and when.
To include a Google Sheets calculation, add the formula in the relevant field so its value will be automatically calculated and displayed when a new row is added to the worksheet.
If you wish to leave a column in the sheet blank, leave its field in the configuration drawer empty.
Tips: Click on the refresh button in the configuration drawer to update the worksheet and column mapping fields

How it works

When the Workflow is triggered, the values defined in the column mapping field will be pushed into the Google Sheets worksheet and displayed in a new row at the bottom of the table.

Editing a Worksheet

Editing a worksheet includes the below possible actions:
  • Deleting existing rows or columns
  • Adding rows anywhere other than to the bottom of the worksheet
  • Changing the column sorting of the sheet
  • Renaming or adding or rearranging columns
  • Renaming the workbook or the worksheet
If any of the above is performed, you need to stop the Workflow, update the column fields in the step configuration drawer and republish the Workflow to reflect the updated values. Failure to do so will result in a data mismatch between input in the Workflow and the new rows in the worksheet.

Potential Failure

There are two potential failures in the Add Google Sheets Row step. The first occurs if you do not have editing permission for the selected Google Sheets file. The second occurs when the selected Google Sheets worksheet has reached its cell limit or is full.
The contact will skip this step and proceed with the remaining Workflows journey upon encountering the above failures.
Last modified 1mo ago