DialMind Logo

Dialmind Phone — Zoom Marketplace reviewer test plan

App: Dialmind Phone (admin-managed)

Scopes: The 13 granular Phone admin scopes in ZoomOAuthClient::SCOPES. Each is used by a Dialmind action below.

1. What to test

Dialmind admin UI (click-test) Notes
OAuth authorize + token refresh Customer connect link → Zoom Allow
Store Zoom account id + email (when profile returns) Email may show — if profile fetch fails
List numbers GET /phone/numbers, GET /phone/auto_receptionists, GET /phone/users. Table shows owners, extensions, and users (including extension-only).
Set forward to Dialmind AI Pick a main number assigned to an auto receptionist, user, call queue, or shared line group. Business hours forward to +18474720120
Clear / restore Restores the prior business-hours snapshot. User lines also DELETE the Dialmind call-forward target Dialmind added.
Disconnect Revokes Zoom tokens locally; does not undo Zoom routing

2. Test accounts

2.1 Dialmind review login

Field Value
URL https://dialmind.com/login
Email zoom-review@dialmind.com
Password Use the credentials already provided in Zoom Test account (rotate only if login broken)
Role ROLE_ZOOM_REVIEWER
Organization Zoom Marketplace Review
Landing /admin/zoom-phone only

2.2 Zoom account for OAuth

Field Value
Zoom account Zoom Phone–enabled account admin (as provided for review)
Seed At least one Zoom Phone number on each line type you will click-test: auto receptionist, user, call queue, shared line group
Dialmind AI DID +18474720120 (Moving Case Demo / Karen). Type this as the Set forward destination (Review org may not auto-hint).

3. Setup

  1. Sign in at https://dialmind.com/login with Dialmind review credentials.
  2. Confirm landing on /admin/zoom-phone (no general admin nav).
  3. Have a Zoom Phone admin session ready for Allow.
  4. Use Dialmind AI DID +18474720120 (Moving Case Demo / Karen) as the Set forward destination.

4. End-to-end click path

A — Connect

  1. Open the Marketplace Review connection (or create if missing).
  2. Generate customer link / Generate new link → /zoom/oauth/start/{64-hex}; 14 days; one-time after Allow.
  3. Zoom admin opens link → Allow → /zoom/oauth/callback → Connected.

B — List numbers (list scopes)

  1. Click List numbers.
  2. Expected: Numbers from Zoom GET /phone/numbers with owner name, owner type, and extension. Users from GET /phone/users (name, extension, direct numbers or "extension only"). Auto receptionists from GET /phone/auto_receptionists.
  3. Spot-check vs Zoom Phone admin.

C — Set forward + restore (each line type)

On the connection show page, enter/save the Dialmind AI DID +18474720120 (Moving Case Demo / Karen). For each line type below: pick that number (or the AR), click Set forward to Dialmind AI, spot-check Zoom Phone admin, then click Clear / restore previous routing.

  1. Auto receptionist: GET then PATCH /phone/auto_receptionists/{id}/call_handling/settings business hours forward_to_external_number. Restore PATCHes the snapshot (no Zoom AR DELETE).
  2. User: GET user call handling, POST /phone/users/{id}/call_forward_settings/business_hours to add +18474720120, PATCH user call handling so business hours forward to it. Restore PATCHes the snapshot, then DELETEs the Dialmind call-forward target.
  3. Call queue: GET then PATCH /phone/call_queues/{id}/call_handling/settings business hours overflow to the Dialmind number and call_distribution_setting.max_wait_time 10 (spec min). Restore PATCHes the snapshot, including the original wait.
  4. Shared line group: GET then PATCH /phone/shared_line_groups/{id}/call_handling/settings business hours overflow to the Dialmind number and call_distribution_setting.max_wait_time 7 (spec min). Restore PATCHes the snapshot, including the original wait.

D — Disconnect

  1. Click Disconnect.
  2. Expected flash: Zoom Phone access was removed. Generate a new link to connect again.
  3. Expected: Local Zoom credentials cleared; connection row remains.
  4. Important: Disconnect does not automatically undo Zoom call handling. Clear/restore (or fix in Zoom) before disconnect if you need Zoom left clean.

5. Scopes (exact ZoomOAuthClient::SCOPES)

Scope Dialmind action
phone:read:list_numbers:admin List numbers — GET /phone/numbers
phone:read:list_users:admin List numbers — GET /phone/users (directory, including extension-only users)
phone:read:list_auto_receptionists:admin List numbers — GET /phone/auto_receptionists
phone:read:auto_receptionist_call_handling_setting:admin Set forward on an auto receptionist — GET AR business-hours call handling
phone:update:auto_receptionist_call_handling_setting:admin Set forward / Clear — PATCH AR business-hours call handling
phone:read:user_call_handling_setting:admin Set forward on a user-assigned number — GET user call handling
phone:update:user_call_handling_setting:admin Set forward / Clear — PATCH user business-hours call handling
phone:write:user_call_handling_setting:admin Set forward on a user — POST user call-forward setting (Dialmind AI number)
phone:delete:user_call_handling_setting:admin Clear on a user — DELETE the Dialmind call-forward setting
phone:read:call_queue_call_handling_setting:admin Set forward on a call queue — GET queue call handling
phone:update:call_queue_call_handling_setting:admin Set forward / Clear — PATCH queue business-hours call handling
phone:read:shared_line_group_call_handling_setting:admin Set forward on a shared line group — GET SLG call handling
phone:update:shared_line_group_call_handling_setting:admin Set forward / Clear — PATCH SLG business-hours call handling

Known limits for this build: business hours path only; Clear restores the snapshot (user lines also DELETE the Dialmind forward target); Disconnect does not undo Zoom routing. Zoom does not allow forwarding a common area to an external number; move that main number to an auto receptionist, user, call queue, or shared line group.

6. Edge checks

Case Expected
Expired / superseded connect link Invalid or expired; generate new link
Reviewer opens other /admin or /manager 403
Other org’s connection 404
List numbers after Disconnect Fails until reconnected
Set forward with no number / no DID, or an unsupported assignee type UI validation / clear error

Related

User documentation: https://dialmind.com/docs/zoom-phone

Support: https://dialmind.com/support · info@dialmind.com