Site iconJava PDF Blog

Making a Simple Basecamp Chatbot with NodeJS

Creating a chatbot is a fun way to integrate external tool functionality within Basecamp. I recently created one to call the Bitbucket API, allowing us to configure branch permissions on repositories from within Basecamp.

I won’t go into detail about the Bitbucket side of things (it’s a bit of a niche use case!), but I will show you how easy it was to connect this up to Basecamp.

Prerequisites:

The Basecamp API documentation is on GitHub and there is also a page specifically for chatbots if you would like to build your own.

  1. Getting Started:

    To get started you need to create a chatbot within Basecamp. To do so, go to any campfire and add /integrations to the url.

    Clicking Add a new chatbot will then take you to a page where you can give the chatbot a name, avatar, and (optional) https endpoint to send commands.

    Chatbots work both ways – you can have them automatically send messages to campfires (but not pings) such as when a critical service goes down, or you can make them interactive and have them answer to specific commands from a campfire or direct ping.

  2. The Code:

    Here is some example code that uses the standard https module. There is a little extra complexity with setting up an interactive chatbot as you are required to use an https endpoint (which means that you will need to configure SSL).
    The example below listens on port 8000, and responds to the command hello.

  3. Using the Chatbot:

    You can now call the chatbot using !name in a campfire, or by pinging the chatbot directly.