Generated banner for Build Zoom Phone Integration
Generated logo for Build Zoom Phone Integration

Build Zoom Phone Integration

OpenAIOfficialCreated by ZoomDistributed by OpenAI

  • Skill
  • Tool integration
  • Automation and integrations
  • MIT
  • No issues found

From the author

Use when building Phone.
— the description by Zoom

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

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/openai/build-zoom-phone-integration/download
  2. Unzip 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

  1. Classify the integration: REST API automation, webhook event processing, Smart Embed, URI launch, CRM dialer, or call-handling workflow.

  2. Confirm the actor, account settings, phone entitlements, and OAuth scopes before implementation.

  3. Keep call control, call records, number management, and webhook processing as separate modules.

  4. For Smart Embed, validate postMessage event contracts, embedding constraints, and CRM state mapping.

  5. Debug by checking scopes, phone license, role permissions, number ownership, webhook subscriptions, and event payload shape.

References

Files

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 origin parameter is domain-level where required and not path-mismatched.

  • Verify Zoom client sign-in state and account licensing prerequisites.

  • Add strict postMessage origin 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_url returns 401/403.

  • Invalid access token, does not contain scopes on 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_id is 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/204 and 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/users or call list endpoints appear to miss records.

Answer pattern:

  • Always iterate next_page_token until 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