ml-connector
Epicor KineticMarketo

Epicor Kinetic and Marketo integration

Epicor Kinetic runs manufacturing, distribution, and order-to-cash operations. Marketo manages demand generation and sales pipeline. Connecting them means your marketing team sees real customer data from the ERP, your sales reps track opportunities that pull actual invoice and order history, and finance can measure marketing influence on cash collection. ml-connector moves customer master data, AR balances, and sales activity between the two systems on a schedule you control.

How Epicor Kinetic works

Epicor Kinetic exposes customers, vendors, purchase orders, accounts receivable invoices, GL accounts, and parts through REST endpoints using OData v4 filtering. Cloud instances are accessed via tenant-specific URLs with OAuth2 client credentials or API keys; on-premises deployments use Basic Auth or Token Resource Service. Since Epicor publishes no native webhooks, records are retrieved by polling with OData date filters on UpdatedOn fields and pagination. The API requires a Company segment in the URL path and Bearer token refresh every hour.

How Marketo works

Marketo exposes leads, companies, opportunities, sales persons, named accounts, and custom objects through REST JSON APIs. Authentication uses OAuth2 client credentials with a Bearer token that expires in one hour. Marketo is polling-only; it generates outbound webhooks but does not accept inbound event subscriptions. Records are fetched via REST endpoints with filterType on updatedAt, and changes can be streamed using the activity lead changes API with a paging token. Batch limits are 300 records per request for leads and opportunities.

What moves between them

Customer records from Epicor Kinetic flow into Marketo as company objects, with key fields such as billing address, account number, and AR balance. Sales orders from Epicor are synced as opportunities in Marketo to give sales reps visibility of real orders and customer purchase history. When Marketo marks opportunities as closed-won or closed-lost, ml-connector can optionally sync the status back to a custom field in Epicor for pipeline alignment. Data flows on a daily or weekly schedule depending on business requirements.

How ml-connector handles it

ml-connector accepts the Epicor Kinetic tenant URL and OAuth2 credentials, refreshing the Bearer token when it approaches expiry. It queries Epicor with OData filters on UpdatedOn to retrieve customer and sales order changes since the last sync, using offset pagination for large result sets. Each Epicor customer is mapped to a Marketo company; sales order line items become opportunities. ml-connector handles the Marketo munchkin ID, Client ID, and Client Secret to obtain and refresh Bearer tokens. Because neither system offers inbound webhooks, ml-connector polls both on a cadence you choose. Marketo rate limits are applied per munchkin instance, so ml-connector includes backoff logic. Every record is tagged with the source system and sync timestamp for audit and replay.

A real-world example

A mid-sized discrete manufacturer uses Epicor Kinetic for order, inventory, and AR, and Marketo for demand generation and opportunity tracking. Before integration, the sales team maintained manual spreadsheets of top customers and forecasted orders, and marketing could not measure the impact of campaigns on actual customer spend. With Epicor and Marketo connected, the CRM pulls live customer master data and AR balances from the ERP, sales reps see the history of each account's purchases and invoice totals, and marketing builds campaigns targeted at high-revenue accounts. At quarter-end, the finance team can tie closed-won opportunities in Marketo back to actual orders in Epicor.

What you can do

  • Sync Epicor Kinetic customer records into Marketo as company objects, including AR balance and account number for sales reference.
  • Move Epicor sales orders into Marketo as opportunities, so reps can see order date, amount, and ship status.
  • Optionally sync Marketo opportunity status back into Epicor as a custom field for sales-finance alignment.
  • Refresh OAuth2 bearer tokens automatically and handle Epicor Company segment requirements in the URL path.
  • Poll both systems on a schedule of your choosing, with full audit trail and error replay for every record.

Questions

Do customer records flow in both directions between Epicor Kinetic and Marketo?
Customer master data (name, address, account number, AR balance) flows from Epicor into Marketo as company records. Sales order information also flows from Epicor to Marketo as opportunities so sales reps have order history and amounts. Opportunity status can optionally flow back from Marketo into Epicor as a custom field for visibility, but customer master updates from Marketo do not write back to Epicor.
How does ml-connector handle the differences in auth between Epicor and Marketo?
ml-connector stores Epicor OAuth2 credentials (client ID, secret, token URL) and Marketo credentials (munchkin ID, client ID, secret) encrypted. It requests and refreshes Bearer tokens from each system independently and includes them in every request. Epicor tokens expire in roughly one hour, while Marketo tokens expire after 3600 seconds, so ml-connector handles refresh cycles for both.
What happens when a new customer is added in Epicor after the integration starts?
On the next sync run, ml-connector queries Epicor with an OData filter on UpdatedOn to retrieve customers modified since the last poll. The new customer record is created in Marketo as a company object with a linked source record ID so future syncs can update it. If the same customer is edited in both systems between polls, ml-connector applies a last-modified-wins merge based on the sync timestamp.

Related integrations

Connect Epicor Kinetic and Marketo

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

Get started