Microsoft TeamsEpicor Vantage / Epicor 9 Agent view

How to add Microsoft Teams to Epicor Vantage and Epicor 9

Short answer

Add Teams by putting a small bot or workflow between Epicor and Microsoft 365. Epicor 9 BPM directives or Service Connect workflows send events out, adaptive cards present the approval, and the button click calls the Epicor business object services as the approving user.

Approvals on Vantage and Epicor 9 usually mean someone logs into the client, opens a queue and works through it. Managers who are in Teams all day approve late, and requisitions, POs and job changes wait.

Teams is a good fit because the approver already has an identity in Entra ID and does not need a new client install. The Epicor side only needs to emit an event and accept a decision.

The catch is that the older Epicor user model is separate from Entra ID, so the mapping between a Teams identity and an Epicor user is the part to design carefully.

What teams use it for

Purchase requisition approval cards

Post an adaptive card with requisition lines, amounts and the requester to the approver in Teams, with Approve and Reject buttons.

Quality alerts to a channel

Post a message to a Quality channel when a nonconformance is raised, with a link back to the record.

Engineering change notices

Notify planners in a channel when a part or revision changes so open job material is reviewed.

Daily shortage digest

Send the planner a morning card listing critical shortages from a Business Activity Query.

Credit hold release

Ask finance in Teams to release a customer credit hold on a sales order, recording the decision and the approver.

Epicor Vantage / Epicor 9 integration surface

  • BPM method directives that fire after a business object update, for example when a requisition or order status changes. Names depend on your 9.0x release.
  • Service Connect workflows to schedule digests and send HTTP posts to your service or a Power Automate flow.
  • Business object web services for recording the approval decision with normal validation.
  • Business Activity Queries for the data behind digests and cards.
  • Epicor user records and security groups, which you map to Entra ID accounts through a lookup table in your middle service.

How it works

  1. 1

    Choose bot, webhook or Power Automate

    One-way alerts can use a Teams incoming workflow. Approvals need a bot or a flow that supports interactive cards and returns the clicker's identity.

  2. 2

    Register an Entra ID app

    Create an app registration for the bot, grant only the Teams permissions needed, and store secrets in your key vault or equivalent.

  3. 3

    Map identities

    Maintain a table linking Entra user principal names to Epicor user IDs and approval limits. Deny by default if there is no match.

  4. 4

    Emit the approval event

    Use a BPM directive or Service Connect workflow to post the document key, amount and approver to the service.

  5. 5

    Render and send the card

    The service fetches line detail through a read-only query, builds an adaptive card and sends it to the approver.

  6. 6

    Apply the decision

    On click, verify the clicker matches the assigned approver and limit, then call the Epicor service and update the card to show the outcome.

Example flows

Requisition approval in Teams

Trigger: A requisition is submitted and routed to a manager.

  1. Epicor event reaches the middle service.
  2. Service looks up the manager's Entra ID and builds a card.
  3. Manager reviews lines and taps Approve.
  4. Service checks the approval limit and posts the approval to Epicor.

Result: The requisition moves on within minutes and the decision is logged with the approver's identity.

Nonconformance broadcast

Trigger: A nonconformance record is created against a received lot.

  1. Event carries part, lot and supplier.
  2. Service posts a card to the Quality channel.
  3. A button opens the record through a link to the Epicor web client.

Result: Quality sees the issue immediately instead of on the next queue check.

Keeping data on-prem

Teams is a Microsoft 365 cloud service, so card content passes through Microsoft. Keep card payloads minimal: document number, amount and a link, with detail fetched when the approver opens the record. Run the middle service on-prem or in your private cloud, reach Epicor on the internal network, and expose only a signed bot endpoint through a reverse proxy. If you want a Teams assistant that answers questions about Epicor data, host the language model on your own GPUs and let the bot call it, so open-weight inference never sends ERP rows to a public model.

Security checklist

  • Treat the Entra ID to Epicor user map as a security control and review it when people change roles.
  • Check approval limits in the service, not only in the card, so a forwarded card cannot be abused.
  • Use least-privilege Teams permissions and rotate app secrets.
  • Keep card payloads free of full pricing or customer detail when channels are broad.
  • Log every decision with approver, time and document key.

Ways to get it done

Power Automate with an HTTP trigger and Epicor web services

Effort: About 1 to 3 weeks per approval type.

You already license Power Automate and need simple approvals.

Custom Teams bot with a service you host

Effort: About 3 to 6 weeks for a first approval flow.

You need identity mapping, limits and on-prem control.

Partner build with Netray

Effort: Scoped as a pilot on one approval and one alert first.

You want approvals plus an on-prem assistant in Teams.

Pitfalls

  • !Epicor 9 users and Entra users are not linked by default. Skipping the mapping leads to wrong or unsafe approvals.
  • !Cards can be forwarded, so never rely on the card alone to authorise.
  • !Cloud flows cannot reach an internal Epicor server without a gateway or relay you provide.
  • !Overlong cards with every PO line get truncated. Show a summary and link out.

Frequently asked questions

Can Epicor Vantage send approvals to Microsoft Teams?

Not natively. You add it by emitting events from BPM directives or Service Connect and posting adaptive cards through a bot or Power Automate flow. The decision then returns to Epicor through the business object web services.

How are Teams users matched to Epicor users?

Through a mapping table you maintain between Entra ID accounts and Epicor user IDs with approval limits. If a Teams user has no match, the service should refuse the action rather than guess.

Does Epicor 9 work with Power Automate?

Yes, through HTTP calls to your own endpoint or to the Epicor web services, provided the flow can reach the server. For internal servers you normally need an on-premises data gateway or a relay you host.

Is it safe to put ERP data in Teams cards?

Only if you limit what goes in. Keep cards to identifiers, amounts and a link, and fetch sensitive detail when the user opens the record. Channel membership should match who may see that data.

Can a Teams bot answer questions about our Epicor data?

Yes. The bot can call read-only queries and a locally hosted model to answer in plain language. Keep it read-only at first and show the query used so users can verify results.

Want Microsoft Teams working on your Epicor Vantage / Epicor 9?

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

Get a free assessment