Rails Day badge

Basecamp API in XHTMLized

Posted by Dmitry V. Sabanin April 11, 2006

When 37signals announced Basecamp API they made Dave and me excited. We were waiting for this to happen for quite some time so I began working on Basecamp integration for XHTMLized right away.

The result? It saves us at least 2 hours each day by eliminating manual tasks.

But first—about how we work here at Futuretrack5. We’re Campfire and Basecamp addicts. Our day starts with Campfire with Basecamp projects in background tabs. It works amazingly well for us. You just know what everyone is up too and what we’re working on that day.

Converting a design to XHTML / CSS is a fairly small task. It would be overkill to create a new Basecamp project for each XHTMLization so we made a new project on Basecamp called XHTMLized Projects. Each project then has it’s own message thread.

We had one problem. Because of the recent XHTMLized launch we get a lot of quote requests. Previously, when a new order is submitted, MonkeyBot would send an email with a link to the admin interface to approve or cancel it (spam). For approved projects we then needed to post a new message on Basecamp along with a To-Do list and a Milestone. Doing this manual task switching between email and Basecamp took a good chuck of our day.

Basecamp API to the rescue! We taught our MonkeyBot how to use Basecamp. Now we receive XHTMLized quote requests as messages right on Basecamp! As messages have categories we created a Quote Requests category for these messages which makes it easy to filter through them.

Using the API, MonkeyBot can also create XHTMLized To-Do lists, set milestones, read comments and track order’s progress. Things we used to do manually.

When a new quote received, MonkeyBot ‘automagically’ creates a To-Do list using a Basecamp template (using templates we can tweak them in Basecamp’s templates section) and associates it with a Milestone (Deadline is 7 days away).

If the project is cancelled and we delete it from the XHTMLized admin, everything related to it in Basecamp is automatically removed also.

Also from the XHTMLized admin we can see all the Basecamp comments related to the project. If we change an order’s project name field in the admin, all related Basecamp items change thier names too!

I had a great time working with the Basecamp API. I look forward to working more on some cool things using it. We plan to integrate all of our upcoming applications with Basecamp API. If you use Basecamp you must look at using the API to save you time. If you don’t use Basecamp yet you’ve got to check it out!

Coming up: Tips for working with the Basecamp API

8 comments

Comments

  1. ian kennedy said about 14 hours later:

    nice!

    care to share your monkeybot code?

  2. James Mitchell said about 15 hours later:

    That’s what I was thinking. :)

  3. Tony McDonald said about 18 hours later:

    This is cool. I wondered how long it would be before someone started using the BaseCamp API – and as far as I know, you’re the first.

    Of course, now you’re gonna get a lot of people asking to see the code, me included! ;)

    Cheers, Tone

  4. Peter van Teeseling said about 19 hours later:

    I second (or rather … third) the above requests. Very cool stuff. Nice!

  5. G said 1 day later:

    please, lets see the code…I’ll buy you a cookie! :)

  6. Dmitry Sabanin said 1 day later:

    There’s not much code of ours there. We’re using official Ruby library for Basecamp API, made by 37signals.

    Our code right now is mostly wrapper around this and a couple of hooks to integrate with our existing application. It’s simple.

    Ruby library for Basecamp is really cool and easy to use. In best Ruby traditions.

    I’m working on refactoring it into plugin though. I’d really love to have basecamp remote entities as a regular model objects in my applications.

    RemoteRecord::Base anyone?

  7. Chris Anderson said 2 days later:

    I’d really like to see a SVN bot!!!

    getting all those svn emails gone would go a long way toward making my day.

  8. Grant said 7 days later:

    I saw some SVN hook scripts in the forums – take a look.

(leave url/email »)

   Preview comment