Applying Safeguards to your SMS Application

Providing a post-survey reward is common practice among organizations sending SMS surveys to large populations. Some organizations use TextIt's flow event WebHook functionality to populate the final message in a survey with unique coupon codes or to transfer airtime, while others send out coupons by (e)mail. Reimbursement strategy notwithstanding, most take measures to prevent survey participants from abusing their SMS applications, including: 

  • Alternating Response Rules
  • Limiting Incorrect Responses
  • Limiting each Contact to a Single Take

This article will use the workflow pictured below to demonstrate how you can do so with your own TextIt SMS application: 

Alternating Response Rules

It's important to alternate response rules to ensure a contact can't pass through an entire workflow by repeatedly sending the same response. Alternating between numeric and text-based response rules prevents this from occurring. The following are examples of both types of response rules applied to the question, "Are you interested in taking future surveys?":  

(A) Numeric

(B) Text-Based

Limiting Incorrect Responses

You can use multiple Update the Contact actions (see "Updated Value for Retries" above) to limit the amount of times a contact can incorrectly respond to a question (thus passing through the "other" category of the subsequent RuleSet). To so, you'll first need to set a limit to the amount of incorrect responses you'd like the RuleSet (see "Wait for Number" above) to process. In the example below, each contact is given 3 chances, which are updated to the "Retries" contact field: 

Now that the limit has been set, an additional Update the Contact action will need to be added to the Send Message action that proceeds the "other" category of the "Wait for Number" RuleSet: 

Place the @(contact.retries - 1) expression in the "Value" input. This will count down the value you initially set for "Retries" each time a contact passes through the "other" category of the "Wait for Number" RuleSet. 

All that's left to do is add a Split by Contact Field RuleSet (see "Split on Retries" above) that will evaluate each contact's "Retries" value each time they pass through the "other" category of the "Wait for Number" RuleSet and exit them from a flow if it's less than 1: 

This configuration can be placed before and after each subsequent RuleSet to ensure the entire workflow is consistent.  

Limiting Each Contact to a Single Take

An Update the Contact action (see "Update Value for Housing Survey Completed" above) can be added to the last message of the survey to prevent a contact from taking it twice. In the example below, contacts who reach the end of the survey have the word "Yes" placed in their respective "Housing Survey Completed" contact fields.

The addition of the "Split on Housing Survey Completed" to the beginning of the workflow allows it to check each contact's "Housing Survey Completed" contact field for the word "yes." If "yes" is present, the contact may not enter the flow: 

The same method can be used to prevent contacts who've opted-out from receiving future surveys. Simply place a Split by Contact Field RuleSet at the beginning of each workflow that looks like this: 

Contacts who've opted out will pass through the Opted-Out category and can then be removed from the workflow.

Try it for Yourself

Create an account or log-in to apply these features to your own workflows. Questions or comments can be directed to :)


Feature Update: Assigning Catch-All Triggers to Groups

On the one hand, triggers are an essential component of any mobile-based communication system using an SMS, voice or social media channel. They allow you to design interactions by creating keywords that launch workflows, starting messages or workflows in the future or on a schedule, and starting a workflow after receiving a message not handled elsewhere. On the other hand, groups are essential to the organization of your service. They allow you to segment your contacts into clusters based on their attributes or responses. This week, we took a step towards linking these core features by giving you the ability to assign catch-all triggers to groups. Catch-all triggers allow you to start a workflow after receiving an uncaught message (a message not handled by a workflow or any of your other triggers present within your account) that can in turn direct your contacts to the intended workflow using the Start another flow action.  

Implications - Starting a Workflow

In order for your contacts to interact with a workflow, it must be started. A workflow can be started in one of two ways: 

Outbound Engagements: You start a contact in a workflow manually from the workflow editor, or by using a campaign event or schedule trigger

Inbound Engagements: Your contacts start themselves in a workflow by sending you a keyword or catch-all trigger. 

The ability to assign catch-all triggers to groups applies to inbound engagements. Click here to learn more about the ways in which workflows can be started. 

Implications - Uncaught Messages 

Your messages tab, much like an email client, contains all inbound and outbound interactions that take place through your TextIt account. When your contacts respond to a question in a workflow, their responses are displayed in the Flows folder. By contrast, any messages your contacts send that aren’t handled by a workflow or trigger are displayed in the Inbox folder. 

Assigning catch-all triggers to groups will allow you to track messages received from specific populations that aren’t handled by a workflow or trigger and respond with a workflow appropriate for that group of people. In other words, this feature allows you to ensure no message goes unanswered without constantly monitoring your account. 

An Added Level of Organization 

This feature is particularly useful for accounts that conduct and manage multiple projects across a variety of populations. Say you're sending unique workflows that collect or disseminate information in multiple areas, you can optimize the organization of your projects by directing contacts to a workflow that in turn directs contacts to the appropriate informational workflow. 

Getting Started

To assign a catch-all trigger to a group, you'll first need to identify the group and workflow you'd like to apply the trigger to. For the purposes of this example, we'll use the directory workflow pictured below: 

This workflow will allow us to funnel members of our selected group, Oakland Constituents, to the workflows that most pertain to them. In this case, it's our Community Housing and Development Survey. 

With a group and workflow in mind, all that's left to do is navigate to the triggers tab and create the trigger: 

All active triggers will be displayed on the contacts tab with the name of the group to which it's assigned present in the same pane: 

Note that only one catch-all trigger may be assigned to a single group at any given time. Archiving a trigger renders it inactive until activated from the Archived folder. 

Localizing Workflows to Support Multiple Languages

The image above shows the beginning of an SMS-based feedback survey that's optimized to provide Spanish translations of each message. 

Providing multi-language support for your SMS messaging service or mobile-based survey system is an important step towards ensuring high completion rates and quality of data collected. Instead of creating a separate workflow for each language you want to support, TextIt allows you to localize multiple languages within a single workflow. Here's how: 

Create the Split

The first step within this 8-step sample workflow, a Send Message action, asks respondents to choose their preferred language - English or Spanish. We’re asking them to indicate their choice with the letters “E” for English or “S” for Spanish. Single-character responses are easy for any respondent, and our next question asks for a numerical response. 

Note that we’ve written a message-counter into the beginning of the message that shows our respondents the step they’re at, against the total number of steps in the workflow. Doing so is a simple, easy way to improve completion rates. 

The next step, a RuleSet, uses response rules to dictate a range of acceptable responses that will allow respondents to pass through each language category, or allow us to prompt them to try again. As you can see, we can categorize any number of responses as a Spanish or English-language selection.

Alternatively, you could split by contact field, expression or flow field if the contact might already have provided information that would indicate their language preference. 

Translate your Workflow

To add a Spanish-language translation to a workflow, we’ll first need to navigate to our account page and add Spanish as a secondary language. You can do so by scrolling down to and clicking the language icon, then typing in the secondary language you’d like to add. Additional languages can be added as needed. 

Having added our secondary language, we’re ready to translate our workflow. We can do so by clicking the “Spanish” filter beneath the “Start Flow” and “Flow Settings” buttons in the top right corner of the flow editor. 

As you can see, untranslated messages appear yellow, while translated messages appear white. We’ve already translated each message, so now we’re ready to add actions that will switch the workflow from English to Spanish if the respondents choose Spanish. 

Next, we’ll need to drag a new connection to pull up the action dialogue, then scroll down to the Set Language for Contact action, which will toggle the flow from English to Spanish for respondents who pass through this step. Pause. Next, we’ll select Spanish from our account’s secondary languages.

Make sure to test your workflow with the simulator to make sure it's behaving as expected.

Go ahead and give it a try. If you have any questions, comments, or suggestions, send them to us through our support widget, or email us at Don't have an account? Create one for free :)

Twitter-Based TextIt Workflows

In addition to voice and SMS, TextIt allows you to apply our unique workflow engine to Twitter direct message interactions. Twitter workflows are useful for greeting new followers or polling pre-existing ones. Moreover, they allow you to engage constituents or clients who are active on a platform that serves 320 million monthly active users, 80% of which access the platform via a mobile phone. UNICEF's U-Report program, for example, utilizes Twitter workflows to disseminate polls among youth in various countries with great success. 

How it Works - Managing your Followers

TextIt allows you to connect your Twitter account, which then constitutes a channel. Once connected, anyone who direct messages your Twitter account will appear as a contact within your TextIt account, and may interact with any of your SMS workflows in this manner. TextIt provides a default field that stores your contact's twitter handles: 

Any incoming direct messages will be automatically stored by TextIt, and you'll be able to send direct messages to contacts you know using their twitter handle so long as their account is enabled to receive direct messages from anyone. For example, if a follower sends you a direct message containing a keyword trigger you've assigned to one of your flows, they'll receive a response just as they would via SMS. Alternatively you may also also create a trigger that sends a workflow or message to anyone who follows you. This is how we've structured our TextIt account :)

Creating a Twitter Workflow

Twitter workflows are created just like SMS workflows, simply select 'text messaging' from the creation dialogue, then start building: 

Note that Twitter direct messages are no longer limited to 140 characters, so you can ignore the Send Message character counter: 

Connecting your Twitter Account

To connect your Twitter account, simply add a channel and select the Twitter option: 

Then, make sure your account is enabled to receive direct messages from anyone. You can do so from your Twitter Security Settings.

Note that Twitter currently limits accounts to 1,000 direct messages sent per day. If you expect to exceed this number, you'll need to contact Twitter directly to request that they lift that restriction for your account. 

Authorize the integration, then you're ready to send direct messages: 

Your twitter handle will appear on your account page as a channel: 

Creating a Follow Trigger

You can trigger a flow to send each time you gain a new follower by navigating to the triggers tab, scrolling to the bottom, then selecting the "Start a flow after being followed by a new contact" trigger:

Choose the Twitter account you'd like the trigger to apply to, then select the flow you'd like to send: 

Give it a Go

See what it's like to interact with a Twitter workflow triggered by a follow by following TextIt on Twitter. If you're based in the US or Canada, you can also try out our voice workflow demo by calling +1 888-531-0777, or by texting it the word "Hey". As always, make sure to follow Twitter's rules and best practices :)

Voice-Based TextIt Workflows

Did you know you can apply TextIt's workflow logic to voice messages? Voice workflows are handy for three reasons: First, they allow you to send and receive voice messages that allow for improved tone, character and length when compared with text messages. Second, they're synchronous - clients and beneficiaries are actively engaged with your workflow for the duration of the call. Third, they don't require that your contacts are literate, allowing you to reach communities with lesser access to education. 

While it's true that TextIt's voice workflows allow you to create low-cost, customizable call centers capable of triaging calls and directing clients to the appropriate team member, they're also a practical tool in aid and development contexts. In June, we brought attention to the polio-eradication efforts of UNICEF, the WHO, and the Federal and Provincial Emergency Operation Centers on Polio in Pakistan. In this context, UNICEF's Pakistan Innovations team built voice workflows to disseminate polio knowledge-check surveys designed to equip community leaders with the information they need to affect harmful discourse and raise awareness within illiterate communities.

Add a Voice-Enabled Number

You can purchase a voice-enabled Twilio number and connect it to your TextIt account in minutes, or, if you're in a country where Twilio doesn't yet provide virtual numbers, you can test your voice flows with an Android channel by simply connecting your Twilio account to your TextIt account. Your Android channel will handle inbound and outbound SMS, while Twilio's Voice API will make calls using your Android channel's sender ID.

Write a Script

Much like the "Send Message" action available to SMS workflows, the "Play Message" action allows you to script your outgoing messages based on the results of a RuleSet evaluation. Here, you're given the option of letting TextIt's built-in text-to-speech functionality give voice to your messages, or importing an audio file of your choice. 

Craft your Tone

If you'd like to add your own audio to your messages, you can grab a microphone or headset and record yourself using Quicktime or Windows' Sound Recorder. Once your messages are recorded, head over to to convert them to WAV files, then click the microphone icon in the bottom right corner of the messages to add them to your workflow. 

Once uploaded, you can click the play button in the bottom right corner to listen to each message's voice file. 

Note that services like IVONA provide high quality text-to-speech voices for most languages. 

Simulating a Voice Flow

TextIt allows you to simulate a voice workflow using the nearest phone. Simply click the simulator, enter the phone number you'd like TextIt to call, and you'll experience the call as your contacts would. 

Give it a Go

If you're based in the United States or Canada, you can interact with a TextIt voice workflow by calling this toll-free number, +1 888-531-0777, or by texting it the word "Hey". You can also interact with our Twitter workflow by following us on Twitter

Feature Update: Introducing the New Contact Page Layout

We recently updated the presentation of each contact's profile page with the aim of aggregating all contact activity - past and future - to one location. As you may know, TextIt comprises two key ingredients: outbound events - in the form of messages, campaign events and workflows - and inbound events sourced from your contacts. Representing past and future events allows us to highlight one of our most powerful features, campaigns, by bringing each contact's individual schedule to the forefront. Here's a guide to the updated layout:

Contact Fields

Contact fields now appear directly beneath the contact's name, phone number and groups:

Scheduled Events

If the contact is scheduled to receive a scheduled event such as a campaign event, scheduled message or scheduled flow, it will appear under the "Upcoming" header with a description of its schedule:  

Event History

A contact's message history is now displayed beneath any upcoming messages:

The events that populate this section are displayed in order of occurrence, with the most recent event showing first. Note that you can hover over the date to reveal the time at which the event occurred.


Hovering over each of the icons listed below will reveal the channel used to initiate the event the icon denotes. Here's a description of each:

The "delivered" icon denotes a delivered message, and is followed by the text of the message.

The "sent" icon denotes a message that has been sent but hasn't returned a delivery receipt. Some carriers and channels aren't able to provide delivery receipts. These messages should be considered delivered unless they're present within the "Outbox" folder in the messages tab.

The contact icon denotes a message received from a contact, and is followed by the text of that message.

The broadcast icon denotes a message broadcast, and is followed by the number of contacts targeted by the message as well as its contents.

The caution icon denotes a message that has failed to send, and is followed by the text of the message.

The branch icon denotes entrance into a flow, and is followed by the name of the flow.

The clock icon denotes a campaign event, and is followed by the content of the event - either a message or flow - and the contact field around which it's scheduled.

Accessing Contact History

If your contact has a long history of events, you can view their previous history by clicking the "Load More" button on the bottom of the page.

What are your impressions?

Thank you for your continuous support! If you have a question or comment regarding this update, send us a note at, or shoot us a message through our support widget.

Building SMS-Based Election Monitoring Tools with TextIt

The quality of an election process serves as an important indicator of the nature of the resulting government. As such, non-partisan election observation provides citizens around the world the integrity and tools necessary to promote accurate representation, transparency, accountability and democracy within their governments. TextIt's flow engine and Surveyor app enable anyone to monitor elections intuitively, efficiently, and thoroughly from a mobile phone - with or without a connection. 

Governments, NGOs, and other organizations can pair a messaging workflow similar to the example pictured above with an SMS channel or the TextIt Surveyor app to collect and analyze risk data, and record the results of actions taken within an electoral context to build their capacity to understand electoral risk factors and design prevention and mitigation strategies.

How it Works

TextIt allows observers to immediately transmit their findings from polling locations to headquarters, painting a picture of the election in real-time. These results help observation projects to instantly determine if an election is credible. Beyond data collection, TextIt includes features for managing data-centered field work, including: 

  • versatile workflow design
  • workflow standardization
  • real-time and customized data analysis
  • multiple channels of data transmission
  • multilingual translation
  • the ability to broadcast messages to observer teams across a country.

The Surveyor Advantage

The TextIt Surveyor app allows observer teams to collect data using any Android phone - without internet access or a cellular connection. Utilizing the chat-based flow engine that a respondent might normally receive via SMS, observer teams need simply open the app, tap the appropriate workflow, and begin interacting. Check out the video below to see just how instant and intuitive the process is: 

TextIt makes quantitative data gathering and analysis increasingly simple, immediate, efficient, and powerful. Get in touch with us at to learn more about how your organization can utilize TextIt in the field to collect data and foster positive change, or sign-up for a free account to give it a try. 

Design Principles for Therapuetic Text Message Interventions

A peer-reviewed research article, published on PubMed, analyzed the efficacy of 9 text message interventions across 8 studies to determine which approaches yielded the most favorable results.


The authors of the study, Finitsis et al., sought to determine the effectiveness of text-messaging interventions to promote adherence to antiretroviral therapy given: 

  1. the failure of many patients to adhere at high enough rates to maintain health and reduce the risk of transmission, and
  2. the global growth of mobile phone use. 


The paper, Text Message Intervention Designs to Promote Adherence to AntiRetroviral Therapy (ART): A Meta-Analysis of Randomized Controlled Trials, complied and analyzed studies that: 

  1. targeted antiretroviral therapy adherence in a sample of people living with HIV, 
  2. used a randomized-controlled trial design to examine a text messaging intervention, and 
  3. reported at least one adherence measurement or clinical outcome.


Their analyses found that interventions are most successful when: 

  1. they were sent less frequently than daily,
  2. they supported bidirectional communication
  3. included personalized message content, and
  4. were matched to participants' treatment schedules.

Applying these Principles

These principles not only highlight best practices in mobile intervention design, but TextIt's core functionality as well. Our campaigns feature, a product of our participation in a study conducted by Odeny et al., enables anyone to apply these principles using TextIt, while our array of channel options allows for instant deployment at any scale. 

Send us a note at to learn more, or sign-up for a free account to put these principles to action. 

Integrating your TextIt Workflows with Slack

A number of our users have identified bridging the gap between automated and direct communication (directly communicating with a client after collecting information through an automated workflow) as a point of interest. While TextIt offers some powerful actions to facilitate such a process, such as forwarding information collected within a workflow through SMS & email, we'd like to bring attention to an integration that makes more sense each passing day:  TextIt + Slack.

An increasing amount of teams across every sector are coordinating their projects with Slack. Slack provides a messaging platform that integrates with and unifies a wide range of communications services such as Twitter, Dropbox, Google Docs, Jira, GitHub, MailChimp, Trello, and Stripe. We use it, and for the most part love it. We're not the only ones - organizations ranging from The New York Times to Nasa's Jet Propulsion Laboratory to the University of Wisconsin-Madison's IceCube Collaboration use it every day. 

Why it Makes Sense

Slack allows teams to create a number of channels, from #general to #socialmedia to #support - the latter of which this article will focus on. Dealing with people is a challenge every outward-facing organization encounters, especially if it's selling a product or providing a service. Support interactions can be automated by various workflow products like TextIt, but situations will arise in which direct communication is more appropriate. The challenge then becomes building a workflow that brings clients to support at the appropriate time - an easy proposition for TextIt's flow logic. If your team uses Slack, you've got a perfect environment for receiving and managing these requests. 

Integrating TextIt with Slack

Build your Pipeline

Build a workflow that culminates in a Send an Email action. You'll probably want to triage requests, or give the client a choice as we've done in the example below: 

Insert the information you'd like each support email sent by your workflow to contain. In the example below, we've included the clients' 

Enabling Email Notifications

Adding the email integration to your team is simple: just pick the channel to which you’d like to send the email messages and you’ll be given a secret email address that will route directly to that Slack channel. That’s it—repeat as necessary.

How To:

  1. Choose the Email option shown on your Slack Integrations page.
  2. Select a channel the email will post to, give it a label, name and an icon, then click Save Integration.
  3. Copy the generated unique Slack email address (tip: post it to the channel itself as a Pinned Message if you’d like others to use it too), and add that email to any service you’d like to send emails into your channel, and you’re done.
  4. Repeat the process on as many channels as you’d like to send messages into, letting each instance generate a new special email address.

If you haven't already signed-up for TextIt, you can try this integration and others for free at :)

Add Contacts to your Account from your Phone

TextIt now allows you to create new contacts by submitting their information to a messaging workflow. This pathway is new, but it's already getting use in some interesting contexts. For example, we're learning that this configuration is a convenient way for medical professionals to register new patients. 

Create your Contact Creation Flow

In the sample flow below we've created a questionnaire that asks for the contact's default attributes - their name and phone number: 

After the active contact enters those values for the new contact they're creating, they reach a Start Someone Else in a Flow action. This action is unique in that it allows you to start the yet-to-be-created contact - represented by their phone number (the variable) - in the next flow, which we'll modify to update their name. Once they exit the flow, they're added to your account: 

Creating the New Contact

We've placed an Update the Contact action in the next flow, Create New Patient, which will update the new contacts' names with the values we collected in the previous flow (

Because this flow is connected to the previous flow through a Start Someone Else in a Flow action, we're able to call the flow variables collected by the previous flow by giving them the @parent prefix, e.g.

That's all there is to it. Once the new contact's default phone field (URN) is given a value, they're added to your account.