Telerivet’s New and Improved Messages Page

We’ve just launched big new improvements to the Messages page in Telerivet — including one of the most-requested features of all-time: full-text search!

Search your message history

Telerivet finally has a search box! You can easily search for words in the text of any message, as well as contact names. You can also combine full-text searches with other filters, such as date ranges, labels, or message status.

Search_example2

It’s blazing fast, too. Even if your project has a million messages or more, the search box usually finds results in a fraction of a second. 

The first time you use the search box, it may take a few seconds for Telerivet to add your new messages to the search index. After that, your searches will be much faster.

Get notifications of new incoming messages

One common way of using Telerivet is to keep the Messages page open in your web browser, and respond to new messages as they arrive — for example, to provide customer support over SMS.

But until now, if you’re not looking at the Messages page all the time, there hasn’t been a good way of getting notified when new messages arrive.

Now, you can optionally enable two kinds of new message notifications: audio notifications and desktop notifications.

With audio notifications enabled, Telerivet will play a chime whenever a new message arrives while the Messages page is open.

If you enable desktop notifications, Telerivet will show an alert on your desktop that you can see even if you’ve switched to another application or browser tab.

Desktop_notification

And as a extra bonus, the title bar of your Telerivet browser tab now shows the number of messages or conversations in your current page, to make it easier to notice new messages even if you’ve switched to another tab.

Title_bar

Desktop notifications currently work in recent versions of Chrome and Firefox, but are not yet supported by Internet Explorer. Audio notifications work in recent versions of Chrome and Firefox, as well as Internet Explorer 9 and above.

To enable these notifications for your account, head over to your Personal Settings page.

Organize your outgoing messages with labels

Telerivet has always supported labels for organizing your messages, but until now adding labels to outgoing messages required two steps: first send the message, then add the label. If you’re sending a lot of messages at once, this can get a little tedious.

Fortunately now you can add labels to your outgoing messages right when you send them. In the “New Message” dialog, just click the “Labels…” button.

Send_labels

Similarly, you can also add labels when importing messages to send from a spreadsheet, and when scheduling messages to send later.

Restore accidentally-deleted messages and contacts

We all make mistakes. Every once in a while, Telerivet gets a panicked support request from a user that accidentally deleted hundreds or thousands of messages or contacts.

Since Telerivet makes frequent backups of all user data, it has always been possible for us to restore deleted data from backups, but that process takes hours of manual work, and the last few hours of data would be lost.

But now, every Telerivet user can save their own bacon. When you delete messages, contacts, or many other items from your Telerivet account, Telerivet will keep them in your “trash” for one week before permanently deleting them.

If you realize your mistake immediately, you can click “Undo” at the bottom of the page to restore the deleted items.

Undo_delete

If you want to undelete data after the “Undo” button goes away, simply go to your Dashboard page, then click More > Restore deleted items. Then you can browse for the items you want to restore.

Deleted_items

If you really want to make sure your deleted data is gone from Telerivet’s servers immediately without waiting another 7 days, click the “Purge all” button at the top of the Deleted Items page. (Of course, since Telerivet keeps backups of all data, your data will still be in the old backups for about 2 more weeks until the old backups are deleted.)

 

To try out these new features, head over to your Telerivet account, and let us know what you think!

Thanks also to the many Telerivet users who suggested these new features! If you have any suggestions about new features that would make Telerivet even better, send us a note at support@telerivet.com .

How to accept mobile money payments online without an API

In many developing countries, where most business transactions have historically been conducted with cash, mobile payment systems like M-Pesa have rapidly transformed the way goods and services are bought and sold.

Instead of carrying cash everywhere, you can now pay with your mobile phone – and unlike Google Wallet or Apple Pay, you don’t even need a smartphone. To complete a transaction, you simply use your phone’s keypad to enter the business’ phone number or ID, the amount of money to send, and your PIN.

When a transaction is completed, the mobile network sends a SMS receipt to both the sender (buyer) and recipient (seller). If you’re the seller, you can see the SMS receipt and know that you’ve been paid.

This payment flow works for in-person payments – but what about businesses that operate online? Developer APIs provided by services like Stripe and PayPal make it easy for online services to accept payments via credit cards and bank accounts, but not via mobile money systems. Some mobile money systems may offer their own APIs, while others don’t have developer APIs at all, or have APIs that are only available for large businesses.

If you want to accept mobile payments and there’s no API available, don’t give up – just scrape the SMS receipts! There are just three easy steps:

  1. Forward SMS receipts from your phone to your server
  2. Extract the relevant data from the SMS receipt
  3. Match the payment with the correct user and credit their account

At Telerivet, we’ve been using this method to accept payments from Tanzania via M-Pesa and Tigo Pesa for over a year already – allowing us to receive millions of shillings in revenue from customers who would have been unable to pay via credit cards or PayPal.

If you want to accept mobile money payments in your own online service, read on to learn how to do it:

1. Forward SMS receipts from your phone to your server

When anyone sends you a mobile money payment, the mobile network will send your phone a SMS receipt. Your online service needs this receipt to know that someone has paid you.

To forward SMS receipts from your phone to your server, you can use the Telerivet Android app together with the Telerivet Webhook API.

If you don’t have an Android phone already, get an Android phone and install the SIM card associated with your mobile money account. Then install the Telerivet Android app on your phone. Finally, configure the Webhook API to forward incoming SMS messages to a URL on your server.

Of course, this method requires your business to have a presence in the country where you’re accepting payments – it doesn’t help accept or transmit mobile payments internationally, since your business still needs to register for a mobile money account, and the funds stay in the mobile money account until you withdraw them.

2. Extract the relevant data from the SMS receipt

Each mobile money system uses a different format for their SMS receipts.

Here’s an anonymized example receipt (in Swahili) from Tigo Pesa in Tanzania:

Tigopesa: Salio jipya ni Tsh 67,676. Umepokea Tsh 16,000 kutoka kwa JOHN SMITH, 0730000000. 06/10/2014 11:59 AM, kumbukumbu no. PP141006.1159.B00001. Tigo Pesa inakulipa mteja wake faida kulingana na wastani wa salio lako la kila siku. Faida nyingine italipwa mwezi wa 10, 2014. Pata zaidi na Tigo Pesa TU.

It contains several pieces of data:

Current Balance: Tsh 67,676
Amount Received: Tsh 16,000
Payee Name: John Smith
Payee Phone Number: 0730000000
Transaction Time: 6 October 2014, 11:59 AM (East Africa Time)
Transaction ID: PP141006.1159.B00001

In order for your online service to process a user’s payment, the most important information is the amount received and the transaction ID.

Extracting this information will likely involve writing regular expressions to match the particular format of SMS receipts generated by the mobile money service. This can get a little tricky.

In the case of receiving funds via Tigo Pesa, we first make sure to only consider SMS messages from the sender ID “Tigopesa”.

(You may want to test if your mobile network allows other people to send spoofed SMS messages with the same the sender ID as their mobile money system. If so, you could prevent spoofed SMS receipts by keeping track of your current balance, and verifying that the balance in the SMS receipt is correct.)

To extract the amount received, we can use this regular expression:

UmepokeaW+TshW*([d,.]*d)

Note: You may also want to take special care to avoid letting someone falsify their payment amount by changing their registered name to “Umepokea Tsh 1,000,000”.

To extract the transaction ID, we can use this regular expression:

kumbukumbu noW+(w{8}.d{4}.w{5,}b)

While SMS receipt formats are typically relatively stable, mobile money systems sometimes change the format or wording of the receipts.

At this point, your service still doesn’t know which user account should be credited for the payment. (You might be able to figure it out from the payee name and phone number, but that’s unreliable.)

Instead, just store the transaction ID and payment amount in your database, so that it’s available in the next step.

3. Match the payment with the correct user and credit their account

Finally, you need to match the receipt with the correct user of your online service, so you can credit the correct account.

Some mobile money systems, including Tigo Pesa, have systems for businesses that allow customers to enter a reference number for their account when sending a bill payment. But this type of bill payment system is sometimes only available to large businesses. When someone sends money to your phone number, they probably won’t be able to send a reference number.

In this case, you can simply prompt the user to enter the transaction ID in your application, like in the example below:

Tigo-pesa-payments

The customer knows this transaction ID because the mobile money system sent the customer their own SMS receipt containing the same transaction ID:

Tigopesa: Salio jipya ni Tsh 118,006. Hamisho la fedha kwenda kwa EXAMPLE INC limekamilika; 0731110000; Kiasi Tsh.  16,000; Ada Tsh. 350;kumbukumbu no. PP141006.1159.B00001. Tigo Pesa inakulipa mteja wake faida kulingana na wastani wa salio lako la kila siku. Faida nyingine italipwa mwezi wa 10, 2014. Pata zaidi na Tigo Pesa TU.

When the customer enters a transaction ID in your application, your application can check your database for that transaction ID. If it matches, then credit the user with the payment amount associated with that transaction ID. (Be sure to prevent people from reusing the same transaction ID multiple times.)

If the customer enters a transaction ID that doesn’t match your database, it could be because you haven’t received the SMS receipt yet, or because the customer made a typo (often it can be hard to tell the difference between the digit zero and the letter O, or the letters I and L and the digit 1).

In this case, we suggest storing the transaction ID entered by the customer in your database and notifying someone on your team to look into the transaction. If there was a typo, you can record the payment manually; if the receipt was delayed, your system can process the payment manually whenever the receipt is received.

 

Scraping data from SMS receipts may not be the cleanest solution for accepting mobile money payments, but sometimes it’s the only solution.

Fortunately, at least one mobile money system soon plans to make this easier: Safaricom M-PESA in Kenya currently plans to open their developer API in April 2015 . But there’s no need to wait for someone else to release an API — just start scraping SMS receipts and letting  your customers pay you today.

Protecting your Telerivet account

For as long as we've used the web, the humble password has been the gatekeeper of our private data online.

But a password is a fragile layer of protection. For example:

  • Keylogger viruses could read your password as you type it in.
  • If you reuse the same password for multiple services, a vulnerability in any service could put all of your accounts at risk.
  • Phishing emails trick you into visiting web pages that look identical to the services you use, but steal your password when you try to log in.
  • If someone gets access to your email account, they can use "Forgot password" pages to reset your passwords on other online services.

That's why it's becoming more and more important that online services allow users to have additional layers of security for their accounts. 

So we're happy to announce several new features to help keep your Telerivet account protected — even if your password is stolen.

Two-factor authentication

Two-factor-auth With two-factor authentication, a random 6-digit code is required to log in to your Telerivet account, in addition to your password. The 6-digit code changes every 30 seconds.

This means that even if your password or email account is compromised, the other person only has a 1-in-a-million chance of guessing the right code to log in to your Telerivet account. Telerivet also sends you an email if someone enters an incorrect authentication code, and prevents too many incorrect guesses.

You can receive authentication codes via a phone call, SMS, or a smartphone app. We recommend using the smartphone app, because it will always work even if your phone doesn't have an internet connection or cell service, or if our servers can't send you an SMS or a phone call. Telerivet uses a standard two-factor authentication method called TOTP, which works on any smartphone, including Android, iPhone, Blackberry, and Windows Phone.

We also recommend enabling SMS and phone calls as a backup to reduce the risk of getting locked out of your account. If you can't receive your authentication code, you'll need to contact support@telerivet.com in order to prove your identity and regain access to your account. 

Login IP whitelist

Ip_whitelist

The login IP whitelist allows you to control which IP addresses (network locations) are allowed to log in to your Telerivet account. It provides an additional layer of security in case your password is compromised.

If your account is accessed from an unknown IP address, Telerivet will automatically send you an email, and you can choose whether or not to add the IP address to the whitelist. This way you'll be notified of suspicious activity, and you don't have to worry about being locked out of your account if you need to access your Telerivet account from a new IP address.

View and manage your login sessions

If you've used Telerivet on a shared computer and forgot to log out, the Login Sessions page is for you.

You can see all of the computers where you're currently logged in, and log out any sessions other than your current one:

Login_sessions

View logs of recent account activity

In the activity log, you can view the activity on your Telerivet account in the past 90 days. 

If you manage an organization or project with multiple users, you can also view activity for your entire project and organization.

Recent_activity

We've already been recording many events in the activity log before launching the Account Security page, but we just started tracking many more events — so some actions will only show up starting today.

Note that when viewing activity for other users as an organization/project administrator, you'll only be able to see actions that the other user performed within your organization or project. For example, you could see when a user edits a contact or sends a message, but you won't be able to see when another user logs in or changes their personal settings or security settings. (This is because all user accounts in Telerivet exist “outside” of organizations, and each user account can be associated with multiple organizations.)

Login via email account 

(Gmail, Google Apps, and Yahoo users only)

Openid_loginIf you use an email address from Gmail, Google Apps, or Yahoo, there's no need to remember a separate password for your Telerivet account. When you enable the “Login via email account” setting, you can simply click the Google or Yahoo logo on the login page, and log in with your email account.

Even if you log in via your email account, you can still use two-factor authentication and the login IP whitelist to keep your Telerivet account protected if your email account gets compromised.

Try it out!

To configure your security settings, head over to your Account Security page. In your Telerivet dashboard, you can access this page by clicking your email address in the left hand menu, then “Account Security”.

Keep in mind that the two-factor authentication, the login IP whitelist, and login via email account are all disabled by default — so you'll have to enable these features manually if you want them. 

And as always, let us know what you think!

Telerivet Launches New Developer Platform

Construction_smartphoneTelerivet’s new Developer Platform is here! We’re excited to launch our new and improved APIs and developer tools, which make it easier than ever for developers to build custom mobile messaging services and automate their SMS communication anywhere in the world.

Over the past two years, thousands of organizations and developers have already built amazing messaging services with Telerivet’s platform — from e-commerce marketplaces communicating with buyers and sellers, to microfinance institutions communicating with borrowers and lenders, to logistics companies communicating with GPS tracking devices, to radio stations collecting opinions from their listeners.

Now we’re ready to take mobile messaging APIs to a whole new level.

New Cloud Script API

Telerivet’s Cloud Script API is a complete rethinking of the way mobile messaging services can be built.

When using a traditional SMS gateway API, you need to run code on your own servers. In order to run your own servers, you’ll need to get a domain name, configure DNS servers, get a hosting provider, install web servers, databases, and other tools, and set up a local development environment. Many businesses and organizations that want to create a mobile messaging service don’t have the technical expertise to do all this. The barriers to entry are too high. Even expert developers can be bogged down by setting up and managing servers.

That’s why we created Telerivet’s Cloud Script API. It’s a development platform that lets you create mobile messaging services simply by writing a few lines of JavaScript in your web browser — and it’s designed to be easy to use by novice programmers, while still being powerful and flexible for expert developers.

Bitcoin

The code runs entirely on Telerivet’s cloud servers, so developers don’t need to set up any servers or development environments — eliminating the technical overhead that prevents many people from creating their own solutions.

The types of services developers can build with the Cloud Script API are endless. For example, in just a few lines of JavaScript, you can build SMS services to:

To learn more and to try out the new Cloud Script API, visit https://telerivet.com/api/script

Updates to REST API and Webhook API

Don’t worry, even with the new Cloud Script API, we’re not neglecting those of you who prefer to run code on your own servers.

Telerivet has always had a REST API for sending messages from your own application or website, and a Webhook API to notify your server when new messages are received.

But we’ve talked to many developers who want to do more than just send and receive SMS — and everyone wants to do something different.

Some want to add signup forms on their website that let people subscribe to their SMS campaigns. Others want to build custom dashboards to display their poll statistics. Some want to monitor their Android phones from their own application. Others want to use Telerivet as their application’s primary data store.

Thanks to all your feature requests and ideas, we’ve made hundreds of improvements to the REST API and Webhook API:

New API documentation
You should really check it out. Everything is documented in precise detail with code examples in several programming languages. We also have new Quick-Start Tutorials so you can get to the good stuff without having to read the entire reference.

Dozens of new API methods and data fields
Send messages to groups. Update contact information. Insert variables into SMS messages. Store custom data. Send SMS polls and calculate statistics. Get the current status of your Android phone. Export M-PESA receipts (hello, Kenya!). And lots more.

Client libraries for PHP, Python, Ruby, Node.js, and Java 
No need to write all the code yourself — we’ve already done it for you.

Rest_example

To learn more about the updated APIs, visit the REST API and Webhook API documentation.

New 3rd-Party Integrations

Thanks to Telerivet’s new integrations with popular third-party software, even non-developers can take advantage of Telerivet’s APIs.

By using Telerivet with Zapier, anyone can connect Telerivet to hundreds of other web apps, including Google Docs, Dropbox, Facebook Pages, Twitter, RSS feeds, Salesforce, WordPress, Stripe, incoming and outgoing email, and more.

For example, you can use Zapier to:

  • send an SMS to a group whenever an RSS feed changes
  • trigger an SMS whenever someone sends an email to a particular address
  • post incoming SMS messages to your Facebook Page or WordPress site

Zapier

In addition, Telerivet also has some new API integrations with software specialized for developing countries:

  • By using Telerivet with CommCareHQ, frontline health workers can use SMS to help gather and distribute information in developing countries.
  • By using Telerivet with Cyclos, local banks and microfinance institutions can easily set up SMS banking systems that use Telerivet to send and receive SMS.

Try it out!

Check out our new Developer Portal at https://telerivet.com/api, try out the new APIs, and let us know what you think! We’re constantly adding new features and improvements to the APIs, so feel free to keep sending us suggestions for new features that would be useful.

Telerivet Referral Program

Telerivet has seen amazing growth over the past few years, largely driven by our own user community. When our users find success with Telerivet, many of them tell friends and colleagues who are looking to implement mobile messaging in their own organization.

Now we're excited to launch a referral program for everyone who introduces Telerivet to friends, contacts, and colleagues. As thanks for your referrals, you’ll be rewarded in the form of free Telerivet service.

Here's how it works:

Every Telerivet user has a unique referral link to share via email, social media, or your own website. When someone signs up with your referral link and upgrades to a paid Telerivet plan, we’ll credit your account with $30 — enough for one month of Telerivet's Standard plan at no charge.

You can refer multiple contacts and earn Telerivet credit for each one. (If you keep referring new customers, you might never need to pay Telerivet again!)

To see more details and start sharing your referral link, visit the new Referral Program page in your Telerivet account.

We’re working on building tools to support the growth of our community, and this referral program is just the start.

Let us know if you have any questions or feedback!