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.