Community · Slack App

GTM Ctrl

Interact with club services from Slack
Go
REST
GCP

About

In 2019 our club of merry motorhead misfits at Gran Touring Motorsports upgraded our tech in a big way. We built a new website, became a real corporate entity, and migrated our mind boggling number of chats (from 60+ people) from Google Hangouts, Facebook Messenger, SMS, and email lists to Slack. I was in charge of getting people up to speed and familiar with Slack as I was the one leading the migration effort and had lots of experience using and writing apps for Slack at Qntfy.

One of the common threads across our chats and real life conversations was the notion of awarding or taking away "points" from people for various reasons. The origin story of how this points game came to be is contested and clouded in mystery, but its all done in the name of schenanigans and fun.

Points can be awarded anonymously on the club's website to any member for any reason and at the end of each year we hand out a trophy to the member with the greatest total. Since most points are awarded during our discussions online, I saw an opportunity to build a Slack app to increase engagement by enabling participation in the game as conversations were unfolding.

Awarding points using the message action

The app exposes both a /points command and a message action that members can use to open a dialog containing the the form to submit points. Since message actions have access to the context of the message, the reason field within the dialog is automatically filled with the message content.

The points dialog

Learning how to play the game using the help menu

The slash command also includes documentation on the game and helpful links to the website via the /points help subcommand. All data for the game is stored and hosted by the club's website which also hosts the API that GTM Ctrl communicates with to administer the game.

Finally, the app itself was built in a modular way to encourage and enable the creation of future Slack and CLI integrations for club services, games, and more. Our club's primary method of communication is Slack and we have other services like classifieds, a blog, merchandise, and events which could easily be extended into Slack. I had a lot of fun building this in under a week and look forward to adding to it in the future!