MYOB and Asana integration
MYOB runs your accounting. Asana runs your projects and work. Connecting the two lets suppliers, invoices, and purchase orders in MYOB appear as tasks and projects in Asana, where your team can track approval, delivery, and reconciliation. Asana custom fields hold invoice amounts, dates, and line item detail so your team has the financial context at hand. ml-connector handles the credential bridge on both sides and keeps the systems synchronized on a schedule you control.
What moves between them
The main flow is from MYOB into Asana. MYOB suppliers and contacts map to Asana projects or a shared project section; invoices and purchase orders become Asana tasks with custom fields carrying invoice amount, due date, line item descriptions, and GL account codes. Changes detected by polling MYOB on a schedule tied to your accounting cycle flow into Asana as new tasks or updates to existing ones. Reference data such as GL accounts and tax codes are synced first so tasks can be linked to the correct ledger dimensions. The flow is primarily read from MYOB into Asana; Asana task updates (approval status, delivery notes) do not flow back to MYOB.
How ml-connector handles it
ml-connector caches the MYOB company file credentials securely and presents all three required authentication headers (OAuth Bearer, x-myobapi-key, and x-myobapi-cftoken) on every request. It refreshes the MYOB Bearer token when a 401 response is received, since tokens expire in 20 minutes. Because MYOB has no webhook push, ml-connector polls on a schedule keyed to your accounting cycle rather than waiting for change notifications, using OData $filter on LastModified timestamps to detect new and modified contacts, invoices, and purchase orders since the last sync. When a contact or invoice is found in MYOB, ml-connector creates a corresponding task in Asana with custom fields populated from MYOB's invoice amounts, due dates, line item types (Item, Service, Professional, Miscellaneous), and GL account codes. Rate limiting is handled with exponential backoff when MYOB returns HTTP 429; every record carries a full audit trail and can be replayed if a downstream Asana call fails. Because MYOB enforces maximum page size of 1000 records and requires RowVersion on PATCH/PUT operations for conflict detection, ml-connector pages through all records and includes the RowVersion value on any write-back operations.
A real-world example
A mid-sized professional services firm in Australia runs MYOB for accounting and Asana for client delivery and internal project management. Before the integration, invoices issued to suppliers and received from vendors were tracked only in MYOB; the operations team manually re-entered invoice details into Asana tasks to coordinate approval and payment with the delivery schedule, and no single source of truth existed for invoice status. With MYOB and Asana connected, each new invoice from a vendor automatically creates an Asana task in the procurement project, with custom fields showing the invoice amount, date due, and GL account. The approval team can comment on the Asana task, mark it complete once payment is processed, and the finance team always knows which invoices are approved and which are pending in the operations workflow.
What you can do
- Sync MYOB supplier and customer contacts into Asana projects or tasks, with names and contact details mapped to custom fields.
- Map MYOB purchase invoices and purchase orders into Asana tasks with custom fields carrying invoice amount, due date, line item types, and GL account codes.
- Detect changes in MYOB by polling on a schedule tied to your accounting cycle, using OData filters on LastModified timestamps.
- Authenticate MYOB using OAuth2 bearer token plus company file credentials supplied in three headers, with automatic token refresh on 401.
- Poll MYOB on your accounting schedule, handle rate limits with exponential backoff, maintain a full audit trail, and support replay if Asana writes fail.
Questions
- Which direction does data move between MYOB and Asana?
- The main flow is MYOB to Asana. Suppliers, invoices, and purchase orders from MYOB become tasks in Asana with custom fields holding financial detail such as invoice amount, due date, and GL account. Reference data such as GL accounts and tax codes are synced first so tasks can reference the correct ledger dimensions. Asana task updates such as approval status and delivery notes do not flow back to MYOB; the sync is primarily read-only from MYOB into Asana.
- Does MYOB's three-header authentication requirement require special setup?
- Yes. MYOB requires three headers on every API call: an OAuth2 Bearer token (which expires after 20 minutes), the x-myobapi-key (your API key), and x-myobapi-cftoken (Base64-encoded company file username and password). ml-connector caches these credentials securely and automatically refreshes the Bearer token when a 401 response is received, so the three-header bridge is transparent to your workflows.
- How does the integration handle MYOB's lack of webhooks and polling constraints?
- ml-connector polls MYOB on a schedule you set, keyed to your accounting cycle, using OData $filter on LastModified timestamps to detect changes since the last sync. MYOB enforces a maximum page size of 1000 records and a rate limit of 8 requests per second, so ml-connector pages through results and backs off with exponential retry when HTTP 429 is returned. This approach means new invoices and POs will sync within your polling window rather than instantaneously, but all records are captured reliably.
Related integrations
More MYOB integrations
Other systems that connect to Asana
Connect MYOB and Asana
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started