Requirements
- A HubSpot Professional or Enterprise account with access to the scheduling functionality used by the Scheduler API.
- A HubSpot Super Admin, or an administrator with authority to install Marketplace apps and manage integrations.
- Permission from your organization to share the documented data with BookableCheck and its subprocessors.
- For scheduling-page handoffs completed by an administrator in HubSpot, an eligible replacement user with the required seat and a connected calendar.
Core OAuth access
The first installation asks HubSpot for these focused scopes:
| Scope | Why it is needed |
|---|---|
crm.objects.owners.read | Read active and archived owners and match supported HubSpot user identifiers. |
scheduler.meetings.meeting-link.read | Read supported personal, group, and round-robin scheduling-page metadata. |
oauth | HubSpot's standard OAuth grant for installing and reconnecting the app. |
BookableCheck does not request a scheduling-page write scope and cannot change or cancel an existing Google or Microsoft calendar event. The guided meeting workflow can optionally ask HubSpot to create a separate replacement event.
Install step by step
- Select Install in HubSpot from this site.
- Sign in to HubSpot and choose the intended portal. Verify the portal ID before continuing.
- Review the exact scopes on HubSpot’s authorization screen and approve them.
- HubSpot returns you to BookableCheck, which validates the installation and opens the native app page.
- The initial scan is queued. Keep the app open or return later; the scan does not need the browser to stay connected.
What the free scan keeps
Owner and scheduling-page data are processed to calculate the result, then discarded. The persisted free record contains only the portal-level deactivated-user count, risky-link count, scan completeness status, and completion timestamp.
Free and unauthorized API responses never contain user names, email addresses, scheduling-page names, slugs, URLs, or finding records.
Upgrading to Pro
- An authorized admin starts Stripe Checkout from the BookableCheck app page.
- Stripe collects the billing details. There is no trial.
- BookableCheck waits for Stripe’s signed subscription webhook; the browser success page does not grant access.
- After confirmation, BookableCheck enables Pro and queues a detailed scan.
Only one active BookableCheck subscription is permitted for each HubSpot portal.
Automated future-meeting owner reassignment
This is the supported action BookableCheck performs directly. When the Pro meeting feature is enabled for the portal and the required conditional scopes are separately authorized, BookableCheck can inventory eligible future records. An authorized admin can then confirm the exact records and active replacement for a bulk CRM owner handoff. Before the first Pro meeting scan, BookableCheck uses the same app/client ID to request two conditionally required scopes:
| Conditional scope | Why HubSpot requires it |
|---|---|
crm.objects.contacts.read | HubSpot's official 2026-03 Meetings specification maps meeting search and read to this scope. BookableCheck never calls a Contacts endpoint. |
crm.objects.contacts.write | HubSpot maps meeting batch update to this scope. BookableCheck writes hubspot_owner_id and hs_attendee_owner_ids on the exact CRM meeting records an authorized admin confirms, and can optionally create a replacement event. |
Under those Pro feature and authorization conditions, BookableCheck inventories future CRM meeting records owned by inactive users. An authorized admin can choose an active replacement, review the exact records, and confirm one bulk owner and internal-attendee update. The admin can optionally confirm creation of separate replacement events. BookableCheck returns the per-record CRM and event results, then queues a fresh scan of the supported HubSpot state.
The feature stores meeting ID, owner ID, start and end times, outcome, replacement-event status and ID, and a portal-level link to HubSpot’s Meetings index. For a confirmed replacement event, source invite content and associated contact IDs and internal attendee-owner IDs are read transiently, sent to HubSpot, and not persisted or logged.
After setup
Continue to Using BookableCheck to interpret findings, prepare an offboarding case, run an eligible meeting-owner handoff, and verify the CRM result. If installation fails, see Support.