How to Set Up Zoom in Mattermost: Step-by-Step Guide
Step-by-step guide to installing and configuring Zoom in Mattermost. Create OAuth apps, start instant and scheduled meetings, troubleshoot common errors.
- Install the Mattermost Zoom plugin from the Marketplace, then create an OAuth app in your Zoom account and paste its credentials into System Console.
- Use
/zoom startfor instant meetings and/zoom scheduleto book meetings in advance; recordings auto-post to the channel if you enable auto-save. - Restrict meeting creation to specific channels in the plugin settings to prevent spam and keep sensitive conversations off Zoom.
- If your team rarely needs meetings, use Mattermost Calls (built-in) instead; for privacy, consider Jitsi Meet.
Mattermost's Zoom plugin lets you start and join Zoom meetings directly from your channels. This guide walks you through the setup, from creating an OAuth app to your first meeting.
What Is the Mattermost Zoom Plugin?
The Mattermost Zoom plugin connects your Mattermost instance to Zoom so users can launch meetings without leaving the chat. You get slash commands like /zoom schedule and /zoom start that create meetings on the fly, store recordings in Mattermost after they end, and let you restrict who can create meetings by channel.
The plugin is maintained by the Mattermost team, has 111 GitHub stars, and is available free on the Mattermost Marketplace. It works on both cloud-hosted and self-hosted Mattermost instances. The trade-off: setup requires a Zoom account, OAuth app creation, and System Console access. If your team uses Zoom Pro or above, you get full access to scheduled meetings, instant meetings, and recordings. Free Zoom accounts can use instant meetings only.
Prerequisites: What You Need Before Setup
Before you install the plugin, gather these prerequisites:
- Admin access to Mattermost: You must have System Console rights to install plugins and configure OAuth settings. If you use managed Mattermost hosting like Opsily, your hosting team can do this for you.
- Zoom account with admin permissions: You need to create an OAuth app in your Zoom account. This requires Zoom account admin access; standard Zoom users cannot create OAuth apps.
- A Mattermost workspace: This works on both self-hosted and cloud-hosted versions. Mattermost 5.30 or later is required.
- Browser access: You will navigate the Mattermost System Console and Zoom App Marketplace. Clear browser cache before you start if you hit CORS errors.
- User eligibility: Mattermost users must have their Zoom account linked to use the plugin. The first time they run
/zoom schedule, they authenticate with Zoom.
The entire setup takes 15-20 minutes if you have these prerequisites in place.
Step 1: Create a Zoom OAuth App
The first step is creating a Zoom OAuth application. This gives Mattermost permission to create and manage Zoom meetings on your behalf.
- Log in to the Zoom App Marketplace at https://marketplace.zoom.us/.
- Click "Develop" in the top-right corner, then "Build App".
- Select "OAuth" as the app type. Zoom will ask if you want to create an account-level or user-level app. Choose Account-level so the app works for all users in your Zoom account.
- Fill in the app name (e.g., "Mattermost Integration"), choose your account, and click "Create".
- On the app credentials page, copy three values: Client ID, Client Secret, and the Redirect URI (you will set this in Mattermost next).
- Under Redirect URI, add:
https://<YOUR_MATTERMOST_DOMAIN>/plugins/com.mattermost.zoom/oauth/complete. Replace<YOUR_MATTERMOST_DOMAIN>with your actual domain (e.g.,chat.yourcompany.com). - Click "Save" on the Zoom side.
Common error: "Application not found" when linking. This happens if your Redirect URI does not match exactly. Check for trailing slashes, HTTP vs. HTTPS, and domain spelling. Zoom is strict about the match.
Keep the Client ID and Secret handy. You will paste them into Mattermost in the next step.
Step 2: Install the Zoom Plugin in Mattermost
Now you install the plugin from the Mattermost Marketplace.
- Log in to your Mattermost instance as an admin.
- Go to the System Console (top-right menu, select "System Console").
- Navigate to Plugins > Marketplace in the left sidebar.
- Search for "Zoom" in the search box.
- Click on the Zoom plugin tile and select Install.
- Wait for the plugin to download and activate. You should see a green "Installed" status. If the install fails, check your Mattermost server logs for permission errors.
- Return to Plugins > Management and verify the Zoom plugin is listed and enabled (toggle switch is on).
If you are on Mattermost Cloud, the plugin may be pre-installed. Check the Management page first. If it is not there, it may not be available on your plan; contact your cloud provider.
Step 3: Configure the Plugin
Now paste your OAuth credentials and configure the plugin behavior.
- In the System Console, go to Plugins > Zoom (you should see a "Zoom" option now that the plugin is installed).
- Paste your Client ID and Client Secret from the Zoom OAuth app into the corresponding fields.
- Set the Redirect URI again, matching exactly what you entered in Zoom:
https://<YOUR_MATTERMOST_DOMAIN>/plugins/com.mattermost.zoom/oauth/complete. - Enable "Require Meeting Title" if you want users to name every meeting (recommended for audit trails).
- Enable "Require Instant Meeting Topic" if instant meetings should have a subject (useful for tracking).
- Set "Restrict Meeting Creation to Specific Channels" if you want to limit who can create meetings. For example, restrict to channels starting with "all-hands" or "client-calls".
- Decide whether to enable "Save Zoom Recordings to Mattermost". If enabled, recordings post automatically to the channel where the meeting was started. This requires your Zoom account to have recording enabled.
- Save your configuration.
- Test it: Have a non-admin user type
/zoom startin any channel. They should see a prompt to authorize Zoom on first use. If they get an "OAuth app not found" error, double-check your Client ID and Redirect URI.
Common errors here: OAuth app not found (mismatched Redirect URI), or instant meetings disabled (your Zoom plan may not allow instant meetings; check your Zoom account settings).
How to Use: Starting Meetings in Channels
Once configured, Mattermost users can start and schedule Zoom meetings with two slash commands.
Instant Meetings:
Any user can type /zoom start to create an instant Zoom meeting. The meeting link posts to the channel immediately, and all channel members can join. Instant meetings are limited by your Zoom plan; free Zoom accounts can have up to 40 minutes with 3+ participants, or unlimited 1-on-1 calls. Pro Zoom accounts have no time limit. The channel can see the meeting recording if you enable auto-save.
Scheduled Meetings:
Users type /zoom schedule to open a dialog where they set a date, time, title, and description. Mattermost creates the meeting in their Zoom account and posts a card to the channel with the meeting link and calendar invite. This requires the user's Zoom account to have scheduling permission (Pro or higher, or Zoom with Mattermost SSO enabled).
Channel Subscriptions: If you want a recurring meeting, users can enable channel subscriptions. When a Zoom meeting is posted to a channel, members can click "Subscribe" to get a reminder and an invite when the meeting starts. This is opt-in per user.
Recordings: Zoom recordings automatically post to the channel where the meeting started if auto-save is enabled. Users can comment on the recording or download it from the Zoom link in Mattermost.
Tip: Encourage users to use /zoom schedule for planned meetings (one-off or recurring) and /zoom start only for urgent ad-hoc calls. This keeps your Zoom dashboard organized and makes it easier to track recurring meetings.
Alternatives to Zoom: Mattermost Calls vs. Jitsi
Zoom is powerful but adds complexity and cost. Mattermost offers two alternatives you should consider.
Mattermost Calls (Built-In): Mattermost 7.0+ includes built-in voice and screen-share in channels. No setup needed, no third-party account required, and it is included with your Mattermost license. Calls are simple: click the phone icon in a channel, and anyone in the channel joins your audio. Limitations: Calls do not record natively, have no waiting room or meeting controls, and may have latency issues over slow networks. Best for: quick team syncs and 1-on-1 calls under 30 minutes.
Jitsi Meet (Self-Hosted Alternative): Jitsi is an open-source video platform. You can self-host it or use the public instance at jitsi.org. Mattermost has a Jitsi plugin in the Marketplace. Jitsi is free forever, GDPR-compliant, and offers no-signup access (send a link, anyone joins). Limitations: self-hosting requires infrastructure; the public instance has no SLA; meetings can feel laggy with 20+ participants. Best for: privacy-sensitive teams, cost-conscious orgs, or as a backup to Zoom.
Cost Comparison:
- Zoom Pro: $15.99 per user per month (or free with 40-minute limit).
- Mattermost Calls: included in your Mattermost license (no extra cost).
- Jitsi self-hosted: free (but infrastructure cost if you run your own server).
When to Use Each: Use Zoom if your team is already on Zoom, meetings need recordings, or you require advanced features like waiting rooms and meeting scheduling. Use Mattermost Calls for quick internal sync-ups. Use Jitsi if data privacy is critical or you want zero vendor lock-in.
Troubleshooting & Best Practices
Common Errors:
"OAuth application not found": Your Redirect URI does not match exactly between Zoom and Mattermost. Check for trailing slashes, domain spelling, and HTTPS. Clear your browser cache and try again.
"Invalid meeting ID": This happens if a meeting link expires or the Zoom account no longer has permission. Ask the user to reauthorize by clicking their avatar, going to Profile, and selecting "Reauthorize with Zoom". Then they can start a new meeting.
"Instant meeting creation is disabled": Your Zoom account does not allow instant meetings. Check your Zoom account settings under "In Meeting (Basic)" and enable "Instant Meetings". This is a Zoom setting, not a Mattermost setting.
"Permission Denied" when installing the plugin: Your Mattermost admin account does not have plugin management rights. Contact your server owner or hosting provider.
Best Practices:
-
Restrict meeting creation: Use the "Restrict Meeting Creation to Specific Channels" setting to limit Zoom meetings to designated channels like "all-hands" or "sales-calls". This prevents meeting spam and keeps sensitive conversations off Zoom.
-
Require meeting titles: Enable "Require Meeting Title" so every meeting has a subject. This makes it easier to find recordings later and keeps your Zoom dashboard organized.
-
Audit meeting use: Ask your Zoom account admin to pull monthly reports on meeting usage. Track how many meetings are scheduled, average duration, and who is hosting. This helps you decide if Zoom is worth the cost.
-
Link Zoom accounts correctly: The first time a user runs
/zoom schedule, they are prompted to authorize Zoom. This is a one-time step. If they have multiple Zoom accounts (personal and work), make sure they authorize the correct one. -
Set recordings to auto-save: Enable Zoom's "Auto Record" setting and the Mattermost "Save Zoom Recordings to Mattermost" option. This keeps recordings in your Mattermost workspace so team members can search and review them without logging into Zoom.
-
Test with a small group first: Before rolling out to the whole company, have 5-10 users test the plugin in a dedicated channel. Gather feedback on lag, audio quality, and ease of use. Fix issues before full rollout.
Frequently Asked Questions
Can users start Zoom meetings without a Zoom account?
No. Each Mattermost user must have a Zoom account (even a free one) to schedule or start meetings. The first time they run /zoom start or /zoom schedule, they see a prompt to authorize their Zoom account with Mattermost. Free Zoom accounts can use instant meetings (40-minute limit) but cannot schedule meetings in advance.
Do Zoom recordings automatically show up in Mattermost? Only if you enable "Save Zoom Recordings to Mattermost" in the plugin settings. When enabled, Zoom automatically uploads the recording to the channel where the meeting was started within 30 minutes of the meeting ending. If disabled, recordings stay only in your Zoom account.
What is the difference between /zoom start and /zoom schedule?
/zoom start creates an instant Zoom meeting that starts immediately. All channel members see the link and can join right away. /zoom schedule opens a dialog where you pick a date, time, and title. Mattermost posts a calendar invite to the channel, and the meeting happens at the scheduled time.
Can we restrict Zoom meetings to certain channels? Yes. In the plugin settings, enable "Restrict Meeting Creation to Specific Channels" and list the channel names (or patterns) where users can create meetings. For example, entering "all-hands,client-calls" allows meetings only in those channels.
Does the Zoom plugin support SSO (Single Sign-On)? Yes. If your Mattermost uses SAML or OAuth SSO, users can link their Zoom account the same way. When you set up Zoom OAuth, Mattermost passes the user's email, and Zoom matches it to their Zoom account (if it exists). This avoids duplicate logins.
What if our Mattermost is self-hosted? Does the plugin still work? Yes. Self-hosted Mattermost instances can use the Zoom plugin. You must have the latest plugin version from the Mattermost Marketplace. If you run an air-gapped (offline) Mattermost, you will need to manually download the plugin from GitHub and install it.
Can we use Zoom and Mattermost Calls at the same time? Yes. Both can be enabled. Users choose which to use. Mattermost Calls is simpler and faster for quick calls; Zoom is better for scheduled meetings and recordings.
The Bottom Line
Setting up Zoom in Mattermost takes less than 20 minutes and gives your team a simple way to start video meetings from chat. The plugin integrates OAuth so users authorize Zoom once, then use /zoom start or /zoom schedule to create meetings. Mattermost records them automatically if you enable auto-save. The trade-off: you need Zoom accounts (free or paid) and admin access to configure the OAuth app. If your team is small and rarely has meetings, Mattermost's built-in Calls feature may be enough. If your team relies on Zoom for client calls or needs recordings, the plugin is worth the setup. For help managing your Mattermost infrastructure, check out Opsily's managed Mattermost hosting -- it handles plugin setup and updates for you.