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.