For Quack Hack 2015, Andrew and I formed a two-man team to create ‘Brace’. Our Slack integration – combined with a Mac menu bar app – allows our staff to set their current location, find others and look up their phone extension with ease. Here, I’ll run you through the production process.  

The Challenge

Recently, we switched the entire office over to Slack. Freed from email overload, this messaging app means we can collaborate and communicate efficiently with each other. When your team sends over 10k messages every week, organising and storing search-able project discussions by channel is a life saver.

But, no solution is perfect. Before the hack, we identified two connected office problems, amplified by the opening of our new London location this year. Every day marked a deluge of messages in our general Slack channel, with team members notifying us of their location: from switching between offices, to working from home or with a client. Although knowing everyone’s location is important, this wasn’t the best way to do it. Other messages soon took over the channel, and the team were unlikely to head here and scroll up to find their colleague. 

slack posts

We receive a deluge of location messages a day – and needed something better to track everyone. 

An issue with our internal phone extension codes was connected to this. For making (or transferring) calls, the numbers could only be found on printed sheets or on our internal Wikipedia’s directory page. Both were frequently out-of-date.

So, Andrew and I were determined to find a solution for this year’s Quack Hack. We aimed to make it easy to find each other – but reduce the number of daily Slack notifications we receive – and provide up-to-date, accessible extension numbers.

Production Process

Customising Slack means it can help with even more than message management. We already take advantage of integration with plenty of business tools, from commits with GitHub to task management with Trello.

So, we decided to create a Slack integration that could streamline how we share location updates. It would help our staff set where they are and look up others. This hack was partly inspired by our desire to try out this technology. Andrew was also interested in experimenting with Electron, a great framework to code cross-platform desktop apps. For even easier access, we wanted to build and push this location (and extension) data into a Mac menu bar app. 

Our dual approach was relatively simple. Andrew was to design and build the menu bar app, and I managed the Slack integration and back-end server. However, the actual process wasn’t as black and white. Moving beyond both of our daily roles, Andrew required my help with some of the programming aspects; in turn, I needed his UX expertise to determine the logic. We explored how a slash (/) command from Slack should translate into a location, and defined the out the system behaviour if a user doesn’t provide their extension.

For development, I built a Laravel back-end server that stores all our data. Slack could read from and push commands (location updates) to this server. For the Mac app, Electron could only extract location and latest phone numbers. Later, we adjusted this model to have Electron update in real time; integrating Pusher meant any updates to the Laravel server are pushed straight to the app.  

Brace tech

The full stack of technologies used to develop our Slack integration. 

Final App: Brace

Our final app was named ‘Brace’, as the collective term for a group of ducks on ground is quite appropriate for our team. The data is pushed into our Mac app live, and our users can now use the following commands on Slack:

brace command

/location <where> [ex. <num>]: setting where you are, and optional addition of phone extension.

brace response

/locate <name>: returns where somewhere is, their extension and when the data was set.

By the end of the Hackathon, we even added additional features to the original project scope. Brace now stores a list of default locations and extensions for users, which match our team’s core office. This means we don’t even have to manually enter our location, unless we move. This list is automatically reset every night.

Outcome

Unfortunately, we came a very close last place in the competition – but Brace was the app that everyone wanted to use on Monday morning! Our team has been using the Slack integration on a daily basis. But, we hit an issue with transferring the menu bar app between computers, which we hope to resolve soon. 

Since the hack, we have added additional functionalities that allow people to set themselves as ‘on holiday’ for a set amount of time. This keeps Brace from automatically resetting their location status until they return. There are plans for more features, such as integration with our HR software to automatically mark people as on holiday or sick.

We are considering open-sourcing our Slack location slash command on GitHub – sharing with other organisations and companies, and for others to contribute configurations. Like our Hack? Let us know if you’re interested – and find out how we can hack your business growth.