How Syncing Works

The integration keeps your Kleer and HubSpot data in sync using a smart synchronization engine.

Outbound Sync (Kleer to HubSpot)

This is the primary sync direction. The integration periodically fetches data from Kleer and pushes any changes to HubSpot.

Only changes are synced

Each record is fingerprinted with a hash. Only records where the data has actually changed since the last sync are sent to HubSpot. This keeps syncs fast and avoids unnecessary API calls.

Sync schedule

Object type Interval
Clients Every 15 minutes
Projects Every 15 minutes
Invoices Every 30 minutes
Agreements Every 30 minutes
Line Items Every 30 minutes
Products Once daily

Record matching

Each synced record is identified by a kleer_id property in HubSpot. When a record syncs for the first time, the integration searches HubSpot for an existing record with that Kleer ID. If none is found, a new record is created.

Inbound Sync (HubSpot to Kleer)

For clients and projects, changes made in HubSpot are synced back to Kleer automatically via webhooks. When you update a company or project in HubSpot, the changes are pushed to Kleer in near real-time.

Other object types are outbound-only (Kleer to HubSpot).

Workflow Actions

You can also create or update Kleer records directly from HubSpot workflows. After a Create Invoice, Create Agreement, or Update Agreement action runs, the resulting record is immediately pushed back to HubSpot — the linked subscription or invoice is refreshed without waiting for the next scheduled sync.

See Workflow Actions for details.