ml-connector
Exact OnlineMicrosoft Teams

Exact Online and Microsoft Teams integration

Exact Online handles your accounting and purchasing. Microsoft Teams keeps your team informed. Connecting the two means finance events in Exact Online automatically notify your team in Teams without manual copy-paste or email chains. New invoices, PO approvals, and payment confirmations flow from Exact Online directly into Team channels where the right people see them in context. ml-connector bridges the two systems so critical finance events never slip past your team.

How Exact Online works

Exact Online exposes accounts, purchase invoices, purchase orders, sales invoices, GL accounts, cost centers, payments, and receipts through REST APIs with OData v3 query syntax (filter, select, orderby, pagination). Webhooks push events when invoices, POs, accounts, and other entities change. Authentication uses OAuth 2.0 Authorization Code Grant with 10-minute access tokens and 30-day refresh tokens. Webhook payloads include entity key and action (create, update, delete) plus HMAC-SHA256 hashcode for signature verification. Full entity data must be fetched separately via API after a webhook fires.

How Microsoft Teams works

Microsoft Teams is accessed via Microsoft Graph REST API, which provides chat messaging, channel posting, and user presence. Authentication uses OAuth 2.0 with either Authorization Code Grant or Client Credentials flow for daemon apps. Graph webhooks push change notifications for messages, channels, and teams with a 3-day subscription lifetime. Teams is communications-only with no native accounting entities; it serves as a notification and approval interface for finance workflows, not a data source.

What moves between them

Finance events originate in Exact Online and flow into Microsoft Teams. ml-connector listens to Exact Online webhooks for purchase invoice updates, PO changes, and payment events, then posts formatted notifications to designated Teams channels. The data flow is one-way: Exact Online to Teams. Teams channels receive structured messages showing invoice amounts, PO status, vendor names, and due dates pulled from Exact Online, so finance teams can review and approve without leaving Teams. No data writes back to Exact Online from Teams.

How ml-connector handles it

ml-connector authenticates to Exact Online using OAuth 2.0 and registers for webhooks on purchase invoices, purchase orders, GL accounts, and payment entities. When a webhook fires, ml-connector verifies the HMAC-SHA256 signature using the webhook secret, fetches the full entity via REST (since webhook payloads contain only keys), and formats a structured Teams message with relevant details. Microsoft Teams receives the message via Graph API using Client Credentials OAuth flow. Rate limiting and retry logic handle both Exact Online and Teams API constraints. Subscription management refreshes Teams webhook subscriptions before their 3-day expiry. All message routing preserves the Exact Online entity context and timestamp so Teams threads remain queryable.

A real-world example

A mid-sized professional services firm uses Exact Online for accounting across multiple divisions. The finance team works in Microsoft Teams for daily coordination. Before integration, new invoices from vendors arrived in Exact Online email and required manual review; approval was slow and informal. With Exact Online and Teams connected, critical invoices post automatically to a dedicated finance-approvals channel with vendor details and amounts, so approvals happen in context and the audit trail is permanent. PO status changes and payment confirmations also notify the team, eliminating follow-up emails and keeping cash flow visible.

What you can do

  • Post purchase invoice notifications to Microsoft Teams channels when new invoices arrive or change status in Exact Online.
  • Alert your finance team to purchase order updates and approval requests without leaving Teams.
  • Notify Teams of payment events and bank transaction confirmations from Exact Online in real time.
  • Verify Exact Online webhook signatures and fetch full invoice and PO details via REST before posting to Teams.
  • Manage Teams webhook subscriptions and retry notifications if Teams API calls fail, with automatic resubscription before expiry.

Questions

Does data flow both ways between Exact Online and Microsoft Teams?
No, the flow is one-way from Exact Online into Teams. ml-connector listens to Exact Online webhooks for finance events and posts notifications to Teams channels. Teams is a notification surface; data origination and updates remain in Exact Online.
How does ml-connector verify that incoming webhooks are genuinely from Exact Online?
ml-connector verifies the HMAC-SHA256 hashcode included in every Exact Online webhook payload using the webhook secret retrieved from Exact Online App Center. This proves the webhook came from Exact Online and was not tampered with.
What happens if a Teams notification fails to post, or if a Teams webhook subscription expires?
ml-connector retries failed Teams API calls with exponential backoff. For Teams webhook subscriptions, ml-connector tracks expiry (3 days by default) and renews subscriptions before they expire, so notifications continue without interruption.

Related integrations

Connect Exact Online and Microsoft Teams

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

Get started