HubSpot
SalesMarketing NewConnect HubSpot and Preb keeps your CRM in sync with every booking automatically. Leads, booked calls, reschedules, cancellations, no-shows, and call outcomes all flow into HubSpot as contacts, meetings, notes, and pipeline deals — and changes you make in HubSpot flow back to Preb, so the two stay in agreement without anyone copying data by hand.
It's a two-way, native integration: no Zapier, no CSV exports. Preb becomes the scheduling engine in front of your HubSpot pipeline, and — because Preb is where your ad-click IDs live — a deal you mark won anywhere fires the Purchase conversion back to your ad platforms, closing the attribution loop.
Adding the app
Prerequisites
- A HubSpot account (any tier — the free CRM works) where you can install apps.
- A Preb workspace where you are an admin — connecting and configuring HubSpot is an admin-only action.
Connect your HubSpot account
Open Integrations → HubSpot
In Preb, go to Integrations → HubSpot and click Connect HubSpot.
Choose the account and authorize
HubSpot asks which account to connect and shows what Preb may access — contacts, deals, and users. Choose the account and click Connect app. You're returned to Preb with HubSpot shown as connected.
Preb sets things up for you
On connect, Preb matches your Preb team members to their HubSpot users by email so contacts, meetings, and deals land on the right owner. You can review the matches on the settings page.
One HubSpot account per workspace
Each Preb workspace connects to exactly one HubSpot account. To move to a different account, disconnect first, then connect the new one — Preb resets the account-specific settings (pipeline, owner, status mappings) so nothing points at the old account.
Set up what syncs
After connecting, open Integrations → HubSpot to configure the sync. Each card is optional — turn on only what you need:
Contact sync
Map each funnel moment to a Lead Status and Lifecycle Stage (the pickers show your portal's real options), link your hosts to their HubSpot users, and pick a default owner for hosts who aren't matched.
Field mapping
Map Preb data (meeting time, scheduling status, deal value, UTM parameters, ad-click IDs, booking-form answers, and your CRM custom fields from Global Data) to HubSpot contact properties. Preb can create a matching property for you — it lands in a dedicated "Preb" property group.
Pipeline & deals
Pick a default pipeline and map each lifecycle moment to a deal stage. Picking a fresh pipeline pre-fills the essentials: booked → your first stage, sale → your won stage, disqualified → your lost stage.
Sync-back & conversation logging
Turn on two-way sync for contacts and deals, and choose whether Preb mirrors the emails and texts it sends onto the HubSpot contact timeline.
You can also override any of these per event type from the HubSpot tab in the event-type editor (it appears once a connection is active).
Troubleshooting
| Problem | What to do |
|---|---|
| "The app could not be installed" during authorization | Your HubSpot user needs permission to install apps in the account — ask a super admin, or have them connect instead. |
| "That HubSpot account is already connected" | The HubSpot account is connected to a different Preb workspace. Disconnect it there first, or pick a different account. |
| Contacts sync but have no owner | Link the host to their HubSpot user under Contact sync → Team members, or set a Default contact owner for unmatched hosts. |
| Deals aren't created | Pick a Default pipeline and make sure at least Call booked is mapped to a stage — a booking can only create a deal when it has a stage to land in. |
| "Reconnect HubSpot" appears | The connection was uninstalled or its access expired. Open Integrations → HubSpot and connect again — your mappings and settings are preserved. |
Still stuck? See our contact & support guide and we'll help you sort it out.
Using the app
Once HubSpot is connected, these features work automatically based on what you enabled. Each one lists what it does and what needs to be in place first.
Leads and contacts sync as they come in
- Use case: A visitor completes the first step of your booking form. Preb upserts them as a HubSpot contact (deduped by email), sets your mapped Lead Status and Lifecycle Stage for that moment, assigns the owner, and fills any mapped properties — including UTM parameters and ad-click IDs.
- Prerequisites: Contact sync is on. Unmapped statuses are left untouched, so your existing HubSpot data is safe.
- Optional — unfinished leads too: Workspace owners can additionally turn on Send unfinished leads to your connected CRM (Settings → Data retention). Visitors who started typing into the form but never submitted are then pushed to HubSpot about two hours later. Leads synced this way are kept (they're in your pipeline now) instead of being auto-deleted after 30 days — and they're your responsibility under privacy law like any other CRM contact.
Bookings become meetings on the timeline
- Use case: A call is booked. Preb logs a meeting on the contact's HubSpot
timeline with the time, the meeting link, the host as owner, and the
booking-form answers. Reschedules update the same meeting in place;
cancellations and no-shows set the meeting outcome (
Canceled/No show), and a recorded call outcome marks itCompleted. - Prerequisites: none — meetings sync whenever contact sync is on.
The pipeline follows the call
- Use case: As a lead moves from booked to showed to won, Preb moves a single deal through your pipeline stages and records the deal amount and close date on a sale. There's always one active deal per contact per pipeline — no duplicates — and a closed deal is history: when a customer whose deal is already won or lost books again, Preb starts a fresh deal for the new sales cycle instead of reopening the old one, so your revenue reporting stays accurate. Different no-sale reasons (follow-up, unqualified, not interested) can land on different stages.
- Prerequisites: A pipeline is selected and its stages are mapped. Unmapped moments are simply skipped.
Two-way sync keeps both sides honest
- Use case: Someone edits a synced contact in HubSpot — name, phone, email, or owner — and Preb picks it up and updates its own records, without echoing the change back and causing a loop.
- Prerequisites: The contacts sync-back toggle is on. A contact's ad-attribution data is never overwritten by a sync-back.
Won in HubSpot fires your ad conversion
- Use case: You drag a Preb-created deal to your won stage in HubSpot. Preb records the sale and fires the Purchase conversion to your connected ad platforms — using the ad-click IDs it captured at booking time — so revenue is attributed even when the deal closes in the CRM. It fires exactly once, whether you close the deal in HubSpot or in Preb.
- Prerequisites: Deal sync-back is on, and you've connected an ad platform (e.g. Meta) in Preb's tracking settings.
Owner-based routing
- Use case: A returning lead who already has a contact owner in HubSpot books again. Preb offers only that owner's availability, so the relationship stays with the person who owns it. If the owner isn't available or isn't mapped, Preb falls back to normal round-robin. Bookers on personal email domains (gmail, outlook, …) skip owner routing by default, so a stale CRM record never pins a new person to the wrong host.
- Prerequisites: Owner routing is enabled on a round-robin event type, and the host is linked to their HubSpot user.
Conversations logged in one thread
- Use case: Every confirmation, reminder, reschedule, and cancellation email or text Preb sends to the invitee is mirrored onto that contact's HubSpot timeline (emails as logged emails, texts as SMS entries), so your team sees the full history where they already work. Preb stays the sender — this only records a copy.
- Prerequisites: Conversation logging is on (it's on by default for newly connected workspaces).
Trigger HubSpot workflows from Preb moments
- Use case: You want HubSpot to send a follow-up sequence when a call is
booked, or alert a channel on a no-show. Build a HubSpot workflow that
triggers on the property Preb writes — for example Lead Status is any of
"Booked" or a mapped
preb_*property changing — and it fires the moment Preb syncs that change. This is HubSpot's native automation model, so everything in workflows (delays, branches, tasks) works. - Prerequisites: The status or property you trigger on is mapped in Preb's settings.
Permissions Preb requests (and why)
When you connect, HubSpot asks you to authorize a set of scopes. Preb requests only what the features above need — nothing is used for advertising, resale, or profiling, and Preb never reads data it doesn't act on.
| Permission | Why Preb needs it |
|---|---|
| Contacts (read/write) | Create and update the contact for each lead and booking, set Lead Status / Lifecycle Stage, and log meetings, notes, and mirrored messages on the timeline. |
| Deals (read/write) | Keep one deal per contact moving through your pipeline as they book, show up, and buy; read it back to close the attribution loop when you win a deal in HubSpot. |
| Owners (read) | List the account's users so Preb can match them to your team members (owner assignment and routing). |
| Contact properties (read/write) | List your contact properties for the field-mapping picker, and — only when you click "Create" — add a preb_* property in the "Preb" group so mapped data has somewhere to land. |
| Deal pipelines (read) | List your pipelines and stages for the pipeline picker and to recognize your won/lost stages. |
| OAuth | Manage the connection's own access tokens (refresh them before they expire). |
Data & privacy
- What Preb stores: the connection's encrypted access/refresh tokens, the HubSpot account id, and the mapping choices you configure (which pipeline, statuses, properties, and team members to use). It does not copy your HubSpot contact database into Preb.
- Direction of data: Preb writes booking and outcome data into HubSpot, and reads back only the specific changes it needs to stay in sync (a contact edit, a deal stage change). A contact's ad-attribution data is never overwritten by a sync-back.
- Removing your data: disconnecting from Preb, or uninstalling the app in HubSpot, stops all syncing. Records already written to your HubSpot account are yours and are left in place. A contact deleted in HubSpot (including GDPR privacy deletions) is unlinked on Preb's side immediately.
Removing the app
You can disconnect from either side.
From Preb
Go to Integrations → HubSpot and click Disconnect. Preb stops syncing immediately.
From HubSpot
Uninstall the Preb app under Settings → Integrations → Connected apps in HubSpot. This revokes Preb's access; Preb detects it, marks the connection as needing a reconnect, and emails your workspace admins.
What removing the app does
- Preb stops creating and updating HubSpot contacts, meetings, and deals for future bookings, and stops accepting changes from HubSpot.
- Contacts, meetings, and deals already in HubSpot stay there — disconnecting doesn't delete anything in your CRM.
- Your Preb-side settings (status mappings, field mappings, pipeline and owner mappings) are kept, so reconnecting the same account picks up exactly where you left off.
Known limitations
- Meetings edited in HubSpot don't sync back. HubSpot doesn't offer webhooks for the meetings object, so a meeting you move or delete inside HubSpot won't change the Preb booking. Reschedule and cancel from Preb (or the invitee links) — those update HubSpot automatically.
- Lifecycle Stage only moves forward. That's a HubSpot rule: mapping a later moment to an earlier stage won't move the contact backwards.