MYOB and Microsoft Teams integration
MYOB manages accounting for SMEs across Australia and New Zealand. Microsoft Teams is where teams communicate. Connecting them sends MYOB invoice and purchase activity directly into Teams channels so finance teams see new bills, changes, and approvals as they happen. No more checking MYOB separately to stay on top of incoming purchase orders and supplier invoices.
What moves between them
The integration is one-way, from MYOB into Microsoft Teams. After each poll cycle, ml-connector reads new and updated invoices and purchase orders from MYOB by filtering on LastModified timestamps, then constructs a message for each and posts it to a configured Teams channel. The message includes the invoice number, supplier name, amount, GL account code, and a direct link back to the MYOB record. The sync runs on a schedule you set, typically every hour or every four hours during business hours. Teams receives the message asynchronously; there is no return data flow into MYOB.
How ml-connector handles it
ml-connector stores MYOB's OAuth2 token and company file credentials encrypted, refreshing the token before it expires at the 20-minute mark. The three-header authentication requirement (Bearer token, API key, and Base64 CF credentials) is handled automatically on each request. Because MYOB has no webhooks, ml-connector polls at your chosen interval, using OData $filter on LastModified to fetch only changed records since the last sync. To prevent duplicate notifications, ml-connector tracks the LastModified timestamp of the last message sent and skips records it has already posted. MYOB's 8 requests/second rate limit is respected, and any HTTP 429 response triggers exponential backoff. When a record's RowVersion field changes (a conflict detection mechanism), ml-connector fetches the latest version and re-posts if needed. Messages are formatted for readability in Teams and include the full GL account code and cost center if present. Subscription validation on the Teams side uses clientState matching, not HMAC signature. Every notification is logged with timestamps and message IDs for audit and replay.
A real-world example
A medium-sized accounting firm in Melbourne uses MYOB Business for client accounting and MYOB's own operational AP/AR. Previously, accountants manually checked MYOB several times a day to see new supplier invoices and catch late payments. With MYOB and Teams connected, new invoices land in a dedicated Finance Notifications channel immediately, showing amount, supplier, and GL code. Team members can click the link to jump to the full invoice in MYOB. Month-end, the team reviews the channel history to confirm all bills were posted, eliminating the need for a separate AP register export.
What you can do
- Post MYOB invoices and purchase orders to Microsoft Teams channels as they are created or modified, with supplier name, amount, and account code.
- Keep finance teams in sync with real-time notifications so bills do not go unseen.
- Respect MYOB's OAuth2 token expiry and company file credential validation, handling both automatically.
- Poll MYOB on a schedule you control, using LastModified filters to detect changes without re-sending old records.
- Maintain a full audit trail of every message sent, with timestamps and MYOB record IDs for traceability.
Questions
- Can Microsoft Teams send data back into MYOB, such as approval or status changes?
- No. Microsoft Teams is a messaging and collaboration platform with no accounting or ERP data model. This integration is one-way: MYOB to Teams only. Approvals or status updates must be recorded in MYOB directly.
- How does ml-connector handle MYOB's three-header authentication requirement?
- ml-connector stores the OAuth2 Bearer token, API Key, and Base64-encoded company file credentials encrypted, and includes all three headers on every request to the MYOB Business API. The Bearer token is refreshed before expiry to keep the integration running without interruption.
- What happens if the same invoice appears in two poll cycles?
- ml-connector tracks the LastModified timestamp of the last record posted and filters by timestamps on each poll, so it only fetches changed records. If a record is updated, a new notification is sent; otherwise it is skipped. The audit log shows the timestamp and record version for each notification sent.
Related integrations
More MYOB integrations
Other systems that connect to Microsoft Teams
Connect MYOB and Microsoft Teams
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started