Leveraging SMS Messaging for Government Service Reform

In 2013, a handful of Code for America fellows presented the ambitious, compelling realities they're working to create for government services across the United States. The following article details a giant step in that direction, powered by industry-leading products Twilio, TextItFront and Slack.

This week, we’re eager to bring attention to one of many ground-breaking civic reform initiatives taking place around the United States, GetCalFresh, and the outstanding organization behind it, Code for America (CFA).

A Timely Approach 

CFA's overarching mission is to build a 21st century government, and they’re doing so by evangelizing an approach characteristic of some of the most successful, ubiquitous tech products and services available today: user-centered design. This is the first step in a proprietary process that includes such goodies as community engagement, iterative development, data-driven decision making, open government, team building, and informed procurement.

An Antiquated Program

The CalFresh program, federally known as the Supplemental Nutrition Assistance Program (SNAP), issues monthly electronic benefits that can be used to buy most foods at most markets and food stores. Its impact cannot be understated; it distributed $631,249,251 among 2,380,169 Californians (~80% of which are in families with children) in September 2015. It’s state economic impact in 2014 was $7.4 billion in the green, producing $1.74 of economic activity for every $1 issued. In addition, SNAP’s national error rate - comprising of an overpayment and underpayment rate - is lower than it’s been in 25 years. These stats represent a program on the rise, of great benefit to those participate, but they fail to address a monumental issue: after dogfooding the service, CFA found that obtaining food stamps is an arduous process weighted by poor design. In fact, 40% of people eligible for CalFresh aren’t receiving benefits (the second-worst participation rate in the country). You can view their annotated teardown of the CalWIN application portal here - it’s as educational and demonstrative as it is entertaining.

A Mobile Mission

CFA recognized that like most user-centric products today, GetCalFresh needed to be mobile. This is particularly important for those whose income is less than $30,000 per year, as they’re becoming increasingly reliant on smartphones as (1) their primary internet access touchpoint and (2) their primary method of communication.

After identifying the many pain points, they created a suite of tools to remedy them: 

(1) GetCalFresh.org, an easy to use mobile-friendly website that lets people apply for CalFresh in 10 minutes.  

(2) A Twilio/Front stack that allows CFA to track and send applications to CalFresh sourced from SMS interactions.

(3) A TextIt DRIP campaign that text messages CalFresh applicants:

  • 1 minute after application, confirming their application, letting them know what to expect, and providing a communication channel in case they have questions.

  • 10 days after application, asking if they’ve had an opportunity to complete the necessary steps.

  • 20 days after application, following up on their previous message and providing assistance if needed.

  • 25 days after application, asking if they’ve been approved, and soliciting a feedback call to fuel their next iteration.  

This approach meets applicants on the channel they prefer, mobile messaging, serving as both a user feedback pipeline and a measurement of the effectiveness of the application process they’ve designed.

The Utility of DRIP Communication

DRIP communication is a communication strategy that sends, or "drips," a pre-written set of messages to customers or prospects over time. Each of the following is true in a DRIP communication model:

(1) the timing of the messages follow a pre-determined course.

(2) the messages are dripped in a series applicable to a specific behavior or status of the recipient.

Building a DRIP Campaign with TextIt

Putting together a TextIt DRIP Campaign is a simple process comprising only two components: 

Create a Campaign 

A campaign requires a title as well as a contact group to send events to. Each campaign may only operate on one group; a new campaign is required for each group you'd like to interact with. 

Add Campaign Events

A campaign event represents an action that is performed at a time relative to a datetime value stored within a contact field (in the CFA's case, the date each applicant applied for CalFresh). As such, a campaign event must define the contact field it's relative to, the offset to that field (the amount of minutes, hours, days, weeks before or after the contact field value), as well as the action to perform (send a message or start a flow).

Code for America

Check out this video to learn more about the process behind GetCalFresh:

You can view Code for America’s areas of interest, and their corresponding projects, here.

Sign-up for a free account to apply TextIt to your cause. 

Engaging Low-Income Communities through SMS Polls

SMS-Sourced Feedback

An increasing number of organizations are turning to SMS as their preferred polling channel given its high engagement potential and low-touch nature. SMS is a particularly important channel for organizations who wish to engage low-income communities in the US, as 84% of adults with an income lower than $30,000 own a cell phone - 81% of which send and receive text messages (Pew Research Center).

Street Chat

A Great Nonprofits initiative, Citizen Insight’s Street Chat uses TextIt’s flow engine to build dynamic, automated, conversational surveys that engage low-income communities via SMS, providing actionable feedback for policy makers and nonprofits. Specifically, Street Chat seeks to give the underserved a voice, allowing change-makers to stay informed, identify trends, improve participation and ultimately improve social programs. This was the first social-media survey evaluating health insurance in California.

Affordable Care Act Case Study

Street Chat’s inaugural study, conducted earlier this year by Stanford’s Social Psychological Answers to Real-World Questions (SPARQ) program in conjunction with Great Nonprofit’s Citizen Insights initiative, gave voice to low-income people of color who are impacted by the Affordable Care Act. The chat-based mobile survey, designed using TextIt, was completed by 824 participants in metropolitan areas around Los Angeles, San Francisco and San Jose, who comprise 90% of those engaged.


Results from those with insurance:  

  • Access to care was not a barrier, with 86% of respondents saying it was "easy" or "very easy" to get an appointment

  • About 69% used their insurance to see a doctor

  • About three-fourths of respondents (77%) said insurance was affordable for them

  • 93% said their co-pay charge was affordable

  • 84% of respondents liked their provider

Results from those without insurance:

  • 57% tried and failed to get health insurance

  • Another 28% were still waiting to hear about their insurance status

  • Of those uninsured respondents who applied online, 63% reported failure

  • 87% of uninsured people who applied by phone reported failure 

The results indicate that those who have insurance are largely satisfied with its cost and quality, but also revealed that phone and online application touchpoints might require improvement. 


Nearly 100% of participants agreed to take future surveys, having the completed the survey within 2 hours of receiving the initial message.

Click here to learn about the study and get in touch with Citizen Insights.

Build Your Own

Click here to sign up for a free TextIt account to build and deploy your own chat-based mobile survey.

Introducing the TextIt Surveyor Mobile App

We're excited to announce that you can now use TextIt's Workflow Engine to collect data in areas where internet and cellular connections aren't reliable or even available.

Introducing Surveyor

Our Surveyor Android application is a rugged compliment to our web application, allowing you to author, field, and manage mobile chat-based data collection workflows anywhere in the world - all you need is an Android device and a charge. Specifically, it provides an out-of-box solution for users to:
  • Initiate polls or surveys that mimic the flow of live, chat-based communication.

  • Collect data on an Android device and send it to a TextIt account when a connection is available.

  • Aggregate the collected data on our servers and extract it for further analysis.

Have a Look

You can download Surveyor for free from the Google Play Store and link it to your TextIt account. Don't have one? Visit our website to create a free account. 

To create a Surveyor workflow, simply create a workflow as you normally would and then elect to run it over an Android phone: 

Note that your credits are applied to each message sent and received within Surveyor once you send your results to your account. 

If you have a question that isn't addressed in this post, you can get in touch with us at support@textit.in

Understanding the Mobile Communication Process

At its core, TextIt is a communication tool. It facilitates the creation and distribution of message-based workflows which you can send through a variety of channels. The importance of effective communication is immeasurable in any context, and it’s become a strong determinant of the success of a product or service in the digital age. Time and again we see that poor communication reduces quality, weakens a brand, and ultimately leads to a lack of trust, thus facilitating user detraction and plummeting completion rates. To that end, we recommend referencing this guide to the mobile communication process when designing your SMS service. 

The Communication Process

The communication process comprises the following components:

  • Sender - You: the person, group or entity that initiates a message. The sender is responsible for the success of the flow, as they directly influence the content thereof.

  • Receiver - Your contacts: the person, group or entity to whom the message is directed; also called the interpreter.

  • Message - Content that must be encoded by the sender and decoded by the receiver.

  • Channel - the medium through which a message is delivered. TextIt supports a variety of channels, including SMS, Voice, Twitter and Email.

  • Context - the situation and setting in which the flow will be sent and delivered.

  • Noise - factors that decrease the chances of successful communication but does not guarantee failure. The type of noise most applicable to mobile communication is semantic noise, which exists when the words that comprise the message are not understood, thus inhibiting the decoding process.

  • Feedback - responses from your contacts indicating whether a message has been received as in intended.

Step 1:  Encoding

The encoding process requires you to condense your objectives into a flow. Are you pushing content, collecting data, directing users to resources, or otherwise complimenting your product or service’s workflow? When designing your flows, it’s just as important to base your content on what you can gather about your contacts’ knowledge and assumptions as it is to consider what information you want your contacts to have.  

Step 2: Transmission

The transmission step requires that you select a channel. The context of the interaction you’re designing and the characteristics of your messages will determine the ideal channel for your service:

  • Is the information you’re conveying best presented in the form of an SMS message, Twitter DM, Email, phone call, or an SMS link?

  • Which channels do your intended audience use most often?

  • Is the content urgent?

  • Is immediate feedback necessary?

  • Is the content complicated, controversial or private?

  • Is your messaging intra or inter-organizational?

  • How literate is your average contact likely to be? What is the extent of your average contact's written communication skills?

Step 3: Decoding

Once you’ve selected the appropriate channel(s) and your messages have been sent to your receivers’ handsets, the decoding process begins. When the message is received and examined, your contacts interpret and assign meaning. The extent to which your contacts comprehend your flows will depend on their familiarity with the purpose of your flows upon receipt, and the extent and nature of the relationship between your organization and your contacts.

Step 4: Feedback

Feedback is a contact’s response - which allows you to evaluate the effectiveness of your flow(s). Are they responding to your flow as intended, or are they consistently responding with uncategorized responses. Are they responding at all? A lack of response qualifies as a response. Feedback provides an opportunity for you to take corrective action to edit a flow - it’s a litmus test of sorts for communication barriers.

Next Steps

In addition to this guide, you may find the following articles helpful in designing and testing your service:

The Importance of Pilot Testing

Improve the Effectiveness of your Flows with A/B Testing

Are your Flows User Friendly? Find out with Usability Testing

The Contact Analysis Checklist

Prior to constructing your flows, it’s a good idea to conduct a contact analysis to learn more about your intended audience. We’ve put together a checklist containing questions to help you analyze your contacts and ensure efficient and pleasant communication. This checklist can be applied at any point in the testing process.

The Checklist

  1. How many contacts do you anticipate will interact with your service ?

  2. What information do you have regarding the demographic makeup of your contacts (age, gender, education level, ethnicity), and how might you use that information to develop and shape your flows? Will it be necessary to build a multi-language flow?

  3. What personal and professional traits do you have in common with your contacts?

  4. Are there any cultural considerations that may influence how your contacts interact with your flows?

  5. Will you need to targeting certain contacts? If so, what is your criteria?

  6. With regard to your service, how much knowledge or expertise will your contacts possess?

  7. Will your contacts recognize and implicitly trust your credibility or ethos, or will you have to earn their trust by immediately demonstrating value?

  8. What preconceptions or biases regarding your service and/or channel might be held by some of your contacts?

  9. In general, will your contacts have a favorable, unfavorable, or neutral attitude toward the subject and/or nature of your service?

  10. What common misconceptions about the subject of your service will you need to correct during the course of your deployment?

  11. In general, will your contacts recognize the value of your service, or will you need to generate interest and demonstrate value?

  12. What expectations might your contacts have regarding the length of your flows?

  13. What expectations might your contacts have regarding content of your flows?

  14. To complete your flows, how much background information will your contacts need?

  15. What key questions might your contacts have about your service?

  16. Which tone or general attitude do you want to convey to your contacts - objective? authoritative? collaborative? supportive?

  17. What do you want your contacts to know or do as a result of interacting with your flows?

Feature Update - Simplified Expressions

Writing expressions in TextIt just got easier :)

In an effort to simplify the process of adding expressions to flows, we’ve changed the input method from = to @ and added a completion dialogue that lists and explains each function when @( is written in any window:  


Variable substitution remains the same, so @contact and @contact.name are unchanged. 

With these new changes, what was previously written as =UPPER(contact.name) or @contact.name|upper is now written @(UPPER(contact.name))

To escape the variable and function dialogue, simply add an additional @ to the text. For example, @@twitter will evaluate to @twitter when a message is sent. 

Refer to our function glossary for a list of functions you can add to your messages. 

We’re excited to get your feedback; share your thoughts with us at support@textit.in.

All the best,

The TextIt Team

Use TextIt to funnel your users to live support

While automation is useful in a variety of contexts, there may come a point in the interaction when it makes sense to add a human element - to link a user to a team member who can continue the conversation in real time. This would be an obvious win in a customer support context, but extends across any vertical to organizations that want to improve communication with a particular community.

Create an SMS-to-Support Pipeline

The key to this configuration is TextIt’s Send an SMS to somebody else action. You can place this action at any step in a flow, and use it to instantly direct contacts to team members who can respond via SMS, phone or email to continue the thread.

Create an Email-to-Support Pipeline

If your organization has multiple customers or manages multiple members, you’re probably using a customer relationship management platform (CRM). If you’re not, you should be. CRMs allow you to track and manage the people that interact with your product or service, and most offer the ability to link your organization’s email addresses to a feed that each team member can view. CRMs built for customer support, like UserVoice, present these emails as tickets that each team member can respond to and eliminate from the feed.

Another super simple way to connect a contacts’ inquiry with a team member is the Send an Email action. Simply create a flow that asks for a contact’s name, inquiry and preferred response method, and configure TextIt to send an email containing that info off to your support feed. Team members will be able to instantly access the ticket via your CRM and respond accordingly. Easy.


The variable @flow.name references the name of the contact if you collected it at a previous step, while @flow.inquiry and @flow.preferred_channel reference the contact’s inquiry and the way they’d like you to respond (SMS, Call, Email), respectively.

Tiered Support

Perhaps you’re an organization that tiers your support to accommodate low support capacity, or you want to screen a customer or community member before directing them to a team member. No problem. Decide on your requirements, then build a flow that only directs contacts to staff if they follow a certain path in your flow.

Create a Flow, Build a Stream

Support isn’t complicated, but it is vital to the success of an organization. Use TextIt to provide a convenient, mobile support channel, and respond with a human touch.

Learn how Bring uses TextIt to calculate its Net Promoter Score

Bring, a Norway Post brand, is one of the largest postal and logistics companies in Scandinavia. Bring uses TextIt to measure customer satisfaction after each delivery. Since signing up in March, they’ve collected SMS feedback from over 5,000 of their Express customers in Norway.  

Says Bring: “For us it’s important not only to think about the distribution of goods to the world, but also to make every customer satisfied, whether they’re small or big.” Bring employs a number of methods to measure customer satisfaction, SMS being the most convenient.

How it works

After each delivery, the package recipient receives a personalized SMS message from Bring that seeks to establish their Net Promoter Score, followed by a request for a reason (1 for delivery, 2 for driver behavior, 3 for condition of the goods, and 4 for service performed as promised”) and a comment to provide more insight into the customer’s rating. They then follow up with customers to learn more.

Net Promoter Score

Net Promoter Score is a customer loyalty metric that can be used to gauge the quality of a service's customer relationships. Proponents believe it’s a key indicator of growth. It’s calculated through responses to a single question:

How likely is it that you would recommend us to a friend or colleague?

Respondents are asked to rate the likelihood on a scale of 1 (extremely unlikely) to 10 (extremely likely).


Those who respond with a score of 9 or 10 are called Promoters. Promoters are likely to exhibit value-creating behaviors like purchasing more, purchasing again, remaining customers for longer, and making positive referrals to other potential customers.


Those who respond with a score of 7 or 8 are called Passives. Passives are satisfied but unenthusiastic customers who are likely vulnerable to competitive offerings.


Those who respond with a score of 6 or below are called Detractors. Detractors are are unhappy customers who can damage your brand and impede growth through negative word-of-mouth.

Calculating your score

The Net Promoter Score is obtained by subtracting the percentage of Detractors from the percentage of Promoters. A company’s score can range from a low of -100 (if every customer is aDetractor) to a high of 100 (if every customer is a Promoter).

Closing the loop

What good would this information be if it wasn’t actionable? Services who seek to learn their Net Promoter Score are encouraged to follow up with customers who’ve provided feedback to learn more, and attempt to change a Detractor into a Promoter.

TextIt makes this process easy, allowing you to send emails to your customer support team containing the names and contact information of Promoters, Passives and Detractors.

Sample survey

Use this sample survey to find your Net Promoter Score and assess brand loyalty:

In the example above, you'll note that TextIt's flow logic allows you to collect a customer's rating and a comment about your service, send this information to your customer support CRM via email, then direct them to a coupon located on your site in 3 messages. The conversation flows naturally, and no two conversations are the same. 

Here's an example of how that email might look: 

Use TextIt to find your Net Promoter Score

Bring recognizes the importance of establishing a convenient, direct line of communication with customers. What’s your Net Promoter Score? How do you compare to competitors? Do customers feel like you offer value and quality? Use TextIt answer these questions and more.

Click here to sign up for a free account, no credit card required. Got a question? Contact us at support@textit.in - you're guaranteed a quick response. 

Are your Flows user friendly? Find out with Usability Testing

Why conduct a usability test?

Now that you've chosen the perfect flow, you can conduct a usability test to make sure it’s provides a good experience for your contacts. Usability tests encourage you to focus on your contacts’ experience by assessing ease of use and learnability. This step is important - it allows you to make the best possible impression when you send out the final version of your flow. 

Usability test requirements

  1. A large group of test contacts representative of your target population.
  2. A clear and precise protocol for your test contacts to follow. This might include a pre-test questionnaire, the test itself, and a post-test questionnaire.
  3. A point of contact who is trained to offer instructions and answer questions. In your pilot test, the facilitator took a more hands-on approach. In your usability test, the facilitator will take a supporting role while your test contacts take the lead. 
  4. Observants who will track the behavior of the test contacts.

Elements of a usability test plan

Subjective metrics

Background questions. Ask these questions prior to the test.

Ease of use, comfort and satisfaction. Ask these questions after each task is completed.

Overall ease of use, comfort, and satisfaction. Ask when the test is completed.

Likes, dislikes and recommendations. Ask test contacts what they liked most about your service, what they liked least about your service, and if they have recommendations for improving it.

Continued use. The likelihood your test contacts will use your service when the test is completed.

Net promoter score. On a scale that ranges from extremely unlikely to extremely likely, measure the likelihood that your test contacts would recommend your service to (1) a family member (2) a friend and (3) a colleague.

Quantitative metrics

Flow completion. The flow is completed when a contact has successfully passed through each step - be it an action or split step.  

Critical errors. Critical errors result in your contacts being unable to finish a flow. For example, consistently responding with the wrong answer, an incorrectly formatted answer, an answer you haven’t accounted for, or an opt-out.

Non-critical errors. Non-critical errors are errors that the contact can recover from. The most common error you’ll experience is a response that is categorized as “other,” causing the contact to be redirected to a split step. These errors result in the flow being completed less efficiently. You’ll want to keep a tally of the amount of non-critical errors occur per contact, per contact per flow, per flow, and overall.

Error-free rate. The error-free rate is the percentage of contacts who complete the flow(s) without experiencing or committing any errors.

Time on task. The amount of time it takes the contact to complete the flow(s) - the time a flow was completed minus the time it was started. 

Test Results  

Construct an analysis of what you’ve observed. Isolate the flows that had the highest and lowest completion rates. If possible, include a summary of the completion rates by contact, step, and flow. Depending on the metrics you collected you may want to show the:

  • Number and percent of contacts who completed each flow or series of flows.

  • Average time taken to complete each flow or series of flows for those who completed them.

  • Ease of use, comfort, and satisfaction results.

  • Include your contacts’ comments if they are illustrative.

Findings and Recommendations

List your findings and recommendations using all your data. Each finding should have a basis in what occurred during the test.  You’ll want to sort findings and recommendations by flow. Finally, it’s important to keep in mind that identifying positives is equally as important as identifying negatives - what’s working well should be maintained moving forward.

Implement and Retest

For a usability test to have value, you’ll need to use what you’ve learned to improve your service. You may not be able to implement all recommendations or requests - developing anything is a series of trade-offs in which you balance a number of factors, such as budget, timeframe, and a handful of external factors.  If you can’t implement all the recommendations, assign priorities based on the most common and prevalent problems. As you prioritize, push to get the changes your contacts want.

The Importance of a Pilot Testing

Why conduct a pilot test? 

After testing your flows in the simulator, you’re ready to move to the second step in our recommended testing protocol: the pilot test. A pilot test, or "pilot," is your first trial run; a small-scale version of your larger project, and arguably the most important step in testing your SMS program. Your SMS program will be an automated system comprised of multiple components (contacts, phones, carriers, channels and flows). Moreover, it represents your organization - so it's best to test each one thoroughly.

A pilot allows you to:

  • Make sure messages are being delivered to each major carrier in your country.

  • Get a good sense of how long it will take your channel or carrier to deliver and receive messages.

  • Provide your team test-facilitation practice.

  • Evaluate the clarity of your questions and flow logic from the perspectives of your test contacts. Are they making sense to your test contacts?

  • Make last minute adjustments (carrier, connection method, flow structure/content, etc.)

  • Determine whether you’re ready to increase scale.

Pilot requirements

  • A group of 5-10 independent test contacts that represent your target population.

  • The current version(s) of your flow(s).

  • One or more pilot facilitators. This person will conduct the pre and post-pilot evaluations as well as the test itself.  

  • Observants. These people will observe the test contacts’ responses through the TextIt dashboard in addition to their overall behavior. See below.

During a pilot, it’s best to be present with your test contacts. If your flows are scheduled using a campaign, or you want to allow your contacts to respond asynchronously (throughout the day/week at their own leisure), you might compensate by communicating with them at the start or end of each day. Run the pilot 3-5 days prior to your usability test so that you have time to deal with any technical issues and/or make scenario/materials changes.

Things to look for:

  • Do the test contacts understand the objective of the flow/campaign?

  • Do the test contacts feel comfortable responding to your questions and/or performing your tasks?

  • Is the wording of your flow(s) clear?

  • Are your contacts being sorted into the right groups? Could you do a better job of sorting them?

  • Are you properly categorizing responses?

  • Are the answer choices compatible with the test contacts’ experiences?

  • Do any of the items require them to think too long or hard before responding? If so, which ones?

  • Do any steps produce irritation or confusion?

  • Which steps are receiving the most “other” responses?

  • Do the answers collected satisfy your objectives?

  • Are your flows too long?

  • According to your test contacts, has anything been overlooked?

Best practices

Remain neutral. If the participant asks a question, reply “What’s your best guess?”

Don’t lead your test contacts. If a test contact gives up, you’ll need to decide whether to provide a hint or end the test.

Focus your observations. Give productive and unproductive paths equal attention. Observants should focus on what the test contacts did in as much detail as possible as well as what they say (in their words). The more you can understand about your contacts’ SMS behavior, the more effective your SMS program will be.

Measure both performance and preference. People’s performance and preferences don’t always match. This is especially true with regard to their mobile phones. Often, users will perform poorly even though their subjective ratings are high. Conversely, they may perform well but give your program a poor subjective rating.

  • Qualitative metrics include: completion rate, time to completion, errors (“other” responses), opt-outs, etc.
  • Subjective metrics include: test contacts’ self-reported satisfaction and comfort ratings.

Evaluating a pilot

At the end of a pilot, you should be able to answer the following questions:

  1. Was the test group’s overall reaction positive or negative? The test group’s feedback can help confirm whether or not your program is a good fit for your population and whether minor changes to the program are appropriate and/or necessary.
  2. Are you allocating your time and resources properly? The pilot will help you determine whether you need to spend more time or resources on particular aspects of your program. For example, you might learn that changes to your method of engagement, flow length, or flow timing are necessary.
  3. Does your evaluation strategy need improvement? Look at this as an opportunity to test your evaluation method as well. Are there metrics you’d like to have that you aren’t collecting? The pilot will give your evaluation and implementation teams a chance to work together before increasing scale to troubleshoot any logistical issues that might arise with the distribution and collection of evaluation data.
  4. Are you ready to increase scale? A pilot can shed light on unforeseen challenges that might arise during a larger-scale implementation, and ensure your team is prepared to handle issues that might accompany an increase in scale. This question is largely dependent on the answers to the others.

Once your service is working as intended, you're ready to test the effectiveness of your flows with an A/B test