A workflow for public commitments (Workflow.is + Beeminder + Commits.To + Wunderlist + Google Calendar)

If you haven’t yet read @dreev’s post about commits.to then you should read it here.

The basic idea is to help move people from “I should” to “I will” in the way they think. One great upside I see is that it also encourages you to say “no” if you know you’re unlikely to follow through.

I’m trying to integrate this system into my normal workflows. This documents my first attempt.

I now have a button on my home screen (see above) and my lock screen that I can press to make a commitment and it’ll ask me what I’m committing to and when it’s due. Then magic happens:

  • it creates a commitment at luke.commits.to
  • it creates a task in my Wunderlist inbox (with a due date and reminder)
  • it updates my Beeminder goal to make more public commitments
  • it adds it into my Google calendar (with a date and reminder).

To do this on my iPhone I used a tool called Workflow that was recently acquired by Apple and is going to be re-launched soon as Siri Shortcuts (which means that soon enough I can ask Siri to log my commitments).

Here is the link to my commits.to workflow if you want to copy it (make sure to change everything to your name etc).

The steps are as follows, the only user actions required are the two “Ask For Input” actions:

  • Text: Get your commits.to username
  • Set Variable: Set your commits.to username
  • Text: Get your beeminder username/goal
  • Set Variable: Set your beeminder username/goal
  • Ask For Input: :star: Asks for your commitment (text)
  • Set Variable: Sets the Commitment variable
  • Ask For Input: :star: Asks for your due date
  • Set Variable: Sets the Due variable
  • Adjust Date: Subtracts 2 days for a reminder
  • Set Variable: Sets the Remind variable
  • Text: Joins the commitment with the date
  • Replace Text: Removes invalid characters
  • Set Variable: Sets the Parsed variable
  • Text: Composes the commits.to URL
  • Set Variable: Sets the Commits url variable
  • Add Wunderlist Task: Creates a task in Wunderlist with the commitment details
  • Add New Event: Creates a calendar event for the commitment (I use “All day”)
  • URL: Prepares the URL for the next step
  • Get Contents of URL: Activates the commitment
  • Text: Sets the body of the email to log in Beeminder
  • Send Email: Sends an email to Beeminder to log the commitment