MYOB and HubSpot integration
MYOB runs accounting for Australian and New Zealand businesses. HubSpot runs sales, service, and revenue operations. Connecting the two keeps your customer data and financial records aligned. New customers and suppliers added in MYOB appear in HubSpot as contacts and companies, invoices and payments flow into HubSpot for revenue visibility, and your sales team sees GL account coding and job allocations tied to each customer so quotes and deals land on the correct cost centers.
What moves between them
The primary flow runs from MYOB to HubSpot. MYOB suppliers and customers sync to HubSpot as contacts and companies on a schedule tied to your accounting close cycle (weekly, bi-weekly, or monthly). MYOB sale invoices and customer payments flow to HubSpot as invoices and payment records, mapped to the correct HubSpot contact. MYOB GL accounts and job codes are written to HubSpot contact custom fields so your sales team can see which cost center and GL account each customer belongs to. Reference data such as tax codes and categories are synced in both directions to keep coding consistent.
How ml-connector handles it
ml-connector stores the MYOB OAuth token, API key, and company file credentials encrypted and presents all three on every API call in the required headers. It refreshes the MYOB access token when it expires (20-minute window) and polls MYOB using OData $filter on LastModified timestamps to detect changes since the last sync run. Because MYOB enforces an 8 request-per-second rate limit, ml-connector queues requests and backs off on HTTP 429 responses. On the HubSpot side, ml-connector uses the Private App token and presents the hub_id to scope requests to the correct portal. When syncing invoices, it creates HubSpot line items from MYOB invoice line details and associates them to the matching contact. MYOB job codes and GL account references are mapped to HubSpot custom fields on contacts and companies so revenue operations can see the GL coding at deal time. Every record carries a full audit trail and failed syncs can be replayed once the upstream issue is resolved.
A real-world example
A mid-market consulting and professional services firm in Australia uses MYOB for accounting and HubSpot for client relationship management and project delivery tracking. Before the integration, account managers manually entered new customer details from MYOB into HubSpot and sales operations re-entered invoice totals from MYOB into HubSpot projects for revenue tracking. Finance and sales teams worked from different customer master files, and reconciliation between the two systems was a manual month-end task. With MYOB and HubSpot connected, new customers and suppliers flow automatically to HubSpot, invoices appear in HubSpot within minutes of being issued in MYOB, customer payments are tracked in HubSpot, and the GL account and job code for each customer is visible to the sales team when building proposals. Month-end revenue reconciliation is now automated, and account managers always see current invoice and payment status for each customer.
What you can do
- Sync MYOB suppliers and customers to HubSpot contacts and companies with GL account and job code assignments.
- Move MYOB sale invoices and line items into HubSpot as invoices and commerce records on a schedule tied to your accounting close.
- Track MYOB customer and supplier payments in HubSpot to keep cash flow and project profitability visible to the sales team.
- Handle MYOB dual authentication (OAuth2, API key, and company file credentials) and the required rate limiting on every sync.
- Detect changes in MYOB using OData LastModified polling, retry failed syncs, and maintain a full audit trail for every record moved.
Questions
- Why does MYOB require company file credentials in addition to OAuth2?
- MYOB's API requires a Base64-encoded company file username and password in headers on every call, in addition to the OAuth2 bearer token and API key. ml-connector stores all three credentials encrypted and presents them on every request. The company file credentials expire only when the company file owner changes them, not on a schedule like OAuth tokens.
- How does the integration handle MYOB's lack of webhooks?
- MYOB supports polling only, so ml-connector queries MYOB on a schedule you control (weekly, bi-weekly, or monthly, tied to your accounting close cycle) using OData $filter on LastModified timestamps to detect which records changed since the last run. This avoids scanning the entire contact or invoice list on every sync.
- What happens when HubSpot invoice writes fail or MYOB GL account mappings change?
- Every record carries a full audit trail. If an invoice sync fails (for example, because a contact does not yet exist in HubSpot), ml-connector logs the error and can replay the sync once the contact is created or the mapping is corrected. Failed record replay is manual but deterministic, so you do not lose data or have to re-enter invoices by hand.
Related integrations
More MYOB integrations
Other systems that connect to HubSpot
Connect MYOB and HubSpot
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started