Update your Slack status automatically when you join a Zoom meeting.
- a Zoom App
- a Slack App
- and a Vercel account
Make sure you have vercel
and all dependencies installed.
npm i -g vercel@latest
yarn install # or npm install
yarn test
- Create a vercel account
- Run
vercel login
(login with your vercel account) in your terminal - Create a project (either in the Browser) or with the CLI (see Step 5 below).
- Create a Slack App for your workspace(s)
- Grant each Slack app the
users.profile:write
anddnd:write
privilege inUser Token Scopes
in theOAuth & Permissions
view, before clicking on the "Install App" button. - Copy and paste each Slack app's
OAuth Access Token
into the configuration file created in the subsequent step.
- Duplicate slack-status-config-example.js
and rename it to
slack-status-config.js
. Do the same with.env.example
and rename it to.env
. This should happen automatically thanks to apostinstall
script. - Now you have to create a config object for each slack workspace you want to update when a Zoom meeting starts. In the next step you will get to know how to add environment variables (for your tokens)
Do not copy and paste your Slack app and other tokens into the
slack-status-config.js
directly. Instead set up
environment variables on Vercel.
- Step 1 - Open the Project Settings of your Vercel app and select "Environment Variables".
- Step 2 - Choose between a Plaintext or Secret for the tokens. I recommend you set up and use Secret. Because they are encrypted. Remember the name of the Environment variable and add it to the respective workspace in the configuration file.
- Step 3 - Now add the Environment variable (e.g.
process.env.<enviroment variable name>
) to your configuration file
{
name: 'Slack Workspace 1',
token: process.env.SLACK_TOKEN,
// see Step 6 for more details about how to obtain this token
zoomVerificationToken: process.env.VERIFICATION_TOKEN,
// other configuration settings
}
You can add as many Slack workspaces as you want here, just make sure you have created a Slack app for each workspace.
Here ist the example configuration.
# 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? ./
vercel
This will guide you through the process of creating and deploying the project. Remember the created Deployment URL. You are going to need it in the next step for the ZOOM app.
You find the deployment URL in your Project under the "Deployments" tab (example URL: https://vercel.com/username/projectname/deployments) or in the "Settings" tab and then "Domains" (https://vercel.com/username/projectname/settings/domains)).
Make sure you select the one that looks like: https://projectname.now.sh/,
whereas projectname
is the name of your project. This will point to the latest
deployed version of your app. If you choose another URL you would need to update
Zoom (see Step 6) after each deployment.
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. Once you have deployed the
app to now.sh (in a later step) you can add the
Event notification endpoint URL
.
The Verification Token
is also visible on this page, you need to add this to
the app configuration in the next step.
You can read more about it setting up the App here.
Add the generated vercel URL from Step 5 as your
Event notification endpoint URL
.
A verification token will be generated in the Feature page after you enable and save the event subscription. This token can be used to validate the POST requests that are sent by Zoom to your event notification endpoint URL. (source)
Get this verification token and add it to the configuration file, see Step 3.
Now, open both Zoom and Slack and watch the status change when you start or join a meeting.
You do not need a second account for that. Open Zoom, start a new meeting and you should see the new status on Slack.
# deploy to vercel
vercel
# remove previous deployments
vercel your-app --safe --yes
# deploy and remove previous builds
vercel && vercel rm your-app --safe --yes
# list all deployments
vercel 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 🤔 💻 |
Ruben Burr 💻 |
This project follows the all-contributors specification. Contributions of any kind welcome!