Sunday, May 18, 2014

Meet Stuart. A Slack love child.

We’ve been using Slack at Propeller for about six months now. And like most teams, we love it. Lots of folks have have written about why they love it and we enjoy it for all of the same reasons. Less email. More transparency. And more collaboration.

But what I love the most are the integrations. The list of integrations is growing every day and they’ve made them as easy as hotdogs to setup. Github, Google Docs and Trello are my favorite stock integrations. However, the glue that is the most compelling are the open ended ones - inbound and outbound webhooks and custom slash commands. You can connect these to do anything your imagination can dream up.


I’ve used each of these to do a variety of hacks to both trash talk and educate the team. While powerful, it can turn into a random Lego project after a bit of time with pieces bolted on in all sorts of forms. I wanted an extensible bot framework that was just as easy to setup and extend as the native integrations inside of Slack.

I set out to fix this. Stuart was born and he lives in a Node.js server.

By himself, Stuart won’t do anything. He does make it a snap to plug in directly to your Slack instance by writing only two functions for bi-directional communication with your team, and only one function if you’d like to inject messages into the conversation from the background.

Slash command integration

Your team can talk to Stuart through his slash command, /stuart. You can add new functions to his slash command by defining the definition in the plugins.json spec and writing two functions - run() and help().

For example,
/stuart conference
/stuart conference 37821 

… will dynamically create a Twilio conference room for you. You can customize the passcode as well and Stuart will shutdown the line for you a week later.

Stuart will even give you lunch recommendations using Yelp,       /stuart food pizza


Cron - automated background tasks

The Cron tasks make it really easy to do background tasks and push result into the team’s conversations. Reporting the morning weather is a simple example, but it’s easy to build custom tasks that tie into your own back end.

For example, at the start of each week, Stuart reports in on the trend for new accounts being created inside Propeller. He also shares statistics about how many people interacted with the weekly email, how many users are syncing their sensors with Apple v. Android, and how our awesome new sensor is performing.

The potential integrations are boundless for your team. And it only takes two functions to extend him.

Get started.

Update : I failed to mention Stuart's bonus feature. If you connect the Twilio integration, you can talk to your team with the Stuart persona by sending him text messages. He'll also update you with messages in the event someone mentions his name.


2 comments: