Stringify and IFTTT – Hands-on Review and ComparisonBy - 01/06/2017
I’ve been using IFTTT for three years and sometimes it fails me. Should I blame IFTTT? Should I blame the connected service or device? Should I blame myself? I don’t know where the blame lies, and I don’t know that it matters. No matter who is to blame, I long for an easier way to string my smart devices together. So, for the past week, I’ve been comparing IFTTT to Stringify, an app that is also trying to connect the unconnected.
Update: IFTTT and Stringify can now work together. I will discuss the details below.
Without a doubt, IFTTT has more presence. It has more users, more devices, it’s easier to use, and they offer the option to create Applets using a web portal. You can sign up on their app or website, and no matter which method you choose, the process takes less than a minute. Enter your email address, enter a password, and you’re ready to go.
Currently, Stringify offers an iOS app and a Beta version of an Android app. While using an app may not sound like a big deal, I almost always use IFTTT’s web portal. Stringify lacks a web portal and it’s a feature that is missed. That said, using the Stringify app was an adjustment, and I think it would have been an adjustment even if they had a web portal. To get started, download the Stringify app and create an account. Once logged in, you are greeted by multiple welcome videos though they lacked and still appear to be lacking sound, not helpful. The setup process was best explained by an email. According to Stringify,
- Add your things.
- Connect your things.
- Control your things.
And so I did.
|Apps:||iOS and Android (Beta)||iOS and Android|
|Rules:||Complex via Flows||1 Action and 1 Reaction via Applets|
|Shortcuts:||Buttons / Shortcuts||DO Widgets|
Setup Winner: IFTTT
Applets versus Flows
Applets and Flows:
Perhaps the biggest difference between IFTTT and Stringify is how they get from point A to point B. IFTTT uses Applets, formally known as recipes, in the “if this then that” format. With Applets, you choose one reaction and one action. For example, “If my front door opens, turn on my light.” or “If motion is detected, start recording.”
Stringify uses Flows. While setting them up isn’t as easy as setting up Applets, Flows are more flexible and creative. You can use one action to trigger multiple devices and multiple reactions (triggers), but you can also add limitations. For example, when I’m home and the weather is rainy, turn my Hue bulbs to blue. If you were using this same scenario through IFTTT, you would only be able to turn the lights blue when home or turn them blue when rainy, not both.
Stringify can add an extra layer of complexity, as one action can trigger multiple reactions. For example, “If my Nest Cam detects motion, turn on my outside lights, send an email, set a timer for 10 seconds, and then turn off my outside lights”. To take it a step further, I can add a but only if statement to this same rule. If Nest Cam detects motion, do everything I just mentioned, but only if it’s before 6 pm. Using IFTTT, you would have to create different recipes for each reaction. For example, you would need two IFTTT Applets to turn two porch lights on at sunset. With Stringify, you can turn on multiple porch lights with one Flow.
Stringify also supports scenes through Amazon Echo. For example, I can say, “Alexa, tell Stringify to run goodnight” and Stringify will turn on my porch lights, turn off my other lights, and adjust the temperature in my house to 68°.
One final difference is that IFTTT Applets, once created, run until you delete them or turn them off. On the other hand, you can create temporary Flows using Stringify. You can have a flow run until the end of time, or you can say, “I want this rule to run tomorrow.”
Rule Winner: Stringify
DO Widgets and Shortcuts
Both services allow you to create shortcuts, but they do so differently. Due to recent changes, IFTTT now has a superior system in place. IFTTT uses DO widgets. You can access DO widgets without unlocking your phone and trigger a reaction with one push.
In the past, DO had its own app. Now, DO Applets are found within the IFTTT app. To add a widget to the Today View of your iPhone swipe down from the top of the screen, click edit, and add IFTTT. For Android users, long press any empty place on your home screen, select Widgets, and drag the IFTTT app over. Once setup is complete, you will be able to quickly access your Do widgets from your home screen, Apple Watch, Today View, or even by using 3D Touch on iPhone. The ability to trigger an Applet without unlocking your phone and without opening the app is super convenient. However, be warned that during testing, using shortcuts led to failure about 50% of the time.
Stringify uses shortcuts and buttons as seen in the photo above. By pressing on a button, you can trigger multiple devices with one click, an advantage over IFTTT. Using shortcuts, you can access and control your connected devices from the app’s home screen. However, accessing the home screen still means unlocking your phone and navigating to the Stringify app, not as convenient as IFTTT’s process. A second advantage Stringify has over IFTTT in this category is the number of shortcuts allowed. You can create 20 Stringify shortcuts, but only 4 IFTTT DO widgets.
Shortcut Winner: IFTTT
What Works with What?
IFTTT has hundreds and hundreds of options for connecting both devices and services. Stringify is a little more limited. They categorize their partnerships by physical and digital, but IFTTT breaks things down even further. Below is a list of some of the devices that currently have a presence on Stringify and IFTTT. I’ve also added Muzzley, another competitor, to the chart. Muzzley didn’t make the cut when I was searching for an IFTTT alternative, but there’s more information on that below.
|Hubs:||Harmony, Hue Bridge, Insteon, Logitech, SmartThings||Harmony, Hue Bridge, SmartThings||Hue Bridge, Insteon|
|Cameras:||Arlo Wire-Free & Q, Homeboy, Netatmo, Nest Cam, Ring, SkyBell||Arlo, Blink, Camio, D-Link Connected Home Cameras, EZVIZ, Homeboy, Komfy Switch, Manything, Nest Cam, Netatmo, Oco, Piper, Ring, Skybell, Withings|
|Smart Thermostats:||ecobee, Honeywell, Nest||ecobee, Honeywell, Nest||ecobee, Honeywell, Nest|
|Other Smart Devices:||Garageio, Hue, LIFX, Other Netatmo Products, Other Nest Devices, Rachio, Sengled, Wink||August, Comcast Labs, D-Link Devices, Garageio, Hue, LIFX, LightwaveRF, Lutron, Other Nest Devices, Other Netatmo Products, Rachio, RainMachine, Roost, Sen.Se, Stack Lighting, WeMo, Wink, Kevo, Nanoleaf (Coming Soon)||Connected by TCP, Cree, easybulb, futlight, Green IQ, Hue, Koubachi, LIFX, Lockitron, MiLight, Other Netatmo Products, Other Nest Products, Rachio, WeMo|
|Other Security Devices:||abode, BloomSky, Camio, Home8, iSmartAlarm, Myfox, Scout Alarm|
|Productivity/Storage:||box, Dropbox, Evernote, Google Calendar, Google Drive, Slack, TechCrunch||Amazon Cloud, Beeminder, bitly, Buffer, Day One, Evernote, Google Calendar, Google Drive, HP Print, Instapaper, OneDrive, OneNote, Pinboard, Pushover, QualityTime, RescueTime, Seagate|
|News:||Buzzfeed, CNET, CNN, New York Times, RSS Feed, Yahoo News||Digg, EW, Epicurious, ESPN, Feed, Feedly, Genius, InStyle, New York Times, NPR, People, Sports Illustrated, Time, Wikipedia|
|Shopping:||Craiglist, eBay||AppZapp, Best Buy, Boxoh, Chain, Craigslist, eBay, Fiverr, Home Depot, Qapital, Semantics3, ShopYourWay, Slice, Stripe, Tesco, TrackIf|
|Essentials:||Date & Time, Email, Gmail, Location, Notifications, Timer, Weather||Date & Time, Email, Gmail, Location, Phone Call, SMS, Weather|
|Social Media:||Facebook, Foursquare Swarm, Instagram, Reddit, Tumblr, Twitter, Yelp||Ello, Facebook, Foursquare, GitHub, Instagram, Life360, LinkedIn, Pinterest, Reddit, Twitter|
|Wearables:||Fitbit, Jawbone UP, Misfit, Withings||Fitbit, Google Glass, Misfit, Nike+, PAVLOK, Recon, UP, Whistle, Withings||FitBit, Jawbone, Misfit, Withings|
|Photography:||Flickr||500px, Dailymotion, Eyefi, Flickr, Giphy, Instagram, Narrative, Printhug, Stockimo, Vimeo, YouTube|
|Auto:||Automatic, Traffic||Automatic, BMW, Dash, Mojito, Zubie||Automatic|
|Appliances:||NA||GE, LG, Samsung, Whirlpool|
|Blogging:||Tumblr||Bitly, Blogger, Medium, Pocket, Tumblr, Weebly, WordPress|
|Business:||Box, Concur, convo, DocSend, Envoy, Gumroad, Harvest, MailChimp, Office 365, OneDrive, Quip, Salesforce, Sharpr, Slack, Square, Stocks|
|Anything Else?||Yes, Stringify works with IFTTT and thus all IFTTT devices.||Yes, IFTTT works with many more devices and services including Stringify.||beurer, Egardia, iHealth, Mr. Coffee|
Compatibility Winner: IFTTT
IFTTT + Stringify, They Do Work Together
It’s clear that IFTTT works with more, but does that even matter anymore? The answer is, kind of. The two services now work alone and together. When you connect the Stringify channel on IFTTT, IFTTT will be able to:
- Access your Stringify Flow names containing an IFTTT Thing
- Trigger your Stringify Flows containing an IFTTT Thing
- Receive events from your Stringify Flows containing an IFTTT Thing
So what the *!&@ does that all mean? It means you need to add IFTTT to all Stringify Flows that you want to work with IFTTT. It’s not as confusing as it sounds.
As a trigger, you have one option, “If a specified Stringify Flow runs, trigger a specified IFTTT Applet”. For example, I first created a Flow on Stringify that says, “If my Nest Cam detects a person, trigger this IFTTT applet to run”. I named the Applet “IFTTT”. Next, I swapped over to the IFTTT app to create an Applet, “If Stringify Flow runs “IFTTT”, then text me”. Did it work? No. And that’s the problem. That’s exactly why I said it was kind of better.
The more “in-betweens” you add between your technology, the greater the risk of failure. A direct integration is always going to be better than an indirect one. As mentioned above, I often have failure and delays with IFTTT. In fact, at the fine print on the bottom of Applets, IFTTT warns that Applets can be delayed by up to an hour. And now I don’t know if the problem is IFTTT, Stringify, or the way I set everything up. To troubleshoot, I pulled IFTTT out of the Flow and ran the same Flow using Nest and Stringify alone, it worked. Instead of giving up, I tried a second Flow using both IFTTT and Stringify. It said, “If my back door is opened, run the IFTTT Applet (send a push notification)”. This time I had success.
On the opposite end, you can also create Stringify Flows triggered by an IFTTT Applet.
IFTTT vs. Stringify Hands-on Testing
But enough about how they work together, let’s get back to how they differ.
I decided the best way to test both apps was to give them both the same job. I asked Stringify to automate porch light 1 and IFTTT to automate porch light 2. I asked them both to turn on their devices at sunset. Easy as pie right?
Day 1 Stringify 7:25, IFTTT 7:37, Sunset 7:25
Day 2 Stringify 7:27, IFTTT 7:52, Sunset 7:26
Day 3 Stringify 7:27, IFTTT 7:41, Sunset 7:27
Day 4 Stringify 7:27, IFTTT 7:33, Sunset 7:27
Day 5 Stringify 7:27, IFTTT Did Not Turn On, Sunset 7:28
Day 6 Stringify 7:28, IFTTT Did Not Turn On, Sunset 7:29
IFTTT was not only less accurate, but it failed. IFTTT failure is the very reason why I started searching for an alternative in the first place. IFTTT rules don’t always run as they should. For example, I triggered a find my phone rule through IFTTT that was delayed by a couple of hours. And I’ve had lots of issues with my porch lights not turning on or doing so too late. In troubleshooting, I’ve found that, from time-to-time, a channel will simply disconnect making the rule inactive. That’s not a huge deal, but IFTTT doesn’t let me know when this happens. Worse, IFTTT’s log is often incorrect. The log shows that the recipe tested above ran on schedule, even though it didn’t. After testing Stringify for 9 months, I can say that it is more reliable.
Hands-On Winner: Stringify
Is it safe to open up your devices to a third-party service?
It seems like the security of both IFTTT and Stringify rely heavily upon you and which channels you choose to activate. While it may be handy to have IFTTT access your Gmail account, Office 365, and your Facebook profile, I would advise caution.
|Login Credentials Storage:||We never see or store your login credentials for your accounts with your third party services, websites, devices and/or application providers.||When questioned, IFTTT explained that they cannot see nor do they store login credentials for third party services/devices/websites/etc connected through IFTTT.|
|Government:||We may disclose any information about you to government or law enforcement officials or private parties as we, in our sole discretion, believe necessary or appropriate.||Therefore, in response to a verified request by law enforcement or other government officials relating to a criminal investigation or alleged illegal activity, we can (and you authorize us to) disclose your name, city, state, telephone number, and email address. We will not otherwise disclose your personal information to law enforcement or other government officials without a subpoena, court order or substantially similar legal procedure, except when we believe in good faith that the disclosure of information is necessary to prevent imminent physical harm or financial loss; or report suspected illegal activity.|
|Data Security:||When you enter sensitive information on our forms, we encrypt this data using SSL or other technologies.||We use industry-standard Secure Socket Layer (SSL) software to protect the security of your personal information during transmission, which encrypts all of the information you input.|
|Where’s the Data?:||Your PII may be transferred to, and maintained on, computers located outside of your state, province, country or other governmental jurisdiction where the privacy laws may not be as protective as those in your jurisdiction. If you’re located outside the United States and choose to provide your PII to us, we may transfer your PII to the United States and process it there.||When questioned, IFTTT responded that all of their servers are currently in the US.|
|Who Can See My Info?||Information is only exposed to employees when specifically troubleshooting customer issues, and even then, access tokens are kept encrypted so they cannot be used to make requests to third party services on the customer’s behalf.||Only employees who need personal information to perform a specific job (for example, a customer service representative) are granted access to it. All of our employees are kept up to date on our privacy and security practices.|
|Password:||8-10 Characters – 1 Uppercase, 1 Lowercase, 1 Number||6 Characters – No Restrictions|
As you can see, IFTTT doesn’t store passwords but they do store tokens. Vladimir Jirasek, a security professional, shared his thoughts on IFTTT’s process on his blog:
IFTTT could become a juicy target for hackers as they have OAuth access and refresh tokens in their database! Why hack individual services (such as Dropbox and Evernote) when all they need is in one database? OAuth tokens can be reused and renewed! There is nothing about IFTTT security controls and architecture on their website, which is very worrying.
I also asked Stringify about the use of tokens and while I didn’t hear back via email, I did get a response via Twitter.
@Rose_Thibodeaux We also only use tokens, and they are encrypted while stored and "in transit" through Stringify's cloud.
— Stringify (@StringifyIt) April 28, 2016
Though tokens may be protecting some information, a password is still needed to use both services. And to me, a company’s password policy speaks to their overall security standards. If you are reading this article, I’m assuming you are wise enough to pick a secure password, but not everyone is.
During testing, I decided to sign up for a new IFTTT account to refresh my memory on their password policy or lack thereof. Disappointedly, I was able to create an account password of 123456. The only requirement was that my password had to be six characters long.
To IFTTT’s credit, they do have the option to enable two-step verification. This requires that you have both your password and a verification code before signing in. However, this step is not required, and those that use 123456 as their password probably won’t take the time to enable two-step verification.
When it comes to a solid password policy, Stringify is the clear winner. They require that your password is between 8 and 10 characters in length, with at least one number, one uppercase character, and one lowercase character.
Security Winner: Stringify
IFTTT is great for beginners. It’s 1 + 1 = 2, but if you need more, I recommend Stringify. At times, Stringify can be frustrating as it takes an engineer-style mindset to create Flows, but once you create something that works the way you imagined, it’s an amazing feeling. Plus, it’s more reliable. I like Stringify’s shortcut buttons, I like the flexibility of the flows, and I’m a sucker for the underdog. Both apps are good options, assuming you use restraint in an attempt to protect your personal data.
Other IFTTT Alternatives
To me, it seems like Stringify is the best IFTTT alternative right now. However, it isn’t the only competitor. Muzzley is another app that connects the connected. They have an app for iOS, Android, and Windows phones, which is a differentiator. They also support Insteon devices. However, the app doesn’t support SmartThings, which was an automatic disqualifier for this particular test and the app is strictly limited to smart devices, with a heavy emphasis on obscure smart lights. Also, as an iOS user, I was taken aback by their measly two-star rating on iTunes. And finally, in looking at the app, it doesn’t look as clean or as polished as the competition.
Thington is the newest option. I eliminated it off the bat because it requires connection to Twitter. As I’ve already mentioned, I don’t want to give too much information to one service, and I don’t want to connect my public Twitter account to my home. Also, Thington uses your friends list. And though they say they will never post anything to your Twitter account, I’m not into it, not when there are other options. Finally, Thington doesn’t work with SmartThings.