Connect Zoom to Mattermost#
Available on all plans
Cloud and self-hosted deployments
Reduce friction and time lost to coordinating meetings and switching between apps by integrating Zoom with Mattermost. Make it easy for your teams to start both spontaneous video calls directly from Mattermost channels.
Setup#
Setup starts in Zoom and configuration ends in Mattermost.
Register an OAuth app in Zoom#
A Zoom system admin must perform the following steps in Zoom.
Zoom supports OAuth authentication, and there are 2 types of OAuth Zoom Apps you can register: Account-Level and User-Level. You can use either type based on your organization’s security and preferences.
Account-Level: Individual users in Mattermost are verified by checking their Mattermost email and requesting their Personal Meeting ID via the Zoom API. The user’s email address in both Mattermost and Zoom must match. Create a User Level Zoom app instead if you prefer that each user to authorize individually.
User-Managed: Individual users in Mattermost are required to authorize the Mattermost App to access their Zoom account. Create an Account-Level app instead if you prefer that an admin authorizes access on behalf of the whole Zoom organization.
Complete the following steps to create an account-level Zoom app for Mattermost.
Go to https://marketplace.zoom.us/ and log in as an admin.
In the top right, select Develop and then select Build App.
On top, select Development. We would choose Production if we were publishing to marketplace, but we won’t be doing that here.
You can edit the name of your app from top left side by clicking on edit icon.
Choose Admin-managed app as the app type.
Next you’ll find your Client ID and Client Secret. Please copy this as these will be needed when you set up Mattermost to use the plugin.
Enter a valid Redirect URL for OAuth (https://SITEURL/plugins/zoom/oauth2/complete) and add the same URL under Add Allow List. Note that SITEURL should be your Mattermost server URL.
To add user scopes to the app, select Scopes, and add the following scopes:
meeting:read:meeting:admin
,meeting:write:meeting:admin
,anduser:read:user:admin
.
Complete the following steps to create a user-managed Zoom app for Mattermost.
Go to https://marketplace.zoom.us/ and log in as an admin.
In the top right select Develop and then Build App.
On top, select Development. We would choose Production if we were publishing to marketplace, but we won’t be doing that here.
You can edit the name of your app from top left side by clicking on edit icon.
Choose User-managed app as the app type.
Next you’ll find your Client ID and Client Secret. Please copy this as these will be needed when you set up Mattermost to use the plugin.
Enter a valid Redirect URL for OAuth (https://SITEURL/plugins/zoom/oauth2/complete) and add the same URL under Add Allow List. Note that SITEURL should be your Mattermost server URL.
To add user scopes to the app, select Scopes, and add the following scopes:
meeting:read:meeting
,meeting:write:meeting
,anduser:read:user
.
Configure webhook events#
When a Zoom meeting ends, the original post shared in the channel can be automatically changed to indicate the meeting has ended and how long it lasted. To enable this functionality, create a webhook subscription in Zoom that tells the Mattermost server every time a meeting ends. The Mattermost server then updates the original Zoom message.
While editing the app in Zoom, select Access under the Features tab on the left.
Select Add New Event Subscription, and give it a name, such as
Meeting Ended
.Enter a valid Event notification endpoint URL
https://SITEURL/plugins/zoom/webhook?secret=WEBHOOKSECRET
, replacingSITEURL
with your Mattermost URL.WEBHOOKSECRET
is generated during Mattermost configuration.Select Save to save the webhook configuration.
Copy the Secret Token value at the top of the page for use in the next section.
Mattermost configuration#
A Mattermost system admin must perform the following steps in Mattermost.
Install the Zoom integration from the in-product App Marketplace:
In Mattermost, from the Product menu , select App Marketplace.
Search for or scroll to Zoom, and select Install.
Once installed, select Configure. You’ll be taken to the System Console.
On the Zoom configuration page, enable and configure Zoom interoperability as follows, and then select Save.
For self-hosted Zoom deployments, enter the Zoom URL and Zoom API URL for the Zoom server when you’re using a self-hosted private cloud or on-premises Zoom server, such as
https://YOUR-ZOOM.com
andhttps://api.YOUR-ZOOM.com/v2
respectively, replacingYOUR-ZOOM
with your Zoom server URL. Leave this field blank if you’re using Zoom’s vendor-hosted SaaS service.If you’ve created an account level Zoom app for Mattermost, set OAuth by Account Level App to true. Leave this value as false if you’ve created a user level Zoom app for Mattermost.
Connect your users to Zoom using OAuth. Enter the Client ID and Client Secret generated when registering the oauth app in Zoom.
Select Regenerate next to the At Rest Token Encryption Key field to generate an AES encryption key. You just need to generate this value, and won’t use it anywhere else.
If you’re configuring webhook events, select Regenerate next to the Webhook Secret field. This is the
WEBHOOKSECRET
value to use in your webhook URL pointing to Mattermost.Paste the Secret Token from the Zoom webhook configuration page into the plugin setting Zoom Webhook Secret.
Select Save to save your changes.
Enable#
Notify your teams that they can connect their Zoom accounts to Mattermost.
Upgrade#
We recommend updating this integration when new versions are released. Generally, updates are seamless and don’t interrupt the user experience in Mattermost. Visit the Releases page for information on the latest release, previous releases, and compatibiilty considerations.
Usage#
You need a paid Zoom account to start a Zoom call within Mattermost. The first time you create a Zoom meeting, you may be prompted to connect your account. Follow the instructions to connect your Zoom account using your credentials.
Start a call by selecting the Zoom icon in the right pane, or by running the /zoom start
slash command in any channel or thread. All channel members can then join the meeting. The meeting host is the person who started the call.
Join the meeting by selecting the call invitation in the channel.
Run the /zoom settings
slash command to set your preference for using your Zoom personal meeting ID as a meeting host. You can choose to always use your personal meeting ID, always use a new unique meeting id, or set Mattermost to prompt you for your preference each time you start a call.
Get help#
Mattermost customers can open a Mattermost support case. To report a bug, please open a GitHub issue against the Mattermost Zoom plugin repository.
For questions, feedback, and assistance, join our pubic Integrations and Apps channel on the Mattermost Community Server for assistance.
Customize#
This integration contains both a server and web app portion.
Server: Inside the
/server
directory, you’ll find the Go files that make up the server-side of the integration. Within there, build the plugin like you would any other Go application.Web App: Inside the
/webapp
directory, you will find the JS and React files that make up the client-side of the plugin. Within there, modify files and components as necessary. Test your syntax by runningnpm run build
.
Visit the Mattermost Developer Workflow and Mattermost Developer environment setup for information about developing, customizing, and extending Mattermost functionality.