Zoom documentation

Marketplace reviewer guide

Zoom integration test plan

Use this plan to verify the production OAuth flow, each least-privilege scope, historical data capture, draft-only output, deauthorization, and cleanup.

Environment
Production
OAuth model
User-managed
TimeSentry login
Supplied privately
Updated
September 11, 2026

01

App boundaries

TimeSentry uses one user-managed Zoom OAuth connection to analyze historical scheduled Zoom Meetings, their full agendas, available Zoom My Notes content and optional My Notes transcripts, and the connected user’s Zoom Phone call history. It creates draft time entries that must be reviewed in TimeSentry before approval.

Out of scope by design

  • The app does not join meetings or use the Zoom Meeting SDK.
  • The app does not access meeting or call recordings, meeting audio or video, or phone audio.
  • The app sends include=transcript only when retrieving content for a linked Zoom My Notes record; Zoom returns the optional transcript when available. The app does not request Zoom Phone call transcripts.
  • The app does not promise coverage for instant meetings.
  • The app does not require or expect an AI Companion summary for every meeting.
  • The app does not create, edit, start, or delete Zoom meetings or calls.

02

Private reviewer access package

Use the TimeSentry credentials provided privately with the Zoom Marketplace submission. No username, password, recovery code, OAuth token, meeting identifier, agenda, Zoom My Notes content or transcript, participant information, phone number, or customer data is stored on this public page or in the TimeSentry source repository. Authorize the app with your own Zoom account on Zoom’s OAuth screen. TimeSentry does not supply or request Zoom credentials.

The private review package provides:

  • A TimeSentry reviewer account and sign-in instructions.
  • The TimeSentry company to select and the navigation path to Integrations and Capture Time with AI.
  • A direct support contact for authorization, navigation, or test-data questions.

03

Preconditions

ItemRequired state
TimeSentryReviewer can sign in, select the supplied company, open Integrations, and use Capture Time with AI.
Zoom accountThe reviewer uses their own Zoom account and enters Zoom credentials only on Zoom’s authorization screen.
Scheduled meetingAt least one completed scheduled meeting owned by the reviewer’s connected Zoom user and dated within the previous six months. Add a distinctive, non-sensitive test agenda before completing the meeting. If none exists, the reviewer can schedule and complete a short test meeting before capture.
Past participantsOptional. Verify when the reviewer’s eligible paid Zoom account exposes past-participant data; otherwise mark this capability-dependent check unavailable.
AI CompanionOptional. Verify when the reviewer’s account has a completed meeting with an existing AI Companion summary.
Zoom My NotesOptional. Verify when the reviewer can link a manual or generated My Notes record containing distinctive, non-sensitive test text to the completed meeting. If Zoom exposes a transcript for that note, use a distinctive, non-sensitive spoken phrase. Retain another meeting without an available My Notes transcript to verify the fallback path.
Zoom PhoneOptional. Verify when the reviewer’s account has an active Zoom Phone license and a completed call visible in that user’s call history.

04

Install and authorization test

  1. Sign in with the privately supplied TimeSentry reviewer account.

    Expected: The reviewer reaches the supplied TimeSentry company without entering Zoom credentials in TimeSentry.

  2. Open Integrations, find Zoom, and select Connect.

    Expected: TimeSentry redirects the browser to Zoom’s OAuth authorization screen.

  3. On Zoom’s site, sign in with the reviewer’s own Zoom account and inspect the consent screen.

    Expected: Zoom receives the Zoom credentials directly. The consent screen identifies TimeSentry and requests only the ten read scopes documented below.

  4. Select Allow.

    Expected: Zoom redirects to TimeSentry and Zoom appears as one connected integration.

  5. Refresh the Integrations page.

    Expected: The connection remains present and no second Zoom Phone authorization is required.

Stop the test and report a scope discrepancy if Zoom requests permissions beyond the ten scopes listed in the next section.

05

Scope-by-scope verification

These tests exercise one connected account. Meeting details, agenda, summary, participants, My Notes content, and an available My Notes transcript can contribute to the same draft, so a separate draft is not expected for every scope.

user:read:user

Read the authorized Zoom user and account identifiers once during connection so a later app-deauthorization event can be matched to the correct TimeSentry connection and its associated data. TimeSentry does not retain the user’s Zoom profile fields.

Reviewer action
Authorize TimeSentry with the reviewer’s own Zoom account, then remove the app from Zoom after completing the capture tests.
Expected result
TimeSentry stores only the Zoom user and account identifiers needed for connection ownership and deauthorization; removing the app deletes the matched connection and associated Zoom-derived data.

meeting:read:list_meetings

List the connected user’s historical scheduled meetings for the selected capture period, up to six months.

Reviewer action
Run a Zoom capture for a date range containing a scheduled meeting owned by the connected user.
Expected result
The scheduled meeting is available as source context for a draft time entry.

meeting:read:meeting

Read the full scheduled-meeting record, including its agenda, so the draft can reflect the work the meeting was intended to cover.

Reviewer action
Use a scheduled meeting owned by the connected user and add a distinctive, non-sensitive test agenda before the meeting occurs.
Expected result
The available agenda can enrich the proposed draft description. TimeSentry reads the meeting; it does not edit the meeting or its agenda.

meeting:read:past_meeting

Read completed-meeting details such as actual start, end, and duration.

Reviewer action
Use a completed scheduled meeting whose actual duration is visible in Zoom.
Expected result
The draft reflects the completed meeting’s available timing details rather than creating an approved entry automatically.

meeting:read:list_past_participants

Use eligible past-participant information to improve client and project context.

Reviewer action
If the reviewer’s Zoom account is eligible, capture a completed meeting with participants.
Expected result
Available participant context can inform the draft. If Zoom does not make participant data available for that account or meeting, capture continues without it.

meeting:read:summary

Use an existing Zoom AI Companion meeting summary as optional context for a draft description.

Reviewer action
If the reviewer’s Zoom account has AI Companion data, capture a meeting for which a summary already exists.
Expected result
The available summary can enrich the draft. A missing summary is handled as an optional-data case and is not an error.

my_notes:read:note

List Zoom My Notes records linked to a meeting so TimeSentry can identify optional manual or generated notes associated with that source meeting.

Reviewer action
If My Notes is available to the reviewer, use a completed meeting with a manual or generated My Notes record linked to it.
Expected result
TimeSentry can identify the linked note. If no note is available, meeting capture continues without My Notes enrichment.

my_notes:read:content

Retrieve the content of a linked manual or generated My Notes record as optional context for project matching and the draft description.

Reviewer action
Add distinctive, non-sensitive text to a linked My Notes record, then capture the associated meeting.
Expected result
Available note content can enrich project matching and the draft description. Capture continues if note content is unavailable.

my_notes:read:notes_transcript

Send include=transcript when retrieving content for a linked My Notes record so Zoom can return its optional structured transcript when available. TimeSentry stores that transcript with the associated company-scoped meeting note and limits the total speaker-formatted transcript text used for AI-assisted project matching and draft-description generation to 32,000 characters per meeting capture.

Reviewer action
If Zoom My Notes exposes a transcript for the test meeting, include a distinctive, non-sensitive phrase in the meeting conversation, then capture that meeting. Also capture a meeting whose My Notes record has no transcript, or a meeting with no My Notes record.
Expected result
Available transcript context can improve the suggested project and draft description. Missing transcript data is treated as optional and does not block capture. The structured transcript is retained with the associated meeting note, not exposed as a separate transcript viewer in the current review interface.

phone:read:list_call_logs

Read the connected user’s Zoom Phone call-log history, including available timing, direction, duration, and phone-number context.

Reviewer action
If the reviewer’s Zoom account has a Zoom Phone license, capture a date range containing a completed call visible to that user.
Expected result
The completed call is available as source context for a draft time entry. No call audio, recording, or transcript is requested.

06

End-to-end draft workflow

  1. Open Time in TimeSentry and select Capture Time with AI.
  2. Select Zoom and a date range containing the completed scheduled meeting with the test agenda. If My Notes is available, link a manual or generated note containing distinctive test text. When Zoom exposes a transcript for the note, use a distinctive, non-sensitive spoken phrase. If the account supports Zoom Phone, include a completed call as well.
  3. Run capture. Confirm that TimeSentry reports completion without asking for a second Zoom authorization.
  4. Open the resulting meeting draft. Verify that it is not approved, then inspect the proposed date, duration, client, project, and description. Confirm that the available agenda, My Notes text, and transcript context can inform project matching and the proposed description.
  5. Confirm that relevant transcript context can be reflected in the generated draft narrative. If linked My Notes content is shown in the meeting’s notes view, confirm that the note remains associated with the meeting. The current review interface does not include a raw-transcript viewer, so no separate transcript display is expected.
  6. Run capture for a meeting without an available My Notes transcript. Confirm that capture still completes and creates a reviewable draft from the remaining available meeting context.
  7. Confirm that neither transcript test requires TimeSentry to join the meeting, use the Meeting SDK, or access a recording, audio, or video.
  8. Edit one draft field and save it. Confirm that the draft remains reviewable.
  9. Approve one draft. If multiple drafts are available, dismiss another. Confirm that only approved records enter the approved timesheet workflow.
  10. Run the same date range again. Confirm that TimeSentry does not create a second draft for the same Zoom source item.

Transcript storage note: TimeSentry retains the complete structured transcript returned by Zoom on the associated company-scoped meeting note. Because the current interface does not expose that raw field, this workflow verifies transcript use through the resulting draft. Separate persistence evidence can be supplied with the private review package if Zoom requests it.

07

Removal and deauthorization tests

A. Remove from TimeSentry

  1. Confirm that the connection has at least one Zoom-derived record from the workflow test. If multiple source items are available, leave one as a draft and approve another.
  2. Open Integrations and select Remove connection for Zoom.
  3. Refresh the page.
  4. Open Capture Time with AI to verify Zoom is unavailable, then inspect the draft and approved time views for the Zoom-derived test records.

Expected: Zoom no longer appears as connected or available for capture. The integration connection, stored OAuth credentials, source metadata, Zoom-derived meeting notes and stored My Notes transcripts, and all Zoom-derived drafts and approved entries associated with that connection are deleted.

B. Remove from Zoom App Marketplace

  1. Reconnect Zoom in TimeSentry.
  2. Run a short capture and retain at least one Zoom-derived test draft or approved entry.
  3. In Zoom App Marketplace, open Manage, then Added Apps.
  4. Open TimeSentry, select Remove, and confirm.
  5. Return to TimeSentry, refresh Integrations, and inspect the draft and approved time views for the Zoom-derived test records.

Expected: Zoom’s deauthorization invalidates the TimeSentry connection. TimeSentry deletes the integration connection, stored OAuth credentials, source metadata, Zoom-derived meeting notes and stored My Notes transcripts, and all Zoom-derived drafts and approved entries associated with that connection. Future Zoom capture is unavailable until the reviewer completes OAuth again.

08

Cleanup and deletion

  • Verify the connection purge: after the removal test, confirm that no Zoom connection, OAuth credential, source metadata, draft, or approved entry associated with that connection remains.
  • Report incomplete deletion: if any Zoom-derived test record remains after deauthorization processing, stop and contact reviewer support with the approximate removal time. Do not include Zoom data in the message.
  • Full account deletion is separate: removing Zoom does not close the TimeSentry reviewer account or delete other-source data. Do not close the shared reviewer account unless coordinated with TimeSentry. A verified account-deletion request can be sent to privacy@timesentry.ai.
  • Credentials and source content: do not copy reviewer credentials, tokens, meeting agendas, summaries, Zoom My Notes content or transcripts, participant data, or phone numbers into review notes or public issue trackers.

Complete data-handling and user-deletion instructions are available in the Zoom data guide and Privacy Policy.