Sage X3 and Marketo integration
Sage X3 runs your order fulfillment and supply chain. Marketo runs your B2B lead pipeline. Connecting the two keeps your marketing data aligned with your customer master. When a new customer record is created in Sage X3, that company and its contacts flow into Marketo as leads and accounts so your marketing team can immediately begin campaigns targeting the right audience. Product data synced from X3 enriches lead scoring and campaign segmentation. ml-connector handles the two different API shapes and keeps both systems in sync on a schedule tied to your sales cycle.
What moves between them
Customer and product data flows from Sage X3 into Marketo on a schedule you define. Each Sage X3 customer syncs as a Marketo company, and associated contacts sync as leads linked to that company. Products purchased or referenced in X3 sales invoices map to Marketo custom objects or campaign interests for lead scoring and segmentation. Opportunity records are created in Marketo when X3 sales orders meet scoring thresholds. The flow is one-way into Marketo; X3 remains the system of record for customer and product master data.
How ml-connector handles it
ml-connector stores Sage X3 credentials encrypted and uses either REST Basic auth or OAuth2 bearer tokens, refreshing the token every 4 minutes to stay ahead of the 5-minute expiry window. It polls Sage X3 customers and products using the modifiedDateTime field to find records changed since the last sync, respecting the customer-specific server URL and folder name. On the Marketo side, ml-connector presents the Munchkin ID, Client ID, and Client Secret to obtain a fresh bearer token for each sync cycle, and it respects the 300-record batch limit when pushing customers as companies and product data as custom objects. Leads created from customer contacts are enriched with purchase history from X3 sales invoices, and duplicate detection uses email and company name to avoid creating duplicate records. Every sync carries a full audit trail and can be replayed if a downstream call fails.
A real-world example
A mid-market manufacturing distributor runs Sage X3 for order management and fulfillment, and uses Marketo for demand generation and lead nurturing. Before the integration, the sales development team manually imported customer lists from X3 into Marketo once a quarter and spent hours reconciling company names and contact email addresses. New customers created in X3 were not tracked in Marketo until the next manual import, so leads from marketing campaigns could not be matched to actual orders for weeks. With Sage X3 and Marketo connected, each new customer created in X3 immediately syncs as a Marketo company and linked leads, and product interest is automatically captured from each customer's purchase history. Sales development now sees real-time account information enriched with order data, and marketing campaigns can be segmented by actual product purchases instead of guessing intent.
What you can do
- Sync Sage X3 customers and contacts into Marketo as companies and leads, keeping names, emails, and addresses aligned.
- Map Sage X3 products and sales invoices to Marketo custom objects for lead scoring and campaign segmentation.
- Authenticate Sage X3 with OAuth2 bearer tokens or HTTP Basic auth, handling 5-minute token refresh automatically.
- Route to each Marketo instance using its unique Munchkin subdomain and manage 300-record batch limits.
- Poll on a schedule you set with delta detection using modifiedDateTime, retries, and a full audit trail on every record.
Questions
- Which direction does data move between Sage X3 and Marketo?
- The flow is one-way from Sage X3 into Marketo. Customers, contacts, and products sync from X3 into Marketo as companies, leads, and custom objects. Marketo remains separate and does not push campaign or lead changes back into X3, since X3 is the system of record for customer master data.
- How does ml-connector handle Sage X3 OAuth2 tokens expiring every 5 minutes?
- ml-connector refreshes the access token every 4 minutes, before it can expire, using the 30-day refresh token. It stores both tokens encrypted and manages the refresh cycle transparently so you never see a token timeout. The refresh token itself is rotated periodically per Sage X3 policy.
- What happens if Marketo sync is enabled on Salesforce or Microsoft Dynamics?
- If a customer has enabled Marketo sync from SFDC or Dynamics, opportunities, sales persons, and companies become read-only in Marketo. ml-connector will not attempt to write those records back; it will only sync leads and custom objects. Work with your Marketo admin to disable bidirectional SFDC/Dynamics sync if you want ml-connector to manage companies and opportunities.
Related integrations
More Sage X3 integrations
Other systems that connect to Marketo
Connect Sage X3 and Marketo
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started