International SMS messaging: The cheap way!

SMS

Years ago I was looking into adding SMS reminders to Todoist (a task manager I have been building since 2007). I gave up pretty quickly since it was hard to make the business model work - SMS reminders were very expensive at that time. Fortunately, the market for SMS services has changed drastically and it's today possible to send SMSes internationally for 2 cents pr. message.

In this post I will cover some of the services I have checked out and the one I have chosen. I am sure a lot more competition will be added and the prices will be lowered even more. I will also showcase how Todoist SMS reminders work and how they can help you not forget important stuff.

SMS messaging services

I have checked following services in greater detail:

  • Twilio: A startup specializing in voice and SMS apps. Looks pretty promising, but only works for the US
  • Tropo: A similar startup like Twilio specializing in voice and SMS apps. Has good international support!
  • TextMagic: An old service that specialized in SMS messaging. Looks good, but is much more expensive than Twilio or Tropo
  • Clickatell: Probably the "market leader" in SMS messaging. Like TextMagic it looks good, but is quite expensive for international messaging

If I only had to support the US market I would have chosen Twilio, mostly because I have heard various good things about them in the past. I chose to go with Tropo, mainly because they supported international SMS messaging for 2 cents pr. message!

The experience with Tropo

Generally, sending SMSes is really easy with Tropo. Their documentation is lacking tho' and I found it quite confusing.

They have three different APIs (Scripting, WebAPI and REST API) and it's not really clear what API they recommend. They also have various Python code examples on their blog (and even a Python library), but I could not quite figure out how to actually use these libraries or the code examples they had posted.

After some digging I finally settled for the scripting API. Here is how I got it to work.

First on their servers I have a very simple JavaScript script that's linked to an application:

call(numberToDial, {network:"SMS"});
say(msg);

From Python (my server) I make following request to send an SMS:

import urllib

API_URL = 'https://api.tropo.com/1.0/sessions'

def send_message(number, message):
    data = urllib.urlencode({
        'action': 'create',
        'token': 'MYTOKEN',
        'numberToDial': number,
        'msg': message
    })

    signals.send_signal('sms_out')

    fp = urllib.urlopen(API_URL, data)
    return fp.read()

It's really that simple to send SMSes with Tropo! Do note that you need to replace MYTOKEN with the token from your Trop applications page.

How Todoist SMS reminders work?

Todoist reminders are only available for premium users (a service that costs $3/month). Once upgraded you can add reminders in following ways:

Automatic reminders for due dates with time

Todoist creates automatic reminders for tasks that have a time, for example if your task is due today @ 10am Todoist will send a reminder 30 minutes before this deadline.

Manually setting reminders from the task menu

From a taks's menu it's possible to view, add and delete reminders:

Todoist reminders - task menu

When adding or updating a task

When adding or updating a task include <remind today at 2pm> in the content of a task to quickly add a reminder. This even works when you add tasks from Todoist extensions, via email or mobile.

Todoist reminders - adding or updating tasks

What's possible with this?

It takes a split second to add a reminder about a task and you can do this from mobile, via email or the web. You can also do it using only your keyboard.

This enables you to create reminders much faster than using Google Calendar or even your mobile phone. You can even create recurring reminders by just typing Soccer practice <remind every sunday at 3pm> (and with just this line you will get an SMS each sunday at 3pm about your soccer practice!)

Announcements · Python · Tips · Todoist 18. Jun 2011
© Amir Salihefendic. Powered by Skeletonz.