Update your Slack status automatically when you join a Zoom meeting.
- a Zoom App
- a Slack App
- and a ZEIT account
First, make sure you have now
and all dependencies installed.
npm install -g now
yarn # or npm i
- Create a ZEIT account
- Run
now login
(login with your ZEIT account) in your terminal
- Create a Slack App for your workspace(s)
- Grant each app the
users.profile:write
privilege inUser Token Scopes
in theOAuth Tokens & Redirect URLs
view, before clicking on the "Install App" button. - Copy and paste each
OAuth Access Token
into the configuration file created in the subsequent step.
- Duplicate the example config and rename
it to
slack-status-config.js
. This should happen automatically thanks to apostinstall
script. - Create a config object for each slack workspace you want to update when a Zoom meeting starts.
You can either use now secret
for the token values, or copy the token string
right into the workspace config. I used the secret option described below:
When working with now secret
you need to do the following for each secret (aka Slack app token):
Step 1 - create a secret
now secret add SLACK_TOKEN_1 "xoxp-xxx-xxx"
Step 2 - add the secret to now.json
"env": {
"SLACK_TOKEN_1": "@slack_token_1"
}
Step 3 - add process.env.<secret name>
to your configuration file
{
name: 'Slack Workspace 1',
token: process.env.SLACK_TOKEN_1,
...
}
You can add as many slack workspaces as you want here, just make sure you have created an app for each of them.
module.exports = [
{
// this name can be anything and is only for you, it is not used in the app
name: 'Slack Workspace 1',
// either copy & paste the token string here or use
// process.env.SLACK_TOKEN_1 (now secret add SLACK_TOKEN_1 "xoxp-xxx-xxx")
token: 'xoxp-xxx-xxx',
meetingStatus: {
text: "I'm in a meeting",
emoji: ':warning:', // emoji code
},
noMeetingStatus: {
text: '',
emoji: '',
},
},
]
# example questions when setting up the now project for the first time
# What’s your project’s name? your-app-name
# In which directory is your code located? ./
now
This will guide you through the process of creating and deploying the project to now.sh. Remember the created URL. You are going to need it in the next step for the ZOOM app.
Tip: Do not use an obvious name for your now.sh URL here, something random or other people could mess with your Slack status. 😆
Create a new (or use an existing) "Webhook Only" Zoom app with your Zoom account. Even if you added multiple Slack workspaces, you just need one Zoom app.
Fill out the required information and activate Event Subscriptions
. Add
the User’s presence status has been updated
event type and the generated
now.sh domain for Event notification endpoint URL
.
You can read more about it setting up the App here.
Now, open both Zoom and Slack and watch the status change when you start or join a meeting.
# deploy to now
now
# remove previous deployments from now.sh
now your-app --safe --yes
# deploy and remove previous builds
now && now rm your-app --safe --yes
# list all deployments
now ls
- https://github.com/cmmarslender/zoom-status
- https://github.com/mivok/slack_status_updater with hammerspoon
- https://github.com/chrisscott/ZoomSlack
- How to automatically update your Slack status with Zapier
- now.sh examples
- ZEIT ▲ now for GitHub
- Easily Deploy a Serverless Node App with ZEIT Now
- Deploying Node.js microservices to ZEIT ▲ Now
- Securing persistent environment variables using ZEIT Now
- How to set a Slack status from other apps
Thanks goes to these wonderful people (emoji key):
Stefan Natter 🤔 💻 |
This project follows the all-contributors specification. Contributions of any kind welcome!