When I initially joined GRIN (we’re hiring!) as a software developer working remotely, I was involved in a lot of different Zoom meetings.
I generally like to have my Slack status reflect my availability, but at the same time I don’t want to manually change it frequently.
I began to do some research and discovered using some different tools, that it was possible to automate updating my Slack status whenever I joined a Zoom meeting.
A few of my colleagues asked me if I was doing something manually or knowing me, that there was a chance I wasn’t… and I am now sharing my setup to help others get the same workflow working.
There are a few required pre-requisites. First of all, this setup assumes you are using a computer running MacOS. Your Slack workspace also must have the
:zoom: emoji registered in order for the API calls to work as well. With that in mind, let’s get started!
HammerSpoon is an automation app for MacOS which is able to control applications like Zoom.
$ brew install --cask hammerspoon
Launch the Hammerspoon application to ensure it creates the required user directory paths the first time it is ran.
Ensure HammerSpoon is allowed permission on the machine to monitor the Zoom application by enabling it under
System Preferences >
Security & Privacy >
2. Setup Slack
Slack Application Registration
We’ll be setting up a script that calls the Slack API in order to update our status for us when executed. In order to make API calls to Slack, we need to create a new developer application.
If you are in an organization you can probably share the application with your entire Slack workspace and then have a unique User OAuth Token per user that installs it. This may be a follow up post in the future if there is interest.
Slack Application Configuration
We need to configure our application’s permissions which allows us to performs certain operations on behalf of a user. Copy the
User Token Scopes setup below.
Then we need to generate a
User OAuth Token which we will be using later on, so keep note of it someplace safe, like a sticky note on your desk by your password 😂.
3. Configure Slack Status Updater
The Bash script we will be using that will be called via HammerSpoon needs to get installed and configured. To do this run the following commands to set it up:
$ mkdir -p ~/bin $ curl -L https://api.github.com/repos/mivok/slack_status_updater/tarball -o ~/bin/slack_status.tar.gz $ mkdir -p /tmp/slack_status $ tar --strip=1 -xzf ~/bin/slack_status.tar.gz -C /tmp/slack_status $ rm -f ~/bin/slack_status.tar.gz $ mv /tmp/slack_status/slack_status.sh ~/bin/slack_status.sh $ slack_status.sh setup
3. Configure HammerSpoon
$ curl -L https://raw.githubusercontent.com/mivok/slack_status_updater/master/helpers/zoom_detect.lua -o ~/.hammerspoon/zoom_detect.lua $ echo 'local zoom_detect = require("zoom_detect")' > ~/.hammerspoon/init.lua
Next you need to click on the HammerSpoon icon in the menu bar and choose
Now you should be able to test by joining a Zoom meeting and seeing if your Slack status changes. HammerSpoon will show a desktop notification and if it all works then it is party time! 🎉
If you have an issue, check the HammerSpoon console for log messages which you can find under the menu bar >