MYOB and ServiceNow integration
MYOB handles accounting and purchase orders for Australian and New Zealand SMEs. ServiceNow's Source-to-Pay module manages accounts payable, procurement, and supplier lifecycle at the enterprise level. Connecting the two keeps purchase orders from MYOB synchronized with ServiceNow procurement workflows, and supplier invoices from MYOB flow into ServiceNow's AP staging so they can be matched to orders and forwarded for payment. ml-connector manages the two different authentication schemes and runs the sync on the schedule you define.
What moves between them
Purchase orders and supplier invoices flow from MYOB into ServiceNow S2P staging tables on a schedule defined per customer. Supplier contact records from MYOB (contacts with IsSupplier=true) are synced to ServiceNow core_company and supplier staging tables so procurement references valid vendors. GL account mappings ensure invoices posted in ServiceNow land against the correct cost centers and accounts that exist in MYOB. The data moves one direction: MYOB is the source of truth for orders and invoices, and ServiceNow receives and stages them for AP processing and matching.
How ml-connector handles it
ml-connector stores the MYOB OAuth token, API Key, and company file credentials encrypted, and refreshes the 20-minute bearer token before it expires on every call. It polls MYOB purchase orders, invoices, and supplier contacts using OData $filter on LastModified to detect changes, and it respects the 8-request-per-second rate limit by spreading calls across multiple seconds per batch. ServiceNow requires a customer-supplied instance subdomain and an OAuth service account with S2P module roles; ml-connector maintains the OAuth token separate from MYOB's because ServiceNow tokens last 30 minutes. Purchase orders from MYOB are mapped to ServiceNow proc_po staging, supplier invoices map to sn_apo_invoice staging, and suppliers map to core_company. RowVersion tracking on MYOB records prevents stale updates (RowVersion required on PATCH/PUT), and the sync idles between polling cycles to respect rate limits.
A real-world example
A mid-sized Australian distribution company runs MYOB Business for accounting and purchase order management. Their procurement team works in ServiceNow to manage supplier contracts and approve incoming invoices before payment. Before the integration, purchase orders created in MYOB were manually re-keyed into ServiceNow procurement, and invoices received by email were typed into both systems. With MYOB and ServiceNow connected, every purchase order appears in ServiceNow automatically as an inbound staging record ready for approval, and supplier invoices from MYOB flow directly into the AP staging queue, cut the re-keying step, and arrive with order and line-item context already populated.
What you can do
- Sync MYOB purchase orders and line items into ServiceNow Source-to-Pay staging tables on a configurable schedule.
- Pull MYOB supplier invoices into ServiceNow AP staging, ready for order matching and payment approval.
- Map MYOB supplier contacts to ServiceNow company and supplier records so procurement references valid vendors.
- Refresh MYOB's 20-minute OAuth token automatically and respect the 8-request-per-second rate limit with backoff.
- Detect record changes in MYOB using OData LastModified $filter, track RowVersion to prevent stale updates, and maintain a full audit trail on all synced records.
Questions
- How does ml-connector handle MYOB's dual authentication requirement (OAuth token plus company file credentials)?
- ml-connector stores both the OAuth2 bearer token and the company file username and password encrypted. It sends the bearer token in the Authorization header, the API Key in x-myobapi-key, and the Base64-encoded CF credentials in x-myobapi-cftoken on every MYOB call. Before each request, it refreshes the OAuth token if the 20-minute lifetime is approaching.
- What happens when MYOB returns a rate limit (429) or the OAuth token expires?
- ml-connector implements exponential backoff and retry when receiving a 429 response, spreading requests across multiple seconds. If the OAuth token expires (detected by a 401 response), ml-connector refreshes it automatically using the refresh token and retries the original call.
- Which direction does data flow between MYOB and ServiceNow?
- Purchase orders, invoices, and supplier records flow from MYOB into ServiceNow S2P staging tables. ServiceNow is the destination and does not send data back to MYOB. The sync runs on a polling schedule because MYOB does not support outbound webhooks or push notifications.
Related integrations
More MYOB integrations
Other systems that connect to ServiceNow
Connect MYOB and ServiceNow
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started