TextIt at USAID TechCamp Kenya

We had the honor of being one of the trainers for the TechCamp Kenya conference on September 9th and 10th in Nairobi. TechCamp's are organized by USAID and are incredibly neat because they are so hands on and relevant. Instead of picking a theme themselves, the organizers query the aid organizations in a particular area asking them what they want to hear about. From that they put together a list of topics and then seek out subject matter experts to help train and organize the participants.

This TechCamp was focused on health and we were lucky enough to be invited to train on SMS technologies. I say lucky because it is always inspiring to see the work others are doing, both in very large organizations and very very small ones. TechCamp's format means we were always working in small groups, really talking about the problems they faced and helping us better understand the needs and realities on the ground.

Perhaps the most rewarding part for us was seeing the reception to TextIt. Though we have large customers using TextIt now, it is great to see smaller organizations see the potential and talk about how they can use our low cost tool to help them achieve their goals. We also got to share our experiences in building other SMS systems in East Africa, both good and bad and generally just had a lot of fun meeting others in the ICT4D community.

If you a TechCamp comes to your part of the world, I would encourage you to attend. They are fantastically organized and they are a fantastic way to see how others are solving problems and share your own experience. We're already looking forward to the next one.

Ten Tips for Building Effective SMS Surveys

One of the most popular (and best) uses for TextIt is to build multiple question surveys. SMS Surveys have much higher completion rates than those done over email and are usually completed much faster as well. But while most people won't mind answering a few questions, there are a few simple things you can do to increase the odds of getting great response rates. Here are some tips to make your SMS surveys as effective as possible.

Introduce Yourself

Even if you have communicated to your users via SMS before, it is always good to remind them who you are in case they haven't saved you to their address book. As always, keep it short, just add your organization name to your greeting. Leading with something simple like "Hi from TextIt!" can go a long way.

Short Messages

Try to keep your questions clear and as short as possible. Though all handsets support messages as long as 160 letters, many do not display more than the first 50 or 60 without scrolling. Try your best to put your question in those first characters so your users know they are expected to respond and know to scroll down.

Limit your Questions

Along the same lines, don't get greedy with your survey, keep it to a manageable number of questions. Ideally try to keep your survey under five questions, though depending on the audience you may be able to ask up to ten effectively. You'll need to test this out yourself, but make an effort to think of what the critical indicators you want to collect are and stick to those. If you absolutely must ask more questions, then try to split them among multiple surveys asked over a longer period of time.

Personalize

Nobody wants to feel like they are talking with a robot, so do everything you can to make the survey feel personalized and fun. If you know the names of your users, use TextIt's variable substitution feature to include it in your greeting, after all, everybody likes hearing their name. Even if you don't, personalize how you pose questions based on previous answers. This will make your users feel like they are being listened to and help them stay motivated to complete you survey.

Enumerate Choices

Unless you are asking an open ended question, you should give your users some clues on how you want them to answer. If you are asking a Yes or No question, end your question with "Answer with Yes or No". This removes one point of friction for your users, they don't need to ponder what formats are supported and it also reduces the chance of them receiving an error because they answered with something unexpected. Of course, even if you provide great prompts you'll still want to support synonyms and provide helpful error messages.

Make it Free

If possible, make answering free to your end users. In most countries you can configure a SIM card to be reverse billed, that is, you would pay for the incoming response instead of your users. This is especially important in developing contexts where the cost of responses over a long survey can add up. Sometimes it is tricky finding the right person at a carrier to set this up properly, but it is almost always possible. Oh and once you have this set up don't forget to tell your users that responding is free!

Give a Reward

Can't make responding free? Then set up some kind of reward for your users. This can be something that has real monetary value, like a coupon you send them upon completion or can be something fun like a quote, joke or motivational message. Another idea is to enter anybody who completes your survey into a drawing to win something. Be creative, there are lots of different ways of motivating users!

Timing is Everything

Think about what your users are going to be doing when they receive your survey and use that to your advantage. If you send them a question while they are asleep or having dinner, they might not see it or forget about it entirely. The "right" time to send out a survey is different for every audience, but with a little thought your messages will hit them right when they are most receptive.

Respect

Treat your users with respect: allow them to opt out of future surveys and don't send surveys too often. This is especially important in more developed markets which have regulations about how you can contact your users. Follow the general guideline of only contacting users who you have a relationship with and respecting their wishes if they choose not to participate, TextIt makes it easy to manage groups in flows to do just that.

Experiment, Experiment, Experiment

Most importantly, keep experimenting!  Every audience and context is different, and your users' tastes may even change over time. Experiment and keep track of how many users finish your surveys and keep iterating based on those learnings. There is no catch all solution, but if you make an effort you'll have amazing response rates in no time.

Scheduled Flows and Video Learning Center

We pushed a few new things this week based on your feedback, including allowing you to start flows on set schedules (even repeat them!) and a new video learning center with short two minutes videos covering various aspects of flows.

Scheduled Flows

One request we got from a few people is whether you could trigger flows based on time, that is send a flow to a set of contacts every Monday at 6:00pm. And you know what? That's not just good idea, that's a great one, so we slaved away this week to bring it to fruition. Just visit the Triggers Tab and you can start triggering flows based on whatever schedule your heart desires.

This gives you a lot of power, you can now send out weekly questionnaires to a set of contacts automatically, say to do a longitudinal study of their satisfaction or the effect of your program over time. Or you could utilize schedules to gather stock levels at clinics without having to worry about your contacts remembering to send it.

New Videos

You probably thought that with my voice over skills I would have hung up the hat doing tutorial videos, but I just can't resist, so we put together a dozen really short videos covering basic (and not so basic) flow concepts to help you get started. If you want to see how to use some of the more advanced actions in flows, or if you are just feeling lonely, you can check them out in our new learning center

As always, get in touch at feedback@textit.in if you have any questions or suggestions.

Building a Software Company in Rwanda - 3 Years Later

We've talked to a lot of people in the past few weeks since TextIt has launched and virtually every conversation starts with the same question "What are you doing in Rwanda?". I remember getting the exact same question when we first started Nyaruka, so maybe it is time for an update.

Three years ago my business partner, Eric Newcomer, and I were still in Seattle. Our little game studio seemed to be winding down, we'd done well in the early days of smartphone apps, but after building a few dozen apps we were in the mood for something new. By random chance a friend of mine mentioned she was going to Rwanda for a project and that they could use some technical help, and having always wanted to visit Africa I jumped at the chance to tag along.

What I found in Rwanda surprised me. Far from the war torn canvas often pictured, it was beautiful and peaceful and in the midst of reinventing itself. Rwanda is a tiny country, completely landlocked by countries with poor infrastructure, so it is in a tough spot when it comes to exports. The biggest industries are tourism, tea and coffee and all of those were unlikely to continue to have significant growth, there just isn't enough space. So Rwanda has a dream of building an information based economy instead, the idea to export services and software instead of physical goods.

On my first visit this Vision 2020 plan as it is known, was about halfway through, the government having just completed laying fiber optic across the country and beefing up other critical infrastructure. The next decade was to focus on building the people side of the equation, improving education and the skills available. As I soon found out that was no small task, there just weren't many experienced developers in Rwanda, many of the professors teaching had never coded themselves and the software community was still tiny.

I spent those first two weeks in Rwanda learning what I could about the state of things, visiting universities and talking to local businesses and government officials. From those conversations an idea sprouted, that maybe my skills as a developer weren't completely useless to the developing world, that maybe just maybe we could start a company in Rwanda and see what we could give back.

So a few months later, in May 2010, Eric and I started Nyaruka with only a vague idea about what we would do, just betting that we would figure it out one way or another. It took a bit of time but Kigali is a small community, so after a few months we started getting some consulting gigs and from there our reputation grew enough for us to have a steady supply of work.

Most of that work has involved SMS in one way or another. We built systems to conduct live polls during radio shows in Uganda and Kenya, others to track the coffee harvest as it occurred and any number of health related projects, including birth registries, and building pre-natal reminder systems. Of course not every project has been a success, we've had a few end before they ever left the nest, sometimes the NGO world's funding and priorities can be a bit fickle like that.

We never ran a consultancy before, so we made some big mistakes early on. Not insisting on maintenance contracts was the biggest one there. You need to establish early on with your client that your time has value and just because you built them a system doesn't mean they get free maintenance and support forever more. But those were rookie mistakes having to do with our inexperience with consulting, nothing to do with Rwanda.

One of the best parts of working on so many projects is that we've had the opportunity to figure out what product we wanted to build ourselves. Through our consulting we found that the best uses of SMS were actually really simple, natural interactions, but nobody was making it easy to build those kinds of systems. TextIt was born out of that experience and in the end we found that we built a product in Rwanda who's addressable market isn't just NGOs working in Africa, but organizations large and small all over the world.

This surprises some, they point to the rise of WhatsApp and iOS messaging and say SMS is dead, and if we were talking about interactions between peers then I would tend to agree. But there is a huge and growing market in allowing organizations to better communicate with individuals, not with one way spam, but with conversations, conversations that provide information, measure opinion or provide self service. SMS is still the king here, everybody in the world with a phone number can be addressed by it, whether they are carrying the latest $700 iPhone or a $10 Nokia. TextIt makes those kind of interactions easy and natural, regardless of whether the end user is in the field in Africa or at the mall in San Francisco.

Of course wanting to write software that "did good" was only one of the reasons we undertook this adventure, perhaps even a corollary one. A big goal of ours was to help build capacity in software development here, to hire and train Rwandan engineers and grow the software community. We've done ok on that front as well. Though we had a few false starts, we now have two awesome engineers, Eugene and Norbert. The state of education when it comes to software still leaves a lot to be desired, but the talent is here, so with some investment in training they are both solid contributors and helping make TextIt better every single day.

Our other big success story is helping cofound the kLab, what you would call a co-working or hacker space, but what is more commonly called an "innovation space" here. Regardless of slogan, the concept is the same, that by bringing people together in the same space, working on similar problems, magic happens. Here in Rwanda spaces like the kLab are doubly important, because they help establish a little beachfront of software culture. We paid for the foosball table out of pocket because we wanted to bring out that little bit of culture, that software is more jeans and t-shirt than suit and tie, that it is a culture of doers and hacks and just making things work.

As to living in Kigali, well, that part is pretty awesome. Kigali is a beautiful city in an even more beautiful country. It is safe, clean and livable, the weather literally perfect day in and day out. And unlike some of the other regional capitals, corruption is virtually unheard of and most business processes, while sometimes slow, are predictable and by the book. The internet was pretty rough when we first got here but the real bandwidth has doubled every year and now rarely gets in the way. 

The city has grown up a lot over the years, we have an awesome movie theater, a bowling alley and even pretty great burritos. Part of that is more expats starting to settle here, part of it is just the city coming into its own, but it is growing by leaps and bounds. The biggest complaint you'll usually hear about Kigali is that it can be a bit boring at times, there isn't necessarily much to do, not much live music, not many interesting events. Well that and a lack of cheese options, you really start missing cheddar after a while, trust me, gouda can only take you so far.

So in short our little adventure has worked out ok, despite seeming a bit insane when we first started. I'd encourage anybody on the fence about moving abroad to just do it, to take the risk and get off the couch. Make a concerted effort to build up a little parachute of money, then just jump and see what happens, either way it will make for a great story. 

One cautionary footnote, if you decide to do it, do it with intention, commit to it. Having been here for a while now, I've seen many who make the move for a few months, maybe a year, but treat it as volunteer tourism. There is a place for that, but the bigger need is for those who come and want to build something of lasting value, a business or organization. Try to commit to a few years at least, try to work locally, try to get involved, because through that struggle you'll leave a lasting mark instead of only enriching yourself.

If you are ever in Rwanda, stop by the kLab and stay hi, we always love talking to visitors and answering questions.

Using the Simulator to test your SMS Application

 
A big part of building things is testing them out, and while you can always test SMS apps with your phone, it quickly grows tiring. That's why we built an awesome simulator for TextIt, one that lets you see exactly how things will work for your end user. Not only do we let you interact with a flow right from the same page you use to create it, we also show the simulator moving through the flow in the same way we show real users. This lets you see the path taken as you work through a flow, and of course any edits you make to the flow are immediately reflected when you send the next message.

If you haven't tried it out yet, just go to any flow page and click the little phone icon on the right side of the page, it will slide in and automatically start you down the flow.

Action Logs

As TextIt has become more powerful with the addition of group management, contact variables and email (among others!), we've updated the simulator to keep pace. When you trigger one of these advanced actions in a flow we insert a message to show what happened. If you are using an email action we'll still send you the email so you can make sure it contains the right information. This all ties back to us wanting to enable you to be agile in how you create your SMS applications. If testing is something that took forever and you hated doing, then you'd resist making changes, too scared to break something. Because the TextIt simulator is so easy and quick, you can continuously iterate, confident that everything is working as expected. 

We've been working on putting together similar short videos for other TextIt features. If you have any requests or questions, please send them our way to feedback@textit.in

Integrating TextIt with your Application Just got Easier

One thing we've been pleasantly surprised about is how many customers want to use TextIt to integrate SMS into their applications, essentially calling out to us to trigger a flow and having TextIt take care of all the interactions. After talking through a few different uses cases we're happy to show off some of our new integration points that enable these kinds of interactions.

Webhook Variable Injection

Though TextIt provides flexible ways of storing custom fields on contacts, sometimes you want to look up attributes from an external database, like an order number or patient id. That is now as easy as adding a webhook to your flow action or rule. When a user reaches a webhook in your flow we'll call the URL you configured, passing it the text of the message they sent as well as all the other variables collected. But the best part is that if you return JSON, we'll save those values for use later in the flow.

As an example, if you configure a webhook at the start of your flow that looks up an order, it could return the following JSON:


Then anywhere else in the flow you'll be able to reference the variables via the @extra variables, like @order.description.

Of course since your webhook is receiving all the information that has been collected in the flow, you can use webhooks to save information collected in the same way.

Flow Run API

Another big request was to be able to trigger flows via our API, our newly minted Flow Run API allows just that.  A run is what we call a single pass through a flow by a contact, by using our simple REST endpoint you can list and filter all the runs on your account and retrieve the steps and values collected by each contact who passed through the flow.

You can now also start Flows by making a POST to the same endpoint, optionally passing in a set of @extra variables to use during flow execution. For example, say you wanted to trigger a field worker to perform a survey on a particular water point, you could start a user down a flow with the needed attributes by making the following POST to https://textit.in/api/v1/runs:

We think this provides a really interesting model where TextIt can act as the "SMS Engine" for your application, dealing with tracking state, retries and error conditions while leaving you to focus on your core competencies.

Rules on Custom Variable

This one is less about APIs, but very much a developer feature: you can now create rules that split on a variable of your choice. Typically in TextIt you want to guide a user down a flow based on the text of their response, but we realized that with the addition of webhooks, there are cases where you want to define rules on a different variable instead.

To use our our earlier example of looking up an order id, we may want to route the flow based on @extra.status, so we can send the user back different messaging appropriately. You can now do that, just click on the 'different variable' link when defining your rules.

See them in Action

The easiest way to understand what is possible with the new APIs is to see them in action, so every account now has four sample flows, two of which include webhook calls and custom field rules.  Just visit the flows on your TextIt account and look for the Order Status and Customer Satisfaction Survey flows.

As always, if you have any questions about what is possible, or suggestions on how to make things easier, let us know!  

Why we think TextIt sets the new standard for SMS

We launched TextIt last week and the response has been overwhelmingly positive, people are just giddy with how easily they can build systems that were previously impossible. But not all feedback has been positive, some say that maybe the world doesn't need another solution, that what exists is good enough and people should just use those solutions instead.

It is certainly true that the ICT4D space is filled with hype, filled with solutions built simply for the sake of being built. But I think we can make a strong case that TextIt not only provides a brand new solution, but also a brand new approach.

Before we get into it, I do want to stress that we have a huge amount of respect for what others like FrontlineSMS have done before us. They set the stage, proved what was possible and were pioneers in the space. But we think they've sat on their laurels a bit, become a bit complacent, failing to improve and adapt as conditions have evolved.

Deployment

How an SMS application is deployed is paradoxically both the hardest and least important aspect to its success. In most developing countries, like Rwanda where TextIt was born, it is both expensive and time consuming to connect straight to the carrier in order to send and receive SMS messages. FrontlineSMS solved this years ago by building on top of simple phones which you plug into a laptop running their software.  As messages come in, the laptop processes them and sends back the appropriate response.

That's a workable solution, but it does have some drawbacks. Most importantly, your Frontline deployment is really only available to those in your office, you have to sit down in front of the laptop to send messages or see responses. That means coworkers in different offices can't use the system themselves and it makes sharing results and learnings harder than it should be.

TextIt takes a different approach, instead of having you host the software on a laptop in your office, we host it for you in the cloud. Instead of a modem, we use an inexpensive Android phone and have you install our TextIt application on it. From that point forward, SMS messages on the Android phone will be synchronized with the cloud. It is an incredibly easy system to set up and has proven to be reliable in even the most challenging environments.

But really the biggest advantage to TextIt being cloud-based is how quickly it can continue improving. Just like Gmail gets constant updates and bug fixes, so does TextIt. We add new features and make improvements on a daily basis, all without our users having to do anything.  And all the while we get to learn from them, seeing how we can improve further. That simple difference of having TextIt be hosted and improving daily is what enables it to be so much better.

Flows

There are two main camps current SMS platforms fall in, those that are geared at end users but have limited functionality, and those aimed at developers but which have steep learning curves. Flows give you the best of both worlds, incredible flexibility and power, while remaining simple to understand.

Flows represent a completely different approach to building SMS applications. Virtually every system built today is stateless, each incoming SMS message is dealt with independently from previous ones, without any context of what came before. As someone who programs, I can tell you why, keeping state is really hard to do right.  But the thing is, your users understand state, they remember the conversation, they know their message history, so why force them to interact with you differently than they are used to?

TextIt changes that. A flow lets you leverage SMS in the most natural way possible, as a conversation where you know what the user said before, adapting as necessary. That makes a big difference because suddenly you can build complex systems which require no user training, just like any conversation.

The incredible thing is, flows not only give you this inherit ease of use for your end users, they also give you far more power than you had before. You don't need to understand what "skip logic" is when building a complex survey, you just drag a few arrows around and you've done it, no PHD required. With custom actions like sending emails, forwarding messages and adding contact variables you have the ability to build incredibly powerful workflows, all through the same simple interface.

TextIt adapts to you, gives you the power to build the interaction that best suits your needs, to be creative, to innovate, test, refine and repeat until you've built the best solution possible.

Obsessed about User Experience

Hopefully it shows when you use TextIt, but we are obsessed about having an unmatched user experience. That's no small commitment, it requires a lot of time and effort to constantly be posing to ourselves "is this the best way?" and making the hard decision to change course and do something better. As an example, look at how we display results as they pass through flows. Instead of showing a list of every message that has come in, leaving you to guess how the system responded, we show the messages in the exact same view you use to build the flow. Building interfaces like that isn't easy, it requires a lot of experimentation and more than few false starts, but we think the results are worth it.

That's why being a hosted cloud solution is so important to us, because we can't stand the thought of not being able to make things better for our users every single day.

That kind of polish isn't just for looks, it makes TextIt more accessible to the users we want the most: small and medium sized organizations that aren't reaping the benefits of using SMS in their programs. Anybody can start building sophisticated interactions in a few minutes and start sending messages a few minutes later.

Built with Heart

TextIt comes from our experience of living and working in Rwanda, of building a team here and of wanting to build something that really makes a difference, that raises the bar for what software in the development sector can look like. We may succeed in making a dent, or we may fail completely, but hopefully we do our part in showing what is possible, in making people reconsider the status quo a bit. 

We'd love to hear your thoughts, give TextIt a try and let us know what you think.

Introducing TextIt

Today we're excited to launch TextIt, our new product to help organizations leverage SMS. We've been building custom SMS products for three years in East Africa, and TextIt takes everything we've learned and puts it into an intuitive and powerful package. Our goal with TextIt is to enable every organization in the world to inexpensively use SMS to better accomplish their mission.

At the core of TextIt lies what we call Flows, which you can think of as interactive flowcharts. They are simple to build and understand, for example here's the start of a flow used to register new customers of water filters:

Traditionally, most SMS systems have been built around having users send in very structured messages, in very specific formats. We ourselves have built many such systems, and while they have their place, they require significant training for the users. TextIt takes a different approach, Flows let your users use SMS in a way that is natural to them, as a conversation. Handling unexpected input is much simpler, you simply create friendly error messages when the user makes a mistake. In this example we make sure the user enters either Yes or No before moving onwards:

Another advantage of Flows is you can tailor your messaging based on each response.  So here, we might want to further educate customers who are not boiling their water, which we can do by splitting on their response:

Not only does TextIt record all the steps that a user takes through a Flow, but it also lets you take other actions at any point in a flow.  For example, we might choose to add a user to a Customers group when they are complete and send an email for each new registration. That is just a few clicks in TextIt:

It is hard to overstate just how flexible and powerful this approach is. Because TextIt takes care of tracking the state of each user, you can very simply create sophisticated interactions, interactions that feel natural to the user, both personalized and responsive. That's why we are so excited about TextIt, we think with the power it provides people are going to build some amazing things.

This was just a quick overview of Flows, but it only scratches the surface of what TextIt can do. From custom fields on contacts, to triggering flows off of keywords, to launching in any country with our Android client, there is a lot more to cover.  But before we get to talk about those the best way to discover how it might fit your needs is to give it a try.

It is free to sign up for a TextIt account, give it a spin and let us know what you think.  We work every day to make it a little bit easier, a little bit more powerful, and a little bit better for you, we hope you love it as much as we do.