ml-connector
SYSPROMailchimp

SYSPRO and Mailchimp integration

SYSPRO runs manufacturing and distribution finance. Mailchimp runs email campaigns to your customers. Connecting the two keeps your customer contact lists in sync with your master customer data in SYSPRO, so marketing campaigns reach the right people with the right contact information. New customers added in SYSPRO automatically flow to Mailchimp lists, customer updates keep email addresses and names current, and inactive customers can be excluded from campaigns without manual list maintenance.

How SYSPRO works

SYSPRO Adaptive ERP exposes customers, invoices, purchase orders, suppliers, GL accounts, inventory, and warehouse records through three API layers: e.net Business Objects (REST and SOAP, read and write), OData (REST read-only with standard query filters), and Workflow Service (REST and SOAP, limited). Authentication uses either a session token acquired from the Utilities/Logon endpoint or HTTP Basic Auth with operator credentials, and each customer provides their own server URL. SYSPRO has no outbound webhooks, so connector operators must poll OData tables using timestamp filters on fields like CustomerDate or InvoiceDate.

How Mailchimp works

Mailchimp exposes audiences (lists), list members, e-commerce customers, orders, products, and campaigns through REST API v3.0 with standard paging and filtering. Authentication uses HTTP Basic Auth with an API key or OAuth 2 Authorization Code flow, and each account is routed to a regional data center endpoint extracted from the API key suffix or resolved via OAuth metadata. Mailchimp can receive push webhooks for list events (subscribe, unsubscribe, profile update) and transactional email events, but the Integration focuses on the REST API for reliable contact synchronization.

What moves between them

Customer records flow from SYSPRO into Mailchimp on a polling schedule. ml-connector reads SYSPRO's customer master table (ArCustomer) via OData at intervals you control, extracts customer name, email, address, and status, and upserts each record into a designated Mailchimp audience as a list member. Status changes in SYSPRO such as customer deactivation can trigger member status updates or removal from campaigns in Mailchimp. The sync is read-mostly: Mailchimp provides campaign engagement data (opens, clicks) through webhooks or polling, but ml-connector does not write campaign changes back into SYSPRO.

How ml-connector handles it

ml-connector stores SYSPRO credentials (operator code, OData password, or session token) encrypted and refreshes the session token when SYSPRO returns a 401, avoiding outages from token expiry. It polls SYSPRO's OData ArCustomer table using a $filter on the customer's LastModifiedDate or CreatedDate to fetch only new and changed records since the last run, then maps each SYSPRO customer to Mailchimp list member fields (email, name, address). Mailchimp API key data center resolution happens once per credential setup by parsing the key suffix or calling the OAuth metadata endpoint. Because SYSPRO is pull-only and Mailchimp lists are append-mostly, ml-connector runs on a schedule (every 15 to 60 minutes) rather than in real-time, and it tracks each customer record sync with a full audit trail so missed or failed syncs can be replayed.

A real-world example

A mid-sized food distribution company runs SYSPRO for order management and invoicing across 15 regional sales offices and a central warehouse. The marketing team uses Mailchimp to send monthly promotions, order alerts, and seasonal offers to their customer base. Before the integration, the marketing coordinator manually exported SYSPRO's customer list every week, cleaned up duplicates and invalid emails, and imported the updated list into Mailchimp by hand, often 2 to 3 days behind the actual SYSPRO data. With SYSPRO and Mailchimp connected, new customer signups and address changes in SYSPRO flow to the email list automatically every hour, so campaigns always reach the right contact, and the coordinator's export-import workflow is eliminated.

What you can do

  • Sync SYSPRO customer master records to Mailchimp audiences on a polling schedule tied to your customer data cadence.
  • Map SYSPRO customer names, emails, billing addresses, and account status to Mailchimp list member fields.
  • Handle SYSPRO session token refresh and Mailchimp API key data center resolution automatically.
  • Exclude inactive or delinquent customers from Mailchimp campaigns by tracking customer status changes.
  • Track every customer record sync with a full audit trail and replay failed syncs without manual re-import.

Questions

Which direction does data move between SYSPRO and Mailchimp?
Customer records flow from SYSPRO into Mailchimp. ml-connector reads SYSPRO's customer master table via OData polling and upserts each customer into a designated Mailchimp audience. Mailchimp campaign engagement data (opens, clicks) can be read back through webhooks or REST polling, but ml-connector does not write campaign changes or audience rules back into SYSPRO.
How does ml-connector handle SYSPRO's lack of webhooks and Mailchimp API key complexity?
Since SYSPRO is pull-only, ml-connector polls the OData ArCustomer table on a schedule you control, using timestamp filters to fetch only new and changed records. For Mailchimp, the API key's data center prefix is extracted automatically from the key suffix or resolved via the OAuth metadata endpoint, so no manual regional URL configuration is needed.
What happens if SYSPRO customer data has duplicates or invalid emails?
ml-connector syncs records as they exist in SYSPRO; data quality is your responsibility. Each sync is logged with a full audit trail, so you can identify and correct duplicate or invalid customer records in SYSPRO and trigger a replay to update Mailchimp. Mailchimp also provides built-in duplicate detection and email validation during list member upsert.

Related integrations

Connect SYSPRO and Mailchimp

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

Get started