Slack Bot

Summary

What could be better than Elixir and Slack? Our original internal Slack bot was showing signs of age so we undertook creating a new bot that would leverage Elixir’s lightweight asynchronous threads to quickly and efficiently interact with our favorite messaging service, Slack. We’ve used the framework for everything from time tracking to meeting managing, all from within Slack.

The Objectives

  • We wanted to evaluate Elixir to see how it performed.
  • Team members needed updated communication tools.
  • We wanted ticket reporting and status on the fly.
  • We wanted time information about what everyone was working on.
  • Users would be able to see and join upcoming meetings at the touch of a button from Slack.

Technical Details

Our new Slack bot was Built in Elixir, and talks with Slacks RTM API to keep the team up to date with meetings, tickets and time worked. We pull in data from our internal planning tools to help keep everyone working on the highest priority tasks.

We use Ecto.Query to pull in data from our apps that use databases in both Mongo and SQL. Having a wrapper keeps things secure, and makes managing data from multiple sources a bit easier.

We started with a simple weather bot but now are pulling in data from all of our operations tools, allowing us access to everything from JIRA to our team dashboard to Toggl.