Skip to content
  • There are no suggestions because the search field is empty.

How the HubSpot Integration Works

The HubSpot integration keeps your Pabau clients and leads in step with the contacts and deals in your HubSpot portal. Contacts sync both ways — new and updated Pabau clients are pushed to HubSpot in near real time, and contact changes made in HubSpot flow back into Pabau — while your Pabau leads become HubSpot deals, appointments appear as HubSpot appointment records, and sales and payments can be logged as notes on the contact's timeline.

This is a connector inside Pabau's Data Sync tool. If you're new to Data Sync, read How Data Sync works in Pabau first for the general concepts (triggers, mapping, the delivery log and retries). This guide covers everything specific to HubSpot.

NOTE: You need administrator access in Pabau to set the connector up, and a HubSpot sign-in that is allowed to install apps in your portal.

What the connector does

  • Creates or updates a HubSpot contact when a client is created or edited in Pabau — and brings contact changes made in HubSpot back into Pabau.
  • Creates or updates a HubSpot deal when a Pabau lead is created or updated, and moves the deal's stage when the lead is marked won or lost.
  • Creates a HubSpot appointment record (associated with the contact) when an appointment is booked or changed, and marks it cancelled when the booking is cancelled.
  • Optionally logs sales and payments as notes on the contact's timeline — invoice number, total and items for a sale; amount and method for a payment, with refunds shown as negatives (off by default).
  • Optionally deletes the HubSpot contact or deal when the client or lead is deleted in Pabau (off by default).
  • Optionally creates new Pabau clients from unmatched HubSpot contacts (off by default).

NOTE: A contact deleted in HubSpot is never deleted in Pabau — medical records are retained, and erasure only ever flows from Pabau outwards.

Before You Start

The connection uses HubSpot's own sign-in (OAuth) — there are no API keys to copy. You'll need a HubSpot account and a sign-in that can install apps in the portal you want to connect (in most portals that means a super admin).

Step 1: Connect Your HubSpot Account

You can start from either of two places:

  • Setup > App Marketplace — select the HubSpot tile. It takes you straight into the Data Sync setup below.
  • Data Hub > Data Sync — select Add connector, choose HubSpot, and select Set up.

The first step of the setup asks you to connect your account. Select Connect HubSpot — a HubSpot window opens where you sign in, pick the portal to connect, and approve the access. Once you approve, the window closes and Pabau creates the connection automatically, then opens it so you can review the triggers, field mapping and settings described below.

TIP: If your browser blocks the pop-up window, allow pop-ups for Pabau and select Connect HubSpot again.

Step 2: Triggers

On the Triggers tab, choose which Pabau events are pushed to HubSpot:

  • client.create / client.updateCreate or update HubSpot contacts (on by default).
  • client.deleteDelete HubSpot contacts (off by default).
  • lead.create / lead.update / lead.won / lead.lostCreate or update HubSpot deals (on by default) — won and lost move the deal to your closed-won / closed-lost stage.
  • lead.deleteDelete HubSpot deals (off by default).
  • booking.create / booking.updateCreate or update HubSpot appointments (on by default).
  • booking.canceledCancel HubSpot appointments (on by default).
  • invoice.createLog sales as contact notes (off by default).
  • payment.create / payment.refundLog payments as contact notes (off by default).

IMPORTANT: Once client.delete is switched on, deleting a client in Pabau always deletes the linked HubSpot contact — even if you've set the contact sync direction to inbound only. This is deliberate, so an erasure honoured in Pabau is honoured in HubSpot too. Leave it off if you need deleted clients to remain as contacts in HubSpot.

Step 3: Field Mapping

On the Mapping tab, expand Contacts to see how Pabau client fields map to standard HubSpot contact properties. The default mapping is:

  • Email → Email (required — see how matching works below)
  • First name → First name
  • Last name → Last name
  • Mobile phone → Mobile phone number
  • Phone → Phone number
  • Street address → Street address
  • City → City
  • County / province → State / region
  • Postcode → Postal code
  • Country → Country
  • Date of birth → Date of birth

Turn a row off to stop that field syncing, retarget a row to a different HubSpot property (for example Company name, Website URL, Job title, Lifecycle stage or Lead status) using the dropdowns, or add rows for your own Pabau custom fields. Each object group's direction control decides whether it syncs both ways (the default for contacts and deals), outbound only (Pabau → HubSpot) or inbound only, and the Data conflict resolution setting decides which side wins when it's unclear which has the newer data — Pabau is the source of truth by default.

The Deals group shows how a Pabau lead becomes a deal: the deal name is composed from the lead's name automatically, and the deal stage is resolved through the pipeline stage map on the Settings tab (falling back to your portal's default stage).

NOTE: The person-level deal rows (name, email, phone and so on) are switched off by default because standard HubSpot portals don't define those properties on deals — switching one on without a matching custom deal property in your portal makes every deal write fail. Turn them on only if your portal has the matching custom properties.

The Appointments, Sales and Payments groups are composed automatically — appointment name, times, duration and status come from the booking, and the note text comes from the invoice or payment. There's nothing to map by hand; switch them on or off from the Triggers tab. Appointments sync outbound only (Pabau → HubSpot).

Step 4: Sync Settings

On the Settings tab you'll find the connection card — showing the connected HubSpot portal, with the option to disconnect — and these options:

  • Create missing records on update (default Yes) — editing a client or lead that has never synced creates the record in HubSpot instead of skipping it.
  • Create new clients from HubSpot contacts (default No) — when on, HubSpot contacts that match no existing client are created as new Pabau clients. Matched contacts still sync either way.
  • Pipeline stage map — pairs your Pabau lead pipeline stages with HubSpot deal stages, so a lead moving through your Pabau pipeline moves the deal through yours in HubSpot. Unmapped stages use your portal's default stage.

Use Test connection to confirm Pabau can reach your HubSpot portal.

IMPORTANT: Leave Create new clients from HubSpot contacts off unless you're sure you want it. An active marketing portal can modify hundreds of contacts in minutes, and switching this on creates a Pabau client for every unmatched contact your campaigns touch.

How Records Are Matched

When a contact changes in HubSpot, Pabau works out which client (if any) it belongs to:

  1. A client that has already synced with that contact is always used — the stored link is authoritative.
  2. Otherwise, if the contact's email matches exactly one Pabau client, that client is linked and updated.
  3. If the email matches more than one client, or matches a client already linked to a different HubSpot contact, nothing is written — the change is skipped rather than guessed. Contacts without an email address are never matched by guesswork either.

If nothing matches, a new Pabau client is created only when Create new clients from HubSpot contacts is on. In every case, older data never overwrites newer data — each side's changes only apply when they're newer than what the other side already holds.

Deals for Your Leads

Every Pabau lead you sync becomes a HubSpot deal named after the lead, sitting in the stage your pipeline stage map points at. When the lead is marked won or lost in Pabau, the deal moves to your closed-won or closed-lost stage — closing the loop for pipeline and ROI reporting in HubSpot.

Test It End to End

On the Mapping tab, select Send test event, choose an event such as client.update, and select Send test. Pabau picks a real client, pushes it through the live pipeline, and records the result in the log labelled as a test. Open the Logs to confirm it succeeded, then check the contact in HubSpot.

Reading the Delivery Log

Select Logs on the connector to see every delivery — including the exact request Pabau sent, the response HubSpot returned, and a correlation ID for support tickets. Failures follow the standard Data Sync rules: temporary problems (rate limits, network errors, HubSpot server errors) retry automatically on a widening schedule, while permanent rejections show the reason so you can fix the data and re-send with Sync latest data. See How Data Sync works in Pabau for the full guide to statuses, retries and re-sending.

Disconnecting

To stop the sync, open the connector's Settings tab and disconnect the HubSpot portal, or pause or delete the connector from its card in Data Hub > Data Sync. Disconnecting stops syncing in both directions; the delivery history is kept for audit.

Related articles

  • How Data Sync works in Pabau