SAP Business One and Microsoft Teams integration
SAP Business One runs your finance, purchasing, and inventory. Microsoft Teams is where your team collaborates. Connecting the two puts critical finance events in front of the right people without leaving Teams. New purchase orders and approved invoices notify the team instantly, and approval requests can be posted to a Teams channel on a schedule that matches your workflow. ml-connector handles the different authentication models, manages the SAP Business One session lifecycle, and delivers the right data to the right channel.
What moves between them
Data flows from SAP Business One to Microsoft Teams. Purchase orders, purchase invoices, and payment records are read from SAP Business One on a polling schedule and formatted as summaries, then posted to a designated Teams channel or sent as direct messages to users. The integration does not write data back to SAP Business One; Teams is purely an outbound notification surface.
How ml-connector handles it
ml-connector stores SAP Business One credentials encrypted and maintains a reusable session token, respecting the 30-minute inactivity timeout by re-authenticating before expiry rather than waiting for the -5002 session error. It polls SAP Business One for new or updated records using the UpdateDate filter and OData $top/$skip parameters to handle page boundaries. Each record is formatted into a Teams message with the key fields (document number, partner name, amount, status), and posted to the specified channel or user via Microsoft Graph. SAP Business One session startup takes about 5 seconds, so ml-connector caches the token across multiple API calls rather than re-authenticating for each record. Because SAP Business One has no published idempotency keys, the integration checks for duplicates by DocNum before retrying a failed post to Teams. Changes to customer network or certificate configuration are handled by re-reading the SAP Business One instance URL from the configuration, and Teams subscription tokens are renewed before the 3-day expiry window.
A real-world example
A mid-market distributor uses SAP Business One for purchasing, invoicing, and payments across three regional warehouses. The finance team reviews new purchase orders for approval and wants to keep operations staff informed of invoice arrivals without opening SAP Business One constantly. Before integration, the team checked SAP Business One manually several times a day or relied on email notifications that often went unread. With SAP Business One and Microsoft Teams connected, new purchase orders and approved invoices post to the operations team's channel automatically, with a summary of the document number, vendor name, and amount. The team sees notifications in Teams where they are already working, and can drill into SAP Business One when they need details.
What you can do
- Post purchase orders and invoices from SAP Business One to Microsoft Teams channels on a configurable polling schedule.
- Include business partner name, document number, and amount in each Teams notification.
- Handle SAP Business One session token expiry by maintaining a reusable session across multiple API calls.
- Respect Microsoft Graph OAuth2 token lifecycle and Teams subscription 3-day renewal windows.
- Filter and deduplicate records by document number to avoid posting duplicate notifications on retry.
Questions
- Can I send Teams messages to specific users or only to channels?
- ml-connector can post to both Teams channels and direct messages to individual users. You specify the channel or user ID during configuration, and the integration formats each SAP Business One record as a message and routes it to the destination you choose.
- How does ml-connector handle SAP Business One session timeouts?
- SAP Business One session tokens expire after 30 minutes of inactivity and return error code -5002 when timed out. ml-connector tracks the last activity time and re-authenticates proactively before the timeout occurs, avoiding the need to retry messages. Session startup takes about 5 seconds, so the integration reuses a single session across multiple polling cycles.
- What if SAP Business One is deployed on-premise behind a firewall?
- SAP Business One requires the Service Layer port to be accessible to ml-connector, either by opening the port to the connector's network or by configuring a VPN or firewall rule. Self-signed TLS certificates are common in on-premise deployments; ml-connector will accept them with proper certificate pinning if your environment requires it.
Related integrations
More SAP Business One integrations
Other systems that connect to Microsoft Teams
Connect SAP Business One and Microsoft Teams
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started