ml-connector
MYOBZendesk

MYOB and Zendesk integration

MYOB runs accounting for SMEs across Australia and New Zealand. Zendesk runs customer support. Connecting the two keeps your support team working against accurate customer and supplier records tied to billing, AR, and AP data. New customers and supplier contacts entered in MYOB flow into Zendesk as users and organizations, so when a support agent looks up an account, they see current account status, invoices, and payment history without leaving Zendesk. ml-connector handles the very different APIs on each side, the three-part authentication MYOB requires, and moves the data on a schedule you control.

How MYOB works

MYOB Business API exposes contacts (suppliers, customers, employees), purchase bills, sales invoices, purchase orders, GL accounts, tax codes, and general journal entries through REST with OData v3 query parameters. Every API call requires three headers: an OAuth2 bearer token, an x-myobapi-key API key, and a Base64-encoded company file username and password. Access tokens expire in 20 minutes and refresh tokens last one week. MYOB provides no webhooks or push notifications, so changes are detected by polling with OData $filter on LastModified timestamps.

How Zendesk works

Zendesk Support API exposes tickets, users, organizations, and groups through REST endpoints scoped to the customer subdomain. Zendesk authenticates with OAuth2 (recommended for integrations) or API token basic auth, and provides webhooks for ticket events, user events, and organization events via webhook signature verification with HMAC-SHA256. Zendesk has no native ERP or finance entities such as invoices, purchase orders, or GL accounts, so it operates as a target for account master data and a source for support activity that flows back into MYOB.

What moves between them

Customer and supplier contacts flow from MYOB into Zendesk. New and updated contacts in MYOB are polled on your schedule and written to Zendesk as users and organizations, mapped to contact type (customer or supplier) and including address, phone, and classification. Conversely, Zendesk can emit webhook events when tickets are created, updated, or assigned; ml-connector can ingest these events and write ticket summaries or customer interactions back into MYOB's general journal or custom fields for audit. GL account mapping is one-way MYOB to Zendesk organization attributes, since Zendesk has no native finance entities.

How ml-connector handles it

ml-connector stores both credential sets encrypted: the MYOB OAuth2 token, API key, and company file password (refreshing the OAuth token every 19 minutes before it expires), and the Zendesk OAuth2 token or API key. On the MYOB side, it issues the three required headers on every call. It polls MYOB's Contacts endpoint using OData $filter on LastModified to detect changes since the last sync, and enforces MYOB's rate limit of 8 requests per second by backing off on HTTP 429. On the Zendesk side, it maps MYOB contact records to Zendesk users for individuals and organizations for companies, using the contact name and email as the lookup key. Zendesk webhooks are configured to emit ticket and user events, and ml-connector can receive and process these to write back to MYOB for a complete audit loop. The RowVersion field on MYOB PATCH operations is managed to prevent stale-write conflicts. Every record carries a full audit trail and can be replayed if a downstream call fails.

A real-world example

A mid-sized Australian professional services firm uses MYOB for accounting and client billing, and Zendesk for support requests from clients and vendors. Before the integration, support agents had client names and email addresses but no account visibility, so they often had to ask clients for account details or ask the accounting team for AR status. With MYOB and Zendesk connected, when a client emails support, the agent sees the customer record from MYOB already in Zendesk as a user and organization, including company type, billing address, and recent invoice history synchronized from MYOB. New clients added in MYOB appear in Zendesk within the hour, and the support team never re-keys contact data.

What you can do

  • Sync MYOB customer and supplier contacts to Zendesk as users and organizations, including name, email, phone, and address.
  • Detect new and updated contacts in MYOB using OData change detection and write them to Zendesk on your polling schedule.
  • Handle MYOB's OAuth2 token expiry and three-part authentication requirement (bearer token, API key, company file credentials).
  • Enforce MYOB's 8 requests-per-second rate limit and back off on 429 errors.
  • Receive Zendesk webhook events for tickets and users, and optionally write summaries back to MYOB for a complete audit trail.

Questions

Which direction does data move between MYOB and Zendesk?
The main flow is MYOB to Zendesk. Customer and supplier contacts are polled from MYOB and written to Zendesk as users and organizations. Zendesk webhook events for tickets and user activity can optionally flow back to MYOB for audit and record-keeping, but financial records (invoices, bills, GL entries) always originate in MYOB and are read-only in Zendesk.
Does MYOB's three-part authentication requirement complicate the integration?
No. ml-connector stores all three credentials encrypted: the OAuth2 bearer token, the x-myobapi-key, and the Base64-encoded company file username and password. It refreshes the OAuth token every 19 minutes before it expires, and issues all three headers on every MYOB API call automatically.
How does the integration handle MYOB's lack of webhooks?
ml-connector polls MYOB's Contacts endpoint on your chosen schedule using OData $filter on the LastModified timestamp to detect changes since the last sync. It respects MYOB's 8 requests-per-second rate limit and backs off on HTTP 429 to avoid throttling.

Related integrations

Connect MYOB and Zendesk

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

Get started