Build Zoom Phone Integration
OpenAIOfficialCreated by ZoomDistributed by OpenAI
- Skill
- Tool integration
- Automation and integrations
- MIT
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill provides a systematic approach to building integrations with Zoom Phone. It covers the architectural requirements for implementing CTI, CRM dialers, and Smart Embed components. The skill emphasizes modular design, separating call control from data management, and provides guidance on handling OAuth scopes, webhook processing, and event contracts to ensure robust and maintainable phone integrations.
What it does
- Classifies integration types including REST API automation, webhooks, and Smart Embed.
- Provides architectural patterns for call handling, record management, and number management.
- Offers guidance on validating Smart Embed postMessage event contracts.
- Outlines the lifecycle for CRM-based click-to-call and call history synchronization.
- Includes troubleshooting steps for common issues like scope mismatches and permission errors.
When to use it
- When developing custom CRM dialers or CTI applications using Zoom Phone.
- When implementing Smart Embed components for embedded phone functionality.
- When setting up automated call handling workflows or webhook event processing.
- When debugging integration issues related to phone entitlements, OAuth scopes, or event payloads.
Advantages
- Promotes a modular architecture that separates call control from business logic.
- Provides clear patterns for handling complex CRM-to-Phone state mapping.
- Reduces integration errors by emphasizing pre-implementation checks for scopes and permissions.
- Offers migration-safe strategies for handling evolving API response shapes.
Usage examples
- “How do I implement a click-to-call feature in my CRM using Smart Embed?”
- The agent will guide you through rendering the Smart Embed iframe, setting up the client-side event listener for click-to-call commands, and configuring the server-side OAuth flow.
- “What is the recommended pattern for updating call handling settings via API?”
- The agent will provide a workflow to read current settings, build typed patch payloads, and apply updates for business or holiday hours while ensuring E.164 number validation.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/openai/build-zoom-phone-integration/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip build-zoom-phone-integration.zip -d .agents/skills
Documentation by Zoom
Build Zoom Phone Integration
Use this skill when the target workflow is Zoom Phone, CTI, CRM calling, call events, or Smart Embed behavior.
Workflow
Classify the integration: REST API automation, webhook event processing, Smart Embed, URI launch, CRM dialer, or call-handling workflow.
Confirm the actor, account settings, phone entitlements, and OAuth scopes before implementation.
Keep call control, call records, number management, and webhook processing as separate modules.
For Smart Embed, validate postMessage event contracts, embedding constraints, and CRM state mapping.
Debug by checking scopes, phone license, role permissions, number ownership, webhook subscriptions, and event payload shape.
References
Full preserved guide: references/full-guide.md
Architecture and lifecycle: concepts/architecture-and-lifecycle.md
Phone API service pattern: examples/phone-api-service-pattern.md
Smart Embed bridge: examples/smart-embed-postmessage-bridge.md
Event contract: references/smart-embed-event-contract.md
Common issues: troubleshooting/common-issues.md
Files
- ATTRIBUTION.mdAdded by AutoGineer880 B
- LICENSELicence file added by AutoGineer1.1 KiB
- RUNBOOK.md1.6 KiB
- SKILL.md1.4 KiB
- agents/openai.yaml145 B
- concepts/architecture-and-lifecycle.md1.4 KiB
- examples/phone-api-service-pattern.md1.3 KiB
- examples/smart-embed-postmessage-bridge.md1.2 KiB
- references/call-handling-patterns.md961 B
- references/crm-sample-validation.md1.4 KiB
- references/deprecations-and-migrations.md1.2 KiB
- references/environment-variables.md1.3 KiB
- references/forum-top-questions.md3.7 KiB
- references/full-guide.md3.8 KiB
- references/smart-embed-event-contract.md1.0 KiB
- references/source-map.md888 B
- scenarios/high-level-scenarios.md1.2 KiB
- troubleshooting/common-issues.md1.2 KiB
references/forum-top-questions.md
title: "Forum-Derived Top Questions (Phone)"
Forum-Derived Top Questions (Phone)
Use this as a checklist of the most common recent Developer Forum asks for Zoom Phone integrations.
Fast Routing Questions (Ask First)
Integration surface: Smart Embed, Phone REST API, webhooks, or URI launch (
zoomphonecall://,zoomphonesms://).App/auth type: Server-to-Server OAuth vs user OAuth, and who the token is acting as.
Account posture: Zoom Phone license assigned, user enabled, admin permissions, site/queue scope.
Exact failure: HTTP status + Zoom
code/message+ endpoint/event name + sample payload.Correlation IDs available:
call_id,call_history_uuid,call_element_id, recording ID.
Smart Embed Sign-In or Calling Fails
Common asks:
Smart Embed shows login but never completes.
Widget loads, but outbound/inbound calling does not work.
zp-make-call/search-and-match behaviors are inconsistent.
Answer pattern:
Confirm approved Smart Embed domain matches the real runtime origin exactly.
Confirm
originparameter is domain-level where required and not path-mismatched.Verify Zoom client sign-in state and account licensing prerequisites.
Add strict
postMessageorigin handling and validate event init sequence.
call_logs to call_history Migration Gaps
Common asks:
Missing fields after migrating to
call_history.Existing call analytics pipelines break after deprecation migration.
Answer pattern:
Treat migration as a schema migration, not a drop-in endpoint swap.
Build a mapping layer from legacy fields to current call history/call element fields.
Persist both legacy and new IDs during transition for reconciliation.
Update downstream reports that assumed removed fields.
Recording and Download URL Auth Errors
Common asks:
download_urlreturns 401/403.Invalid access token, does not contain scopeson recordings/transcripts.
Answer pattern:
Generate a fresh token from the app that owns the needed scopes.
Re-authorize after scope changes; verify token scope set, not just app config.
Handle redirects while preserving auth headers where needed.
Keep a fallback retry path for temporary scope/permission regressions.
"Zoom Phone Has Not Been Enabled" (2013/2031)
Common asks:
Token works for some APIs/users but Phone endpoints return not enabled.
Answer pattern:
Verify
account_idis present in S2S token request and token is from expected account.Verify target users actually have Zoom Phone entitlement.
Verify caller/admin context has permission for account-level Phone resources.
Re-test with one known-good licensed admin and one known-good licensed user.
Webhooks: Missing Events or Duplicates
Common asks:
Expected call events not received.
Missed-call events delivered more than once.
Answer pattern:
Acknowledge webhooks quickly with
200/204and process asynchronously.Implement idempotency keyed by event ID/call identifiers.
Expect retries and occasional ordering variance.
Validate event subscription scope and verify webhook logs before blaming delivery.
Correlating Calls Across APIs and Events
Common asks:
Hard to tie recordings, call path/history, and webhook events to one interaction.
Answer pattern:
Persist all call identifiers emitted at each lifecycle phase.
Build a correlation table keyed by your internal interaction ID.
Do not rely on a single identifier across all endpoints.
Pagination and Incomplete Result Sets
Common asks:
/phone/usersor call list endpoints appear to miss records.
Answer pattern:
Always iterate
next_page_tokenuntil exhausted.Keep query filters stable between page requests.
Add dedupe + page-audit logging to detect loops or repeated pages.
Requirements and compatibility
Written for: OpenAI Codex
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- Zoom
- Publisher
- OpenAI (Official)
- Distributed by
- OpenAI
- Source
- openai/plugins · plugins/zoom/skills/phone · commit d420d13
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from plugins/zoom/LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Zoom or OpenAI.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download build-zoom-phone-integration.zip