Sage 100 and Microsoft Teams integration
Finance teams often track critical GL postings and AP invoice status by email or manual log checks. Sage 100 and Microsoft Teams, connected through ml-connector, keep your finance team in a single channel where Sage 100 AP invoices, manual checks, and GL postings appear as they are recorded. No more hunting for invoice images or manually tracking GL totals across email and spreadsheets. Every posting carries full approval context and audit trail.
What moves between them
Data flows from Sage 100 into Microsoft Teams. ml-connector polls Sage 100 for new AP invoices, manual checks, and GL journal entries (typically every 15 to 30 minutes for AP and GL), and posts summaries and alerts to designated Teams channels. Each notification includes the invoice number, amount, GL account, vendor, and journal entry details. GL reconciliation alerts run on a daily schedule. No data flows back to Sage 100; Teams is read-only notification surface.
How ml-connector handles it
ml-connector maintains both the Sage 100 local agent connection (via the customer-provided BOI agent or SOAP endpoint URL, company code, and credentials) and the Microsoft Teams OAuth connection (tenant ID, client ID, and client secret). On the Sage 100 side, it polls AP invoices, manual checks, GL accounts, and GL journal entries by DateLastUpdated at a cadence tied to your close cycle. Because Sage 100 has no idempotency keys, ml-connector tracks record IDs to avoid posting duplicates. On the Teams side, it posts formatted messages to pre-configured channels using the Microsoft Graph chat message API. GL reconciliation alerts compare total postings per GL account and send a summary message daily. The integration handles Sage 100's concurrent write limits (rare for polling reads) and Teams' 10-second webhook validation window. Every notification is logged with timestamp, vendor, and amount for audit compliance.
A real-world example
A mid-sized distributor runs Sage 100 on-premises for AP, GL, and inventory. The accounting team uses Microsoft Teams for daily chat and coordination. Before the integration, the team manually checked Sage 100 for new invoices and GL postings several times a day, often missing urgent items or approvals. With Sage 100 and Teams connected, new AP invoices appear in a Teams channel within minutes of entry, flagged by vendor and amount, and GL reconciliation alerts run daily so the team spots posting errors before the close. Approval workflows now live in Teams, reducing context-switching and delays.
What you can do
- Post Sage 100 AP invoices and manual checks to Microsoft Teams channels within minutes of receipt or creation.
- Send daily GL reconciliation alerts to Teams summarizing total postings per GL account for close cycle verification.
- Bridge on-premises Sage 100 authentication to Microsoft Teams OAuth, handling the local agent credentials and company code transparently.
- Prevent duplicate notifications by tracking Sage 100 invoice and journal entry IDs across polling cycles.
- Maintain a full audit trail in both systems: Sage 100 records logged with Teams message IDs for cross-system traceability.
Questions
- How does ml-connector access Sage 100 if it is on-premises?
- ml-connector requires the customer to deploy a local BOI agent on the Sage 100 server or expose the eBusiness Web Services SOAP endpoint over HTTPS (with company code and credentials per call). The agent or SOAP endpoint acts as the bridge from ml-connector's cloud infrastructure to the on-premises Sage 100 instance. The customer controls which GL accounts, AP vendors, and company codes are accessible.
- Can Teams receive GL entries and AP invoices in real-time or only on a schedule?
- Microsoft Teams webhooks expire every 3 days and require active renewal. ml-connector uses polling instead to avoid managing subscriptions. AP invoices and GL entries are polled from Sage 100 every 15 to 30 minutes (configurable per your close cycle) and posted to Teams immediately after each poll. For critical GL accounts or vendors, polling intervals can be tightened.
- What happens if Sage 100 has no new invoices or GL entries?
- ml-connector polls on schedule whether or not new records exist. If no new invoices or GL entries are found, no message is posted to Teams. GL reconciliation summaries are sent daily regardless, showing zero new postings if that is the case, so the team always knows the system is working.
Related integrations
More Sage 100 integrations
Other systems that connect to Microsoft Teams
Connect Sage 100 and Microsoft Teams
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started