Sifttter: An IFTTT to Day One Logger

Let me just start by saying that this project is wholly derived from the work of Brett Terpstra. Ever since I saw his script to log Taskpaper entries to Day One, I’ve been obsessed with finding ways to capture and automate my own information into a daily journal. These experiments were my first attempts at “coding,” and you can see some of that work here. When Slogger 2 came out, I was over the moon, and for many months I had it running every night on my machine and churning out entries.

Sifttter takes the concept of Slogger and applies it to IFTTT by using Brett’s original TaskPaper script. Though it is essentially limited to current IFTTT channels, there is lots of flexibility through IFTTT itself, as well as the opportunity for individual input and customization. I’ve been using this for several months, and am happy to share it here for those who might be interested.

Set-up

For this to work you will need a copy of Day One, an IFTTT account, and a Dropbox account. The script works by reading files generated by IFTTT and sent to a specific folder in your Dropbox. To get you started, here are the recipes that I’m currently using, and how they are configured.

IFTTT Recipe: Sifttter: Add Check-ins to Dropbox connects foursquare to dropbox

IFTTT Recipe: Sifttter: Played Tracks to Dropbox connects last-fm to dropbox

IFTTT Recipe: Sifttter: Reminders to Dropbox connects ios-reminders to dropbox

IFTTT Recipe: Sifttter: Body Analyzer to Dropbox connects withings to dropbox

IFTTT Recipe: Sifttter: Tweets to Dropbox connects twitter to dropbox

Explanation and Customization

As you can see when you look at the script or at the IFTTT recipes, the script works by reading lines that start with a dash and today’s date and end with the mark “@done”. The hyphen is there because it creates a nice bulleted list in Day One, and the done tag is a holdover from Brett’s original TaskPaper usage. In this context both of those things still make sense, though, for logging entries on your own, via TaskPaper or any other text editor. For example, if you set up a TextExpander snippet like this one - %B %d, %Y at %I:%M%p - %| @done, you can manually enter a task on your phone or computer. Also, I’ve found that working with the text fields in IFTTT is easier than working with the config file for Slogger, so changing how something is worded or appears in your actual entry is as simple as changing it in the recipe. Fair Warning: you must keep the the date at the beginning and the @done at the end so that the script will read the line.

Usage

Once you have your channels configured, just download the script and make it executable using chmod a+x in the Terminal. Then use an app like Lingon to set it to run every night at 11:55pm or so.

Examples

Above you can see the entry from my birthday, which I spent in Nashville with some friends. It was a really great day—food, drinks, shopping, music, art. And, if you read between the lines a little bit, you’ll notice that the awesome wait staff at Holland House let me play my own tunes for a while through the system.

This is yesterday’s example, which is heavily redacted to protect the innocent, but I wanted to use it because it nicely demonstrates the Reminders channel. The “Fitness” category comes directly from the Withings Channel, while Tweets obviously comes from Twitter. But “Academic,” “Job Search,” and “Productivity” are all names of lists that I use within the Reminders app. So those get split into individual categories for the purposes of the logbook.

This is really only tested on my machine, but I’ll do my best to answer any questions you might have when trying it out. You can reach me on this Tumblr, of course, or via Twitter or email: craigeley AT gmail DOT com.

Update: If you are still on Mac OS 10.8 or below, please use this script

Update 2: There was a bug in the script for people using iCloud—the file path was incorrect. (HUGE thanks to Oscar for pointing that out!) Both of the scripts have been updated as of 4:25EST on Jan. 8.

Update 3: You can now run Sifttter over specific dates and ranges. See this post for more details.



comments powered by Disqus