Automate OmniFocus Tasks from Basecamp To-Dos
November 10, 2008
I’m sure that I am one of many people who rely on both OmniFocus and Basecamp in their day-to-day work and task management. One of the things missing for me was a fairly automated way of getting To-dos out of Basecamp and into OmniFocus as tasks.
There is a built-in way to funnel emails from Apple Mail to OmniFocus as tasks, but the script sets the email subject as the task name. Unfortunately, Basecamp uses a generic subject line ([ABC Project] To-do item assigned to you) and therefore the task name that is created in OmniFocus is useless. I created this AppleScript so that we could get new tasks with proper names based on to-dos in Basecamp.
Getting the Script
It’s as easy as downloading the file BasecampTodosToOmniFocus.zip, unzipping it and placing it in your user’s scripts directory (~/Library/Scripts).
Setting up the Mail Rule
Now we need to create the rule in Apple Mail so it filters email messages based on the subject line and then processes matches using the AppleScript we just downloaded.
Go to Preferences in Mail and choose Rules. Add a new rule called “Send Basecamp To-dos to OmniFocus.”
There is only one condition and it should be if the email subject contains “To-do item assigned to you.” There are two actions that need to be set. The first is “Run AppleScript” and then input the path to the script (mine is ~/Library/Scripts/Mail Scripts/BasecampTodosToOmniFocus) and then set the last action to be “Stop Evaluating Rules.” This lets Mail know that it shouldn’t use any other rules to process matching messages.
Testing, testing 123
The final step is test to make sure the script is working properly. You can do this by creating a to-do in Basecamp and sending the email. However, I don’t believe you’re able to send emails to yourself if you create a to-do and assign it to yourself. So, you may want to ask someone else on your team to create a to-do assigned to you. You can also test by right-clicking on an existing Basecamp to-do message and choosing “Apply Rules.” Whichever method you use, it should result in a new task appearing in your OmniFocus inbox. The task name should be the name of the to-do item.
And that’s it! The upside of this method is that it’s simple. The downside is that if someone assigns you a to-do in Basecamp and does not opt to send an email this solution never has a chance to be implemented.
Show and Tell
Want to follow along as I set this script up, step-by-step? Watch the 4m30s long screencast:



Hi Ryan,
Great Script!
Just if you are interested: I put a little service called Spootnik (http://www.spootnik.net) together. It synchronizes Basecamp with OmniFocus and it’s currently in private beta. Tell me if you would like to test-drive it.
Regards,
Lars
You so rule for this post man, kudos to you.
Thanks!!!! This works great.
Any chance you could show me how to modify the script so that it could include the Basecamp project name in the notes area of the Omnifocus task? Sorry, but I know nothing about Applescript, and your example is really helpful.
Awesome! Thanks!
Do you have any suggestions for how to automate all the to-dos I set for myself in Basecamp?
Shawn, unfortunately I don’t right now. Basecamp doesn’t send emails for the to-dos you assign yourself and there’s no preference to enable it.
Just a thought, isn’t there a way to extract the to-do’s from my basecamp account RSS feed? In order to include the to-do’s i have set to myself?