Steps
After setting your Trigger, build your Workflow with Steps.
Last updated
After setting your Trigger, build your Workflow with Steps.
Last updated
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:
To specify a new action within the Workflow, add a Step by clicking on the + node and selecting the desired action.
Maximum 100 Steps per Workflow.
After adding a Step, configure it in the configuration drawer. Each step has different configuration possibilities. Configurations that can be added include content, Channel, action and advanced settings.
To move a Workflow Step, hold the Step and drag it to the desired position.
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.
To copy a Step in the Workflow, hover over the Step and click the Copy icon that appears on the top right.
To paste a copied Step in the Workflow, click on the + node you want to paste the Step in and select Paste Step (with the copied step name) in the Add Step menu
To remove a Step from a Workflow, hover over the Step and click the Delete icon that appears on the top right.
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 with the specified content to the Contact
Send a specified question to the Contact on the Last Interacted Channel
Assign Contact to a user
Create Workflow Branches based on conditions
Add or remove one or many Contact Tags
Modify Contact Field values for the Contact
Open a Conversation with the Contact
Close a Conversation with closing notes
Add an internal comment to the Contact
Jump to a different Step in the journey
Wait for a stipulated period of time before advancing
Create Workflow Branches based on date or time conditions
This Step sends a message with the specified content to Contacts who meet all the conditions.
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 "$" 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.
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.
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.
This Step sends a question to the Contact on the Last Interacted Channel if all conditions are met.
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. 09/19/2021)
Phone
This field will only accept a phone number value
Format: Country code with number (e.g. 96560796076)
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.
Turn the Tags toggle ON to save the answers the Contact provides as Tags. This is only applicable for multiple-choice questions.
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.
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.
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.
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.
This Step assigns the Contact to a specific User, a User in a specific Team, a User in the Workspace, or unassigns the Contact.
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 Workspace: Assign the Contact to any User in the Workspace
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 Workspace 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
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 Workspace 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.
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.
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.
The Step creates appropriate Contact journeys according to Branch conditions.
Each Branch created consists of one to nine 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.
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.
The Step adds or removes a Contact's Tags according to specified conditions.
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.
This Step updates a Contact Field with a defined value if conditions are met.
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.
When the Workflow is triggered, the Contact Field in this Step will be updated with the defined value.
This Step opens a Conversation with the Contact.
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.
This Step closes a conversation with the Contact.
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.
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.
This Step adds a note to the Contact for internal reference or action.
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. You can also tag the current assignee by typing @assignee.
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.
This Step allows the Contact to jump to another specified Step in the Workflow.
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.
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.
This Step establishes a waiting period before the next Step commences.
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.
The Contact stays at this Step for the configured waiting time and then proceeds to the next Step.
This Step checks the current date and time against the defined conditions and directs Contacts along the Workflow accordingly.
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.
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.
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.
This Step allows HTTP Requests to be sent and their responses saved as Variables.
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 "$" 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 "$" 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:
To save the phone number in the above response, use $.phone as the JSON key
To save the phone number in the above response, use $.custom_fields.phone
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.
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.
There are many potential failures in executing HTTP requests. Ensure that your HTTP request fulfills the following condition
The HTTP method and Content-Type Header are correct
The Content Type is valid
The URL is without port number
The URL does not use a self-signed certificate
The authorization is valid
Our IPs are not blocked
The following IP addresses are used to send the HTTP request
57.74.35.115
19.138.21.163
52.169.153.20
The Contact will skip this step and proceed to the remaining journey upon encountering the above failures.
This Step appends new rows to a Google Sheets worksheet with the defined column mapping values.
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 or 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.
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.
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 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 spreadsheet or the worksheet
This Step allows a Contact to continue in another Workflow, either starting from a particular Workflow Step or from the beginning of a chosen Workflow. This is done by connecting different Workflows together.
There are two key configurations in Trigger Another Workflow:
Workflow: Choose the next Workflow for the Contact to proceed with.
Workflow Step: Next, pick the specific Workflow Step from the chosen Workflow for the Contact to continue in. You can either select a specific Step or let the Contact start the Workflow from the beginning.
For Trigger Another Workflow Step to work, a Workflow and a Workflow Step must be selected.
You can view the complete list of Workflows connected with the Trigger Another Workflow Step to keep track of your Contacts journeys.
The total number of connected Workflows will be displayed next to the information icon.
You can also click Show more to view the list of Workflows that are connected. Two categories will show:
You are triggering: Shows all Workflows connected to the current Workflow via Trigger Another Workflow Step. Clicking on the Workflow name will go to the specific Step in the current Workflow.
Triggered by: Shows all Workflows that will trigger the current Workflow. Clicking on each Workflow name will open up the Workflow in a new tab.
With the Trigger Another Workflow Step, you can connect different Workflows together. This directs Contacts from one Workflow to another and makes your Workflows more flexible to provide a more customized, streamlined experience for your Contacts.
You can either direct Contacts to a specific Step in the other Workflow or allow them to continue their journey at the start of the other Workflow.
Here are some best practices for this step you can follow to optimize your Workflow:
Clearly name and label your Workflows and Workflow Steps. This makes it easier to select the specific Workflow or Workflow Step to connect.
Remember to publish Workflows that are connected to the original Workflow.
Before you stop a Workflow, check if it’s connected to another one. Stopping a connected Workflow will result in Contacts continuing with the original Workflow where Trigger Another Step is activated. This may lead to errors or an incomplete Contact journey.
Refrain from consecutively listing multiple "Trigger Another Workflow" steps in immediate succession. When they are placed one after the other, they run concurrently, which may not always be the desired behavior. A more effective approach is to integrate them into separate branches or distinct workflows. For instance, in the context of workflows, consider having Workflow A initiate Workflow B, and then have Workflow B initiate Workflow C. This sequential arrangement ensures that Workflow B will complete before triggering Workflow C.
Here are some ways you can use the Trigger Another Workflow Step:
Separating leads and existing customers: Merging multiple chat menus to manage both leads and customers can become complicated. Streamline your interactions with Contacts by using the Trigger Another Workflow Step to open chat menus and re-route assignments.
Multilingual service Workflows: Reduce potential miscommunication by rerouting Contacts based on language using the Trigger Another Workflow Step. Connect various Workflows to automatically route Contacts depending on the language used.
Return to main menu: Allow Contacts to return to the main menu to view and choose different options, even if they have entered an entirely different Workflow.
How many times can I use the Trigger Another Workflow Step in a single Workflow?
There is no limit. You can use this Step as many times as you’d like in a single Workflow.
Is Trigger Another Workflow Step available on my plan?
Yes, this Step is available for every pricing plan on our platform.
In a Workflow, the AI Agent Step automatically transfers the conversation to the Respond AI’s chatbot, AI Agent. The AI Agent interacts with the Contact without human intervention until the conversation concludes.
In this Step, configure the following fields:
Field Name
Description
Objective
The default objective of the Step is to answer the Contact’s questions.
Suggest New Objectives
Click the link to suggest other objectives that suit your business needs. You are directed to a Feature Request on Canny, where you can upvote the request and provide the objective in the comments section.
Knowledge Source
Select an existing Knowledge Source AI uses to answer the Contact’s queries. These Knowledge Sources can either be added from the Add Knowledge Source proceeding this field or from Settings > Respond AI > AI Agent tab, selecting Manage Knowledge Source button.
Add Knowledge Source
Add a new Knowledge Source from here if the existing knowledge sources do not meet your requirements. It is recommended that the Knowledge Sources be focused on one subject for better responses and response time.
Reply outside of added Knowledge Source
Enable this toggle by sliding it to the right. Once enabled, AI may also respond using external sources of information, i.e., ChatGPT.
Apply Snippets
Enable the toggle by sliding it to the right. Once enabled, AI can use your snippets as a knowledge source to generate responses to your conversations.
Advanced Setting
Add Contact Idle Branch
Enable the toggle by sliding it to the right. Once enabled, the conversation is automatically closed if it remains idle for a maximum of 15 minutes. You can alter the value if required.
With the AI Agent Step, the workflow automatically enables AI Agent to respond to the Contact’s queries. The AI Agent Step configurations define the kind of responses AI Agent generates. The Knowledge Source, Snippets, and ability to reply outside of the Knowledge Sources determine the quality of the responses. The conversation continues until the Contact’s queries are satisfied.
The AI Agent Step has two default branches, the Success and Failure: Others. Optionally, you can add a third branch, the Failure Idle branch.
Success: The condition for this branch is determined by the option selected in the Objective field. Currently, the options are limited to Answer Questions, i.e., the AI Agent answers incoming questions using the added Knowledge Sources. After all questions from the Contact are successfully answered, the Contact will move to the Success branch.
Failure: Others: The condition for this branch is met when some technical failure occurs, e.g., Channel disconnected, Respond AI credits run out, etc.
Failure: Idle: The condition for this branch is met when there has been no response from the Contact for 15 minutes (the default/max value).
In the Messages module, you can recognize a conversation between AI and a Contact by the icons.
You can only view a conversation between AI and Contact on the Messages module and currently cannot intervene in the conversation. However, you can stop the workflow and take over the conversation if necessary.
Here are some best practices for this Step you can follow to optimize your Workflow:
Adopting a focused approach while selecting the Knowledge Sources for your AI Agent Step is the key to good responses from AI. AI does not respond well when a broad spectrum of information is provided for reference.
While creating workflows featuring multiple AI Agent Steps, ensure the Contact is engaged in talks with more than one AI at no point.
You should enable the Add Contact Idle Branch toggle so that the conversation is automatically closed after it has been left idle for the specified time (maximum 15 min). The conversation can be opened again when the Contact sends a message.
Can my workflow have more than one AI Agents Steps?
Yes, your workflows can include more than one AI Agents Steps, and each Step can have its own set of knowledge sources and other configurations that define how AI responds to the Contact.
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.
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.
Learn more about variables !
The categories available within a condition include Contact Field (inclusive of all Custom Fields), Tags, Variables (inclusive of and from the Shortcut form), Last Interacted Channel, Last Incoming Message, Time Since Last Incoming Message, Time Since Last Outgoing Message and Assignee Status.
Fill in the column fields in the configuration drawer with the desired data. To include Variables, add the prefix "$" to support the interpolation of static text and Variables. You may also want to add 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.