App: Dialmind Phone (admin-managed)
Scopes: Keep all 12 in ZoomOAuthClient::SCOPES (intentional for inventory + AR forwarding to Dialmind AI).
| 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 |
| Field | Value |
|---|---|
| URL | https://dialmind.com/login |
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 |
| 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) |
/admin/zoom-phone (no general admin nav)./zoom/oauth/start/{64-hex}; 14 days; one-time after Allow./zoom/oauth/callback → Connected.GET /phone/numbers; spot-check vs Zoom Phone admin.forward_to_external_number to that DID.Zoom Phone access was removed. Generate a new link to connect again.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.
| 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 |
User documentation: https://dialmind.com/docs/zoom-phone
Support: https://dialmind.com/support · info@dialmind.com