Is this article helpful?

We love to hear from you!

Table of Contents

Workflow Steps

Susan Swier Updated by Susan Swier

After setting your Trigger, build your Workflow with 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​
  • ​Configure a Step​
  • ​Edit a Step name​
  • Duplicate a Step
  • Move a Step
  • ​Delete a Step​

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 it in the configuration drawer. Each step has different configuration possibilities. Configurations that can be added include content, Channel, action and advanced settings.

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.

gif showing how to edit a workflow step name

Duplicate a Step

To copy a Step in the Workflow, hover over the Step and click the Copy icon that appears on the top right.

screenshot showing how to copy a step

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.

screenshot showing how to paste a step
Step duplication is only possible within the same workflow.

Move a Step

To move a Workflow Step, hold the Step and drag it to the desired position.

When moving a parent Step with child Steps attached beneath it, all the child Steps will be moved together with the parent Step.

Delete a Step

To remove a Step from a Workflow, hover over the Step and click the Delete icon that appears on the top right.

screenshot showing how to delete a workflow step

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.

gif showing the delete step dialog box

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

​Update Contact Field​

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 about the Contact or conversation

​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

HTTP Request

Send an HTTP request to another application

Add Google Sheets Row

Send information to a Google Sheet

Step: Send a Message

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

gif showing how to use the send a message step

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 "$" to support the interpolation of static text and Variables. To include a Snippet, add "/" and select the preferred Snippet.

Limitation: The message cannot be longer than 2,000 characters.

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

screenshot showing the ask a question step

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. 60112233455)

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.

gif showing how to save response as contact field

Turn the Variable toggle ON to save the answer the Contact provides as a Variable. Name the Variable in the field to the right.

gif showing how to save response as variable

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.

gif showing how to save workflow responses as tags

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.

gif showing how to add timeout settings

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 three 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.

In the event where a conversation with a Contact is closed but the Ask a Question Workflow Step is still ongoing, any message sent by the Contact will not reopen the conversation. Refer to the FAQ here.
When using the Ask a Question step with the Email channel, take note of the potential limitations.

Step: Assign To

This Step assigns the Contact to a specific User, a User in a specific Team, a User in the Workspace, or unassigns the Contact.

gif showing how to use the assign to step

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 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

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 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.

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.

gif showing how to use the branch step

Configuration

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.

The categories available within a condition include Contact Field (inclusive of all Custom Fields), Tags, Variables (inclusive of trigger variables and output variables from the Shortcut form), Last Interacted Channel, Last Incoming Message, 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.

gif showing how to use the update contact tag step

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.

gif showing how to use the close conversation step

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 about the Contact for internal reference or action.

gif showing how to use the add comment step

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. You can also tag the current assignee by typing @assignee.

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.

gif showing how to use the jump step in a 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.

screenshot showing the wait step in a workflow

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.

gif showing how to use the date and time step in a workflow

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 only available for Business plan and above.
screenshot showing the HTTP request workflow step

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 "$" to support the interpolation of static text and Variables.

Note that respond.io and white label domains are blacklisted. You cannot send an API call to these domains as it would cause looping.

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.

Examples:

How to fill in the JSON key to save a response for different response formats:

{ 
"name": "Jason",
"zip_codes": "12345",
"phone": "123123"
}

To save the phone number in the above response, use $.phone as the JSON key.

{ 
"custom_fields": {
"firstName": "John",
"lastName": "Doe",
"locale": "en_GB",
"timezone": "5",
"gender": "male",
"phone": "123123",
"email": "zy@respond.io",
"customerid": "1"
},
"created_at": 1575618542
}

To save the phone number in the above response, use $.custom_fields.phone

     {
"data": {
"id":"1776025372480910",
"contacts" : [
{
"firstName":"John",
"lastName":"Doe",
"locale": "en_GB"
},
{
"firstName":"Jane",
"lastName":"Doe",
"locale": "en_GB"
}
]
}
}

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.

gif showing how to save HTTP request response status as a variable

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 that your HTTP request fulfills the following conditions:

  • 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:

  • 52.74.35.155
  • 18.138.31.163
  • 54.169.155.20

The Contact will skip this step and proceed to the remaining journey upon encountering the above failures.

When verifying HTTP request outputs with dynamic variables, please note that variables without a value will result in a return of null and undefined.

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.
gif showing how to add a Google Sheets row in a workflow

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 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.

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 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.

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.

screenshot showing a google sheet with row added

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.

Feeling stuck? Do not fear.

Help is here!

Workflow Triggers

Can't find what you're looking for?

Talk to an expert here!

Contact Us
Powered by HelpDocs (opens in a new tab)

Powered by HelpDocs (opens in a new tab)