Skip to test instructions

Marketplace functional review

Zoom reviewer test plan

Test all eight permissions with a fresh controlled Webinar, two fictional attendees and observable results in HockeyStick.

Updated 8 October 2026

Before you start

Use the HockeyStick account in Zoom's protected Test account and credentials fields. Create a new, uniquely named review run using step 2. Earlier completed runs are evidence only: preserve them and their registrants. If you cannot create a new Brief or access the confirmed licensed host, contact the developer before proceeding; do not edit or reset an earlier fixture.

Use a dedicated Zoom user with an active Webinar licence, any required administrator pre-approval, and an account not connected to another HockeyStick engagement. The app owner must confirm that the current grant actually holds all eight permissions below. A connected status alone does not prove attendance permissions. Keep shared access permissions unselected during consent.

Allow about two hours for setup and a 30-minute scheduled Webinar, plus any Zoom report delay. Arrange a host and two separate attendee browser sessions. Use fresh fictional names and distinct reserved addresses: first name Marketplace, last name Hosted, marketplace-hosted-YYYYMMDDHHMM@example.com, and first name Marketplace, last name Direct, marketplace-direct-YYYYMMDDHHMM@example.com. Replace YYYYMMDDHHMM in both addresses with your review date and time. Neither identity may already be registered for this fresh Webinar. These addresses cannot receive invitations: have the licensed host retrieve each attendee's private join link in Zoom and privately retain it. Contact the developer if an attendee link is unavailable. Never substitute the host link or share join links in evidence.

1. Sign in and connect

Open Reviewer sign in, select Continue to password sign in, and use the protected HockeyStick credentials. Confirm the fictional HockeyStick Zoom Marketplace Reviewer Lab client, select Open Activate, then Got it if shown. In the horizontal Activate bar, select the Strategy & setup gear under Measure & improve; scroll the bar if necessary. From Partnership strategy, select Integrations, then Connect with Zoom. Authorize the licensed host's account. Expect Connected (or Live after a sync).

Select Verify authorization. Wait for Authorized <date> · verified <date>, refreshing the page after about a minute if needed. If the licence or authorization check fails, resolve the displayed problem before continuing. The host's Webinar list is checked here but is not displayed as a browsable list.

2. Create and read back a fresh Webinar

In Activate → Briefs, select New brief. Enter a unique Title, such as Zoom Marketplace review YYYYMMDD-HHMM, keep Webinar selected, choose the fictional Northstar Review Partners under Promoting partners, and set Target outcome to 2. Select Save draft, then Open Webinar setup on the saved Brief. Keep the same unique Webinar title, set the duration to 30 minutes, and a start 45–60 minutes ahead. Check Timezone: keep Etc/UTC and enter UTC, or first set your IANA timezone. Keep the agenda total at 30 minutes. Select Save setup (or Save webinar if a kit exists), then Back to webinar. No activation kit is required.

Select Create Zoom webinar, inspect the Zoom account row, and select Confirm Zoom creation once. Expect Created · verified, a Zoom · <webinarId> chip and Zoom read-back verified with a timestamp. Confirm one matching Webinar in the host's Zoom portal. If Creation queued persists after about a minute, reload once; if it persists again, contact the developer. This release creates a Webinar; Edit webinar changes the HockeyStick plan and does not update the Zoom Webinar. Keep the schedule unchanged after creation.

3. Prove a new hosted registration, then check its status

On this Webinar's detail page, find HockeyStick registration page. Use Copy link to open it in a private window, or Open page (accessible name Open HockeyStick registration page). Check that it is your newly created Webinar. Use this run's own hosted URL, not a completed evidence run's URL. Enter Marketplace in First name, Hosted in Last name, and marketplace-hosted-YYYYMMDDHHMM@example.com in Email, then submit with consent once. Because this attendee is new to this Webinar, HockeyStick reads the registrant list and adds the attendee through its Zoom integration.

Keep the confirmation open. If it shows Registration recorded, select Check registration status after about a minute. This checks the same saved registration. Expect You’re enrolled; the public form does not disclose private attendee links. Use the Zoom invitation sent to the registered email, or have the licensed host retrieve the attendee link privately in Zoom for the reserved test address. Once enrolled, the status-check button is no longer shown: reopen the hosted page and submit identical details once, then confirm in Zoom that there is still only one hosted attendee. This repeat check proves duplicate protection, not a second Add Registrant call. The refreshed roster in step 4 proves the list read. Stop for Registration needs support or a missing-scope message.

4. Register directly on Zoom and refresh

Back on the Webinar detail page, under Zoom's own registration page, select Open Zoom registration page. Register the distinct attendee with first name Marketplace, last name Direct, and email marketplace-direct-YYYYMMDDHHMM@example.com, and retain that attendee's own private join link. Confirm in Zoom that both attendees are approved. Direct registration does not create a HockeyStick enrolment or partner attribution.

In Registrations · from Zoom, select Refresh from Zoom. It refreshes eligible Webinars across this engagement, not just the open Webinar. While active the button reads Refreshing…. A new refresh has a shared 60-second cooldown; Refresh available in <n>s shows the remaining wait. Wait for Engagement refresh to leave queued/running, and inspect This Webinar for separate registration and attendance results. Completion elsewhere in the engagement does not prove this Webinar succeeded.

For this fresh two-person fixture, expect Registered: 2 approved · HockeyStick 1 · Direct on Zoom 1, Pending: 0, Denied: 0, a Pulled timestamp and two rows with Source and Approval. The direct row is labelled Registered on Zoom; it intentionally does not promise a name or email. Registered includes approved entries only. Pending and denied totals are separate. Before the first complete pull, HockeyStick enrolments · awaiting Zoom pull is a local fallback, not a Zoom total. A failed pull retains the previous complete snapshot and its timestamp; unavailable or withheld data is not zero. Use Next page and First page if offered.

5. Complete the controlled attendance session

Start the fresh Webinar once as the licensed host, at or after its scheduled start and before its scheduled end. Both fictional attendees must join as attendees through their own private links in separate sessions; do not promote them to panelists. Remain connected for at least five minutes, then have the host end the Webinar for everyone. Attendance headcounts measure presence; five minutes also avoids confusing this exercise with the separate brief-attendance segment rule.

Wait until both the actual session and its scheduled end have passed. In Registrations · from Zoom, select Refresh from Zoom and wait for the completion and this Webinar's attendance result. Zoom may publish its ended instance or participant report later. There is no guaranteed report-availability time. A scheduled pull also runs every 15 minutes, with a full pull daily at 01:00 UTC.

In Attendance · from Zoom, inspect Verified evidence and Latest observation. If the first eligible participant report is fully successful, expect Attended · all registrants: 2 and Attended · HockeyStick enrolments: 1 in both. Verify Selected ended instance started falls within the scheduled window, an Instance fingerprint is present, and Participant report pulled is recorded. Participants read counts report rows before filtering, so rejoins can make it larger than the attendee count. Host rows excluded must show the host's reported row(s) excluded; the host contributes zero to both headcounts. Waiting-room rows excluded is separate. The detail header Attended remains the latest fully successful enrolled count, expected 1, not the all-registrant count.

Verified evidence preserves the first eligible successful enrolled evidence and attendance segments. Latest observation records the newest attempt, including partial or unavailable results. Last fully successful observation retains the last report with both counts known. Later changed reports can display a disagreement notice, even with equal totals, without replacing verified evidence. Privacy restrictions can remove or withhold evidence. The registration-based estimated commercial value is separate from these attendance counts.

If Latest report status is unavailable/failed or the refresh is partially_succeeded, read the reason and keep earlier successful data distinct from the new attempt. Missing or ambiguous ended instances and delayed participant reports are not successful zero attendance. Automatic retries are bounded; after completion and cooldown, retry Refresh from Zoom later. A partial report with registrant_snapshot_unavailable can show known enrolled attendance and Not available for all registrants; it may establish verified enrolled evidence whose unknown all-total is never filled later. Use Last fully successful observation and Latest observation to assess recovery. A report becomes stale after 30 minutes or a newer incomplete attempt; frozen evidence does not expire merely with age. If results remain unavailable, send the safe reason and timing to support.

6. Scope-by-scope proof

user:read:user

Prerequisite: licensed host and fresh review run, steps 1–2. Action: connect Zoom, then open Create Zoom webinar. Expected: the authorized Zoom account is identified. Where: Zoom account in the creation confirmation dialog; the integration card also shows authorization status. HockeyStick retains the account identifier, not a displayed host profile.

webinar:read:list_webinars

Prerequisite: connected, licensed host. Action: select Verify authorization in step 1. Expected: the host's Webinar-list read succeeds. Where: Authorized <date> · verified <date> on the Zoom integration card. The list also provides the pre-create safety baseline in step 2; there is no browsable list screen.

webinar:read:webinar

Prerequisite: the new Webinar has been created in step 2. Action: wait for its exact read-back. Expected: the returned Webinar identity and setup match. Where: Created · verified and Zoom read-back verified on the Webinar detail page.

webinar:write:webinar

Prerequisite: verified authorization and a fresh saved future setup. Action: select Confirm Zoom creation once in step 2. Expected: one new Webinar. Where: Zoom · <webinarId> on the detail page and the matching Webinar in the host's Zoom portal. This permission is used for creation only.

webinar:write:registrant

Prerequisite: fresh hosted attendee absent from the new Webinar. Action: submit the HockeyStick form in step 3. Expected: a new Zoom registration is added through HockeyStick. Where: You’re enrolled and one approved hosted registrant in Zoom; obtain private attendee access from the registered email or licensed host. An existing registration is not proof of a new add.

webinar:read:list_registrants

Prerequisite: the hosted registration from step 3 and distinct approved direct registration from step 4. Action: perform step 3's subsequent status check, then Refresh from Zoom. Expected: the existing hosted registration is confirmed without duplication; the complete roster shows approved 2, HockeyStick 1, direct 1. Where: hosted confirmation and Registrations · from Zoom, including source, approval and pull time.

webinar:read:list_past_instances

Prerequisite: step 5's single completed session, both end times passed, actual attendance scopes granted. Action: Refresh from Zoom after the session. Expected: exactly one ended instance matches the scheduled window. Where: Selected ended instance started and Instance fingerprint in Attendance · from Zoom. Missing or multiple matches remain unavailable, not an arbitrary latest session.

webinar:read:list_past_participants

Prerequisite: the selected ended instance and both attendees' private-link participation from step 5. Action: let the same refresh finish its participant read. Expected: all registrants 2, HockeyStick enrolments 1, host contribution 0. Where: Participant report pulled, Participants read, Host rows excluded, and both Attended counts in the attendance panel. Report delay requires retry, not a zero-count assumption.

7. Finish and report a problem

After evidence is accepted, coordinate cleanup with the fixture owner. Revoke Zoom in Strategy & setup → Integrations acts immediately without a confirmation dialog; expect Revoked and Connect with Zoom. Removal affects this account's connection and evidence, so preserve the earlier reviewer Webinar and its registrants and do not disconnect during an unfinished review. The owner handles cleanup of only the new test run.

For an unexpected result, send the step number, approximate time and timezone, visible status/reason and a sanitized screenshot to the developer contact in the Marketplace listing or Zoom support. Exclude passwords, tokens, private join links and attendee lists. The integration documentation explains installation, removal and recovery.