ml-connector
MYOBMailchimp

MYOB and Mailchimp integration

MYOB stores your customer and sales records in one place. Mailchimp manages your email marketing and customer engagement in another. Connecting them keeps your email audience and transaction history in sync without manual exports or re-entry. Customer records added in MYOB automatically appear in Mailchimp lists, and sales data flows through to Mailchimp's e-commerce tracking so you can segment campaigns by purchase history.

How MYOB works

MYOB Business API v2 exposes customers, suppliers, sales invoices, purchase bills, payments, general ledger accounts, and journal entries through REST endpoints with OData v3 query filters. Authentication requires OAuth2 Authorization Code flow plus a company file username and password supplied in three headers: Authorization Bearer token, x-myobapi-key (API key), and x-myobapi-cftoken (Base64-encoded CF credentials). Access tokens expire in 20 minutes and refresh tokens last 1 week. MYOB supports polling only via the LastModified timestamp field on each entity; there are no webhooks or push notifications. Rate limits are 8 requests per second and 1,000,000 per day per API key.

How Mailchimp works

Mailchimp API v3.0 manages email lists, list members, e-commerce stores, orders, customers, and products through REST endpoints over HTTPS. Authentication uses HTTP Basic Auth with an API key or OAuth2 Authorization Code flow. The API key contains the account's data center prefix (e.g., us6, us19) which must be extracted and used to construct the endpoint URL. Mailchimp can receive Marketing API webhooks for list events (subscribe, unsubscribe, profile updates) and Transactional API webhooks (send, bounce, delivered, open, click) with HMAC-SHA1 signature verification on transactional sends. Access tokens from OAuth2 do not expire and have no refresh token mechanism.

What moves between them

Customer records flow from MYOB to Mailchimp as list members. MYOB sales invoice line items and totals flow to Mailchimp's e-commerce Orders, mapped to the e-commerce Store. ml-connector polls MYOB's LastModified timestamp field on a schedule to detect new and updated customers and invoices, then upserts matching members and orders in Mailchimp. Contact status is mapped from MYOB customer type (active, archive, others) to Mailchimp member status (subscribed, unsubscribed).

How ml-connector handles it

ml-connector stores MYOB OAuth2 tokens and company file credentials encrypted and refreshes the OAuth2 bearer token every 19 minutes before expiry. Every MYOB API call includes all three required headers: Authorization, x-myobapi-key, and x-myobapi-cftoken. On the Mailchimp side, ml-connector extracts the data center prefix from the API key and constructs the correct endpoint URL. Polling filters on MYOB LastModified to find only new and changed records since the last sync, reducing API calls and cost. Customer email addresses are used as the Mailchimp member identifier; invoices are keyed by invoice number and MYOB customer UID. MYOB's 8 request-per-second rate limit and 1,000,000 daily limit are respected with backoff on HTTP 429. Mailchimp list member and e-commerce order writes use upsert operations so repeated syncs do not create duplicates. Every record carries an audit trail and can be replayed if a downstream call fails.

A real-world example

A mid-sized professional services firm in Sydney uses MYOB to manage client billing and invoices. Before the integration, their marketing team manually exported monthly customer lists from MYOB and imported them into Mailchimp, then had to re-upload them every quarter when new clients signed on. With MYOB and Mailchimp connected, new customers added to MYOB automatically appear in the Mailchimp list within the polling interval, and unpaid or archived invoices in MYOB are reflected as order status changes in Mailchimp so campaigns can be segmented by customer financial status. The monthly re-upload task is gone, and campaign performance can be tied directly to invoice status and client tenure.

What you can do

  • Sync MYOB customer contacts to Mailchimp as list members, with email, name, and address fields mapped automatically.
  • Track MYOB sales invoices in Mailchimp as e-commerce orders so campaigns can be segmented by purchase amount and invoice date.
  • Refresh MYOB OAuth2 tokens automatically and maintain the three-part authentication header required by MYOB's API.
  • Extract Mailchimp's data center prefix from the API key and route all requests to the correct regional endpoint.
  • Poll MYOB on a schedule using LastModified timestamps to detect changes, minimizing API calls and staying within rate limits.

Questions

How does the integration handle MYOB's three-part authentication header requirement?
Every MYOB API call requires three headers: Authorization Bearer token, x-myobapi-key, and x-myobapi-cftoken (Base64-encoded company file credentials). ml-connector stores all three credentials encrypted and includes them on every request. The OAuth2 bearer token is refreshed every 19 minutes before it expires, ensuring calls never fail due to token age.
Which customer and invoice fields map to Mailchimp?
MYOB customer name, email, and address fields map to Mailchimp list member name, email, and merge fields. MYOB invoice number, amount, date, and status map to Mailchimp e-commerce order number, total, created_at, and financial_status so you can segment campaigns by purchase history and payment status.
What happens if MYOB has more customers than Mailchimp's list can hold?
Mailchimp list size is unlimited, so customer volume is not a constraint. ml-connector respects MYOB's 8 requests-per-second rate limit and 1,000,000 requests-per-day limit by polling only records that have changed since the last sync using the LastModified timestamp field.

Related integrations

Connect MYOB and Mailchimp

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

Get started