Skip to main content

HubSpot

Send the leads your agents capture straight into HubSpot. When a visitor is captured (see Lead Capture), ChatterMate creates or updates the matching contact — deduplicated by email — and attaches the AI qualification summary as a note. It’s a one-way push (ChatterMate → HubSpot). Nothing is read back or overwritten in ChatterMate.
On ChatterMate Cloud, CRM Sync is a Pro feature. Self-hosted deployments have it built in — you just register your own HubSpot app (see Self-hosted setup).

What gets pushed

Repeat captures of the same email update the existing contact instead of creating duplicates.

Connecting HubSpot (Cloud)

Go to Settings → Integrations, find the CRM section, and:
  1. Click Connect on the HubSpot card.
  2. Authorize ChatterMate in HubSpot’s OAuth screen.
  3. You’re returned to the Integrations page and the card shows Connected with your portal name.
One HubSpot account connects to one ChatterMate organization. Connecting requires the Manage Organization permission.

Turning on sync for an agent

Connecting HubSpot doesn’t move any leads on its own — you choose per agent which CRM its captured leads go to. Open an agent → Lead Capture tab → Sync to CRMHubSpot. Every lead that agent captures is then queued for HubSpot automatically.
The agent’s selection is respected on automatic sync — a lead only goes to the CRM you picked for that agent. If you pick HubSpot before connecting it, the choice is saved and syncing starts once you connect.

Manual “Sync now” for a person

Open People, select a person, and use Sync to CRM in the detail drawer to push them on demand. This sends them to every connected CRM and shows where they’ve already been synced, with a link to the created record. Use it to backfill people captured before HubSpot was connected.

Failure handling

CRM problems never interrupt a conversation. Syncs run in the background and retry with backoff:
  • Not connected — no lead is queued; the agent’s Lead Capture tab shows an inline warning.
  • Temporary errors (rate limits, network) — retried automatically.
  • Expired connection — the HubSpot card shows Reconnect; reconnecting automatically re-queues leads that failed while it was down.
  • Permanent failures — surfaced as a recent-failure count on the card.

Self-hosted setup

Self-hosted ChatterMate has CRM Sync built in with no plan restriction — you bring your own HubSpot app so tokens stay in your infrastructure.

1. Register a HubSpot app

Create an app in the HubSpot developer portal:
  • Redirect URL: https://<your-backend-domain>/api/v1/crm/hubspot/callback
  • Scopes: crm.objects.contacts.read crm.objects.contacts.write
The redirect URL is derived from your BACKEND_URL, so make sure that’s set to your public backend origin. Copy the app’s Client ID and Client Secret.

2. Set the credentials

Add to backend/.env:

3. Run the sync worker

CRM pushes are processed by a dedicated worker. Add it to your Compose stack alongside the backend:
The worker polls a database queue — no Celery or extra broker needed. The same worker handles Pipedrive too.
Once the credentials are set and the worker is running, connect and configure exactly as in the Cloud sections above — the HubSpot card appears on Settings → Integrations automatically.