July 10, 2012

Using Hipchat as your Company Lifestream

When we first started Contactually, we were a ragtag distributed team. Two of the co-founders were working together at another company, and a third had a full time job. While we all had other commitments, we wanted to keep in touch over the course of the day. I've worked with dozens of different chat services in the past, but I happened to have picked up an AppSumo deal for 6 months of HipChat. Beyond being a great service that we put all of our team on (up to 10 now), they have a very simple and powerful API.

With an exposed API, that allowed us to turn a normal chat service into the core lifestream of our company. Onboarding a new team member is much easier, as they can easily see what happens in a day in Hipchat, and get a sense for what everyone is working on. It also happens to work as a great audit log of everything that has happened in our organization, as we can scroll back in time and see the past day/week/month of activity (useful if someone has been out all day or on vacation). Here is how we've overloaded it, and how it makes a difference.

Keeping Developers in Sync

We set up Heroku's deploy hooks to post a message to our Engineering room whenever a developer deploys to our production or staging system. We also have GitHub post messages whenever an engineer pushes anything to our repository. This allows our development team to, at a moment's notice, see what each other is up to and communicate potential issues. I can see when a new version has been deployed and take a look at it.

Tracking Product Improvements and Notes

By connecting Pivotal Tracker, which we use for story management, our whole team can see what stories have been added, who is working on what at any moment, and see when things are completed.We also connected our Evernote account, so whenever a new note is created (like user feedback, competitive notes, etc).

Getting the App to Talk to You

If all these external services are posting in your chat room, why can't your own app? Having the API is useful, but having libraries in a number of different languages makes integration a snap. We have the our primary application post messages whenever a particular user account needs attention, when there is something to review on an internal dashboard, or with occasional stats.

Our favorite and most powerful addition is posting whenever a user upgrades into the chat room. This ends up being a lot of fun, as it's always cause for a mini celebration, and great feedback for the team.


How do you get your team all in one room?