DialMind Logo

Dialmind Phone — Zoom Marketplace reviewer test plan

App: Dialmind Phone (admin-managed)

Scopes: Keep all 12 in ZoomOAuthClient::SCOPES (intentional for inventory + AR forwarding to Dialmind AI).

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
Set forward to Dialmind AI Pick AR/number; PATCH AR business hours forward_to_external_number
Clear / restore Restores prior business-hours snapshot (not Zoom AR DELETE)
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 and an auto receptionist that can be selected for forward
Dialmind AI DID An E.164 Dialmind inbound number to type as 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. Have a Dialmind inbound E.164 ready to paste as the AI 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/callbackConnected.

B — List numbers (read scopes)

  1. Click List numbers.
  2. Expected: Numbers from Zoom GET /phone/numbers; spot-check vs Zoom Phone admin.

C — Set forward (write / AR scopes)

  1. On the connection show page, enter/save the Dialmind AI DID as E.164.
  2. Pick an auto receptionist (and/or number as the UI requires).
  3. Click Set forward to Dialmind AI.
  4. Expected: Success. Dialmind PATCHes AR business hours with forward_to_external_number to that DID.
  5. Spot-check in Zoom Phone admin that the AR business-hours forward points at the Dialmind number.

D — Clear / restore

  1. Click Clear / restore (as labeled in UI).
  2. Expected: Prior business-hours snapshot restored. This is not a Zoom AR DELETE API call.

E — 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 AR routing. Clear/restore (or fix in Zoom) before disconnect if you need Zoom left clean.

5. Scopes (exact ZoomOAuthClient::SCOPES — keep all 12)

phone:write:call_handling_setting:admin
phone:read:list_users:admin
phone:read:list_auto_receptionists:admin
phone:delete:call_handling_setting:admin
phone:read:auto_receptionist:admin
phone:update:call_handling_setting:admin
phone:read:list_call_handling_settings:admin
phone:read:list_numbers:admin
phone:read:auto_receptionist_call_handling_setting:admin
phone:read:numbers:admin
phone:read:user:admin
phone:update:auto_receptionist_call_handling_setting:admin
Scope group Why How reviewer validates
Number read Inventory List numbers
User read Map users / DIDs Present on consent; supports inventory/targeting
Call-handling read/write/update/delete Forward / change / roll back call handling Set forward + Clear/restore (delete scope reserved; clear uses snapshot restore)
Auto receptionist read + update AR call handling Main lines often on AR Set forward on selected AR (GET ARs, GET AR business-hours, PATCH)

Known limits for this build: business hours path only; AR-focused (pick an AR); Clear restores snapshot rather than Zoom DELETE; Disconnect does not undo Zoom routing.

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 AR / no DID UI validation / clear error

Related

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

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