Iterable's SMS Double Opt-In flow contains several components that work together to request and confirm a user's subscription.
In this article
Double opt-in message type
Double opt-in message types have a double opt-in subscription policy. You can create a double opt-in message type in both marketing and transactional messaging channels for SMS. This message type is unique to SMS.
For each message type, provide brand name, messaging initiative, and SMS disclaimer link. Iterable includes these fields in the confirmation and legal disclaimer messages, and choose a sender to send the double opt-in messages.
These message types are specifically for use in the API trigger that starts the SMS Double Opt-In flow.
Use the double opt-in message type by setting up an opt-in form for users to subscribe to SMS message types.
To learn more about creating a double opt-in message type and building a form that supports the API trigger, read Setting up SMS Double Opt-In.
Brand name
The brand name displays in the confirmation and legal disclaimer messages and
can be up to 50 characters long. Iterable adds this field in the confirmation
and legal disclaimer messages with the merge parameter {{brandName}}
.
Messaging initiative
The messaging initiative describes the content associated with a given message
type. It tells your users what kind of content they're subscribing to and can
be up to 100 characters long. Iterable includes this field in the double opt-in
confirmation message with the merge parameter {{messagingInitiative}}
.
SMS disclaimer link
The SMS disclaimer link is a valid URL that begins with https://
and can be
up to 100 characters long. Iterable includes this link in the legal disclaimer
message with the merge parameter {{smsDisclaimerLink}}
.
Sender
When you create a double opt-in message type, select the sender that the confirmation and legal disclaimer messages send from. You can select from the SMS senders you've set up in Iterable.
In the event that you have multiple double opt-in message types in a single subscription request, and those message types have different senders set up, the sender is selected by Iterable based on the following order of priority: short code > toll-free > long code.
Future campaigns from the double opt-in message type send from the sender selected in the SMS Campaign.
API trigger
When a user submits a form to subscribe to SMS message types, send a POST request to Iterable's Subscriptions API:
POST /api/subscriptions/subscribeToDoubleOptIn
The request should include the user's unique identifier (email
or userId
),
their phoneNumber
(if not already stored in the user's profile), and the
double opt-in message type ID(s) that the user wants to subscribe to.
Implementing the API trigger requires development resources to set up the form so that it posts to Iterable's API. This can be set up similarly to Creating a Subscription Preference Center. Your server should make the API call, not client-side JavaScript.
Double opt-in confirmation message
When you create a double opt-in message type, Iterable generates a default confirmation message. The confirmation message includes the brand name, messaging initiative, and a request for the user to reply to confirm their subscription.
The confirmation message is sent from the sender selected in the double opt-in message type. This message is sent as a SMS campaign and is not part of a journey. It also doesn't respect Quiet Hours or Frequency Management so that the message is sent immediately after the user submits their subscription request, so it doesn't get skipped.
Message content:
{{brandName}}: Reply Y to subscribe to text messages about: {{messagingInitiative}}
The brand name and messaging initiative are populated based on the message types the user has asked to subscribe to. If a user selects multiple message types that have different brand names, the brand names are concatenated in the message. If the message types have the same brand name, the brand name is de-duplicated so that the name displays only once.
Double opt-in legal disclaimer message
After the user replies to the confirmation message, Iterable sends a legal disclaimer message to the user's phone number. The legal disclaimer message includes the SMS disclaimer link that you set up in the double opt-in message type.
The legal disclaimer message is sent from the sender selected in the double opt-in message type. This message is sent as a one-time SMS campaign and is not part of a journey. It doesn't respect Quiet Hours or Frequency Management so that the message is sent immediately after the user subscribes, so it doesn't get skipped.
Message content:
{{brandName}}: Msg & data rates may apply. Msg frequency varies. Reply HELP for help, STOP to cancel. Disclaimer: {{smsDisclaimerLink}}
Double opt-in system events
Iterable logs several events as part of the double opt-in process. These events include:
- SMS send - for the confirmation message
- SMS received - when the user replies to the confirmation message
- Subscribe - when Iterable processes the user's double opt-in subscription
- SMS send - for the legal disclaimer message
- SMS usage info - for each SMS message sent
SMS send event - confirmation message
A SMS send event is logged when Iterable sends the confirmation message to the user's phone number.
This send event is similar to other SMS send events. The campaign.name
property reflects a title that includes the double opt-in message type ID. For
example, "Double Opt-In Confirmation for Message Type 123456" is the
campaign.name
for the confirmation message when subscribing to message type
123456
.
This send event also contains a property unique to the double opt-in flow,
doubleOptInMessage
, which contains the text of the confirmation message.
SMS received event
Iterable logs an SMS received event when a user replies to the confirmation message. The event includes the user's phone number and the message they sent (which should be 'y' to confirm their subscription).
SMS send event - legal disclaimer
Iterable logs an SMS send event when it sends the legal disclaimer message to the user's phone number.
This send event is similar to the send event for the confirmation message. The
campaign.name
property reflects a title that includes the double opt-in
message type ID. For example, "Double Opt-In Disclaimer for Message Type 123456"
is the campaign.name
for the legal disclaimer message when subscribing to
message type 123456
.
This send event also contains a property unique to the double opt-in flow,
doubleOptInMessage
, which contains the text of the legal disclaimer.
Subscribe event
Iterable logs a subscribe event when a user confirms their subscription to a double opt-in message type.
The subscribe events are characterized by the following values:
-
eventType
isemailSubscribe
. -
signupSource
isDoubleOptInAPI
. -
messageTypeIds
is an array of double opt-in message type IDs that the user has subscribed to.
SMS usage info events
Iterable logs events that provide information about the SMS usage for double opt-in messages. These events are system events and indicate the number of SMS segments that were sent.
Keep in mind that the automated double opt-in messages count towards your SMS usage. To learn more about SMS segment count for double opt-in messages, read How many segments do the automated double opt-in messages use?.