Measure the IFTTT ecosystem using a data-driven methodology.
This project is maintained by mixianghang
Here, we present the data and code of our IMC’17 paper: An Empirical Characterization of IFTTT: Ecosystem, Usage, and Performance. Read through this page to learn more. If you have any further questions, please contact the authors. When you use our datasets or code, please refer to our work.
Xianghang Mi, Feng Qian, Ying Zhang, and XiaoFeng Wang.
An Empirical Characterization of IFTTT: Ecosystem, Usage, and Performance.
In Proceedings of IMC ’17. ACM, New York, NY, USA, 7 pages.
https://doi. org/10.1145/3131365.3131369
The source code consists of three parts.
Scripts to crawl IFTTT pages for Services and Applets.
The testbed to measure performance of applet execution.
Scripts to measure IFTTT usage.
We ran a weekly job to crawl IFTTT for Services and Applets from Nov 2016 to May 2017. Here, we provide one snaptshot for each month as shown bellow.
Date | Download | Download |
---|---|---|
Nov 2016 |
TAR.GZ | 7Z |
Dec 2016 |
TAR.GZ | 7Z |
Jan 2017 |
TAR.GZ | 7Z |
Feb 2017 |
TAR.GZ | 7Z |
Mar 2017 |
TAR.GZ | 7Z |
Apr 2017 |
TAR.GZ | 7Z |
May 2017 |
TAR.GZ | 7Z |
In each snapshot, you will find the following files.
channelList.json
Each line of this file is an IFTTT service(channel) encoded in json. One example is shown as below.
{
"channelId": "1172726678",
"channelImgUrl": "https://applets.imgix.net/https%3A%2F%2Fassets.ifttt.com%2Fimages%2Fchannels%2F1172726678%2Fi
cons%2Fon_color_large.png%3Fversion%3D0?ixlib=rails-2.1.3&w=240&h=240&auto=compress&s=beb5a3409a4687d2eda784478ff9b
6c7",
"channelName": "Amazon Alexa (US only)",
"channelUrl": "https://ifttt.com/amazon_alexa"
}
triggerList.json
Each IFTTT service may consist of multiple triggers and actions. This file lists all the triggers captured in current snapshot.
{
"triggerChannelId": "1172726678",
"triggerChannelName": "Amazon Alexa (US only)",
"triggerChannelUrl": "https://ifttt.com/amazon_alexa",
"triggerDesc": "This Trigger fires every time you say \"Alexa trigger\" + the phrase that you have defined. For
instance, if you set \"find my phone\" as the phrase, you can say \"Alexa trigger find my phone\" to make your pho
ne ring. Please use lower-case only.",
"triggerFieldList": [
"What phrase?"
],
"triggerId": null,
"triggerIngList": [],
"triggerTitle": "Say a specific phrase",
"triggerUrl": null
}
actionList.json
Each IFTTT service may consist of multiple triggers and actions. This file lists all actionss captured in current snapshot.
{
"actionChannelId": "71",
"actionChannelName": "Philips Hue",
"actionChannelUrl": "https://ifttt.com/hue",
"actionDesc": "This Action will turn on your hue lights.",
"actionFieldList": [
"Which lights?"
],
"actionId": null,
"actionTitle": "Turn on lights",
"actionUrl": null
}
channelDetailList.json
This file simply combines the aforementioned 3 files so that each line repsents an IFTTT service and related triggers and actions.
recipes.json
This file stores all applets(recipes) crawled in current snapshot.
{
"actionChannelId": "71",
"actionChannelTitle": "Philips Hue",
"actionChannelUrl": "https://ifttt.com//hue",
"actionDesc": null,
"actionId": -1,
"actionTitle": "Turn on lights",
"addCount": "71k",
"creatorName": "bsaren",
"creatorUrl": "https://ifttt.com//maker/bsaren",
"desc": "Never be left in the dark. Whenever the sun starts to set, your Philips Hue bulbs will automatically t
urn on.",
"favoritesCount": -1,
"isDoRecipe": false,
"title": "Automatically turn your lights on at sunset",
"triggerChannelId": "7",
"triggerChannelTitle": "Weather Underground",
"triggerChannelUrl": "https://ifttt.com//weather",
"triggerDesc": null,
"triggerId": -1,
"triggerTitle": "Sunset",
"url": "https://ifttt.com/applets/94447p-automatically-turn-your-lights-on-at-sunset"
}