ml-connector
Exact OnlineMarketo

Exact Online and Marketo integration

Exact Online runs your accounting and business operations. Marketo runs your B2B marketing and lead management. Connecting them keeps your marketing database aligned with your operational customer and prospect data. New accounts created in Exact Online flow to Marketo, changes to customer contacts and company details stay in sync, and your marketing and finance teams are working from the same customer master.

How Exact Online works

Exact Online exposes a comprehensive REST API using OData v3 query syntax, with region-specific base URLs depending on your geography (Netherlands, Belgium, UK, Germany, France, Spain, or USA). Accounts (suppliers and customers), contacts, GL accounts, cost centers, sales invoices, purchase invoices, and items are all accessible via REST. Authentication uses OAuth 2.0 Authorization Code Grant with a 10-minute access token lifetime and a 30-day rotating refresh token. Exact Online webhooks push notifications for account, contact, and order changes to a registered callback URL, so ml-connector can react immediately when data changes rather than polling constantly.

How Marketo works

Marketo is a B2B marketing automation platform that manages leads, companies, opportunities, campaigns, and marketing activities through a REST JSON API. Each Marketo instance has a unique subdomain, and authentication uses OAuth2 Client Credentials, where ml-connector exchanges a Client ID and Client Secret for a bearer token with a 3600-second expiry. Marketo supports leads, companies, opportunities, custom objects, and activities. Marketo does not push change events to external systems, so connectors must poll the API using filters on updatedAt timestamps to find records that have changed since the last check.

What moves between them

The main flow runs from Exact Online into Marketo. Customer and prospect accounts from Exact Online are read and upserted into Marketo as leads and company records. Contact details from Exact Online accounts are written to Marketo leads with the linked company. The sync runs on a polling schedule you control, such as every 4 hours or once per day. Marketo holds the lead and company data for your marketing campaigns; Exact Online remains the system of record for business operations and accounting.

How ml-connector handles it

ml-connector stores both OAuth credential sets encrypted and obtains fresh access tokens on demand. For Exact Online, it uses the OAuth2 Authorization Code flow (user logs in once; ml-connector stores the refresh token) and polls the /api/v1/{division}/Accounts and /api/v1/{division}/Contacts endpoints on your schedule. When webhook notifications arrive for account or contact changes, ml-connector can react immediately. For Marketo, ml-connector uses the Client Credentials flow (no user login required) to obtain a bearer token every hour, then upserts leads and company records via the /rest/v1/leads.json bulk endpoint. Exact Online requires the division ID (fetched from /current/Me on first auth) and respects the 30-day refresh token rotation by refreshing at least once every 29 days. Marketo's batch limit is 300 records per request, so large syncs are split into chunks. All records carry a full audit trail and can be replayed if a downstream call fails.

A real-world example

A mid-sized B2B SaaS company runs Exact Online for accounting, purchasing, and customer management across three European offices. The sales team uses Marketo to nurture prospects and track marketing campaigns. Before the integration, new enterprise accounts created in Exact Online were re-entered manually into Marketo by the marketing operations team, a process that took days and created duplicate leads when sales submitted prospects before finance had recorded them. With Exact Online and Marketo connected, new accounts and their primary contact details flow into Marketo every 4 hours, accounts updated in Exact Online are reflected in Marketo within minutes via webhooks, and duplicate leads are eliminated. The marketing team starts campaigns with an accurate, up-to-date prospect database, and sales and finance stay synchronized.

What you can do

  • Sync customer and prospect accounts from Exact Online to Marketo leads and companies on a polling schedule you control.
  • Receive immediate updates when accounts and contacts change in Exact Online via webhooks, without waiting for the next polling cycle.
  • Map Exact Online accounts and contacts to Marketo leads and companies, with company relationship tracking.
  • Handle OAuth2 token rotation for both systems, including Exact Online's 30-day refresh token window and Marketo's hourly token refresh.
  • Maintain a full audit trail of every record synced, and replay failed records when downstream calls fail.

Questions

Which direction does data move between Exact Online and Marketo?
The main flow is from Exact Online into Marketo. Customer and prospect accounts and contacts are read from Exact Online and written to Marketo as leads and companies. Marketo holds the lead records for marketing campaigns; Exact Online remains the system of record for operations and accounting. No data flows back from Marketo to Exact Online in this integration.
How does ml-connector handle Exact Online's 30-day refresh token requirement?
Exact Online's refresh token expires after 30 days if it is not used. ml-connector tracks the refresh token issue date and automatically refreshes it at least once every 29 days to prevent expiry. If the refresh fails, ml-connector alerts you and the integration pauses until the user re-authorizes via OAuth2, which issues a fresh token.
What happens when a large account list needs to be synced to Marketo?
Marketo limits bulk requests to 300 records per call. ml-connector automatically splits large account and contact syncs into 300-record chunks and makes multiple API calls in sequence. Each chunk is tracked separately in the audit log, so partial failures can be replayed without re-syncing records that already succeeded.

Related integrations

Connect Exact Online and Marketo

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

Get started