Exact Online and Zoho CRM integration
Exact Online stores your complete financial and operational records, while Zoho CRM manages your sales pipeline and customer relationships. Connecting the two keeps your sales records in sync with your accounting ledger. Customers added in Exact Online flow into Zoho CRM as accounts, contacts move to the CRM side, and sales orders stay aligned across both systems. ml-connector handles the region-specific authentication, webhook expiry, and mapping, so your sales and accounting teams work with a single source of truth.
What moves between them
Customer records and contacts flow from Exact Online into Zoho CRM. When an account is created or updated in Exact Online, ml-connector syncs it to Zoho CRM as an account record with matching contact information. Sales orders are read from Exact Online and posted to Zoho CRM as sales orders or deals depending on their status, maintaining alignment between the accounting ledger and the sales pipeline. The sync runs on a schedule tied to Exact Online webhook notifications, with polling fallback for entities where webhooks are not enabled.
How ml-connector handles it
ml-connector stores encrypted OAuth credentials for both systems and manages token refresh on Exact Online's 10-minute access token cycle. On the Zoho side, it renews notification channels daily since they expire within 24 hours, and uses the api_domain field from each token response to route API calls to the correct region-specific endpoint. Exact Online region-specific base URLs (Netherlands, Belgium, UK, Germany, France, Spain, or USA) are configured per customer so the right division can be queried. When Exact Online webhooks fire with account or contact changes, ml-connector fetches the full entity via REST, maps it to Zoho CRM fields, and performs the create or update. Webhook payloads contain only entity keys, so ml-connector always fetches the full record to ensure complete data sync. For Professional-tier customers, sales orders are synced; Free and Standard-tier Zoho instances receive contact and account data only. Every record carries a full audit trail and can be replayed if a downstream Zoho API call fails.
A real-world example
A mid-sized services firm in the Netherlands uses Exact Online for accounting and invoicing, and Zoho CRM to manage their sales pipeline and customer relationships. Previously, the sales team manually entered customer information into Zoho CRM as deals moved through the pipeline, creating duplicate records and losing sync when customer details changed in the accounting system. With Exact Online and Zoho CRM connected, each new customer added to Exact Online automatically appears in Zoho CRM with contact details, and sales orders from Exact Online flow into Zoho as deals, so the pipeline always reflects current accounting status. The sales team no longer re-enters customer data, and finance can track which invoices correspond to which pipeline deals.
What you can do
- Sync customers from Exact Online to Zoho CRM accounts with matching contact records and company details.
- Keep customer and contact records in both systems aligned when changes occur in either system.
- Flow sales orders from Exact Online into Zoho CRM as sales orders (Professional tier and above) or leads and contacts (all tiers).
- Manage OAuth 2.0 refresh cycles for both platforms, including Zoho's 1-hour access token refresh and daily webhook channel renewal.
- Maintain a complete audit trail of every sync, mapping, and API call, with the ability to replay failed records.
Questions
- Which records move between Exact Online and Zoho CRM, and in which direction?
- Customers and contacts move from Exact Online into Zoho CRM. Accounts in Exact Online (marked with IsCustomer flag) become Zoho CRM accounts, and Exact Online contacts become Zoho CRM contacts. Sales orders flow one direction from Exact Online into Zoho CRM, where they become sales orders (Professional tier) or are mapped to deals (all tiers). Zoho CRM is not a primary source for writes back to Exact Online; the sync is primarily ERP to CRM.
- How does ml-connector handle Exact Online's region-specific base URLs and OAuth token expiry?
- ml-connector stores the region (Netherlands, Belgium, UK, Germany, France, Spain, or USA) per customer and constructs the correct region-specific base URL for all Exact Online API calls. It refreshes Exact's 10-minute access tokens automatically, using the 30-day rotating refresh token stored encrypted. If a refresh token approaches its 30-day expiry without being used, it triggers a user alert to re-authorize before the token becomes stale.
- What happens when Zoho CRM's webhook channels expire?
- Zoho CRM notification channels expire within 24 hours and must be renewed automatically. ml-connector renews channels daily via PATCH requests to prevent any lapse in push notifications. If a renewal fails, ml-connector falls back to scheduled polling so no account or contact changes are missed.
Related integrations
More Exact Online integrations
Other systems that connect to Zoho CRM
Connect Exact Online and Zoho CRM
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started