It’s a personal assistant for online services, available to act at a moment’s notice to things that happen in your sleep, or when you have better things to do. “If This Then That”, or ifttt.com, is a service that has been around for over a year now, and I’ve used it for several projects in the last few months. I’ve used it to fill gaps in existing APIs, as well as to link two or more APIs. I’ve also used it to find cheap shoes.
It all starts with “channels”.
Channels are the list of service to which ifttt can connect. Channels are used on both the “this” and the “that” end of the service. The following indicates how it works. Not many services can be summed up in fewer words.
If A happens within Channel X, then trigger B within Channel Y
Included in the growing number of channels are most of the usual web API suspects, as well as some generic channels for email, SMS, weather, and stocks. Channels can be activated either by entering something as simple as your timezone, or granting ifttt authorization to access an external account. There are also some channels that are pre-activated and available for use out-of-the-box. They all work differently, but most have triggers as well as actions.
Triggers are things that cause the task to activate. For the Twitter channel, triggers include:
- A new tweet by you
- A tweet by you containing a link
- A new tweet by you containing a particular #hashtag
- A new @reply directed at you
- A new tweet by a particular user
Actions are what will happen after the trigger fires, and can include information from the trigger. For instance, the action may be to send yourself an email, or to post a photo to your facebook page. The contents of the email, or the photo posted come from addins, which is essentially data from the trigger.
Tasks are dead simple. You choose one of your channels and one of its triggers (The This portion of “If This Then That”). Then you choose another channel as the destination. The action you choose becomes the That portion, if you’re following along. Here are some of the featured examples:
But is it Reliable?
When I first heard of ifttt, I wondered if it could be reliable. In theory, the general reliability of a task depends on all three services (your two channels, as well as ifttt) being up whenever a task is set to trigger. The good thing is that all tasks run every 15 minutes. If something gets missed, it will be picked up 15 minutes later. The 15 minute thing is going to bug some people. For example, I found it difficult to test my tasks. You need to wait until the next 15 minute interval comes up. It’s not something we’re used to on the web, where everything happens on demand. I spent an hour on one simple task, simply because I needed to test a few different scenarios. It also must be noted that the service has had a few hiccups in the past few weeks. The good thing is that they are very open about outages, fix them quickly, and your tasks resume and pick up where they left off when the service is back up. For tasks that are not mission critical, and not particularly time-sensitive, ifttt is still a great option.
I’d really like to see a paid level of service, where I could get tasks to run more frequently, on demand, or perhaps when triggered by a third API. When I’m using a service for paying clients, I feel better being more invested in a product, and I’m worried about the viability of a service that does not seem to have a revenue stream.