tag:blog.textit.in,2013:/posts TextIt Blog 2017-01-18T23:51:14Z TextIt tag:blog.textit.in,2013:Post/1124217 2017-01-18T23:06:00Z 2017-01-18T23:51:14Z Key Mobile Messaging Insights for a Successful 2017

(image source: Dimoco

2016 was a great year for mobile messaging: messaging app usership skyrocketed, smartphone ownership continued to increase around the world thanks to low-cost Android, and chatbots burst onto the scene when Facebook announced Messenger’s bot platform.

In the spirit of reflection, we’d like to share Twilio’s 2016 global mobile messaging consumer report. It's full of great insights even if you don't use Twilio. For those who aren’t familiar, Twilio is by far our most popular integration. It enables organizations around the world to create and deploy SMS or IVR bots in minutes. 

Some key takeaways: 

  • 89% of global consumers want to use messaging to communicate with businesses.
  • The average consumer has 3 messaging apps on their phone’s home screen, uses 3 different messaging apps per week, and sends 3 messages per hour. 
  • 47% of consumers prefer to communicate with businesses via SMS vs. FB Messenger, Whatsapp, Line, Snapchat and others. 
  • More than 8 out of 10 (85%) of consumers not only want to be able to receive information but also reply to businesses or engage in a conversation.
  • Most customers enable notifications for messaging apps (86% in US, 82% in Europe and 77% in Asia, respectively). 

Here’s a link to the full report: 

https://goo.gl/nopogB 

Questions? Comments? Let us know! ⌨  Your feedback is important to us. 

]]>
Kellan Alexander
tag:blog.textit.in,2013:Post/1120536 2017-01-11T00:47:29Z 2017-01-16T11:39:41Z Introducing the New Flow Results Dashboard

We recently updated the flow results page to display both high and low level information about a particular flow’s performance. 

High-level information is displayed in the top half of the page, as illustrated by the image above. The first graph displays message frequency by day, while the second displays frequency by time. You can use these graphs to evaluate your flow’s performance or plan future broadcasts. 

Beautiful Data

The pie chart on the right of the page displays both the number and percentage of participants who’ve entered and either completed the flow or exited from it, as well as those who exited before completing it. 

Finally, we included a histogram which displays the total number of messages sent and received by date and time throughout your flow's lifespan. 

Getting Granular

The bottom half of the page lists each run. Here, you can view either the value collected by each RuleSet or the full text of the contact’s response at that particular step. Just click the flow icon to toggle between the two values. Additionally, you can add as many columns as you’d like from the 'Add Column' dropdown. 

Exporting Results

Click the ‘Download’ button in the top right corner of the page to export these results to a spreadsheet. You can include up to 10 contact fields, and choose to limit results to only those who responded or each contact’s most recent run. 

Considerations

Charts will only display for flows with 200 or more responses. The histogram pops up after 1,000.

Questions? Comments? Let us know

]]>
Kellan Alexander
tag:blog.textit.in,2013:Post/1114239 2016-12-12T20:09:42Z 2016-12-13T18:46:13Z Lessons on SMS Survey Design: A Factorial Experiment on SMS Survey Participation using TextIt

Laterite, a Rwanda and Ethiopia-based research and advisory firm, recently used TextIt to implement an SMS survey with agricultural cooperatives in Rwanda. This survey was unique in that it was also used to measure the impact of survey delivery on participation rates. We spoke with Josep Casas and Mallory Baxter of Laterite's research team to learn more about their findings.

Laterite

Laterite provides data collection and econometric analysis services to government agencies and ministries, international NGOs, think thanks, academic institutions, and development organizations. They conduct the vast majority of their work in countries in which they have an established presence in order to build a strong understanding of the local context.

conTEXT

Using TextIt, Laterite has developed an SMS-surveying solution called conTEXT that is operational on all of Rwanda’s telco networks. It allows the company to send reverse-billed SMS surveys (i.e. at no cost to respondents) as well as airtime incentives on completion of those surveys.

The Experiment

Using conTEXT, Laterite recently conducted an SMS-based survey with members of agricultural cooperatives in Rwanda. They were hired by SPARK International to assess its Cooperative Support Programme (CSP), which targets agricultural cooperatives and SMEs operating in bean, Irish potato, maize and horticulture value chains with an aim to increase food security and stability by accelerating agri-business development, promoting rural economic growth and generating jobs in Rwanda's agricultural sector. The project's budget for interviews was limited, so Laterite and Spark decided to use conTEXT to collect complementary data from cooperative members.

This was the first SMS survey Laterite had carried out in Rwanda, so they wanted to use it to determine the best way to deliver future surveys. The key question was: can small tweaks to SMS survey delivery increase participation, and if so, which? Laterite's research team designed a factorial experiment to explore this question. They tested five factors they thought might impact cooperative members' willingness to participate:

  • Introduction Type: The majority of cooperative members (85%) were introduced to the survey via a phone call while others were introduced to the survey directly via SMS (15%). The call was scripted and focused on potential questions participants might have regarding the content and purpose of the survey.
  • Time of DayHalf of the cooperative members received their surveys in the morning (10 AM) while others received them in the afternoon (4 PM).
  • Personalization: Half of the cooperative members received messages that were personalized (addressed them by name in the introduction using TextIt’s substitution variables) while others received generic messages.

  • Financial Incentive: Half of the cooperative members were informed before the survey that they would receive an incentive of RWF 100 in airtime for completing the survey and received this incentive on survey completion. The other group did not receive any reward.
  • Survey Expiration: Half of the cooperative members were made aware of the fact that the survey would expire after 1 week (as flows can be configured to expire after a period of inactivity) while others were not.

Laterite tested the impact of the phone introduction by randomly allocating 15% of the sample to the SMS Intro group and the rest to the Phone Intro group. Individuals in the phone intro group were called by the enumerator team before the TextIt flow was initiated. Once consent had been obtained following the initial introduction, Laterite implemented a factorial experiment with the remaining factors.

In a factorial experiment, an intervention is broken down into factors and levels, e.g. the factor representing time of day has two levels: morning and afternoon.  In this experiment, Laterite was testing 4 strategies–each with 2 levels–resulting in 16 (2^4) possible experimental conditions. This means that they had to deliver the survey in 16 unique ways. Using a series of “Split by Contact Field” RuleSets, Laterite could create different routes inside the TextIt flow so that each candidate received the messages corresponding with their own combination of factors.

While analysis is on-going, preliminary results suggest that pre-survey phone calls and message personalization had the largest impact on increasing participation rates. Interestingly, financial incentives appear to have had no effect.

Preliminary Results

Introducing the survey via phone call instead of SMS increased the participation rate by 18% while message personalization led to an increase of 8%. Other factors weren't statistically significant. 

Figure 1. The effect of each of the factor on participation rates.

DesktopTextIt20BlogPicture2png

*Green factors were statistically significant while red factors were not

Laterite also tracked the number of errors that occurred for each type of question, allowing them to identify which questions work best. In this case, 'error' is defined as an invalid response as determined by the response rules present in each RuleSet. For example, Laterite included a question that asked participants to reply with their gender and age separated by a plus sign delimiter (e.g. "female+30"). They found that 37% of respondents could not answer the question correctly on the first try while 10% raised an error at least 3 times. Message form questions–as these are called–are unique in that they enable you to collect multiple values in a single message, reducing the number of questions required. To ensure message form error rates are low, you'll want solicit feedback from your contacts and test other value combinations and delimiters (spaces and periods) to determine what works best in your project's context. 

Moving Forward

Laterite’s research team is currently working to understand the links between these factors, survey completion, and attrition between survey rounds. Among their questions is whether a single phone introduction has a lasting effect on participation rates. Laterite is also looking to replicate this experimental design in other contexts to build a body of evidence around the optimal delivery of SMS surveys. 

Questions? Comments? Let us know! Questions for Laterite can be directed to Josep or Mallory, linked above, or its website

]]>
Kellan Alexander
tag:blog.textit.in,2013:Post/1111188 2016-11-27T18:29:43Z 2016-11-27T18:30:03Z v2: Introducing TextIt's new API

API v1 is now deprecated and will be removed on March 1st 2017

A new version of the TextIt API is now available. The purpose of this release is to ensure our operations are performant at scale. TextIt needs an API that is always fast.

We also cleaned it up, providing an interface that's now more consistent across different endpoints. We even put some thought into ensuring this version will be future-proof. 

Changes to look out for...

If you're migrating code that uses our API, be sure to reference the API v2 documentation. Below are the general changes to look out for:

  • All operations which list objects use cursor pagination rather than the typical Django page=1,... etc pagination. This means we do not return a total count value for result sets. Count values tend to be expensive to calculate on very large datasets so this was not sustainable as databases grow.
  • Filtering options are limited to single values. For example, in v1 you could fetch runs like runs.json?id=1131241,436364,464363... but now the 'id' parameter can only contain a single value. If you find yourself needing to fetching lots of objects repeatedly, then it may be better to restructure your code so that you fetch all objects of that type as they are created or modified.
  • When updating objects, the identifier is sent as a query string parameter rather than a field in the JSON body. This is more RESTful and makes POSTs more consistent with GETs and DELETEs, e.g. changing a contact's name:

    POST contacts.json
    {
      "uuid": "1c904f04-af6f-4f2b-89e1-9ebf0c5aef73",
      "name": "Bob"
    }


    Becomes...

    POST contacts.json?uuid=1c904f04-af6f-4f2b-89e1-9ebf0c5aef73
    {
      "name": "Bob"
    }
  • Status code usage is more consistent. In v1, the status code 201 was used for both successful create operations and update operations. Trying to update a non-existent object returned 400 but trying to delete the same object returned 404. In v2, the rules for status codes are more explicit:
    • 200: A list or update request was successful.
    • 201: A resource was successfully created (only returned for POST requests).
    • 204: An empty response - used for both successful DELETE requests and POST requests that update multiple resources.
    • 400: The request failed due to invalid parameters. Do not retry with the same values, and the body of the response will contain details.
    • 403: You do not have permission to access this resource.
    • 404: The resource was not found (returned by POST and DELETE methods).
  • Objects are referenced in more consistent ways:
    • messages, runs and broadcasts are always referenced by their id value.
    • contact fields by their key.
    • groups and labels by name or UUID.
    • everything else is referenced by its UUID.
  • Datetime values are always returned with microsecond accuracy (v1 used only millisecond accuracy).
  • Phone numbers must now always include country codes, i.e. we won't accept a URN like "tel:0964153001" but we will accept "tel:+260964153001". 
  • The message bulk action endpoint is limited to 100 messages, so if you need to update more messages than that, make sure you batch your requests.
  • Some vocabulary has been removed. In v1 messages could sometimes be sms and channels could be relayers. In v2 it's always messages and channels.
  • All endpoints are rate-limited. If you're making lots of requests then expect to get some 429 responses. These will include a Retry-After header which provides a number of seconds to wait before retrying.

API Explorer

You can use the API Explorer to test these new operations against your account's data. 



If you have any questions about migrating to v2, don't hesitate to ping us here.

]]>
Kellan Alexander
tag:blog.textit.in,2013:Post/1104425 2016-11-11T14:44:38Z 2016-12-15T20:10:34Z Automatically Add Flow Responses to Google Sheets with Google Apps Script

If you're using TextIt, you're likely interested in analyzing the results of each interaction your contacts have with your messaging bot. You probably also want to streamline the process of viewing and analyzing them. You can do so by sending the results of each flow run to a Google Sheet as your contacts finish them. There, you can visualize your data as it's being updated and even build a custom dashboard.

It's possible to set this up with a service called Zapier, but you can also use Google's powerful, built-in, JavaScript-based scripting language Apps Script. In this tutorial, you'll learn how to use Apps Script to add the results of a run down the 'Satisfaction Survey' sample flow to a Google Sheet. Feel free to follow along with the copy in your account, 'Sample Flow - Satisfaction Survey'.

Prerequisites 

  • TextIt account
  • Google account 

Let's Begin

Our goal: To send flow responses to a Google Sheet.

This messages in this flow run will be sent to a Google Sheet. A new row will be created for each run. 

Create your Spreadsheet

First, we’ll create a new spreadsheet and set up the rows that will hold our data. To make these columns easier to interact with, we’re going to make use of Named Ranges. This allows us to give each column a name that we can reference in our script. To name a range, double-click the column, then select 'Define named range...'. Give it a one-word name. It's vital that all rows are selected, e.g. 'Sheet1!B:B'. 

Go ahead and name all 7 of your new columns.

Create a Script

Now we'll start scripting. From the Tools menu, select Script Editor. Give your script a name. 

Erase the existing code in the editor and add the following code: 

Let’s look at the first 3 lines of code:

  • Line 1: we create a doPost() function so that our script can receive flow results via POST requests. These POST requests will be made when the active contact reaches a Call Webhook RuleSet. This function, unique to Apps Script web apps, will process any new POST request from our flow once we’ve deployed our script as a web app.
  • Line 2: we're gaining access to our spreadsheet file. Google Apps Script differentiates between a spreadsheet and a sheet (a spreadsheet is a file that may have one or more sheets–or worksheets or tabs). We can gain access to the entire sheet by referencing its ID (the long string of characters in the spreadsheet’s URL after '/d/'). Replace the placeholder in the code with your spreadsheet ID.
  • Line 3: the request object will contain the entire payload of the incoming POST request. We're assigning it to a variable in order to conveniently access its parameters.

Publish your Script

Select Deploy as Web App from the Publish menu in the script editor, then choose the following options:

  • Execute the app as: Me
  • Who has access to the app: Anyone, even anonymous

Click Deploy, then copy the address of the Current web app URL to your clipboard. You’ll need that for your webhook. Congradulations, you've just published a web app!

Add a Webhook to your Flow

Add a 'Call Webhook' RuleSet to the end of your 'Satisfaction Survey' flow. Select POST and paste the URL provided in the previous step: 

Before you click Ok, make sure to add a query string to the end of the URL to include the flow variables that represent the responses your flow has collected. Not familiar with flow variables? Learn about them here.

Here's mine: 

https://script.google.com/macros/s/AKfycby-lk-z7dOqUHBdBJx5ciJxanpiqcQeLBB-vNTbZOzTTVDd9OM/exec?date=@date.now&number=@contact.tel_e164&returning=@flow.shop_again&recommend=@flow.recommend&suggestion=@flow.suggestion&gender=@flow.gender&age=@flow.age

The query string represents everything from the '?' to the end of the URL. It allows you to create parameters to be sent to your web app. We're simply adding flow fields to the URL so that TextIt knows to send them to our web app and the Google Sheet knows to add them to its columns. The names you give these values should be one word and describe them accurately as you'll be referencing them in your script. 

Finish your Script

First, we'll need to add a function that crawls the rows in each column. The nextRow() function will do just that. Copy this code, replacing the parameter in SpreadsheetApp.openById() with the ID after the /d/ in your Google Sheet's URL. I've highlighted its location below:

https://docs.google.com/spreadsheets/d/<sheet_id>/edit#gid=0

The final step is to map the incoming data–represented by TextIt variables–to the columns in the your Google Sheet. Copy the code below (starting from the comment '// Isolate flow field values...') and replace the parameter and column names in the code above. For example, consider these two separate but related lines:

var date = request.parameters.date;

sheets.getRangeByName('date').getCell(nextRow, 1).setValue(date);

In this case, date in request.parameters.date and .getCell(nextRow, 1).setValue(date) should be changed to the name you gave your date flow field (if other than @flow.date), and 'date' in  sheets.getRangeByName('date') should be changed to the name you gave your date column in your Google Sheet (if other than 'date').

Test your Service

Nice job, you're ready to test your web app with the simulator. Complete your flow and watch your responses appear in your Google Sheet

Questions? Comments? Let us know. We love hearing from you.

]]>
Kellan Alexander
tag:blog.textit.in,2013:Post/1093980 2016-10-15T00:02:04Z 2016-10-18T16:01:21Z Add Features to your Chatbot with Webhooks

webhook is a handy tool that you can use to transfer information into and out of a web app through simple HTTP requests containing data in a structured format (JSON, in TextIt's case). Better yet, you don't need to have extensive coding experience to make use of them. 

In TextIt, we make webhooks available to you through the Call Webhook RuleSet, which sends the phone number of the active contact, their state in the flow, and the flow's name to the URL you specify. See the Flow Event webhook documentation for a full list of the values included in that request. This RuleSet can be used to send information to other service's APIs, like Zapier (see this guide to get started with the TextIt Zapier app), Google Maps, Google Sheets, and really any other service that provides a JSON API. Use this guide to learn how to add functionality to your bot by making use of other services' APIs. It only takes a few clicks. 

Whereas TextIt's 'Wait for Response' RuleSet allows you to evaluate incoming responses according to various response rules, the 'Call Webhook' RuleSet allows you to send responses to an external service and either evaluate or reply with that service's response. For example, you can use a 'Call Webhook' RuleSet to POST a message to the Google Translate API, then reply with the translated message using a 'Send Message' action that contains a variable–starting with the '@extra' prefix*–that matches the translated message's key in the returned JSON object. 

*As the image above demonstrates, you can access keys stashed in arrays (between '{[' and ']}') by placing '.0.' in front of the key. 

See for Yourself

Search the following bots on Telegram to interact with flows that make use of other services' APIs: 

Oxford Wordsly, a bot that tests your English and Spanish vocabulary using a collection of APIs. 

Purrington, a bot that provides cat facts. 

Bandito, a bot that provides Spanish translations.

Using Webhooks

To get started, you'll need an API, a key to access it, and a sample request from that API's documentation. In the example below, we'll be using Google's geocoding API to verify addresses submitted by our contacts. Instructions for acquiring a key are usually front and center in the API's documentation:  

The documentation states that we'll need to structure the request like so: 

https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=YOUR_API_KEY

The request above dictates that, aside from our key, we'll just need to provide an address. To do so, we'll need to create a flow that asks the active contact for their address. We'll be using an open-ended 'Wait for Response' RuleSet labeled 'Address' to handle that response. 

Next, we'll connect the 'Address' RuleSet to a 'Call Webhook' RuleSet. We can place the variable created by the 'Address' RuleSet in our request to ensure that it represents the address each contact submits. 

Now we can use the simulator to inspect Google's response. 

Google responded with a 200, meaning that our request was successful. Now we'll need to parse it's response for the fully formatted address. We can do so by clicking the highlighted 'webhook event' link in the simulator. The key we're looking for is 'formatted_address'. 

Since this key is actually housed in an array under a key called 'results' (the 'results' array isn't visible in the image above), we'll need to place '.0.' in front of it to access it: 

@extra.results.0.formatted_address

Finally, we'll need to account for failures. We can do so by connecting the 'Failure' category that the 'Call Webhook' RuleSet automatically creates to a message that prompts the active contact to try again. 

Voilà, we've created a flow that collects and verifies our contacts' addresses using Google's Geocoding API. What will you build? 

Tips

  • If an API responds with minified JSON, you can expand it using this tool
  • This page is a great resource for publicly-available JSON APIs

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

]]>
Kellan Alexander
tag:blog.textit.in,2013:Post/1092711 2016-09-23T11:12:55Z 2016-09-26T14:19:40Z Mult-Tier Accounts: Child Accounts & Credit Distribution

Customers who purchase 1,000,000 or more credits unlock multi-tier account privileges, which allow you to add multiple child accounts and distribute credits to them through the originating, or parent, account. This feature is intended for organizations with multiple use cases across multiple countries, where it's useful to be able to create accounts for specific organizational branches and manage them from a central account. 

Adding Child Accounts

To add a child account, first navigate to your account's home page. 

Scroll to the 'Your organization is...' section and click the 'Manage Organizations' button.

Click the 'New' button in the top right corner of the page. 

Distributing Credits

Select the 'Transfer Credits' option from the gear icon menu in the top right corner of the page. 


On the resulting modal, select the origin and destination accounts, then enter the amount of credits you'd like to transfer. 

Managing Accounts

To enter one of your child accounts, simply click the new account icon in the top right corner of the screen and select the account you'd like to enter. 

Questions? Comments? Let us know. We love hearing from you.

]]>
Kellan Alexander
tag:blog.textit.in,2013:Post/1092706 2016-09-23T10:04:50Z 2016-12-13T17:28:08Z Multi-User Support: Adding, Editing & Removing Multiple Account Users

Customers who purchase 100,000 or more credits unlock multi-user support, which allows them to add multiple users of varying roles to the account. This feature is intended for enterprise accounts, where multiple users may need to oversee your flows, campaigns, scheduled broadcasts and contacts, or routinely export information from the account. 

To add additional users to your account, first navigate to your account's home page. 

Scroll to the bottom and click the 'User Accounts..." icon. 

Here, you can choose to manage account users via the 'Manage Accounts' button or, if you're using the TextIt Surveyor app to collect information offline in the field, create a password that other Surveyor users can enter into the app to be able to submit responses to your account. Click the 'Manage Accounts' button. 

The 'Manage User Accounts' page is where you'll add, edit and remove additional users of various roles. To add a users, simply enter their email address and select the permission you'd like to give them.

Account Roles

Surveyors

Surveyors have no administrative privileges, nor can they access the account. They may only submit flow results via our offline flow-based data collection mobile app, TextIt Surveyor

Viewers

Viewers can see every aspect of the account, but may not modify anything. 

Editors

Editors can edit flows, campaigns, triggers and contacts; send messages; start flows; export flows, contacts and messages; and export/import flows. Editors cannot make changes to the account's home page, including managing account roles, changing language or timezone settings, and adding and removing channels. 

Admins

In addition to editing privileges, admins may make the above-mentioned changes to the account's home page.

Questions? Comments? Let us know. We love hearing from you. 
]]>
Kellan Alexander
tag:blog.textit.in,2013:Post/1092407 2016-09-22T11:44:18Z 2016-09-26T14:27:37Z Feature Update: Group Membership Evaluation

Groups are a great way to track and manage users, and they can mean many different things: perhaps a group represents active users, completion of a flow, participation in a campaign, a particular response to a question, or an attribute that some of your contacts might share. Whatever their purpose, groups are an important to getting the most out of TextIt. For this reason, we simplified the process of checking if the active contact is a member of a particular group. 

Simply select the 'Split by group membership' option from the RuleSet menu and add the groups you'd like to check for membership. Each will become its own category. 

Evaluating Membership in Multiple Groups

If you need to check for membership in multiple groups, you can chain multiple 'Split by group membership' RuleSets. 

Considerations 

The 'Split by group membership' RuleSet evaluates the groups you enter from left to right, so order matters if it's possible the contact could be in more than one of the groups entered. If they are, they'll be matched with the group that appears first. The order the groups are evaluated in can be changed by dragging the groups from left to right in the 'Group Membership' modal. 

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

]]>
Kellan Alexander
tag:blog.textit.in,2013:Post/1085981 2016-09-02T12:56:39Z 2016-11-10T10:19:41Z Introducing First Class Zapier Support

We’re excited to announce first class Zapier support through the new ‘Call Zapier’ RuleSet. For those who aren’t yet familiar, Zapier allows anyone to integrate TextIt with over 500 other apps like Google Sheets and Slack without writing a single line of code. 

Specifically, it enables you to create connections that pass information fro one app to another. For example, you might use Zapier to:

  • Distribute and verify coupons and vouchers via Google Sheets.

  • Alert your Slack channel of a flow response.

  • Add contacts who complete a Typeform embedded in your website to a flow.

  • Add new Salesforce contacts to flows.

  • Use HookPress to trigger flows from actions taken on your Wordpress site.

How it Works

Zapier watches your apps for new data and kicks off triggers and actions based on the rules you set. Each trigger and action pairing is called a 'zap'. Here are some examples:

Supported Zaps

The TextIt Zapier app currently has one action and one trigger, though we're happy to explore additions based on your feedback.

The action, 'Start Flow', allows you to start one or more contacts in a flow using data from another app. Check out this video for a quick tutorial:

The trigger, 'Flow Event', sends all of the responses collected by a flow up to the 'Call Zapier' step to the app of your choice. Check out this video for a quick tutorial:

Try it Out

If you haven't already, head over to Zapier to discover more use cases and sign up for a free account. Have a workflow you need to automate, but aren't sure how? We're happy to help

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

]]>
Kellan Alexander
tag:blog.textit.in,2013:Post/1079907 2016-08-09T16:32:05Z 2016-09-02T13:01:58Z 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!

]]>
Kellan Alexander
tag:blog.textit.in,2013:Post/1079912 2016-08-09T12:42:15Z 2016-08-09T12:42:15Z 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!

]]>
Kellan Alexander
tag:blog.textit.in,2013:Post/1079045 2016-08-05T19:15:56Z 2016-08-10T13:50:48Z 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. 

]]>
Kellan Alexander
tag:blog.textit.in,2013:Post/1078216 2016-08-03T14:46:57Z 2016-10-05T15:34:11Z 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!

]]>
Kellan Alexander
tag:blog.textit.in,2013:Post/1074923 2016-07-21T22:18:47Z 2016-09-05T16:16:49Z 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.

]]>
Kellan Alexander
tag:blog.textit.in,2013:Post/1074951 2016-07-21T22:16:35Z 2016-09-05T14:30:32Z 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.

    ]]>
    Kellan Alexander
    tag:blog.textit.in,2013:Post/1073110 2016-07-15T18:47:00Z 2016-07-20T16:24:36Z 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.

    ]]>
    Kellan Alexander
    tag:blog.textit.in,2013:Post/1071098 2016-07-08T20:30:17Z 2016-07-08T20:30:17Z 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. 

    ]]>
    Kellan Alexander
    tag:blog.textit.in,2013:Post/1069003 2016-07-01T23:07:12Z 2016-12-15T19:00:18Z 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.

    ]]>
    Kellan Alexander
    tag:blog.textit.in,2013:Post/1064492 2016-06-17T19:47:52Z 2016-07-01T21:55:45Z 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.

    ]]>
    Kellan Alexander
    tag:blog.textit.in,2013:Post/1053734 2016-06-03T21:13:54Z 2016-11-14T23:45:49Z Easily Store & Retrieve Data Outside of TextIt w/ Zapier, Google Sheets

    ***Our Zapier application is now Global! Learn how to store & retrieve data outside of TextIt here***

    Quickly and easily configure your flows to communicate with a Google Sheets 'database' without writing a single line of code. Google Sheets are handy for storing data outside of TextIt that can then be distributed to any of your contacts. 

    A few weeks ago, we announced a private TextIt Zapier app to gauge interest in a first-class integration. Since then, we’ve found Zapier to be an invaluable tool to users with use cases that require external services, e.g.: 

    • Distributing and verifying coupons and vouchers. 
    • Adding contacts who complete a web form to a flow. 
    • Adding Salesforce contacts to flows. 
    • Use HookPress to trigger flows from actions taken on your Wordpress site.

    The high-level, low-requirement functionality Zapier provides falls in line with the purpose of TextIt: enable anyone, regardless of technical know-how, to build highly performant messaging applications and chatbots.

    A first-class TextIt Zapier app is on its way. In the mean time, you can follow this link while signed-in to your Zapier account to gain unlimited access. Worried about managing the costs of both services? Don’t sweat it. The great thing about private Zapier apps is that you can use them to build multi-step Zaps on a free plan (a restriction if using only global apps).

    This article highlights the integration we’ve observed to be the most useful: TextIt <> Google Sheets. Why Google Sheets? It enables you to create one or more external databases and connect them to TextIt in minutes. First, a primer on data storage within TextIt.  

    Data Storage within TextIt

    There are two ways to store and distribute data via your TextIt account. The first is via flows. Inside a flow, you can use RuleSets to collect data from your contacts which is then stored as a flow field with a corresponding flow variable, initiated by the '@flow.' variable prefix. You can then distribute data via Send Message actions. The second is via Contact Fields, which allow you to store data as attributes on each contact, though no contact can reference another (unless they're started in a flow when another contact reaches a Start Someone Else in a Flow action in a separate flow, in which case they can reference the previous run's fields (using the '@extra.flow.' variable prefix) or the contact (using the '@extra.contact.' variable prefix).  

    Data Storage Outside of TextIt

    While flows are useful for collecting and distributing data stored within your account, they can also be used to communicate with external services, like Zapier, allowing you to automatically store and edit data outside of TextIt so it can be accessed by all of your contacts. Storing data outside of TextIt is useful in a variety of contexts, particularly:

    • Storing, distributing and verifying coupons and vouchers.
    • Storing flow fields outside of TextIt instead of creating new contact fields. 
    • Managing signups for an event, service or job. 

    A. Barr Simpson

    What better way to demonstrate this configuration than an example? A. Barr Simpson, a distributor and manufacturer of fountain soda products, uses TextIt's Zapier app to manage its padlock spreadsheet. A. Barr Simpson delivers certain products with a lockbox. In order for customers to receive the product's code, they must interact A. Barr Simpson's TextIt application. 

    Account Verification

    Customers send the keyword 'code' to interact with the flow that distributes padlock codes: 

    The flow (1) asks for the active contact's account number, (2) uses 'Split by Expression' RuleSets to convert the contact's name, phone number (in E.164 format) and the date and time at which the contact requested the code to flow fields and (3) posts this information to the URL that our 'Webhook Action' trigger provides (click here for a comprehensive guide to our 'Webhook Action' trigger).

    The intended destination for this information is A. Barr Simpson's padlock spreadsheet. Here's a simplified example:

    This spreadsheet will eventually contain the information of the customer who last looked-up the code and the driver who last updated the padlock's code. I entered the account number '1010101', so the row containing this number will be updated. 

    This is where things get tricky. If you intend to lookup a row and update it, you first need to add an 'Update Spreadsheet Row' action to your Zap:


    Once the spreadsheet and worksheet have been chosen, I click the 'Add a Search Step' button. This will add the lookup action that allows Google Sheets to find the row it will eventually update: 


    In the 'Lookup Spreadsheet Row' action, I'll need to add the column you'd like Google Sheets to lookup and the value (provided by the first step in your Zap, the TextIt 'Webhook Action' trigger) I'd like it to match. In this case, I'm looking up the 'Account Number' column in the Google Sheet and matching it with the 'Account Number Rule Value' value ('Account Number' being the name of the flow field created by the RuleSet that collects the contact's account number, and 'Rule Value' being the value that's created after the contact's response passes through its 'has a number' response rule):


    Once this step is completed, I arrive at the 'Update Spreadsheet Row' action I started earlier. You'll notice that the 'Row ID' field now contains 'Use a Custom Value' (the value taken from the TextIt 'Webhook Action' trigger: the contact's account number). I enter the TextIt 'Webhook Action' trigger values I'd like each column to contain, then complete the step:
     

    Zapier will then update the spreadsheet with the sample data I've selected. From here on out, these will be the data updated to my spreadsheet when a contact completes the associated flow. 

    Code Distribution 

    Next, I add a 'Start Contact in Flow' TextIt action to my Zap that starts a flow that distribute's the padlock's code. Here's an example of how that flow might look:

    Notice the '@extra' variables. These will be used to reference values in my spreadsheet. When the contact starts the flow, they'll be replaced with the values I choose. I've also added Send a Message to Someone Else and Send Email actions to notify me when a customer has accessed their padlock code. 

    There are three ways to start a contact in a flow via the TextIt 'Start Contact in Flow' Zapier action:

    • Specifying their group(s)
    • Specifying their UUID(s)
    • Specifying their phone number(s)

    Note: To pass a contact's UUID to Zapier, simply create a 'Split by Expression' RuleSet that converts the variable '@contact.uuid' to a flow field: 

    The contact's phone number will work just fine for this example. Note that the 'Restart Participants' field must always have the value 'Yes'. This ensures contacts who've already completed this flow will be able to enter it again.  

    Finally, I'll add the extra fields that will correspond with the '@extra' variables in my flow: @extra.account, @extra.code, @extra.name and @extra.date:

    Note that field names entered in this step are case-sensitive; always use lowercase letters. 

    That's it! Turn on your Zap, organize it with a folder, and sit back as TextIt and Zapier automate the rest!

    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.

    ]]>
    Kellan Alexander
    tag:blog.textit.in,2013:Post/1050910 2016-05-13T20:30:57Z 2016-05-13T22:30:29Z How to Restrict Access to Flows

    TextIt is a visual programming language used to build messaging applications and chat bots. A core concept of this language is the flow: a series of of actions and rules used to build branch logic (also called "conditional branching" or "skip logic"). An application or chat bot may comprise a single flow, or many connected by Start Another Flow or Start Someone Else in a Flow actions. Being that any single account may contain more than one application or bot, we'd like to explain how you can restrict access to each of your flows (and, by extension, your applications or bots). 

    First, it's helpful to understand how the modules that comprise your account interact. Each account contains channels, contacts, flows, campaigns and triggers. In this article, we focus on channels, contacts, flows and triggers. 

    Channels & Contacts

    Your account may contain one or more channels, which are essential for messaging. Each time a new contact sends a message to once of your channels, they're added to the Contacts Tab and assigned to that channel. If you have multiple channels of the same type connected to your account, TextIt will prioritize the channel the contact last messaged. Once a contact is assigned to a channel, they'll only received messages from that channel (until they send a message to a different channel connected to your account). Specifically, the following conditions must be met for a contact to be assigned to a channel:

    1. You have multiple channels of the same type connected to your account.
    2. The contact's address type corresponds with the channel type (e.g. phone number) of one or more of your channels.
    3. The contact messages the channel.

    Note that if you have multiple Twilio numbers connected to your account, you can create a Messaging Service via the Twilio console to add additional logic to modify your channels' message routing behavior. See this guide to learn more. 

    Flows & Triggers

    Flows can be triggered by keywords, dates and times, messages not caught by existing triggers, and more. In this article, we focus on keyword triggers. Keyword triggers are convenient because they enable contacts to initiate flows on their own time. When implemented correctly, they can serve the purpose of assigning a contact to a channel and a flow at the same time. All you need to do is choose the groups you'd like the trigger to apply to: 

    Putting it Together

    Once you've mapped your desired channel relationships, you can restrict access to your flows by assigning groups to your keyword triggers. If a contact doesn't belong to one of the keyword's groups, they won't be able to interact with the flow. 

    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.

    ]]>
    Kellan Alexander
    tag:blog.textit.in,2013:Post/1048988 2016-05-09T19:53:45Z 2016-05-09T19:53:45Z TextIt Updates: Week of May 1st

    Each week we highlight new articles and changes to the platform, as well as tips intended to help you get the most out of TextIt:

    Updates

    • Consecutive messages sent to the same contact are now delayed by one second to ensure they're delivered in order. Stack away!
    • Your contacts' profiles now display failedunansweredbusy, and canceled calls.

    Tips

    • Keyword, missed call, and uncaught message triggers give you the option of selecting the group(s) to which they apply. This allows you to limit flow access. 

    • The Message Tab allows you to see which messages are sent by your flows, and which aren't. The 'Inbox' tab displays incoming messages not handled by your flows, while the 'Flows' tab only displays incoming messages handled by your flows.  
    • Those looking to display flow results in real time can do so via a TextIt/Google Sheets Zapier integration. Follow this tutorial to build your own dashboard to display the results. 

    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. 

    ]]>
    Kellan Alexander
    tag:blog.textit.in,2013:Post/1045702 2016-05-02T20:09:52Z 2016-05-02T20:09:52Z TextIt Updates: Week of April 24th

    Each week we highlight new articles and changes to the platform, as well as tips intended to help you get the most out of TextIt:

    Updates

    • Full-featured media support is on its way! This quarter, we made changes to enable you to collect images, videos, files and even GPS coordinates. First, we populated incoming Twilio MMS with URLs. Now, we're displaying media collected via Twilio and Telegram channels on each contact's profile (link).  

    Tips

    • Those who wish to programmatically export data from TextIt can do so via the flow runs endpoint, which will give you the same data as an Excel export. You can grab contact fields separately using the contacts endpoint
    • You can account for inadvertent message send errors (like Twilio's invalid phone number or invalid phone number format errors) by starting contacts in a flow that asks them to respond (to confirm message receipt), then place only those who responded in a group that receives followup messages. You can view a channel's error log by navigating to your account page and clicking on the channel.

    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. 


    ]]>
    Kellan Alexander
    tag:blog.textit.in,2013:Post/1043819 2016-04-29T18:50:07Z 2016-07-11T20:56:12Z Feature Update: Inbound MMS Support

    Full-featured media support is on its way! This quarter, we made changes to enable you to collect images, videos, files and even GPS coordinates. First, we populated incoming Twilio MMS with URLs. Now, we're displaying media collected via Twilio and Telegram channels on each contact's profile. Message content will be displayed based on the format it matches:

    Twilio

    Check the 'MMS' box when searching for a Twilio number to ensure you'll be able to receive media:

    Numbers that support MMS are indicated by a media icon:

    Note that Twilio MMS addresses different carrier restrictions by automatically resizing images you send to meet the exact specifications of the receiving carrier. 

    Supported Media Types

    Supported media types include:

    • photos/videos
    • audio (voice recordings)
    • files (e.g. Google Docs)
    • GPS coordinates (location data)

    Considerations

    Media is currently loaded in each contact's profile. Elsewhere, it's represented by URLs. This includes flow results exports and contact fields. 

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

    ]]>
    Kellan Alexander
    tag:blog.textit.in,2013:Post/1040746 2016-04-25T19:36:40Z 2016-04-25T19:36:40Z TextIt Updates: Week of April 17th

    Each week we highlight new articles and changes to the platform, as well as tips intended to help you get the most out of TextIt:

    Updates

    • Last week, Facebook launched the Messenger Platform (beta), a platform that allows developers to build interactive chat bots to communicate with over 900 million monthly Facebook Messenger users on behalf of any Facebook Page (the promotional kind). This week, we released a Facebook Messenger channel that will allow you to leverage TextIt’s visual, drag-and-drop interface to build and deploy your own Messenger bot. Each bot will map to a TextIt account. Build just one bot, and your experience is available on all platforms where Messenger exists, including iOS, Android, and the web. Use this guide to submit a Messenger app for review and connect it to your TextIt account (link). 
    • A single account may now contain channels in different countries. How this effects channel-contact behavior: If not yet contacted, TextIt will assign channels to contacts based on their country. Once a contact has responded to a channel, they'll continue to receive messages from that channel unless they send a message to a different channel, in which case they'll become tied to the new channel.

    Tips

    • To link contact fields to flow results, simply add contact fields to your flow results export. If you'd like to display results via your own dashboard, checkout TextIt's API, which will allows you to externally display contact fields, flow results and more.  
    • Those interested in visualizing a certain type of response (like the categories through which each contact passes in a flow) should consider updating them to contact fields once they've been evaluated by a RuleSet, then executing a contact export. This allows you to (a) ensure the correct values are assigned to your contacts' fields, and (b) skip the process of pulling specific columns out of a flow results export. Note that response categories can be called using the '.category' extension, e.g. @flow.response_1.category. More on TextIt variables here
    • You can determine a contact's group membership within a flow using a 'Split by Contact Field' RuleSet that evaluates the 'Groups' contact field: 

    • If your application solicits and updates contact information to specific contact fields (like a registration form or the like), you may want to search for contacts missing a value in specific fields. You can do so via the search bar in the contacts tab: simply enter the query contact_field="", where 'contact_field' is the name of the field you're searching. For example, if we want to look for contacts who haven't yet provided their gender, we can use the query gender="". 

    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. 

    ]]>
    Kellan Alexander
    tag:blog.textit.in,2013:Post/1039014 2016-04-22T20:52:49Z 2017-01-03T15:51:03Z Feature Update: Reach your Contacts via Facebook Messenger

    Last week, Facebook launched the Messenger Platform (beta), a platform that allows developers to build interactive ChatBots to communicate with over 900 million monthly Facebook Messenger users on behalf of any Facebook Page (brand, business or cause). This week, we released a Facebook Messenger channel that will allow you to leverage TextIt’s visual, drag-and-drop interface to build and deploy your own Messenger Bot. Each Bot will map to a single TextIt account. Build just one Bot, and your experience is available on all platforms where Messenger exists, including iOS, Android, and the Web.

    Bots on Messenger will have the same functionality as anything you’d normally build with TextIt, like weather and traffic updates, and receipts, shipping notifications, and live automated messages. Contextual, convenient, and delightful. 

    Facebook is focused on facilitating lightweight, convenient business-to-consumer interactions that provide meaningful value—a cause that aligns with our own. 

    We’ve always advocated for SMS and voice (IVR). They’re among the most effective communication channels in today's mobile-centric world. That being said, web-based IP messaging channels appear to be the next step in the evolution of mobile interaction and we’re bullish on their future. Use this guide to submit a Messenger app for review and connect it to your TextIt account. 

    Facebook requires each new Bot to be submitted for review. Before beginning this process, login to your TextIt account to build your Bot. This is an important step, as Facebook recommends submitting a video depicting an interaction with your Bot. 

    Getting Started

    Login to your TextIt account to use the following links to access specific pages in your account. 

    For this integration, you’ll need: 

    • a Facebook App: Your Facebook App will contain your Bot’s Messenger settings. This is where you'll setup your Webhook, retrieve your page access token and submit your app for approval.
    • a Facebook Page: A Facebook Page will be act as your Bot’s identity. When people chat with your Bot, they’ll see the Page’s name and profile pic.
    • a WebHook URL: Facebook uses secure callbacks to send messaging events to your TextIt account. 

    Creating your Facebook Bot

    First, create an account on Facebook's Developer Platform. Once logged in, use the ‘My Apps’ menu in the top righthand corner to select ‘Add a New App’. 

    An ‘Add a New App’ dialogue will appear, asking you to select a platform. Click the ‘basic setup’ link near the bottom; you can add your platform at a later step. 

    Next, you’ll be prompted to create an App ID for your new app. 

    Once you've registered your app, navigate to the ‘Messenger’ tab and click ‘Get Started’. 

    At this point, you’ll need to generate a Page Access Token. If you already own a Page, you’ll be able to select it from a drop-down menu. If you don’t, a link will be provided to create a new one

    Once you’ve received your Page Access Token, navigate to your TextIt account in a separate tab and claim a Facebook channel. Enter your Page Access Token to receive your callback URL.

    Back in the 'Messenger' tab, within the 'Webhooks' section, click ‘Setup Webhooks’ to enter your callback URL and check all boxes to subscribe to all incoming Facebook events 

    • ‘messages’ allows your app receive text messages or messages with attachments (image, video, audio).
    • ‘message_deliveries’ subscribes your app to message delivery receipts. 
    • ‘messaging_postbacks’ subscribes to post back callbacks, in case your app incorporates buttons. 

    Within the same section, select the page whose events you'd like the webhook to subscribe to.

    Next, navigate to the ‘Settings’ tab and click ‘Add Platform’. 

    Here, you can add the URL of your website as your platform. Once added, click ‘Save Changes’ to continue. 

    Prior to submission, navigate to the ‘App Details’ tab and complete it. 

    Submitting your Bot 

    Now you’re ready to submit your app. Note that each new Messenger Bot is subject to an internal review process; use the information in this link to ensure your content is acceptable per Facebook's approval criteria. 

    Navigate to the ‘App Review’ tab and click ‘Start a Submission’. Select ‘pages_messaging’ from the list on the lefthand side of the dialog and continue. 

    Once you've selected the 'items' you'd like to add, click the 'edit' links next to them to fill out their corresponding forms. 

    Finally, click 'Submit for Review' to complete the submission process. 

    Considerations

    • The Messenger Platform is intended for customer-initiated interactions. As such, Facebook Messenger doesn't allow you to reach Facebook contacts without them contacting you first. Your contacts can reach you via your Page, or search for your Bot via the Messenger app. 
    • Facebook uses unique contact ids per page, so you won't be able to access contacts you talked to previously on a Facebook page with a new page. For this reason, we recommend assigning one Facebook page to each Messenger app (Facebook channel) connected to your TextIt account. 

    • Until your app is approved by Facebook, only admins will be allowed to message your app (even if you've made it 'public' prior to approval). 

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

    ]]>
    Kellan Alexander
    tag:blog.textit.in,2013:Post/1025040 2016-04-04T18:38:50Z 2016-04-04T18:39:50Z TextIt Updates: Week of March 27th

    Updates

    • We're testing a new Zapier integration that allows you connect more than 500 apps to TextIt. It's currently private, but we're giving out an invite link to those who'd like to give it a try (link). 
    • Use this guide to learn about the 'Start Contact in a Flow' action we added to Zapier. Specifically, learn how to use information collected by a Typeform to start a flow (link). 
    • Use this guide to learn about the Webhook trigger we added to Zapier. Specifically, learn how to post information collected by a flow to a Slack channel (link).
    • 'Start Another Flow' actions in IVR (voice) flows now route to the new flow without forcing a hangup. 
    • We shipped a new version of the Nyaruka TextIt Android app, version 1.8.1, which makes TextIt more aggressive when retrying failed messages. This change is intended to offset lack of network reliability in developing cellular markets. 

    Tips

    + You can use a 'Split by Contact Field' RuleSet containing an 'is not empty' response rule to check contact fields for missing values, e.g.: 

    + DYK that you can view and export flow results? Flow results exports contain three tabs: 

    • Runs: the runs tab displays all the times your contacts have gone through a flow, as contacts can pass through a flow more than once. 
    • Contacts: the contacts tab shows the values in the last run, as well as the last value for each flow step, which may have been visited more than once if the contact was was ever redirected to it.
    • Messages: the messages tab displays every message sent from the flow to your contacts and vice versa. It provides the message direction (IN/OUT), text, date and contact information. 

    Follow us on Twitter to interact with a chat application 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. 

    ]]>
    Kellan Alexander
    tag:blog.textit.in,2013:Post/1023117 2016-04-01T16:19:13Z 2016-11-14T23:44:18Z Starting a Flow via Zapier

    ***Our Zapier application is now Global! Learn how to start a flow via Zapier here.***

    Use this guide to learn how to start a flow via one the 500+ apps available on Zapier. Specifically, this guide will show you how to use information collected by a Typeform to start a flow. Typeform is a service that helps you create beautiful, intuitive web forms. If you ever need to run a survey, questionnaire, form, contest, etc...Typeform will help you do so seamlessly across all devices, every time, using its unique platform. Don't have an invite link? Click here.

    How it Works

    1. Someone completes a Typeform. 
    2. The fields created by the Typeform entry are sent to TextIt. 
    3. TextIt starts anyone who completes the Typeform in a flow. 

    What You'll Need

    Setting it Up

    Zapier watches your apps for new data, and kicks off triggers and actions based on the rules you set. Each trigger and action pairing is called a 'zap', and each zap begins with a trigger. In this case, the trigger will be a new Typeform entry. Once you've created your Zapier and Typeform accounts, you'll need to create the Typeform itself. Ask anything you want, but you'll need to acquire the respondent's phone number (country code included, e.g. 17078888744) to start your flow. Here's an example. 

    Next, navigate to your Zapier dashboard to start building your zap: 

    Creating the Trigger

    Follow the steps Zapier provides to select your Typeform and setup your trigger: 

    Creating the Action

    Next, setup your 'Start Contact in Flow' action. Use the search bar to find TextIt within Zapier's app directory:

    You can find your API token by clicking on the Webhook icon in your account page

    Once you've added your account, you'll be prompted to add: 

    • The flow you want to start.
    • The Typeform question that will populate the 'phone' field.
    • Whether or not you'd like to restart the flow for contacts who've already entered it. 

    Lastly, you can add any extra fields you'd like to insert into the flow and the corresponding Typeform questions. You can reference these fields in a flow using @extra variables, which refer to values pulled from an external application or another flow. The fields you create should be lowercase. 

    Building your Flow

    Here's an example of a short, one message flow that thanks each contact who completes the survey: 

    We want to save the information we've collected with the Typeform to each contact's profile, so we've added Update the Contact actions to beginning of the flow. In each action, we place the corresponding extra field that we created via our zap: 


    Once the contact's Full Name field is updated, you can reference their first name using the variable @contact.first_name

    To learn how to send information collected by your flows to other apps via Zapier, click here.  

    Go with the Flow

    TextIt is changing the way organizations communicate with customers, beneficiaries, constituents and stakeholders. Whether you're interested in adding an SMS messaging channel to your communication pipeline like WebHelp Groupe, or building chat bot like HigherMe, you're guaranteed to increase engagement and efficacy. 

    For Example:

    1. An E-commerce company can use TextIt to improve funnel abandonment by texting discount codes to customers who put something in their cart but don't purchase.
    2. An on-demand company can push text notifications when their delivery is on the way or manage a fleet of workers who won't be on computers but will always have their phones.  
    3. Any company can measure Net Promotor Score or customer satisfaction by sending messages that are more likely to be read and responded to than any other form of communication.

    Follow us on Twitter to interact with a chat application 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. 

    ]]>
    Kellan Alexander
    tag:blog.textit.in,2013:Post/1023448 2016-04-01T16:19:05Z 2016-11-14T23:45:14Z Sending Information Collected by a Flow to Zapier

    ***Our Zapier application is now Global! Learn how to send info collected by a flow to Zapier here***

    Use this guide to learn how to send information collected by your flows to one the 500+ apps available on Zapier. Specifically, this guide will show you how to post information collected by a flow to a Slack channel. Slack is a platform for team communication: everything in one place, instantly searchable, available wherever you go. Offering instant messaging, document sharing and knowledge search for modern teams. Don't have an invite link? Click here.

    How it Works

    1. A contact reaches a Webhook action in a flow.  
    2. The fields created by the flow are sent to Zapier. These include your contact's phone number and responses to your questions. 
    3. Zapier posts the information you choose to a Slack channel. 

    What You'll Need

    Setting it Up

    Zapier watches your apps for new data, and kicks off triggers and actions based on the rules you set. Each trigger and action pairing is called a 'zap', and each zap begins with a trigger. In this case, the trigger will be a contact reaching a Webhook action in your flow. Once you've created your Zapier and Slack accounts, you'll need to create the flow itself. Ask anything you want; the flow automatically records the phone number of each contact who enters it. Here's an example flow:

    Next, navigate to your Zapier dashboard to start building your zap: 

    Creating the Trigger

    Search the app directory for TextIt: 

    You can find your API token by clicking on the Webhook icon in your account page

    Once you've added your account, you'll be prompted to copy the URL provided: 

    In your flow, create a new Webhook action ("Make a call to an external server") with a POST request and paste the URL provided. Once configured, run your flow in the simulator to verify the Webhook is being called appropriately:

    Creating the Action

    Next, setup your 'Send Channel Message' Slack action: 
    Once you've added the 'Send Channel Message' action and your Slack account, you'll be prompted to setup the message. This will entail: 
    • Selecting the channel to which you'd like the message to be posted. 
    • Creating the message template. 
    • Creating your Zapier 'bot'. 

    Once you've completed this step, test your zap and set it live. When your contacts reach the Webhook action your flow, the result will look something like this: 

    To learn how to start a flow via Zapier, click here.  

    Go with the Flow

    TextIt is changing the way organizations communicate with customers, beneficiaries, constituents and stakeholders. Whether you're interested in adding an SMS messaging channel to your communication pipeline like WebHelp Groupe, or building chat bot like HigherMe, you're guaranteed to increase engagement and efficacy. 

    For Example:

    1. An E-commerce company can use TextIt to improve funnel abandonment by texting discount codes to customers who put something in their cart but don't purchase.
    2. An on-demand company can push text notifications when their delivery is on the way or manage a fleet of workers who won't be on computers but will always have their phones.  
    3. Any company can measure Net Promotor Score or customer satisfaction by sending messages that are more likely to be read and responded to than any other form of communication.

    Follow us on Twitter to interact with a chat application 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. 

    ]]>
    Kellan Alexander