Transfer Airtime with TextIt

On over 400 mobile networks in more than 100 countries, TextIt users can now transfer airtime to help power their business operations, messaging services, community outreach initiatives, and mobile marketing campaigns. Using the popular airtime and mobile money transfer service TransferTo, you can use flows to send airtime to over 4.5 billion prepaid mobile users around the world.

Regulated by the Financial Conduct Authority in the UK, TransferTo is a B2B mobile payment network interconnecting financial institutions and mobile operators globally. Thousands of leading companies, including Vodafone’s M-Pesa, Tigo Money, Orange, Western Union, PayPal and Xoom rely on TransferTo’s Mobile Money and Airtime Hub.

Among the factors that led us to integrate with TransferTo are its reliability and ubiquity among top financial institutions and mobile operators. To date, its Money and Airtime Hub has processed more than 50 million transactions. 

Airtime Primer

Airtime is the time during which a cellular phone is in use, including calls made and received by extensions. It typically covers SMS and data usage. Airtime transfer is the process of remotely adding airtime to a prepaid mobile phone. Also called a Top-Up, Recharge, Reload, E-load, Fa, Nap, Kontor, or Refill.

Use Cases

  • If you use the Nyaruka TextIt Android app to send messages and receive messages with a prepaid SIM card, you can now add airtime directly from your TextIt account instead of physically purchasing airtime from a local vendor.
  • Your can now offer airtime as a reward for flow completion, as sending airtime to your respondents encourages participation, and reimbursement for the cost of sending SMS ensures they’ll participate in the future.

Getting Started

First, you'll need to open a denominational account with TransferTo. To do so, send a note through TransferTo's contact form including your company name, address and currency. You'll be assigned an account and account manager to help you navigate the service. 

Locating your API Token

Once you've acquired an account, navigate to the developer portal. 

Enable two factor authentication to access your API token, then copy it to your clipboard.

Connecting TransferTo to TextIt

Finally, navigate to your TextIt account’s home page, select the TransferTo icon at the bottom of the page, then paste your TransferTo API token and enter your TransferTo username.

How it Works

Once you’ve integrated your TransferTo account with TextIt, you’ll be able to send money in the currencies used in the countries for which your account has channels. To add airtime transfer to one of your flows, simply open the ‘RuleSet’ modal in the flow editor and select the ‘Transfer Airtime’ option. Then, select the amount of money you’d like the step to send.

Finally, add branches that account for successful and failed transfer attempts.

Troubleshooting Transfers

You can click the TransferTo icon on your account's home page to access your transfer logs. 

Get in Touch 

Question? Comments? Let us know. We love hearing from you!

Monitor your Twilio Channels with Email Alerts

We understand that error tracking is an important part of managing your Twilio-powered TextIt SMS application. To ensure that you're constantly abreast of channel errors–like the commonly-encountered blacklist error–we recommending setting up a trigger alert in your Twilio account portal. 

Once configured, a trigger alert can send you daily emails if one or more errors has occurred. Luckily, that process is easy: To set one up, simply log into your Twilio account, click on the 'Developer Center' icon and select 'Trigger Alerts' from the resulting menu. 

Here, you can create an alert that sends you daily, monthly or yearly alerts when 1 or more errors occur. Feel free to forward the email to our support channel once you've received it and we can walk you through the troubleshooting process. 

Get in Touch 

Question? Comments? Let us know. We love hearing from you!

TextIt, 3 Years Later

It’s been 3 years since we officially launched TextIt in Kigali, Rwanda. TextIt 1.0 was the culmination of 3 years’ work building custom SMS products for governments, NGOs and private companies across East Africa. Our goal was to enable every organization in the world to inexpensively leverage SMS to better accomplish their mission, and we introduced our solution in the form of a flow engine to manage automated messaging and the world's first Android phone channel–an application that turns your Android phone into an SMS modem that relays messages to an HTTP server and vice versa.

Since then, TextIt has grown to support research, polling and Bots through short codes, virtual phone numbers, Android phones, Facebook Messenger, Telegram, Twitter and, by the end of 2016, Viber and Kik.

A Commitment to Affordability and Transparency

Through it all, we’ve maintained a commitment to providing a universally accessible service–both financially and technically. We switched to a pay-as-you-go pricing model, and pre-loaded each new account with 1,000 complimentary credits to allow you to test your service before committing.

We didn't stop there: we open sourced TextIt in 2014 to improve its accessibility and facilitate UNICEF's adoption of the platform. UNICEF's investment didn't end at open sourcing the platform; with their cooperation we’ve continued to add features that make TextIt even more dynamic and powerful. When you decide to incorporate TextIt into your organization’s communication systems, you can do so knowing that the software isn’t going anywhere. It's supported by a robust, global community of developers and providers. What’s more, we make our work public, allowing you to view our roadmap and track our progress.

In addition to an open code base, we provide world-class hosting. We’ve scaled considerably over the past two years, going from millions of messages per month to millions per day. When you host with TextIt, performance isn’t a question.

Drip Messaging Campaigns

We introduced campaigns, a powerful feature that enables you to schedule messages and flows around a date and time unique to each of your contacts. It’s since been adopted for post-purchase messaging, maternal reminders, and a variety of treatment-adherence programs and studies.

Comprehensive API

We built out our API to enable you to integrate with and/or build on top of each of TextIt’s core features: flows, contacts, message broadcasts and campaigns. Now, anyone can plug TextIt into their existing systems with ease. 

White Labeling

We introduced white-labeling-as-a-service, enabling any organization to leverage our hosting expertise and adopt TextIt’s software with their own branding.

IP Messaging Channels

TextIt now supports three different IP based channels which are playing an ever greater role in programs around the world. We provide first class support for Twitter, Telegram and Facebook Messenger, letting you use all the same tools we initially built for text messaging to automate other messaging channels. These IP platforms also support receipt of rich content, enabling you to collect pictures, videos, audio clips and GPS coordinates. We have plans to add Viber and Kik by the end of the year, and we’re anxiously waiting for WhatsApp to release a Bot API.

Flow Engine Enhancements

We recently added the ability to use flows as subroutines, enabling you to launch a child flow to collect variables and then return control to the parent flow. This approach greatly simplifies complicated systems in that you can centralize particular pieces of functionality. For example, you can create one registration flow and call it from any other flow, removing the need to build registration into each flow.

We also added timers to RuleSets, allowing you to send reminder messages to flow participants after a certain amount of time has elapsed without a response, or add a 'pause' in a flow to stagger messages.

An Offline Surveyor Tool

Late last year we introduced our offline surveying tool, Surveyor. Think of it as ODK Collect with a chat interface and much quicker setup process. You can use the same authoring tools we initially created for SMS to build flows that can be run offline on any Android device, allowing enumerators to collect rich data such as pictures, video, GPS coordinates, etc. in branching questionnaires. Surveyor is currently being used at scale in Nigeria to survey health clinics.

Platform Roadmap

We’re always adding and updating features based on your feedback. In the coming weeks, we’ll be launching some big ones:

  • A first class integration with TransferTo to enable airtime and mobile money transfers around the world.

  • A first class Zapier integration, extending the functionality our private Zapier app, which will enable you to use events in Flows as triggers to over 500 other apps and, conversely, trigger Flow starts through triggers in other apps.

  • The ability to pause a flow for a brief period and/or route a flow differently if a certain amount of time has elapsed without a response.

  • Outgoing MMS support for Twilio, Android and IP messaging channels.

Sign up for a free account to take advantage of these developments. Each new account is given 1,000 complimentary messages to help you get a feel for the platform. You'll also gain access to our newsletter, which provides updates on our progress and links to the articles we're reading. 

Already a user? Send us a note about your experience with the platform. We love hearing from you. 

Feature Update: Add Timeouts, Pauses to Flows

We're happy to announce that we've added an option to set timers on 'Wait for Response' RuleSets. You can use this new feature to send reminder messages to flow participants after a period of inactivity, or create a 'pause' in a flow to stagger messages. If the contact hasn't responded in the amount of time you've chosen, they'll be routed through a 'No response' category. You can connect this category to a 'Send Message' action that encourages them to continue, or leave it unconnected to prompt an exit. 

For example, in the flow pictured above, when a contact hasn't responded in 6 hours they receive a followup message asking if they'd like to continue. If they don't respond to the followup message in 3 hours, they're exited from the flow. 

To add a timer, simply check 'Continue when there is no response' at the bottom of a 'Wait for Response' RuleSet, then select a time period. 

Staggering Messages 

In our first example, the introductory message is actually longer that 160 characters–the limit for all SMS. If an SMS contains more that 160 characters, it will be split into multiple messages by carriers and may arrive out of order. Using the timeout feature, you can also pause flows, ensuring that multi-message broadcasts are sent in order. For this use case, we recommend adding a 1-minute pause between 'Send Message' actions: 

Considerations

Note flows will expire inactive contacts after a set period of time. You'll need to make sure that time period is longer than those of your 'Wait for Response' RuleSets, otherwise a contact will be expired from the flow before a RuleSet timer reaches 0. Select 'Edit' from the gear icon menu in the flow editor to change a flow's expiration settings: 

Also note that RuleSet timeouts are now the preferred method for prodding contacts to respond, as messages sent via campaigns now exit contacts from flows. 

Question? Comments? Let us know. We love hearing from you!

Introducing Subflows

This week, we updated the flow engine to include subflows. This feature allows you to start the active contact in a 'child' flow at any step, then return them to the original 'parent' flow once they've completed it. It also removes the need to copy certain elements of one flow and add them to another. For example, you can now reuse a flow dedicated to registering a new contact by calling it from any other flow. Flow redundancy is a thing of the past!

Calling a Subflow

To call a subflow, add a RuleSet to any step in a flow, select 'Run a flow', then choose the flow you'd like the active contact to enter.

Two new conditions are introduced, 'completed' and 'expired', giving you the ability to branch the active contact based on their activity in the child flow. 

New Variables

This update introduces two new variables, '@parent' and '@child', and changes the meaning of '@extra'. Previously, @extra could be used to reference: 
  1. flow fields collected in the previous flow, if a contact is moved from one flow to another via the 'Start another flow' action. 
  2. the contact fields associated with the active contact in the previous flow, if a new contact is started in a flow via the 'Start someone else in a flow' action. 
  3. JSON objects returned by a 'Call Webhook' RuleSet. 

Now, @parent takes the place of @extra for scenarios 1 and 2, while @extra is solely dedicated to JSON objects. To call a flow field from the previous flow, use the format '@parent.{flow_field}'. To call a contact field associated with the active contact in the previous flow, use '@parent.contact.{contact_field}. 

@child can be placed in the parent flow to reference flow fields collected by the child flow up to the point the contact either finished the child flow or expired from it.

Try it Out

Import the following flows into your account via this page to play with a fully-baked subflow example. Note that imports are limited to those who've purchased credits. Haven't topped up? You can do so here

Questions? Comments? Let us know; we love hearing from you. 

Follow us on Twitter to interact with a Bot built with TextIt, or create a free account to build your own. Get in touch anytime with any questions, comments, or suggestions.

Creating a Drip Messaging Campaign

Use this guide to create your first campaign. Campaigns allow you to schedule drip-style messages and flows around a date & time field unique to each of your contacts. In this article, we'll show you how to create a campaign that sends a customer satisfaction flow 7 days after the contact's purchase. 

Creating a Campaign

To create our campaign, we'll need:

(1) contact group to which the campaign will send messages. A group can be created via the Contacts page using the 'Create Group' button in the bottom left corner. Alternatively, a group can be created within the 'Add contact to a group' flow action. 

(2) A date & time contact field. A contact field can be created via the Contacts page. Click the 'Manage Fields' button to add the field and set its value type: 

(3) A campaign. Campaigns can be created via the Campaigns page using the 'Create Campaign' button. 

Each campaign operates on a single contact group: 

(4)flow to be sent out over the duration of the campaign. In this case, we'll be sending the 'Sample Flow - Customer Satisfaction' present in all new TextIt accounts. 

(5) A campaign event to send our customer satisfaction flow. An event can be created via the 'Add Event' button present within your campaign. 

A campaign event requires a contact field containing a date & time value around which it can be scheduled. 

    Scheduling the Campaign

    Now that we have our contact field created, we need to initiate the campaign. We can accomplish this by starting the contact in a flow containing a purchase confirmation message, an 'Add contact to a group' action that places the contact in the campaign's group, and an 'Update the Contact' action that'll record the time the contact received the message. 

    The 'Update the Contact' action uses the '@date.now' variable to update the 'Registration Date' contact field with the date and time the contact receives the message. 

    Once the contact has been placed in the campaign's group and our event's contact field has been updated, the campaign becomes active. You click each event to view it's upcoming messages:

    What are you building your campaign for? How is it working for you? Let us know; we love hearing from you. 

    Follow us on Twitter to interact with a Bot built with TextIt, or create a free account to build your own. Get in touch anytime with any questions, comments, or suggestions.

    Feature Update: Set your Contacts' Preferred Channels within a Flow

    We're excited to announce the addition of the 'Set Preferred Channel' action, a feature made necessary by our growing list of channel integrations. 

    Default Channel-Matching Behavior

    TextIt previously only matched contacts with channels based on the following criteria:

    If you have multiple channels of the same type connected to your account, the channel that the contact last initiated contact with will be prioritized. Contacts can be locked-in to a relationship with a specific channel (they'll only received messages from this channel) under three conditions:

    1. You have multiple channels of the same type connected to your account.
    2. The contact's address type priority corresponds with the channel type (e.g. phone number) that possess multiple channels (e.g. multiple phone numbers).
    3. The contact initiates contact through an incoming message.
    If the contact has never interacted with a channel linked to your account, TextIt will prioritize the channel whose number has the largest prefix overlap. 

    For example, if your channels are +12505661212 and +2505551212, and you are sending an SMS to or calling +2505661231, TextIt will use the +2505661212 Channel because it overlaps the most.

    In most cases, TextIt is able to discern the carrier associated with a contact's phone number and prioritize channels based on carrier, though this depends on carrier behavior.

    Custom Channel-Matching

    Now, you can create your own channel-matching logic to either assign or switch a contact's preferred channel without waiting for an incoming message. This new action will allow you to do things like: 

    • switching between channels of the same type (e.g. phone numbers). 
    • switching between channels of different types, like phone numbers and Telegram bots. 
    • assigning Android channels based on contact fields, prefix overlap or group membership (to get around throughput restrictions).
    • switching between toll-free and standard virtual numbers. 
    • assigning a number based on a user’s number’s country code, area code, and more. 

    Considerations

    TextIt will match contacts with channels according to the above-mentioned criteria until a contact enters a flow containing a 'Set Preferred Channel' action. The contact will be permanently mapped to the selected channel until (a) they send a message to a different channel or (b) their preferred channel is changed by another 'Set Preferred Channel' action.

    Questions? Comments? Let us know; we love hearing from you. 

    Follow us on Twitter to interact with a chat bot built with TextIt, or create a free account to build your own. You'll be sending messages in minutes! Get in touch anytime with any questions, comments, or suggestions.

    Anonymizing your Contacts' Personally Identifiable Information

    We're fortunate to have a strong base of research-focused customers. While we work closely with each of our customers to update and add features, the academic community has been particularly influential in TextIt's development. In fact, TextIt's campaigns module is a result of our participation in an SMS-based clinic attendance and early infant HIV testing study. Along that vein, we'd like to make you aware of a feature that might benefit research studies and those whose use cases require contact information to be handled sensitively: contact information anonymization

    Anonymization replaces each contact's name with a random code and completely remove their address (their phone number, or an ID associated with their Facebook, Telegram or Twitter accounts):

    Note that 'None' is the default value displayed for empty custom contact fields. 

    When the anonymization feature is enabled, each new contact profile, whether imported into TextIt via a spreadsheet or generated when a new contact interacts with one of your channels, is anonymized. No user will be The contact's UUID, groups, language preference and custom fields will still be accessible. By the same token, exported contact and flow information will also be anonymized. 

    Note that this feature is permanent once an account has been anonymized.

    If this isn't sufficient, we're interested to learn how we might improve this feature to accommodate a broader range of use cases.

    Contact us to enable this feature or share your thoughts. 

    Build and Test Bots for Free with TextIt

    We understand that channel costs can be an obstacle for anyone looking to build and test chatbots and messaging applications with SMS and IVR functionality. That’s why we cover your first 1,000 messages with no financial obligation. Given so many options, you should be able to evaluate your bot at no cost. Whether you’re conducting a pilot or testing your application yourself, you can use this guide to send SMS with any channel for free.

    SMS Channels

    SMS channels deliver messages on behalf of your account. They include aggregators, the TextIt Android application and carriers themselves.

    When using the TextIt app, all you need is an Android phone with our app installed and a SIM card. If you have an unlimited texting plan, testing your bot with our app won't cost you anything extra. To add your phone as a channel, navigate to the channel claim page, select ‘Android Phone’, and follow the steps provided. By contrast, aggregators offer virtual numbers which connect to your app and send messages on its behalf. Twilio has a great trial service, and offers virtual numbers in the following countries:

    • Australia

    • Austria

    • Belgium

    • Brazil

    • Canada

    • Costa Rica

    • Croatia

    • Denmark

    • Estonia

    • Finland

    • France

    • Germany

    • Hong Kong

    • India

    • Indonesia

    • Ireland

    • Israel

    • Italy

    • Lithuania

    • Malaysia

    • Mexico

    • Nexmo

    • Norway

    • Philippines

    • Poland

    • Portugal

    • Russia

    • Singapore

    • Spain

    • Sweden

    • Switzerland

    • United Kingdom

    • United States

    Another option is an international number, which can be used to deliver messages in most countries. You can use this guide to enable international permissions for your Twilio account and try global messaging for free. 

    Getting Started with Twilio 

    1. When you sign up for a your free Twilio Trial, you’ll be asked to verify your personal phone number. This is an important security step that is mandatory to trying Twilio.

    2. Head here to add your first Twilio phone number.

    3. A new Twilio number will be generated with its capabilities (Voice, SMS, or MMS) displayed below it.

    4. If the number doesn’t have the capabilities you are looking for (some numbers do not have all three capabilities), you can click the 'Search for a different number' link to find a number that better suits your needs by the country or capabilities.

    Twilio_Console_-_Phone_Numbers_Getting_Started

    5. Be sure to verify any non-Twilio phone number before sending or receiving any SMS messages to/from it.

    Development Tips

    Use these tips to get the most out of your Twilio trial!

    Phone Numbers

    • Twilio allows one number per trial account. To get a different phone number than the one Twilio assigned you automatically, you need to release the current number you have on the numbers page first.

    • Phone numbers in Beta are made available to trial accounts. Check out this article on international numbers and their capabilities to find out which numbers are currently in Beta.

    • If you upgrade your account, your trial number will be carried over and charged monthly according to current Voice or SMS rates.

    • If your phone number is unused in your trial account for more than 30 days, Twilio will remove it. 

    SMS

    • You will be able to send SMS from your Twilio SMS-enabled number, but not from your verified personal number. This rule will also apply after the trial.

    • Alphanumeric Sender IDs cannot be used with trial accounts.

    • When you send an SMS from your free trial phone number, it will begin with “Sent from a Twilio Trial account”. This message will be removed once your account has been upgraded.

    • You may be eligible to use Global SMS on your trial account. Find out more here.

    Voice

    • Be sure to verify any non-Twilio phone number first by having Twilio place a verification call to it. This is an extra security measure that Twilio removes once you’re calling from an upgraded account.

    • There are a limited number of countries your Twilio account can make calls to. Upgraded accounts have the ability to enable permissions to call almost any country from your Twilio app.

    • Trial Accounts can only use either your account’s Twilio number, or a Verified Caller-ID, as the Caller-ID/From number when making outgoing calls.

    • Calls to and from your free trial phone number will play a short trial message before your TwiML runs.

    • Calls are limited to 10 minutes.

    Social Media

    Social media channels, which include Facebook MessengerTelegram and Twitter, are free!

    Zapier

    You can can use our Zapier app to integrate your bot with other services. Once you've clicked the invite link, you can use a trial Zapier account to setup your integrations. 

    Questions? Comments? Let us know; we love hearing from you. 

    Follow us on Twitter to interact with a chat bot built with TextIt, or create a free account to build your own. You'll be sending messages in minutes! Get in touch anytime with any questions, comments, or suggestions.

    Send SMS Anywhere in the World

    Did you know you can use TextIt to send SMS anywhere in the world? TextIt's channels module allows you to connect virtual numbers and short codes world wide to your account through services like Twilio, Nexmo, Plivo or the carriers themselves. A perfect example is a recent SMS campaign conducted by the United Methodist Church, which used a combination of channels to send over 80,000 text messages to over 3,300 contacts across 12 countries in 4 languages in just 3 weeks.

    Virtual Numbers

    Virtual numbers (VNs) connect to your app to send and receive SMS on its behalf. Aggregators are listed in the channel claim page in your TextIt account, where we make recommendations based on your location:

    In most cases, they can be purchased for $1-2 per month from TwilioNexmo, or Plivo, and connected to your TextIt account in seconds. All you need is an account with an aggregator; connecting your numbers is as simple as providing us your account Token and Secret. After that, your numbers will be displayed for use.

    Local VNs vs International VNs

    VNs can be either local or international, with local being the most common. Local VNs are sourced from a specific country and most performant there, while international numbers are capable of sending messages globally but may be less performant depending on the country you wish to send messages to. 

    Local VNs are currently available in the following countries (and more are being added every month!):

    • Australia
    • Austria
    • Belgium
    • Brazil
    • Canada
    • Costa Rica
    • Croatia
    • Denmark
    • Estonia
    • Finland
    • France
    • Germany
    • Hong Kong
    • India
    • Indonesia
    • Ireland
    • Israel
    • Italy
    • Lithuania
    • Malaysia
    • Mexico
    • Nexmo
    • Norway
    • Philippines
    • Poland
    • Portugal
    • Russia
    • Singapore
    • Spain
    • Sweden
    • Switzerland
    • United Kingdom
    • United States

    If your country isn’t on this list, but you know of a local aggregator that provides VNs and/or short codes, let us know. We’d be happy to add them for you.

    Android Relayer

    If you plan to send 1,000 or less messages per hour, the TextIt Android application is a convenient alternative to VNs and short codes. Simply download the app on your Android phone, connect it to your TextIt account, and start sending. Note that you can add as many relayers to your account as needed. You can learn more about Android relayers here, and use this guide to start sending.

    Short Codes

    Short codes are your best option if you expect to send a high volume of messages and aren’t able to locate a local aggregator in your region. Short codes can be acquired by carriers themselves, and you can use sites like OpenSignal to determine which has the most coverage. Once you’ve acquired your short code, we can connect it for you.

    Social Media

    If SMS isn’t ideal for your use case, you can use TextIt to reach anyone on Facebook Messenger, Telegram and Twitter.

    Considerations

    Note that each account operates within a single time zone, and that accounts with multiple international channels behave the same as others. International channels are first matched with contacts by country, then by number prefix. If sending via Twilio numbers, you can create a messaging service that adds additional logic to channel matching through your Twilio portal.

    Questions? Comments? Let us know; we love hearing from you. 

    Follow us on Twitter to interact with a chat bot built with TextIt, or create a free account to build your own. You'll be sending messages in minutes! Get in touch anytime with any questions, comments, or suggestions.