ml-connector
Exact OnlineHubSpot

Exact Online and HubSpot integration

Exact Online runs your accounting, purchasing, sales, and inventory. HubSpot runs your sales pipeline and customer relationships. Connecting the two keeps your CRM customer master in sync with your ERP accounts so sales teams always see the current customer record, payment history, and contact details from Exact Online. Customer account changes in Exact Online flow into HubSpot automatically, and your sales teams spend less time chasing stale data.

How Exact Online works

Exact Online is a cloud ERP with region-specific REST API endpoints (Netherlands, Belgium, UK, Germany, France, Spain, USA). It uses OAuth 2.0 Authorization Code Grant for authentication, with 10-minute access token lifetime and 30-day rotating refresh tokens. Exact Online requires division ID in all API calls and exposes accounts, contacts, sales orders, purchase orders, GL accounts, and project data through REST with OData v3 query syntax. Webhooks are supported for a broad set of resources including Accounts, Contacts, and many others, delivered via HTTP POST with HMAC-SHA256 signature verification.

How HubSpot works

HubSpot exposes contacts, companies, deals, invoices, and other objects through REST JSON APIs with bearer token authentication via either Private App Access Token (pat-na1-) or OAuth 2.0. HubSpot enforces batch operation limits of 100 records per request and cursor-based pagination with a max limit of 200 per call. Rate limits vary by tier (100 to 190 requests per 10 seconds). Webhook subscriptions require a separate Public App registration and support signature verification. Search API is capped at 10,000 records, so larger syncs use the Lists API or CRM Export.

What moves between them

The main flow is Exact Online to HubSpot. Exact Online account records (both customers and suppliers flagged by the IsCustomer and IsSupplier attributes) sync into HubSpot as companies, while Exact Online contacts become HubSpot contacts. On each account or contact change in Exact Online, the webhook notifies ml-connector, which fetches the full entity via REST and upserts it into HubSpot. Associations between companies and contacts are preserved where the relationship exists in Exact Online.

How ml-connector handles it

ml-connector registers a webhook with Exact Online for Accounts and Contacts topics in each division. When Exact Online posts a webhook event, ml-connector verifies the HMAC-SHA256 signature using the webhook secret from Exact Online's App Center and fetches the full entity via REST to get all fields (webhook payloads include only the key and action). The OAuth 2.0 access token is refreshed before it expires and refresh tokens are rotated every 30 days. HubSpot contacts and companies are upserted with a deduplication key based on the Exact Online entity ID. Rate limits on both sides are respected - Exact Online access token refresh waits if needed, and HubSpot batch writes are capped at 100 records per request. Every record carries a full audit trail so account and contact changes can be traced back to the Exact Online source.

A real-world example

A regional European accounting firm uses Exact Online for client ledgers, AP/AR, and project billing. Sales and account management teams use HubSpot to track opportunities, manage renewals, and coordinate service delivery. Before the integration, customer account details were maintained separately in each system, so when a customer changed address, paid an invoice, or hit a billing milestone in Exact Online, account managers had to update HubSpot manually. With Exact Online and HubSpot connected, account changes flow automatically and sales teams see current payment status and contact information from the ERP without leaving CRM.

What you can do

  • Sync Exact Online accounts into HubSpot as companies, preserving supplier and customer status.
  • Sync Exact Online contacts into HubSpot contacts, maintaining associations to parent accounts.
  • Receive webhook notifications from Exact Online when accounts or contacts are created or updated, and sync changes within minutes.
  • Handle OAuth 2.0 authentication and token refresh for both Exact Online and HubSpot, with 30-day refresh token rotation.
  • Verify webhook signatures with HMAC-SHA256 and maintain a full audit trail of every account and contact sync.

Questions

Which direction does data move between Exact Online and HubSpot?
The main flow is Exact Online to HubSpot. Account and contact records from Exact Online sync into HubSpot as companies and contacts. Changes in Exact Online are pushed via webhook, so HubSpot updates within minutes. Writes from HubSpot back to Exact Online are not part of the standard integration, keeping the ERP master record authoritative.
How does the integration stay in sync when customers and contacts change in Exact Online?
ml-connector registers a webhook with Exact Online for Accounts and Contacts topics. When Exact Online posts a webhook event, ml-connector verifies the HMAC-SHA256 signature and fetches the full entity via REST API. The record is then upserted into HubSpot, deduplicating on the Exact Online entity ID so updates replace prior records rather than creating duplicates.
How are the different Exact Online regions and divisions handled?
Exact Online API endpoints are region-specific (Netherlands, Belgium, UK, Germany, France, Spain, USA), and all calls require a division ID. ml-connector accepts the region base URL and division ID per customer, registers webhooks in the correct division, and routes all REST calls to the matching region endpoint.

Related integrations

Connect Exact Online and HubSpot

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started