Multi-Step Programs

Multi-Step Programs allow you to build complex, session-based conversations with end-users. Also, it provides a process flow UI to design interactions with your end-users.

The interactions in multi-step programs are classified into the following phases:

  • Input – An input represents interaction from the mobile user in the process flow. There are a number of options for extracting and using pieces of information within the Mobile Originated (MO) message.
  • Output – An output includes different types of actions that are triggered by an input or a condition. Outputs represent outbound information to the mobile user, external systems, opt-in lists, and mobile user contact information.
  • Condition – A condition can be used to compare variable input information to a set of criteria. The next step after a condition will be determined by the outcome of the comparison, true or false.

The following table contains the list of terms and definitions used for Multi-Step Programs:

TermsDefinition
After First Word ListenerThe After First Word Listener looks for the second word in the MO. This is useful when there is additional information following the keyword in the MO.
BlockA Block represents a step in a multi-step program. The types of blocks are input blocks, condition blocks, and output blocks.
Catch All ListenerA Catch All Listener will capture all of the information in the MO. This is very useful to direct control flow for messages that don’t match other listeners.
CanvasThe Canvas is the area in which all of the blocks within the multi-step are shown and can be edited. In the Canvas view, lines are drawn from outlets to connecting blocks to represent the flow for each scenario in the multi-step program.
Condition BlockA Condition block is a component in the multi-step that applies additional criteria to end-user input to direct them appropriately and further customize the responses they receive. There may be one or more conditions in a single condition block and they may be connected to output blocks or other condition blocks.
Contact UpdateA Contact Update is an output action in the multi-step that saves or updates information about the mobile user.
Date ListenerA Date Listener expects a date in the message and it will perform a simple validation.
Email ListenerAn Email Listener expects an email address in the message and it will perform simple validation on the text string.
Entry PointThe Entry Point is the initial listener that is specified during the program configuration. The Entry Point is typically a keyword listener that the mobile user will send to the short code during their session.
External API CallThe External API Call action enables you to initiate an API call as part of the workflow. The API call you want to initiate must first be configured in Services > External APIs.
Note: External API Calls intended to return values back to Communicate Pro should precede an input block where applicable.
FieldThe Field is a component of the variable comparison condition. The Field
is the parameter or property being compared to a specified value.
Input BlockAn Input Block is a component in the multi-step program that handles input from mobile users. It contains listeners and reminders to direct mobile users to the next step in the program based on their responses.
Keyword ListenerA Keyword Listener expects a specific word or text string. It can be used to direct control flow as well as retain feedback from mobile users.
ListenerA Listener is a function within an input block that extracts information from the MO and uses it to direct the mobile user to the next step in the program and/or stores the information about the end-user.
Mobile User PropertiesMobile User Properties are pieces of information about the mobile user such as name, email address, gender, zip code, and so on.
Multi-Step ProgramThe Multi-Step Program allows the end-user to account for a variety of mobile user responses and configure them to conditions and actions.
Nth Word ListenerThe Nth word listener allows the end-user to specify the number for the Nth word in the message text.
Number ListenerA Number Listener expects a number in the message and will perform simple validation on the text string.
OperatorThe Operator is a component of the variable comparison condition. The Operator defines the relationship between the field and the specified value.
Opt-In/Opt-Out ActionThe Opt-In/Opt-Out action is an output action in the multi-step. In addition to the primary list and stop behavior specified during the initial program configuration, adding or removing mobile users from lists can be done specifically at a particular point in the multi-step program.
Send SMSAn outbound SMS is an output action in a multi-step program that may be used in a multi-step flow. It is an MT that is sent to the mobile users’ handsets.
OutcomeAn Outcome is a possible result of the information being compared to a condition. When there is a single condition in a condition block, the outcomes are true and false. When there are multiple conditions within a single condition block, the outcomes are true for one, true for all, and false for all.
OutletAn Outlet is a connector that connects one block to another. Input blocks may have several outlets. Each listener has its own outlet. Output blocks may only have one outlet regardless of the contents of the output block.
Output ActionOutput blocks contain output actions, which can be an outbound SMS
(MT), and external API call, a contact update, or opt mobile users into a list.
Output BlockAn Output Block is a component in the multi-step program that is triggered by an input from the mobile user or a condition. Output Blocks have one outlet that can connect to an input block or a condition block.
ReminderA Reminder is a function within an input block that triggers a specific action if the mobile user has not sent a message that meets the criteria of the other listeners in the same input block. A delay may be set as a reminder for when the action is triggered.
SessionA Session is used to track mobile users as they interact with the various
steps within a multi-step program. Sessions can be configured to timeout after a specified amount of time if the mobile user has not responded.
Session VariableA Session Variable is information obtained during the session about the end-user that will only persist for the duration of the session.
For example, a session variable may be used during a quiz and the number of correct answers the mobile user has had.
Variable ComparisonThe variable comparison is a type of condition in the multi-step that allows the end-user to compare a property of the mobile user to a specified value.
This is useful in segmenting mobile users by different demographics.
Variable DefinedThe Variable Defined is a type of condition that allows the end-user to create a condition based on whether there is a value for a specific parameter in the mobile user’s contact information. This is often useful as a counterpart to the contact update output action to determine how many times a mobile user has responded to any multi-step.

To set up multi-step program, perform the following steps:

  1. Log in to the Communicate Pro account.
    The communicate pro home page appears.
  1. From the top menu bar, hover over INTERACTIVE, and then select PROGRAM TYPES.
    The Interactive Programs page appears.
  1. Click Multi-Step Program.

The Multi-Step Configuration page appears.

  1. In the BASIC DETAILS section, perform the following steps:
    1. In the Name field, enter a name for the multi-step programs.
    2. Click the arrow next to the Campaigns field and a list of options appears. Select a campaign.
    3. (Optional) In the External Campaign Reference field, enter the external campaign reference.
    4. Click the arrow next to the Short Code field and a list of options appears. Select a short code that you will use to communicate with your subscribers. You can be charged for a separate short code, verify your short code before selecting it.
    5. (Optional) Keyword(s) triggers the multi-step programs. The subscribers would send the identified keyword to be entered into the multi-step program. In the Keyword(s) field, enter the keywords.
    6. Session Timeout defines the session duration for which the multi-step program remains active. The session timeout duration is from 5 minutes to 15 days. Click the arrow next to the Session Timeout field and select the multi-step program's session timeout duration.
    7. (Optional) The duration enables your messengers during which they can interact with the program. From the Program Duration option, select any one of the following:
      1. (Default) Indefinite - To keep the muti-step profram active for an indefinite time.
      2. Defined Start and End Dates - The start and end time defines the window during which entries will be accepted for a multi-step program. After the end time, the multi-step program is deactivated. In the Start Time & Date fields, enter the time and start date. In the End Time & Date fields, enter the time and end date.
  2. In the STOP BEHAVIOR section, perform the following steps:
    1. In the Program Keyword(s) Stop Message field, enter the message you want to send to your messenger as an automatic reply to their messages when they opted out of the program. You can use dynamic value, URL shortener, and smiley in your message.
    2. The Opt-out of Lists allows you to opt-out list of the muti-step program end-users. You will be opted out of the List identified, but will remain opted into all other Programs using this Short Code. It helps you to limit the end-users for the multi-step programs. You can perform one of the following:
      1. Select the Remove from all current and future lists to remove the list of end-users and make all current and future end-user list.
      2. Click the Select All from the List to opt-out of all the lists.
      3. Click the Select None from the Selected List of all the lists.
      4. Click one of the lists from the List to move to the Selected List for opt-out.
      5. Click the list from the Selected List to move back to the List to opt-out.
  3. In the Program Keyword(s) Help Message field of the HELP BEHAVIOR section, enter the message you want to send to your messenger as an automatic reply to your end-user messages when they want help from you through the program.
  4. (Optional) In the Forward DRs field of ADVANCED section, perform the following steps:
    1. (Default) No -If you do not want to forward the DRs.
    2. Yes - If you want to forward the DRs.
  5. Click SAVE MULTI-STEP PROGRAMS.
    The saved multi-step program appears.

The Multi-step program is classified into the following sections:

Inputs

The inputs process includes the following:

Creating An Input Block

The first input has a few unique characteristics that are not true for other, subsequent input blocks. The first input block in a multi-step program is automatically created when the entry point listener is specified; however, it will appear as a separate component on the canvas.

For subsequent input blocks, they can be created by clicking the outlet of a previous condition or output block. When a pop-up appears, select input and then select the type of listener or click the reminder button.

Using the Go to Block action in a Multistep Program

The Multi-Step Program in Communicate Pro offers chatbot functionality so that end-users can create complex end-user journeys.

A few of these journeys can be very complex, with multiple branches. You can take advantage of a short cut Action that will essentially route the mobile user to a specific Action Block. Once routed to a specific Block, the interaction will continue from there. For example, from Action Type select the Go to Block option. You need to enter the Block Title for your reference.

Once the Go to Block is used, the mobile user is directed to the Block based on the Block Title specified. The end-user continues the journey from that Block. Also, by using the Go to Block action type, you can direct the mobile user to a previously defined section in the journey. Use the Go to Block frequently to save AND to reduce complexity in your Multistep Programs

Listeners

Listeners offer two primary functions in the multi-step program; they obtain information and direct mobile users based on their responses. An example of how this works is by asking the mobile user their age. When the mobile user sends their age, it can be saved to the mobile user properties associated with the mobile number with the use of a number listener and it can also be used in a subsequent condition block to direct them to a specific response. Listeners will each have their own outlet within a single input block, which allows each listener to be connected to their own subsequent action. Basically, each listener can have their own customized response or action.

The order of listeners within an input block is also important. There is a cascading behavior in which the MO will follow the path of the first listener it matches that also has a subsequent block connected. If a listener in an input block does not have a subsequent block connected, it can still retain information matching its criterion, but it will pass control flow to the next listener. Listeners may be reordered by using the up and down arrows found when configuring an input block.

The entry point of the program is considered to be a listener because it specifies the word or text string that the mobile user will text in to enter a session.

There are a number of different listeners to find pieces of information in a mobile-originated message. Each type is used to perform a simple validation. Therefore, the email listener will find the text string that looks like an email address.

The types of listeners are:

  • Keyword
  • Email
  • Catch All
  • Date
  • Number
  • After First Word
  • Nth Word
  • Regular Expression

Reminders

Reminders help you to keep the end-users in a session if they have not responded or they have not given a valid response that leads them to the next step in the flow. Reminders are configured in input blocks and function similarly to a catchall listener in that they “catches” responses that don’t meet the criteria of the other listeners in the same input block. When the mobile user has already entered into a session and they have not responded to an MT, the reminder will trigger another MT to be sent to the mobile user. These reminders can be delayed by an amount of time ranging from five minutes to a day, depending on the specified length of the session.

Depending on the workflow you have configured, end-users may remain in a Multi-step session for a long period of time. When end-users opt out (using a keyword like Stop, Quit, End, Cancel, or Unsubscribe), they will be removed from any active Multi-step sessions. These opt-out actions are different from manually updating the opt in status of end-users on a List. Updating the status of a mobile user on a List will not impact any active Multi-step sessions the end-user may have. If you intend to deliver messages from a Multi-step to mobile users that are opted into a specific List, you must perform an Opted In Condition check before each outgoing MT in the Multi-step.

Conditions

Conditions are additional criteria that can be used to direct the mobile users’ input to trigger the appropriate output blocks with specific actions. Conditions may be preceded by any type of block including another condition block. However, blocks following a condition block may only be another condition block or an output block. The reason for this is that there cannot be conditional criteria preceding mobile user input.

📘

Note:

The type of condition to use depends on the nature of the variable and how it will be compared.

Outcomes

When a condition is created it produces a set of outcomes. For a condition block with a single condition, the possible outcomes will be true and false. When there are multiple conditions within one condition block, the outcomes will be All True, Any True, or All False. In either case, each outcome will have an outlet to which a subsequent block may be configured.

Variable Defined

The variable defined condition is useful as an additional component to the contact update action in the output blocks. If mobile users enter into a competition and their profile is updated to reflect that they have already entered, the variable defined condition can be used later to determine whether they have already entered or not.

Variable Comparison

The variable comparison provides a number of following options to create the desired logic in a multi-step program:

  • Source - The source must be specified in the drop-down menu as property, session variable, mobile number, carrier, country code, current date, or random number. The property includes any information specific to the mobile user such as first or last name, city, or gender. Session variables are defined during the creation of a listener and the mobile user’s input captured by this listener will be the value used to create the comparison. For example, in a question and answer scenario, the end-user’s answer may be stored just for their session and the value of their answer may be used to create a condition. The remaining sources available have only a single field from which to provide the value used in the condition. The random number is most useful for sweepstakes and selecting random winners.
  • Field - The must only be specified for sources that have multiple fields. Typically, this will only be for properties and session variables.
  • Operator - The operator defines the relationship from a list of Boolean operators between the value of the source and the value defined for a particular condition. For example, to segment mobile users that are 30 or older, the birth date property will be used with a greater than or equal operator followed by a value of 30.
  • Value - The value is defined in the text input field and will be a fixed value in the condition.

Variable Comparison feature in Communicate Pro

The Multistep Program in Communicate Pro offers chatbot functionality so end-users can create complex user journeys.

When creating end-user journeys, customers often have to make comparisons between data to know which path is relevant for the mobile user. Communicate Pro offers two methods for comparing data Variable Comparison (Value) and Variable Comparison (Sources). Both of these are available in the Multistep as a Condition:

  • The Variable Comparison (Value) option allows End-Users to compare data against a static value.
  • The Source and Field menu is used to define the data you are going to compare against the Value being set. Depending on the source selected, the field may or may not be applicable.
  • The Operator determines how the comparisons are made.
  • For a customer that wanted to determine if a mobile user's birth year was less than or equal to 1980, the Variable Comparison (Value) function can be used.
  • Once the condition is set, define what should happen when the condition is True or False.
  • For cases where the data needs to be compared against other dynamic values, End-users can use the Condition: Variable Comparison (Sources).
  • The Variable Comparison (Sources) function allows End-users to compare one source against another source as opposed to a static value.
  • In the example above, the program compares the Birthdate against another Property. But, the function offers flexibility so End-users can compare different sources.
  • End-users can also establish multiple conditions.
  • When multiple conditions are established, End-users have an additional option to configure based on the validation. End-users do not have to configure an action off of every outcome path, but it is recommended to do so.

Date

The date condition compares the date that the MO is received to the date selected in this condition. This is different from the current date condition in the variable comparison because it only validates the current date against a specified date, whereas the variable comparison allows the use of an operator to define the relationship.

Opted In

The opted-in condition helps you in determining whether mobile users are in a specific list and then gives a different response for end-users already in the list and those that are not. Mobile users can be validated against several lists by creating multiple opted in conditions within one condition block. The possible outcomes for checking against more than one list are All True, Any True, or All False.

Depending on the workflow you have configured, end-users may remain in a Multi-step session for a long period of time. When end-users opt out (using a keyword like Stop, Quit, End, Cancel, or Unsubscribe), they will be removed from any active Multi-step sessions. These opt-out actions are different than manually updating the opt in status of end-users on a List. Updating the status of a mobile user on a List will not impact any active Multi-step sessions the end-user may have. If you intend to deliver messages from a Multi-step to mobile users that are opted into a specific List, you must perform an Opted In Condition check before each outgoing MT in the Multi-step.

Outputs

An output block will contain actions or a set of actions to carry out in the multi-step sequence. In general, an output block performs some sort of response to information within the MO. To create an output block, click the outlet of either the input block or condition block that contains the logic to trigger the output action(s) and that immediately precedes the new output block. Once the new output option has been selected, individual actions must be configured to complete the output block.

Actions

Actions within an output block can be an outbound SMS, an external API call to post or get data, perform a contact update to a mobile user’s information, or add a mobile user to a list.

Outbound SMS

An outbound SMS is an MT that will be received by the mobile user as a response to the contents of their MO that is processed by either the previous input block or condition block. The MTs can be end user to prompt mobile users to provide more information, send them a coupon, a link to a mobile service, or send the end-user other personalized messages.

When promoting a mobile user to provide more information, this will typically require a subsequent input block to process the desired information in the MO. This will keep the mobile user engaged and further into the multi-step flow.

Any outbound SMS contains multiple dynamic properties inserted into the message text. For example, if the mobile user’s name and city have already been obtained and stored, the message can be personalized by inserting the name and city properties into the message in the appropriate place by simply using the Insert Dynamic Value drop-down menu and its corresponding insert button. The same can be done to insert coupons and mobile services, however, these must be created first outside of the multi-step screen.

External API Calls

External API calls are a powerful feature in the multi-step program. It facilitates the retrieval and sending of data externally. Any information housed in another system can be incorporated into the multi-step and used in subsequent condition blocks to determine how they will be directed next in the flow. External APIs must be configured outside of the multi-step program and can be found in the Services menu under New External API.

Contact Update

The contact update feature is useful as it saves information about the mobile user that is related to how they interact with the program. This is different from a session variable because it can be saved indefinitely, whereas the session variable is not available after the session has ended. The contact update action is commonly used for keeping track of how many times a mobile user has entered a contest. This can be done by selecting Contact Update as the action type. Then select the store option Indefinite and name the parameter unless one already exists. To keep a running count of how many times they have entered a competition, select the option Increment By and enter 1, which is the value that will be added each time the mobile user reaches this particular action type in any multi-step program.

Opt-in/Opt-out

In addition to the primary list and stop behavior specified during the initial program configuration, adding or removing mobile users from lists can be done specific to a particular point in the multistep program. This is extremely useful in performing segmentation while collecting information from mobile users. For example, when mobile users are asked what their favorite sport is, those who responded 'basketball' can be added to a different list than those who responded 'football' by configuring different lists to each keyword listener.

Similarly, this is useful to remove a mobile user if they have indicated a preference that is mutually exclusive with another list or if their preferences have changed. In the same example, it could be configured that users who answered 'basketball' will be removed from the 'football' list.