ml-connector
SYSPROMarketo

SYSPRO and Marketo integration

SYSPRO drives your manufacturing and distribution finance and operations. Marketo runs your B2B marketing campaigns and lead scoring. Connecting them keeps your marketing database in sync with your customer master and sales pipeline. New customers in SYSPRO flow to Marketo as companies and leads, invoice records feed behavioral scoring, and qualified opportunities created in Marketo map back into SYSPRO so your sales team works from a single pipeline.

How SYSPRO works

SYSPRO Adaptive ERP exposes customers, suppliers, invoices, purchase orders, general ledger accounts, inventory items, and warehouse records through e.net Business Objects (REST and SOAP) and OData (REST read-only). Authentication uses a session token obtained by logging in through the Utilities/Logon endpoint with an operator code and password, then passing the resulting UserId GUID on all subsequent calls. OData uses HTTP Basic Auth with a separate SQL operator code and OData password. SYSPRO has no public webhook system, so all syncing is by polling OData tables filtered on timestamp fields like InvoiceDate and PostDate, typically every 5 to 15 minutes for financial data.

How Marketo works

Marketo Engage is a B2B marketing automation platform that manages leads, companies, opportunities, sales persons, and programs through a REST JSON API secured with OAuth2 client credentials. Customers exchange a Munchkin Account ID, Client ID, and Client Secret for a Bearer token with a maximum 3600 second expiry. Marketo publishes no inbound webhook system; instead, integrators poll the REST API using filters on the updatedAt timestamp or consume activity changes through the Bulk Activity Extract API with a maximum 31 day window. Some entities like Opportunities and Companies are read-only if Salesforce or Microsoft Dynamics sync is already enabled on the Marketo instance.

What moves between them

SYSPRO customer records and invoice headers flow into Marketo as companies and leads on a polling schedule aligned with your order cycle. Opportunity records created or updated in Marketo are read back into SYSPRO and mapped to the corresponding customer master, maintaining a single source of truth for pipeline stage and forecast. All syncs are pull-only; ml-connector does not write customer or invoice data back into SYSPRO from Marketo.

How ml-connector handles it

ml-connector stores both credential sets encrypted and manages SYSPRO session token refresh on each polling interval. OAuth2 bearer token expiry is tracked separately, and token refresh happens before a call fails, avoiding disruption. SYSPRO polling filters OData by timestamp fields to fetch only changed records since the last run, and batches are processed in groups to respect Marketo's 300-record batch limit per request. Opportunities read from Marketo are mapped to SYSPRO customer records using a configurable key (customer number or name), and records that fail mapping are logged so your sales team can investigate missing links. Every record carries a full audit trail and can be replayed if a downstream call fails.

A real-world example

A mid-market industrial equipment manufacturer runs SYSPRO for orders and inventory and uses Marketo to nurture prospects through multi-month sales cycles. Before the integration, the marketing team manually exported customer lists from SYSPRO into spreadsheets and uploaded them monthly to Marketo, and the sales team tracked deals in disconnected notes and spreadsheets. With SYSPRO and Marketo connected, new customers created in SYSPRO automatically flow to Marketo as accounts and contacts, so the marketing team can score them immediately. Invoice records enrich lead scoring models, and qualified opportunities created in Marketo are synced back into SYSPRO, so the sales team sees the full picture of customer engagement.

What you can do

  • Sync SYSPRO customers and customer addresses to Marketo as companies and leads on a regular schedule.
  • Enrich Marketo lead scoring with invoice history and payment status from SYSPRO.
  • Map opportunities created in Marketo back to SYSPRO customer records to unify deal tracking.
  • Authenticate SYSPRO with session tokens and Marketo with OAuth2 client credentials, with automatic token refresh.
  • Poll both systems on a schedule aligned to your sales and order cycles, with retries and a full audit trail on every record.

Questions

Which direction does data move between SYSPRO and Marketo?
The main flow is SYSPRO into Marketo: customers and invoices sync to Marketo as companies and leads. Opportunities created or updated in Marketo are read back into SYSPRO to align your sales pipeline. SYSPRO invoice and customer records remain the source of truth and are not updated from Marketo.
Why does ml-connector poll both SYSPRO and Marketo instead of using webhooks?
SYSPRO and Marketo both lack inbound webhook capability; they can only receive polling requests. ml-connector uses timestamp-based filtering on both systems to fetch only changed records since the last run, typically every 5 to 15 minutes, so your marketing and sales data stays fresh without constant re-keying.
How are SYSPRO customers matched to Marketo companies and opportunities matched back to customers?
ml-connector uses a configurable key such as customer number, name, or email to match records across systems. When an opportunity is created in Marketo, ml-connector looks up the associated company and finds the matching SYSPRO customer record; if no match exists, it logs the mismatch so your team can investigate.

Related integrations

Connect SYSPRO and Marketo

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

Get started