ml-connector
QADMarketo

QAD and Marketo integration

QAD runs manufacturing and finance. Marketo runs B2B marketing automation. Connecting the two keeps your marketing account list aligned with the customers and accounts that already exist in the ERP. Customer and company records from QAD flow into Marketo as companies and named accounts, so campaigns target the same accounts finance bills, and Marketo opportunity and lead activity can be read back for sales context. ml-connector handles the very different APIs on each side and moves the data on a schedule you control.

How QAD works

QAD Adaptive ERP exposes customers, suppliers, purchase orders, supplier invoices, GL accounts, cost centers, items, and goods receipts through REST business document APIs, documented in Swagger inside each customer instance. The cloud product authenticates with a JWT session or OAuth2 bearer token against a tenant-specific URL, so there is no shared hostname. Older on-premise sites run QAD Enterprise Edition with the QXtend SOAP framework instead. QAD has no public webhook system for cloud connectors, so records are read by polling.

How Marketo works

Marketo exposes leads, companies, opportunities, sales persons, named accounts, and activities through the Marketo REST API at a Munchkin-scoped subdomain such as munchkin-id.mktorest.com. Authentication is OAuth2 client credentials: a Client ID and Client Secret are exchanged for a bearer token that expires in one hour and must be renewed. Companies, opportunities, and sales persons become read-only if a Salesforce or Microsoft Dynamics sync is active. Marketo has no inbound webhook for connectors; its outbound webhooks only fire from Smart Campaigns, so data is read by polling, with bulk extract for large pulls.

What moves between them

The main flow runs from QAD into Marketo. ml-connector reads QAD customer and account records and upserts them into Marketo as companies and named accounts, matched on external company IDs so the same account is never duplicated. Lead records tied to those accounts can be created or updated the same direction. In the other direction, Marketo opportunities, sales persons, and lead activity are read back so the account list stays enriched with sales and engagement context. QAD has no marketing objects, so nothing marketing-specific is written back to the ERP.

How ml-connector handles it

ml-connector stores both credential sets encrypted. On the QAD side it accepts the full tenant URL per customer, since QAD publishes no shared base address, and validates entity paths against that instance. For Marketo it derives the REST and identity URLs from the Munchkin ID, exchanges the Client ID and Client Secret for a bearer token, and renews the token before its one-hour expiry or on a 601 or 602 error. Because neither system pushes change events for connectors, it polls both on a schedule, using Marketo lead and activity change endpoints and bulk extract for large pulls. QAD customers map to Marketo companies and named accounts on external company ID; before writing it checks whether a Salesforce or Dynamics sync has made companies and opportunities read-only, and falls back to read-only when it has. Marketo returns HTTP 200 with a success flag and an errors array even on failure, so ml-connector parses the body rather than the status code, and backs off with jitter on rate-limit codes 606 and 615 to stay inside the shared per-instance quota. Every record carries a full audit trail and can be replayed if a downstream call fails.

A real-world example

A mid-sized industrial equipment manufacturer runs QAD Adaptive ERP for production, order management, and finance, and uses Marketo for account-based marketing to existing and prospective buyers. Before the integration, the marketing team kept its own account list and exported customer spreadsheets from QAD by hand every few weeks, so campaigns went to stale or duplicated accounts and new ERP customers took weeks to reach a nurture program. With QAD and Marketo connected, customer and account records flow into Marketo as named accounts on a schedule, matched on external IDs so duplicates are avoided, and Marketo opportunity and lead activity flows back for sales context. The marketing list reflects the real customer base, and the manual export step is gone.

What you can do

  • Upsert QAD customer and account records into Marketo as companies and named accounts, matched on external company IDs.
  • Read Marketo opportunities, sales persons, and lead activity back to enrich the account list with sales context.
  • Bridge QAD tenant login and Marketo OAuth2 client credentials, renewing the one-hour Marketo bearer token before it expires.
  • Detect when a Salesforce or Dynamics sync makes Marketo companies and opportunities read-only and fall back to read-only writes.
  • Poll both systems on a schedule with backoff on Marketo rate-limit codes, and a full audit trail and replay on every record.

Questions

Which direction does data move between QAD and Marketo?
The main flow is QAD into Marketo. Customer and account records move from QAD into Marketo as companies and named accounts, and lead records can be written the same direction. Marketo opportunities, sales persons, and lead activity are read back into QAD's account context. Marketo has no ERP objects, so no marketing data is written into QAD finance.
Marketo has webhooks. Why does this integration poll instead?
Marketo's webhooks are outbound calls fired from Smart Campaign flow steps, not inbound events a connector can subscribe to, so they do not signal a connector when records change. QAD cloud also has no webhook system for connectors. Because of this, ml-connector polls both systems on a schedule, using Marketo lead and activity change endpoints and bulk extract for large pulls.
What happens if a Salesforce or Dynamics sync is active in Marketo?
When a Salesforce or Microsoft Dynamics sync is enabled, Marketo makes companies, opportunities, and sales persons read-only through the REST API. ml-connector detects this and falls back to reading those objects rather than writing them, so syncs never fail on a blocked write. Lead and named account writes continue where they remain permitted.

Related integrations

Connect QAD and Marketo

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

Get started