MYOB and Salesforce integration
MYOB runs accounting for small businesses across Australia and New Zealand. Salesforce runs sales and customer relationships. Connecting the two keeps your customers, suppliers, and revenue in sync across both systems. New customers created in MYOB appear in Salesforce sales tools, and Salesforce Opportunities and Orders flow into MYOB Invoices so your accounting team sees what sales committed to before month-end close.
What moves between them
Customer and Supplier records flow from MYOB to Salesforce as Accounts and Contacts, updated whenever MYOB records change. In the reverse direction, Salesforce Opportunities and Orders flow into MYOB as Invoices and line items, so revenue commitments appear in accounting. Both directions use polling from MYOB (LastModified on Contacts via OData) and can use Salesforce's Change Data Capture (CDC) for real-time updates on the Salesforce side. Sync runs on a schedule you control, typically daily or per sales cycle.
How ml-connector handles it
ml-connector stores OAuth tokens for both Salesforce and MYOB and handles token refresh when either expires. For MYOB it refreshes the 20-minute access token and stores the company file username and password encrypted, supplying both with every API call. Salesforce credentials use My Domain URLs to bypass login.salesforce.com restrictions. On the MYOB side, polling uses OData $filter on LastModified to find changed Contacts since the last sync, and RowVersion fields are tracked to avoid posting stale records. Contact type (Supplier, Customer, Employee) maps to Salesforce Account or Contact record type. Salesforce opportunities map to MYOB Invoices with line items derived from Order Items. ml-connector handles MYOB's 20-minute token expiry by checking the access token before each API call and proactively refreshing. It respects MYOB's rate limit (8 requests/second) by queuing and backing off on 429 responses. Salesforce CDC is optional; if enabled, account and order changes trigger an immediate sync; if not enabled, polling continues on schedule.
A real-world example
A mid-sized B2B distributor operates MYOB for invoicing, payables, and ledger management, and Salesforce for sales rep pipeline and customer records. Before the integration, sales teams maintained customer data in Salesforce while the finance team worked with a separate, stale list in MYOB. New customers took 24 hours to reach accounting, invoicing mistakes happened because order quantities did not match sales commitments, and month-end close required manual reconciliation between the two systems. With MYOB and Salesforce connected, every new Salesforce Opportunity flows into MYOB as a draft Invoice, sales reps see current payment history and credit status before quoting, and finance sees revenue at risk the moment a deal closes. The two teams operate on the same customer view and the same order data.
What you can do
- Sync MYOB Customers and Suppliers into Salesforce Accounts and Contacts, keeping customer relationships and credit terms aligned with accounting records.
- Push Salesforce Opportunities and Orders into MYOB Invoices and line items, so revenue commitments flow into accounting before they ship.
- Detect changes in MYOB Contacts using OData $filter on LastModified timestamps and sync only the records that changed.
- Handle MYOB's 20-minute access token expiry and company file credential requirements transparently on every API call.
- Use Salesforce Change Data Capture (CDC) for real-time push updates on Accounts, Contacts, and Orders, with fallback to polling if CDC is not enabled.
Questions
- Which direction does data move between MYOB and Salesforce?
- Both directions. MYOB Customers and Suppliers flow into Salesforce as Accounts and Contacts, updated whenever MYOB records change. Salesforce Opportunities and Orders flow into MYOB as Invoices and line items, so sales pipeline data reaches accounting. Both reads are polling-based because MYOB does not support webhooks, though Salesforce can push changes in real-time via Change Data Capture if that is enabled on your org.
- How does ml-connector handle MYOB's 20-minute token and company file credentials?
- ml-connector stores both OAuth access tokens and MYOB company file credentials encrypted and supplies the credentials in the required headers on every API call. It tracks token expiry and proactively refreshes the access token before it expires so API calls do not fail. The refresh token lasts one week, so credentials are re-authenticated regularly without user intervention.
- Does this integration work with MYOB desktop files or only cloud?
- Only MYOB cloud instances (https://api.myob.com/accountright/). Desktop files running on localhost cannot be reached from server-side connectors. If your MYOB data is on a desktop-only installation, you must migrate to MYOB Business cloud first.
Related integrations
More MYOB integrations
Other systems that connect to Salesforce
Connect MYOB and Salesforce
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started