Microsoft TeamsSage 100 Agent view

How to add Microsoft Teams to Sage 100

Short answer

Sage 100 does not ship with a Teams connector. You build a small bridge that detects events in Sage, posts adaptive cards into a Teams channel or chat through a bot or Workflows, and applies approved decisions back through the Business Object Interface. An on-prem Sage server needs only outbound HTTPS plus a reachable bot endpoint.

Many Sage 100 companies already live in Microsoft 365. Email is Outlook, files are SharePoint, and the team chats in Teams. Yet approvals still happen by someone walking over, or by a forwarded email saying 'can you release this order'.

Teams is useful here because it gives you identity (Entra ID), a place for group discussion, and cards with buttons. An approver can see the order, the customer's past due, and tap Approve, instead of logging into Sage to hunt for the record.

The constraint is that Sage 100 is a classic Windows application with a COM-based API. Everything here is about building a thin, safe bridge to it rather than changing Sage itself.

What teams use it for

Credit hold approvals

Orders on credit hold post an adaptive card to the credit manager with balance, past due and order total. Approve or hold buttons feed a review step before Sage is changed.

Purchase order approval routing

New POs above a threshold go to the right approver in Teams with the vendor, total and lines, replacing email chains for sign-off.

Low stock and backorder alerts

Items falling below reorder point in a warehouse post to a purchasing channel, with the on-hand, on-order and next receipt dates from the item warehouse data.

Month-end close checklist

A channel bot posts progress of period-end tasks such as posted batches and unreconciled receipts, so accounting leads see blockers early.

Ask-the-ERP in a channel

A bot answers 'open orders for customer X' read-only, using a restricted lookup account and honouring who is asking.

Sage 100 integration surface

  • ODBC and SQL: read order, customer, PO and item tables (for example SO_SalesOrderHeader, AR_Customer, PO_PurchaseOrderHeader, IM_ItemWarehouse) to feed card content. Premium uses SQL Server; Standard and Advanced use ProvideX behind the ODBC driver.
  • Business Object Interface: the COM write path for releasing a hold or updating an order after approval. Object and method names depend on your version.
  • Business Alerts: configurable alerts that can email or run an action; a practical trigger source if you do not want to poll.
  • Customizer and scripts: can call an external command or URL on a field event, which suits 'request approval' buttons on a form.
  • Visual Integrator jobs and the Windows Task Scheduler: a dependable way to run exports and the poller on a schedule.

How it works

  1. 1

    Pick Teams delivery style

    For one-way alerts, use a Teams Workflows webhook or channel connector alternative. For buttons that call you back, register an Azure Bot or a Teams app with a messaging endpoint.

  2. 2

    Register the app in Entra ID

    Create an app registration for the bot, grant only the scopes it needs, and decide who may approve by mapping Entra users to Sage users.

  3. 3

    Host the bridge

    A service on the Sage network or a small cloud host holds the bot logic. It connects to Sage over ODBC for reads and BOI for approved writes.

  4. 4

    Emit events

    Poll with a watermark, or use Business Alerts, to detect new holds, POs and stock triggers. Deduplicate so a card posts once per event.

  5. 5

    Build adaptive cards

    Cards show only the minimum fields and carry an opaque request ID. Button callbacks return the ID and the signed-in Entra identity.

  6. 6

    Apply decisions and update the card

    Check the approver is authorised, apply via BOI, then update the card to show who approved and when. Log it.

Example flows

Order released from credit hold

Trigger: A sales order is placed on credit hold in Sales Order Entry.

  1. The poller finds the hold and gathers balance and past-due from AR.
  2. A card goes to the credit-managers chat.
  3. A manager taps Release; the bridge checks their Entra identity against the approver list.
  4. A BOI call clears the hold and the card updates with the approver name.

Result: Holds are cleared in minutes with a visible audit trail.

PO over threshold

Trigger: A buyer saves a purchase order above the approval limit.

  1. The bridge reads the PO header and lines.
  2. It posts a card to the department head with vendor, total and requested date.
  3. The approver taps Approve or Reject with a comment.
  4. The result is stored and the buyer is notified in Teams.

Result: PO approvals stop living in individual inboxes.

Keeping data on-prem

A Sage 100 server on a local network can work with Teams without opening it to the internet. The bridge makes outbound calls to Microsoft, and the bot messaging endpoint is exposed through a reverse proxy, Azure Relay or a small public-facing component that forwards only signed requests inward. Card content is stored in Microsoft 365, so keep it to identifiers and the fields an approver needs. If you add natural-language questions in a channel, run the model on your own GPU server and keep query results within your network, returning only the final answer text into Teams.

Security checklist

  • Authenticate approvers by Entra ID and map them explicitly to rules, not by display name.
  • Validate the bot framework token on every inbound request; reject unsigned calls.
  • Use a least-privilege Sage account, with BOI used only for narrow approved actions.
  • Keep sensitive fields such as cost and margin out of channel cards; link or ask in a private chat instead.
  • Log approvals with the Entra user, timestamp and the exact action applied.

Ways to get it done

Teams Workflows or Power Automate with Business Alerts

Effort: Days.

Simple one-way notifications where no approval button is needed.

Custom Teams bot built in-house

Effort: Three to six weeks including testing.

IT teams with .NET or Node skills and some Azure experience.

Netray or a Sage partner builds the bridge

Effort: A few weeks for a first approval flow.

You want approvals, audit trail and optional on-prem AI answers without maintaining it.

Pitfalls

  • !Putting full financial detail in a shared channel where more people can read it than can in Sage.
  • !Approval buttons that act on a stale record because the order changed after the card was sent. Recheck state before writing.
  • !Ignoring Teams rate limits when a large batch of alerts fires at once.
  • !Letting any channel member click Approve rather than a defined approver group.
  • !Hosting the bridge on a desktop that sleeps or gets patched, killing the poller silently.

Frequently asked questions

Is there an official Sage 100 Teams app?

There is no standard Teams integration included with Sage 100 that I can point to, and options change by release, so check your version and the Sage marketplace. In practice most companies build a small bridge or use a partner tool for approvals and alerts.

Can Power Automate talk to Sage 100?

Indirectly. Power Automate can receive an email or file from a Business Alert or a Visual Integrator export, and can call your own API. It has no general Sage 100 connector, so the on-prem data still needs a gateway or small service.

How do approvals get back into Sage safely?

Through the Business Object Interface, after checking the approver's identity and the record's current state. Avoid direct table updates because they skip Sage's business rules.

Can I ask Sage questions in a Teams chat?

Yes, with a bot that runs read-only lookups on a restricted account. Add per-user permissions so a salesperson does not see cost data they cannot see in Sage.

Does the Sage server need to be internet-facing?

No. Keep Sage private. Only the bridge's bot endpoint needs to be reachable, ideally through a reverse proxy that accepts just signed Microsoft requests.

Want Microsoft Teams working on your Sage 100?

A free 30 minute assessment: we map the integration path for your version and setup, and where it should run.

Get a free assessment