The multi-step SMS program is an advanced program type that allows for a custom interactive SMS program flow that is similar to a logic flow. This program type is used for various flows, including surveys, quizzes, entries (for contest or drawing), validations, etc.
Note: This article describes the process for mGage users.
Before you begin
To create a new multi-step program, you need to assign the program to a parent campaign. If you do not have one already, create it in advance.
During program configuration in the initial setup, you will assign the multi-step program to a short code and campaign and then configure other settings, such as session timeout, duration of the program, and interactions in the program. When you complete setup, you can view the interactions on the multi-step canvas. The canvas is the area where you can edit the flow of the multi-step program in SMS. In the canvas view, the flow is presented using lines and outlets drawn from the program blocks.
You can view the level of users interacting with each step in the user journey. Unique session interaction shows only unique events for each user session created. Total interaction shows all events for an action and a block.
Configure the multi-step program template
- Open a multi-step program template.
- Fill in the fields in the program's template. See the sections below for a description of each field.
- Click Save multi-step program.
- View the program on the program's multi-step canvas.
- In the menu, go to Interactive > Multi-step programs.
- Click the name of the program.
- Depending on your use case, set up the interactions, such as inputs, outputs, and conditions, to successfully configure the multi-step program.
- See Opt-in contacts from an Acoustic Campaign web form for an example of how you can configure a multi-step program.
- Use the External API template if you want to push data from the SMS Campaign Manager to Acoustic Campaign.
Note: Use the Redraw button to move all the nodes/blocks back to their default positions on the canvas if they have been manually moved around. On the canvas, click Edit and then the Redraw button.
Basic program details
- Name: Name your multi-step program.
- Campaign: Assign the program to a parent campaign.
- External campaign reference: Not applicable.
- Short code: In the list, select the short code.
- Keywords: Assign one or more keywords to your program. The keyword entered in this field will appear later on the canvas, as the entry point. A specific keyword and short code combination may only be used on one active program at a time.
- Session timeout: Select a pre-defined session, from 5 minutes to 72 hours. A session is triggered by the mobile user sending in the keyword to the short code. Once their session has begun, they will not have to include the initial keyword in their responses for the duration of their session.
- Program duration: You can choose to have an ongoing program with no end date (Indefinite) or define the start and end dates. *See Open Behavior and Finished Behavior below.
- Start time & date: Choose a start time and date.
- End time & date: Choose an end time and date.
- Stop message: The message the mobile user gets when s/he sends the keyword [program name] STOP. The mobile user is removed from the opt-in list of this program.
- Configure help message: Used only for countries that support Sender ID.
- Help message: The Help message provides the mobile user with additional information or contact information to the customer service line.
- Pre-program message: Select this option to define when you want to start sending this message (before the Start Date). The mobile user gets this message when s/he sends the keyword before the program's Start Time & Date.
- Finished message: Select this option to define when you want to begin sending this message (after the end date). The mobile user gets this message when s/he sends the keyword after the program End time & date.
- Originator: Used only for countries that support Sender ID. Select the MT sender. This is provisioned for you.
The entry point is the initial listener specified during the program configuration, typically a keyword listener that the mobile user will send to the short code to begin their session.
The keyword entered in this field will appear later on the canvas as the entry point.
Note: You can only use a specific keyword and short code combination in one active program at a time.
An 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.
The first input block in a multi-step program is automatically created when you specify the entry point listener. It will appear as a separate component on the canvas.
A 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 user. Each listener will have its own outlet within a single input block, which enables you to connect it to its own subsequent 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 matching listener with a subsequent block connected. A listener in an input block without a subsequent block connected can still retain information matching its criterion but it will pass control flow to the next listener.
Every entry point of the program is a listener because it specifies the word or text string that the mobile user will text in to enter the program.
There are a number of different listeners to find pieces of information in a mobile-originated message:
- Keyword: Expects a specific word or text string. It can be used to direct control flow as well as retain feedback from mobile users.
- Email: Expects an email address in the message and it will perform simple validation on the text string.
- Catch all: Captures all the information in the MO.
- Date: Expects a date in the message and it will perform a simple validation.
- Number: Expects a number in the message and will perform simple validation on the text string.
- After first word: Looks for the second word in the mobile originating (MO) message. This is useful when there is additional information following the keyword in the MO.
- After nth word: Allows the user to specify the number for the Nth word in the message text.
- Nth Word
- Regular Expression: Use a Regular Expression listener to recognize a specific pattern of letters. This is useful in cases where diacritical marks are used but sometimes not supported by carriers. For example, setting up the Regular Expression listener hypoth.que recognizes hypothèque, hypothéque, and hypothêque.
Use this option to temporarily store a response in SMS Campaign Manager. If needed, use in the next steps of the program. Stored response values do not come to the marketing cloud database directly. If there is a requirement to fill in a response in the database, use both store response functionality and SMS Campaign Manager external API. When setting up a listener, choose from the number of response storage periods:
- Do not store: The responses will not be stored to their mobile user properties.
- Session: Used to track a mobile user as they interact with the various steps within a multi-step program. You can configure a session timeout if the mobile user has not responded after a specified amount of time.
- Indefinite: The responses of mobile users are stored permanently to their mobile user properties.
A session variable is information obtained during the session about the user that will only persist for the duration of the session. For example, a session variable can contain the number of correct answers the mobile user gave in an SMS quiz.
When viewing multi-step blocks on the canvas, the lines connecting the blocks are connections. Multi-step is designed to prevent the construction of invalid flows that are not technically feasible by showing only the valid options when you click on an outlet. An outlet connects one block to another. It is important to know the rules of valid connections between block types:
- Output: Connects to an input or condition block; has one outlet regardless of their content.
- Input: Connects to an output or condition block; can have multiple outlets.
- Condition: Connects to other conditions or output blocks.
Note: Each block may only have a single incoming connection.
An output block is a component in the multi-step program that is triggered by an input from the mobile user or a condition and performs some sort of response to information within the MO. Output blocks have one outlet that can connect to an input block or a condition block.
Once you select the new output option, configure individual actions to complete the output block:
- Outbound SMS (MT): An MT sent to the mobile users' handsets as a response to the contents of their MO. Use the MTs to prompt the mobile user to provide more information, send them a coupon or other personalized messages. When prompting the mobile user to provide more information, this will typically require another input block to process the collected information.
- External API call: 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 External APIs.
- Contact update
- Opt mobile user into a list
- Redirect: Sends the mobile user into another interactive program. To properly set the redirect action up, the other program must already be created and in an active state. The keyword associated with its entry point will be used in the message body as a virtual MO.
Note: Acoustic Campaign customers are not expected to use the contact update action functionality. However, this feature can be used -- just like store response.
Conditions are additional criteria that direct the mobile users’ input to trigger the appropriate output blocks with a specific action(s). There can be one or more conditions in a single condition block. You can put any type of block before a condition block, but you can follow it only with another condition block or an output block. The conditions include:
- Variable defined: Creates a condition based on whether there is a value for a specific parameter in the mobile user's contact information. Useful as an additional component to the contact update action in the output blocks. If a mobile user enters 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 it is their first entrance.
- Variable comparison: A type of condition in the multi-step that allows the user to compare a property of the mobile user to a specified value. This is useful in segmenting mobile users by different demographics. Provides a number of different options to create the desired logic in a multi-step program.
- Source: Specify the source while you create a listener, which will capture the input used as the value to create the comparison. Choose from: property, session variable, mobile number, carrier, country code, current date, or random number. For example, in a question and answer scenario, the 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.
- Field: The parameter or property compared to a specified value specified for sources that have multiple fields. Typically, this will only be for properties and session variables.
- Operator: Defines the relationship between the field and the specified value. For example, to segment mobile users that are 30 or older, the operator will use the birth date property: ≥30.
- Value: A fixed value in the condition defined in the text input field.
- Date: 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.
- Random number: Gives users the ability to define the odds for true and false outcomes of the condition. The range of numbers is from 0 to 10,000. If the desired behavior is to randomly split true and false outcomes evenly, the condition should be set to either "> 5,000" or "< 5,000".
When you create a condition, you also produce a set of outcomes. An outcome is a possible result for information compared to a condition. When there is a single condition in a condition block, the outcomes are true and false. When there are more conditions within a single condition block, the outcomes are true for one, true for all, and false for all. In both cases, each outcome will have an outlet to connect the next block.