Setup and operations guide

Zoom integration documentation

Add, use, remove and troubleshoot the HockeyStick AI Zoom integration. Start every authorization from the authenticated HockeyStick engagement; this public guide never creates an OAuth authorization link.

Updated 5 October 2026

Before you connect

1. Check prerequisites

  • An active HockeyStick AI engagement with Activate enabled, and a designated integration contact who can sign in.
  • A Zoom Workplace account and a paid Webinar licence assigned to the authorizing host.
  • The authorizing host must be the engagement's designated integration contact.
  • Where Zoom app controls are enabled, an administrator may need to pre-approve HockeyStick AI first.
  • For Production, use a Zoom account not already connected to another HockeyStick engagement.

Authorization belongs to the selected licensed host. It does not provide general Zoom account administration access.

Add the app

2. Connect from your engagement

Sign in, open the correct engagement, then go to Activate → Strategy & setup → Integrations and select Connect with Zoom. In the horizontal Activate bar, select the gear icon under Measure & improve (accessible name Strategy & setup); scroll the bar if needed. It opens Partnership strategy first. Select Integrations inside it.

Sign in to HockeyStick AI. An unauthenticated visitor cannot select an engagement from a public page.
Open the engagement and go to Activate → Strategy & setup → Integrations.
Select Connect with Zoom. Only the designated contact can start this. HockeyStick creates short-lived, single-use state bound to the engagement, stores only its SHA-256 hash and redirects to Zoom.
Review and approve in Zoom. Confirm the app name, the eight permissions and the licensed host. In Production, the account must not already be connected to another engagement.
Wait for verification. HockeyStick reads the connected user, validates the permissions and queues an account check before the connection is shown as ready.
No public OAuth shortcut. This documentation never creates authorization state or links directly to Zoom authorization. Start in the authenticated engagement every time. Sign in to HockeyStick AI →

Use the integration

3. Create, enrol and reconcile

Create and verify a Webinar

When an authorized user confirms Create Zoom webinar, HockeyStick sends the approved timing and configuration once, records the returned Webinar identity, then performs an exact authenticated read-back. A Webinar is not treated as verified until the returned identity and expected configuration reconcile; an ambiguous result stays visible for review and HockeyStick does not blindly create another Webinar.

Create only. This release creates Webinars and never updates or deletes them. Edit webinar in HockeyStick edits the HockeyStick plan, not the Zoom Webinar; if the plan is edited after the Zoom Webinar exists, HockeyStick abandons its read-back proof rather than pushing a change to Zoom. Change the Webinar in the Zoom web portal if the Zoom record itself needs to change.

Enrol hosted-page registrants

Open HockeyStick registration page → Open page from the Webinar detail. A participant registers with first name, last name, email and consent. HockeyStick checks Zoom's registrant list, adds the person when needed and reconciles the enrolment. Keep the confirmation open and use Check registration status while pending to confirm You’re enrolled. The status button disappears once 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. HockeyStick does not store the private join link.

Refresh registrations from Zoom

In Registrations · from Zoom, select Refresh from Zoom. It refreshes eligible Webinars throughout the engagement, including attendance after scheduled end. New requests share a 60-second cooldown. Wait for Engagement refresh to leave queued/running, then inspect This Webinar and the succeeded, partial and failed totals. partially_succeeded preserves useful results but does not establish that every read passed. Before scheduled end, attendance is skipped.

Registered is the approved total, split into HockeyStick and Direct on Zoom; pending and denied totals are separate. Entries from Zoom's own registration page appear as Registered on Zoom with source and approval, without direct names, emails or private join links. They are not enrolled by HockeyStick and do not establish partner attribution.

Before the first complete snapshot, HockeyStick enrolments · awaiting Zoom pull is a local fallback. Failed pulls retain the previous complete snapshot and Pulled time, marked stale. Unavailable or withheld data is not zero. Use Next page and First page when offered.

Reconcile post-event attendance

After the event, HockeyStick identifies the completed occurrence for the linked Webinar and reads that occurrence's participant timing, matches participants to enrolments using the Zoom registrant identifier, calculates watch time and flags ambiguous matches for review.

After both the actual session and scheduled end, use Refresh from Zoom. Scheduled reconciliation also runs on a delta pull every 15 minutes and a full pull daily at 01:00 UTC. Ending early does not bring the attendance read forward. Zoom may publish the report later; this cadence is not an availability guarantee. Automatic retries are bounded; after completion and cooldown, retry later if the report remains unavailable.

Read attendance evidence

Attendance · from Zoom shows the selected ended instance, participant report time, row diagnostics and two counts: Attended · all registrants and Attended · HockeyStick enrolments. The host is excluded. Direct attendance adds visibility, not commercial segments. The detail header Attended remains the latest fully successful enrolled count; estimated commercial value remains registration-based.

Verified evidence retains the first eligible enrolled evidence and segments. Latest observation shows the newest attempt; Last fully successful observation retains the last report with both counts known. Later disagreement does not replace frozen evidence, even when totals match. Privacy restrictions can remove or withhold evidence.

A partial report may know enrolled attendance while all registrants is Not available. If that first partial report establishes verified evidence, its unknown all-total stays unknown. A missing or ambiguous instance is unavailable, not zero. Successful retained reports become stale after 30 minutes or a newer incomplete attempt; frozen evidence does not age out. Follow the reviewer test plan for the controlled two-attendee scenario.

See the Zoom integration overview for the exact eight requested permissions and their purpose.

Remove the app

4. Disconnect, remove or reconnect

Disconnect from HockeyStick

Go to Activate → Strategy & setup → Integrations and select Revoke Zoom. HockeyStick removes local authorization material immediately and asks Zoom to revoke the access token when no other active engagement shares the account.

Remove HockeyStick AI from Zoom

Sign in to the Zoom App Marketplace and open Manage → Added Apps.
Open HockeyStick AI.
Select Remove and confirm removal.

Zoom has already removed the app before it sends the signed app_deauthorized event, so HockeyStick does not call Zoom's revocation endpoint again. It removes local grants, pending state, direct Zoom identifiers and legacy recording links, and marks every affected engagement as requiring authorization. Zoom-derived person data is deleted or anonymized within 24 hours of that event. See the privacy policy for the full lifecycle.

Reconnect

The designated integration contact selects Connect with Zoom again and completes a fresh engagement-bound authorization.

Troubleshooting

5. Resolve common problems

Approval required

Ask the Zoom account administrator to pre-approve HockeyStick AI, then start again from HockeyStick.

Permission mismatch

Reauthorize after the Zoom app declares the exact eight permissions. HockeyStick does not continue when required provisioning permissions are missing. Attendance remains unavailable until both ended-occurrence and participant-read permissions are granted.

Account already connected

Production does not connect one Zoom account to a second active engagement. Reauthorize on the existing engagement or use a different Zoom account.

Expired or removed

Return to Activate → Strategy & setup → Integrations and select Reauthorize. To re-test the stored authorization against Zoom, select Verify authorization on the same card; the card then shows a verified timestamp. Do not reuse an old browser authorization link.

Ambiguous provider result

Wait — reconciliation is automatic, and HockeyStick will not create a second Webinar to resolve doubt. Refresh Zoom status on the Webinar page re-reads HockeyStick's own record of the creation; it does not call Zoom. Retry Zoom webinar only appears once reconciliation has proven no Webinar was created, and Cancel queued creation stops a create that has not been sent. If the state does not settle, contact support with the engagement, Webinar and approximate time. Do not create the Webinar again blindly.

Need more help? Follow the Zoom support guide and send only non-secret context.