HubSpot
Connect HubSpot to import CRM contacts as leads and sync CRM meetings into Demo Bookings and your workspace Calendar.
What you get
- Import HubSpot contacts as leads on a chosen Pana event.
- Sync HubSpot CRM meetings into Demo Bookings and the workspace Calendar.
- Read HubSpot owners so meetings and scheduling pages show the correct Hosted by / organizer.
- Update existing leads matched by HubSpot contact ID (email fallback for legacy rows).
- Push local leads back to HubSpot when your workflow creates or updates contacts.
- Optional auto-sync to a default event on a 30-minute schedule.
HubSpot is one connection per workspace. Click Connect and approve access in HubSpot — you do not create your own HubSpot app.
Before you start
- A HubSpot account with CRM access (for the person who connects).
- At least one event in Pana to attach synced leads to.
- Workspace admin access.
Connect HubSpot
- Go to Settings → Integrations.
- Find HubSpot under CRM.
- Click Connect.
- Sign in to HubSpot and approve the requested permissions.
- Return to Pana when authorization completes.
OAuth scopes
When you connect, HubSpot asks you to approve these scopes:
| Scope | What it allows |
|---|---|
oauth | Sign in with HubSpot |
crm.objects.contacts.read | Import contacts as leads |
crm.objects.contacts.write | Push leads to HubSpot |
crm.objects.deals.read | Deal metadata |
crm.objects.meetings.read | Sync CRM meetings into Calendar + Demo Bookings |
crm.objects.meetings.write | Push / update HubSpot CRM meetings from Pana |
crm.objects.owners.read | Resolve HubSpot owners so pushed meetings show the correct Hosted by user |
scheduler.meetings.meeting-link.read | List Meetings scheduling pages and availability in the demo form |
Shared data (Marketplace listing)
The HubSpot listing Shared Data table must include every OAuth object the app requests. Add this row if it is missing:
| Object in HubSpot | Data flow | Scope |
|---|---|---|
| Owners | Sync From HubSpot | crm.objects.owners.read |
Use owners only to resolve Hosted by / scheduling-page organizer names. Pana does not write owners back to HubSpot.
Sync leads
- On the HubSpot card, click Sync leads.
- Select a Pana event.
- Optionally check Use this event for automatic sync (every 30 min).
- Click Sync.
Results show how many leads were created and updated. Contacts without an email are skipped.
Sync meetings
HubSpot CRM meetings sync into Demo Bookings and the workspace Calendar.
| Where | What you see |
|---|---|
| Events → Calendar | HubSpot meetings in orange when HubSpot is connected (opening Calendar also syncs meetings) |
| Demo Bookings | Rows with source HubSpot; filter by source in the table |
Sync meetings manually
- Make sure HubSpot is connected under Settings → Integrations.
- Open Demo Bookings.
- Click ⋮ More → Sync HubSpot meetings.
When a meeting is linked to a HubSpot contact, Pana uses that contact’s name, email, and company on the demo booking.
Automatic sync
When you enable auto-sync during a lead sync:
- The chosen event is saved as the default sync target.
- Pana syncs HubSpot contacts to that event approximately every 30 minutes.
- The integration card shows which event is used for auto-sync.
Disconnect
Turn off the toggle on the HubSpot card. Auto-sync stops; existing leads in Pana are kept.
Troubleshooting
| Issue | What to try |
|---|---|
| No events in the sync dialog | Create an event under Events first. |
| Contacts skipped | HubSpot contacts need an email address to import. |
| No HubSpot meetings | Disconnect and reconnect HubSpot, and approve meetings permissions when prompted. |
| Meetings not in Demo Bookings | Demo Bookings → ⋮ More → Sync HubSpot meetings, or open Events → Calendar. |
| Sync errors | Reconnect HubSpot and confirm your HubSpot user still has CRM access. |