Obuchat Assistant — Zoom Marketplace Test Plan

For Zoom Marketplace Security & Privacy review.

App type: User-managed OAuth (General app). Not a Zoom in-client / in-meeting app. Users interact via Telegram and our Mini App only.

Entry points

Test credentials

Single-user flow (one Telegram user ↔ one Zoom account). No multi-role app.

Full login credentials (Telegram phone + Zoom email/password) are provided in the Zoom Marketplace submission → Account Credentials field. The test Telegram account is pre-approved on our production allowlist (no access gate).

ServiceCredentials (see Marketplace submission)
Telegram Bot: https://t.me/PshAssistent_bot
Dedicated test phone number (login via Telegram app; 2FA disabled).
User ID pre-approved on production allowlist.
Zoom Dedicated Zoom test account (email + password in submission).
Connect via OAuth (/zoom_auth) after logging into Telegram.
Dummy scheduled meeting may be pre-loaded on the test account.

Important: OAuth on production uses Production Client ID (25bg0QtHTVyrLWzx1WQwgQ) on assistant.obuchat.me — not the Development Client ID.

Reviewer steps (end-to-end)

  1. Open Home URLOpen bot in Telegram.
  2. Log into Telegram with the test phone number from Account Credentials.
  3. Open the bot, send /start.
  4. Send /zoom_auth or Mini App → Profile → Zoom → Connect.
  5. Sign in to Zoom with the test Zoom credentials from Account Credentials. Confirm Zoom shows as connected in Profile.
  6. Run scope tests below.

OAuth scopes and test steps

All scopes below are required (not optional) in our Marketplace submission.

ScopeHow to test
user:read:user
  1. Complete OAuth as above.
  2. Mini App → Profile — Zoom shows connected name/email from Zoom profile.
user:read:token
  1. Used by Leo’s note-taking agent: after a meeting is created with auto-record, Leo joins via Zoom SDK using an OBF token (not ZAK).
  2. After the meeting, transcription/summary appear in Mini App → Profile → Zoom recordings.
meeting:write:meeting
  1. Send zoom in the bot.
  2. Bot replies with a Zoom join URL (instant meeting).
  3. English also works: delete zoom, reschedule zoom to 15:00 tomorrow.
meeting:read:list_meetings
  1. Used before delete/reschedule: GET /users/me/meetings (visible in Marketplace Call logs).
  2. Then DELETE or PATCH /meetings/{id} — also visible in Call logs.
meeting:update:meeting
  1. Create a scheduled meeting: meeting tomorrow at 3pm with zoom.
  2. Send: reschedule zoom to 4pm tomorrow.
  3. Bot confirms the meeting was moved. Call logs show PATCH /meetings/{id} (not a new POST).
  4. Instant meetings (zoom only) cannot be rescheduled — create a scheduled meeting first.
meeting:delete:meeting
  1. Send zoom — bot returns join URL.
  2. Send delete zoom — bot confirms deletion. Call logs show DELETE /meetings/{id}.

Meeting recordings: Mini App → Profile → Zoom shows meeting-bot recordings (not Zoom Cloud Recording API). Enable auto-record or send a Zoom link to the bot, then check the recordings list after the meeting ends.

Deauthorization (required)

  1. Connect Zoom as above.
  2. In Zoom: Manage → Added Apps → remove Obuchat Assistant.
  3. Our endpoint /webhook/deauthorize receives app_deauthorized and deletes stored OAuth tokens within 24 hours.
  4. In Telegram, /zoom_auth is required again before creating meetings.

Manual disconnect (in-app)

  1. Mini App → Profile → Zoom → Disconnect.
  2. Tokens are revoked at Zoom and deleted locally.

Event subscription

meeting.ended — optional post-meeting notification to the host in Telegram.

Not a Zoom in-client app (no Meeting surface)

Obuchat Assistant is a General OAuth app only. It does not run inside the Zoom desktop or mobile meeting client. There is no in-meeting UI, no Meeting product under Surface, no Zoom App (in-client) mode, and no Zoom Apps SDK embed. Reviewers should not expect any UI inside an active Zoom meeting — all interaction is through Telegram chat and the web Mini App at assistant.obuchat.me.