# Contact Center 5-Minute Preflight Runbook

Use this before deep debugging. It catches the most common Zoom Contact Center integration failures quickly.

## Skill Doc Standard Note

- Skill entrypoint is `SKILL.md`.
- This runbook is an operational convention (recommended), not a required skill file.
- `SKILL.md` is a navigation convention for larger skill docs.

## 1) Confirm Integration Path

- Contact Center app inside Zoom client: use Zoom Apps SDK APIs/events (`getEngagementContext`, `onEngagementStatusChange`, etc.).
- Website embed: use Contact Center web SDK/campaign script path.
- Native mobile app: use Android/iOS Contact Center SDK binaries and service lifecycle.

Wrong path is the top source of confusion.

## 2) Confirm Required Credentials

- `entryId` for chat/video/ZVA channels.
- `apiKey` for scheduled callback and campaign/web-tag scenarios.
- If building a Contact Center app in Zoom client, validate app credentials and OAuth setup in Marketplace.

## 3) Confirm Lifecycle Order

Common native/mobile order:
1. Initialize SDK context early.
2. Get service instance.
3. Initialize service with `ZoomCCItem`.
4. Register listener/delegate.
5. `login()` where required (typically chat/ZVA).
6. `fetchUI()` to present the channel view.

Web app path:
1. `zoomSdk.config(...)`
2. `getEngagementContext()` and `getEngagementStatus()`
3. subscribe to `onEngagementContextChange` and `onEngagementStatusChange`
4. persist state keyed by `engagementId`

## 4) Confirm Context Switching Behavior

- A single app instance can receive multiple engagement contexts.
- Persist draft/workflow state by `engagementId`.
- Do not assume only one active engagement for chat/SMS/email workflows.

## 5) Confirm Cleanup Semantics

- End action (`endChat`, `endVideo`, `endScheduledCallback`) is not the same as service release.
- Apply platform-specific cleanup (`logout`/`logoff`, release/uninitialize APIs).
- On iOS, forward app lifecycle callbacks (`appDidBecomeActive`, `appWillTerminate`, etc.) to `ZoomCCInterface`.

## 6) Version + Drift Checks

- Zoom enforces minimum SDK versions quarterly (first weekend of February, May, August, November).
- Re-check docs and changelog before release; naming and signatures can drift.
- Watch deprecations:
  - iOS `onService:error:detail:` is deprecated in favor of `onService:error:detail:description:`.

## 7) Quick Probes

- App context/status APIs return valid values.
- Engagement events fire when agent switches engagements.
- Chat/video/scheduled callback can be started and ended once each without stale state.
- No CSP or domain allow-list blocks for web integrations.

## 8) Fast Decision Tree

- No engagement data in Contact Center app -> missing SDK `config` capabilities or wrong runtime context.
- Channel UI does not open -> invalid `entryId`/`apiKey`, missing init, or wrong service/channel mapping.
- Events not firing on switch/end -> listeners not attached early enough or removed incorrectly.
- Rejoin fails on mobile -> deep-link/scheme configuration mismatch.

