MYOB and Google Sheets integration
MYOB runs accounting for SMEs across Australia and New Zealand. Google Sheets is where teams collaborate on data. Connecting MYOB to Google Sheets brings your invoices, bills, supplier payments, and general ledger records into a sheet where your finance team can analyze, filter, and share them without re-keying. ml-connector handles the dual authentication MYOB requires and keeps your sheet current with an automatic polling schedule.
What moves between them
The flow runs from MYOB into Google Sheets. ml-connector polls MYOB on your defined schedule (e.g., hourly, daily, or weekly) and reads invoices, bills, supplier payments, general journal entries, and contact records that changed since the last sync using OData LastModified filters. Each record is written to a sheet tab as a new row, with columns mapped to MYOB contact names, account codes, line item descriptions, and amounts. Reference data such as contact and account names are included so the sheet is self-contained for analysis.
How ml-connector handles it
ml-connector stores your MYOB OAuth2 refresh token and company file credentials encrypted and uses them to obtain fresh access tokens every 20 minutes, since MYOB tokens expire in 20 minutes. It retrieves the company file ID from your MYOB account, constructs the correct API base URL, and includes the required three headers on every request: Authorization, x-myobapi-key, and x-myobapi-cftoken (the Base64 company file credentials). It polls MYOB on your chosen cadence - hourly, daily, or tied to your accounting cycle - using OData $filter on LastModified to retrieve only new or modified records since the last run. When writing to Google Sheets, it appends rows to the target sheet tab using A1 notation or a named range you define. ml-connector respects the 8 requests per second MYOB rate limit and uses BullMQ job IDs to prevent duplicate syncs if a retry happens.
A real-world example
A mid-market professional services firm in Melbourne runs MYOB for invoicing clients and tracking suppliers, and uses Google Sheets for financial reporting and monthly P&L analysis. Before the integration, the finance manager manually exported invoices and bills from MYOB to CSV each month, then pasted them into a reporting sheet to run calculations and create dashboards. Now MYOB invoices and bills sync automatically to Google Sheets daily, giving the team current revenue and expense data without manual export, and the sheets themselves become the source for monthly reporting - no more out-of-date CSVs or re-keying.
What you can do
- Sync MYOB invoices, bills, and supplier payments into Google Sheets on a polling schedule tied to your accounting cycle.
- Map MYOB contacts, accounts, and line items to sheet columns you define for analysis and reporting.
- Handle MYOB dual authentication (OAuth2 token plus company file credentials) and refresh tokens every 20 minutes.
- Detect new and modified MYOB records using OData LastModified filters so you only sync what changed.
- Store credentials encrypted and respect MYOB rate limits (8 requests per second) with automatic backoff on 429 responses.
Questions
- How does ml-connector handle MYOB's 20-minute token expiry?
- ml-connector stores your MYOB refresh token encrypted and requests a new bearer token every 20 minutes, well before expiry. The token is cached in memory and only refreshed when required, so your MYOB session stays live without re-authentication.
- Does MYOB require both OAuth2 and company file credentials?
- Yes. Every MYOB API call requires three headers: the Authorization bearer token (from OAuth2), your API Key, and a Base64-encoded company file username and password. ml-connector encrypts both the refresh token and company file credentials and includes all three headers on every request.
- Why is polling recommended over Google Sheets watch channels?
- Google Sheets watch channels expire after one hour and require manual re-registration, so they are fragile for continuous integrations. Polling every 5 to 15 minutes is simpler and more reliable. ml-connector uses MYOB's OData LastModified filter on each poll to sync only records that changed since the last run.
Related integrations
More MYOB integrations
Other systems that connect to Google Sheets
Connect MYOB and Google Sheets
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started