The multi-step SMS program is an advanced program type that enables you to build a custom interactive SMS program flow. This program type is used for many purposes, including surveys, quizzes, contest entries, or validations.
During program configuration in the initial setup, you will assign the multi-step program to a short code and campaign and configure other settings: session timeout, duration of the program, and interactions in the program. Then, you can view the interactions on the multi-step canvas and edit the flow of the program.
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.
Before you begin
To create a new multi-step program, you need to assign the program to a parent campaign in Campaign Manager. If you do not have one already, create it in advance.
Configure the multi-step program template
- In the Campaign menu, go to SMS and group messaging > Campaign manager.
- In Campaign Manager, go to Interactive > Program types and click Multi-step program.
- Fill in the fields in the program's template. See Basic program details and Message details sections below for a description of each field.
- Click Save multi-step program. You will see the program on the multi-step canvas.
- Set up the interactions that suit your program purpose and flow: inputs, outputs, and conditions. 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.
Tip: 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.
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. You can use a specific keyword and short code combination 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.
Note: If you send messages to India with Karix or ValueFirst as your SMS aggregator, you'll see two additional fields to complete: Template ID and Entity ID. To learn what these terms mean and where to find the IDs to fill in, read Send bulk messages in India with the DLT portal.
Message details
-
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.
-
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.
Entry point
The entry point is the first listener specified during the program configuration. Typically, it's 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.
Input
An input block 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.
Listeners
A listener extracts information from the mobile originated SMS message (MO) and uses it to direct the mobile user to the next step in the program and/or stores the information about the user. Every entry point of the program is a listener because it specifies the word or text string that the mobile user will text to enter the program. 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. 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 can still retain information that matches its criteria but it will pass control flow to the next listener.
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, Nth word: Specify the number for the Nth word in the message text.
- 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.
Store response
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.
Session variable
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.
Connection
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.
Outputs
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
- A mobile terminated SMS message (MT) sent to the mobile users' handsets as a response to the contents of their MO. Use outbound SMS 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.
Condition
Conditions are additional criteria that direct the mobile users’ input to trigger the right output blocks with a specific action(s). You can add one or more conditions to a single condition block. You can put any type of block before a condition block, but you can follow it only with another condition or output.
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.
Example: 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
Variable comparison is a type of condition that enables you to compare a property of the mobile user to a specified value. This is useful in segmenting mobile users by different demographics as it 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. 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".
Outcome
When you create a condition, you also produce a set of outcomes. An outcome is a possible result for information compared to a condition. For a single condition in a condition block, the outcomes are true and false. When there are more conditions within one 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.