The Zoom app for Slack handles meetings (/zoom), but Zoom Phone notifications — missed calls, voicemails, completed calls — require a separate integration. This guide covers two approaches: a no-code Zapier setup and a custom webhook solution.
For the full Zoom + Slack integration, see the Complete Guide to Zoom and Slack.
Prerequisites
- Zoom Phone license
- Zoom app for Slack installed — see installation guide
- Zapier account (for Option 1) or development resources (for Option 2)
Option 1: Zapier (No-Code)
Voicemail Notifications
- Sign in to Zapier.
- Click Create Zap.
- Trigger: Search for Zoom > select New Voicemail.
- Connect your Zoom account (requires admin-level OAuth).
- Action: Search for Slack > select Send Channel Message.
- Connect your Slack workspace.
- Configure the message:
| Field | Value |
|---|---|
| Channel | Select your notifications channel (e.g., #phone-notifications) |
| Message Text | New voicemail from {{caller_name}} ({{caller_number}}) — {{duration}} seconds |
| Bot Name | Zoom Phone |
| Bot Icon | Use a phone emoji or Zoom logo URL |
- Test and enable the Zap.
Missed Call Notifications
- Create another Zap.
- Trigger: Zoom > New Call Log (filter for missed calls).
- Add a Filter step:
resultequalsmissedorno_answer. - Action: Slack > Send Channel Message.
- Configure:
Missed call from {{caller_name}} ({{caller_number}}) at {{start_time}}.
Channel Routing
Add filter steps to route different call types to different channels:
| Condition | Slack Channel |
|---|---|
| Called number contains “sales” | #sales-calls |
| Called number contains “support” | #support-calls |
| Call queue = “Main Line” | #reception |
| After hours (time filter) | #after-hours-calls |
Option 2: Custom Webhook Integration
For more control and no third-party dependency.
Step 1: Create a Slack Incoming Webhook
- Go to your Slack workspace > Apps > Incoming WebHooks (or create a Slack app with incoming webhook capability).
- Choose the channel for notifications.
- Copy the webhook URL (e.g.,
https://hooks.slack.com/services/T.../B.../xxx).
Step 2: Create a Zoom Webhook App
- Go to the Zoom App Marketplace > Develop > Build App.
- Choose Webhook Only app type.
- Under Event Subscriptions, add a subscription.
- Subscribe to events:
phone.voicemail_received— new voicemailphone.callee_missed— missed callphone.caller_call_log_completed— call completed
- Set the Notification endpoint URL to your middleware (see Step 3).
- Activate the app.
Step 3: Build Middleware
Create a small service (AWS Lambda, Google Cloud Function, Cloudflare Worker, etc.) that:
- Receives the Zoom webhook payload
- Extracts caller info, call type, duration, timestamp
- Formats a Slack message block
- Posts to the Slack incoming webhook URL
Key fields from Zoom webhook payload:
| Field | Event | Description |
|---|---|---|
caller_name | All | Caller display name |
caller_number | All | Caller phone number |
callee_name | All | Who was called |
callee_number | All | Extension or number called |
duration | voicemail, call_log | Duration in seconds |
start_time | call_log | When the call started |
result | call_log | answered, missed, voicemail, no_answer |
Step 4: Format Slack Messages
Use Slack Block Kit for rich formatting:
Voicemail notification example:
- Title: “New Voicemail”
- Fields: From (name + number), To (extension), Duration, Received at
- Action button: “Listen in Zoom” (link to Zoom Phone voicemail)
Missed call notification example:
- Title: “Missed Call”
- Fields: From (name + number), To (extension), Time
- Action button: “Call Back” (zoom phone deep link)
Notification Types
| Event | Use Case | Recommended Channel |
|---|---|---|
| Voicemail received | Alert team to new voicemails requiring callback | Team or individual DM |
| Missed call | Track missed calls for SLA monitoring | Team channel |
| Call completed | Log all call activity for reporting | Dedicated #call-log channel |
| After-hours call | Alert on-call team when calls come in outside business hours | #on-call channel |
Common Issues
- Zapier not triggering on Zoom Phone events — Zoom Phone webhook events require admin-level OAuth scopes. The Zoom account connected in Zapier must be an admin account, not a regular user account.
- Duplicate notifications — If you have both Zapier and custom webhooks pointing to the same events, you’ll get duplicates. Use one approach, not both.
- Caller name showing as “Unknown” — Zoom Phone may not have the caller’s name if they’re not in your contacts. The phone number will always be available. Consider adding a contact lookup step in your automation.
- Notifications delayed — Zoom webhooks have a small delivery delay (usually seconds, occasionally up to a minute). Zapier adds its own polling interval on top of that. For near-real-time notifications, use the custom webhook approach.
- Slack webhook URL stopped working — Slack incoming webhooks can be deactivated if the associated Slack app is removed or the channel is deleted. Verify the webhook is still active in your Slack app settings.