Training GuideOutbound Flow Checklist

Outbound Flow Checklist

Creating & Scheduling an Outbound Flow

This document is intended to be used as a checklist so that programmers can be confident that they are implementing CCL’s best practices in all outgoing flows.

Create Flow

Use a distinct naming convention, e.g. yyyymmdd Topic of message
For your first action step, use Split by Group Membership: Filter out all groups that should NOT receive the message and then build the rest of the flow off of “Other.” 


For your second action step, use Update Contact: Update the contact’s channel to the phone number you prefer. This will ensure continuity for contacts. The number selected (short code, long code, or toll-free) will determine what contacts see on their device as well as MPS, or throughput.
Use Send Message to send a custom message to your contacts. Verify the first message includes:

“Message & Data Rates May Apply”

“Reply STOP to stop messages”

Note the count on the bottom left of the Send Message window.  This provides a real-time character/segment count that you can use for planning purposes.

Review content best practices for suggestions about how to craft calls-to-action (CTAs) that are effective and provide you with user data.

Create as many “Send message” steps as are necessary
Use the simulator to see how your contacts (recipients) will experience the flow as you build it. 
Using the Simulator


  • Other common action steps include Add to Group, Remove from Group, Wait for Response, Enter a flow, or Remove from flow. Use these as necessary to make the most of your flow.

At the end of the flow, add Wait for Response to capture any open-ended messages from contacts. (People commonly respond with “okay” or “thank you” at the end of flow.)
Name “EndFlow,” “Expiration,” or similar.
Set this to Continue when there is no response after 1 minute

Input Translations for additional languages after programming is complete. Multiple languages can be quickly added by selecting the desired language from the menu listed at the top of the flow.

Determine how your flow will be initiated. 

Set any trigger words by adding selected words and their common misspellings on the “Triggers” page in english and any designated additional languages.


The following trigger words are reserved for opt outs or compliance protocols and cannot be used for flows: STOP, END, CANCEL, UNSUBSCRIBE, QUIT, REMOVE, HELP, EXIT.

Note: An uncaught message is a functionality that can be set so that any message received outside of the flows and preassigned trigger words will either generate a message or point to a product (like a helpdesk). 

Schedule the Flow

First, conduct “Light QA” by reviewing the flow using the simulator.
You should also deploy to a cell phone for initial testing (your cell phone, a teammates or another colleague).
Disconnect the first step so that if an error occurs while scheduling, the messages don’t send.
Click “Launch Flow” and “Start flow at a future date and time”
Select appropriate contacts and contact groups, set date and time, click OK
Navigate to the “triggers” tab to verify that the flow has been scheduled for the correct group at the appropriate date and time
Return to the flow and reconnect the first step

Insert hyperlinks at the end of a message to provide users with a large thumbnail.  See the difference here: 



This message includes an inline hyperlink. 


This message includes the hyperlink at the end of the message. The thumbnail is generated automatically, and can direct users to your Call to Action.


Use metatags to ensure your thumbnail is large and easy-to-tap.Read more about metatags in this article by Resistbot:


Note: One of the best ways to test metatags would be to use Facebook's linter:

Note for high-volume sends (10,000+ contacts)

When we have a wait for response or pause in flows that will be sent to more than 10,000 contacts at once, we include an action step that staggers throughput and avoids funneling all the messages at once. 


We accomplish that by using the Split Randomly action step, depicted below: 


To use Split Randomly, begin by creating buckets:  8 buckets: 10SecDelay, 20SecDelay, 30SecDelay, etc.


For each bucket, create Wait for Response and name the step after each delay length, i.e. “Wait for 10SecDelay”


Connect All Responses and No Response to next action step (pictured here: split by expression) or send message