How to add Microsoft Teams to Priority ERP
Short answer
Build a Teams bot or Power Automate flow that reads Priority through its OData API, posts adaptive cards for approvals and alerts, and writes the decision back under a service user. Entra ID identifies the approver, and Priority remains the record of what was decided.
Many Priority sites already run Microsoft 365, which means managers spend their day in Teams and open Priority only when they have to. Approvals for purchase requisitions, price exceptions and credit holds therefore sit waiting until someone logs in, or travel by email.
Priority has its own approval and notification mechanisms (business rules, mail alerts and document status flows), so Teams is a front end for them rather than a replacement. The goal is to deliver the right card to the right person and capture a decision that Priority can trust.
This page covers the Priority side: where to hook events, how to read context for the card, how to map a Teams identity to a Priority user, and how to write the answer back safely.
What teams use it for
Purchase requisition approval cards
Approvers get a card with requisition lines, amount and budget note, with Approve and Reject buttons instead of opening the requisition form.
Credit hold release
When an order lands on credit hold, the finance channel receives a card showing customer balance and overdue invoices, with a release request for a named approver.
Late-order alerts to a production channel
Work orders past their planned completion post to a plant channel with a link to the Priority document, so planners see issues without refreshing reports.
Quality and non-conformance notices
A new nonconforming report triggers a channel post to the quality team, with disposition options handled in Priority after discussion.
Customer inquiry lookup bot
Sales staff type a customer or part number in a Teams bot and get balance, open orders or stock summary pulled read-only from Priority.
Priority ERP integration surface
- Priority OData REST API for reading requisitions, orders, work orders and customer balances; entity names vary by version and configuration.
- Priority business rules and procedures, which can detect a status change and write an outbox record or call an external URL, depending on version and whether the environment allows outbound calls.
- Priority Web SDK for server-side or browser-side work that must run through form logic.
- Priority's own user and group model, which does not automatically match Entra ID and needs an explicit mapping table.
- On-prem installs usually run on SQL Server, where a read replica or reporting copy can serve alert queries without loading the transactional server.
How it works
- 1
Decide bot versus workflow
Use Power Automate or Teams Workflows for simple alerts. Use a Bot Framework app when you need interactive cards, lookups and per-user context.
- 2
Register an Entra application
Create the app registration, grant the Teams and Graph scopes you need, and use admin consent. Keep the scopes to what the bot actually uses.
- 3
Map Entra users to Priority users
Maintain a table of Entra object id to Priority username. An approval is only accepted if the Teams caller maps to a user entitled to approve that document in Priority.
- 4
Emit events from Priority
Use a business rule or a scheduled OData poll to detect pending approvals and push them to the bot service with document type, key and approver list.
- 5
Render adaptive cards
Build cards with the few fields an approver needs and a deep link to the Priority form. Keep sensitive details out of group channels; use one-to-one chats for approvals.
- 6
Write the decision back
Call the API under the integration user to set the approval status or add a note naming the Entra user, then update the card to show it is closed.
Example flows
Requisition approval in Teams
Trigger: A purchase requisition reaches pending approval for a department manager.
- The poller finds the requisition and its approver in Priority.
- The bot sends the manager a card with lines, total and budget remaining.
- The manager taps Approve.
- The service verifies the mapping and the approval right, then updates the requisition status through the API.
- The card is replaced with an approved confirmation and timestamp.
Result: Approval happens in minutes, and the audit note in Priority names who approved from Teams.
Plant channel late work orders
Trigger: A scheduled job runs each morning.
- Query open work orders whose planned finish is earlier than today.
- Group by work center.
- Post one summary card per plant channel with counts and top delays.
- Include links that open each work order in Priority.
Result: The morning meeting starts from a shared list rather than a screen share of reports.
Keeping data on-prem
Teams is a Microsoft cloud service, but the Priority server can stay entirely on-prem. Run the bot service in your own network or a small cloud tenant, reach Priority over a VPN or private link, and keep OData credentials local. The Teams side only receives the card content you choose, so show document numbers and statuses and leave full financial detail behind a deep link that requires Priority sign-in. If you add AI summarization of cards or free-text questions, host an open-weight model locally so ERP rows are not sent to an external API.
Security checklist
- Authenticate approvers by Entra ID and map them to Priority users; never trust a display name in the message body.
- Use a service user with the minimum form permissions, and verify the approver's right inside Priority logic, not only in the bot.
- Prefer one-to-one chats for approvals involving prices, costs or HR-related data.
- Sign and validate bot messages with the Bot Framework token checks, and rate-limit the endpoint.
- Log card id, approver and document key for every decision, and expire stale cards.
Ways to get it done
Power Automate with a Priority connector
Effort: Days per flow; watch licensing and gateway needs for on-prem.
Works for alerts and simple approvals if you can call the OData endpoint with a standard HTTP action from your environment.
Custom Teams bot
Effort: Several weeks for a first release with two or three card types.
Best for interactive lookups, multi-step approvals and a consistent identity model.
Partner build with Netray
Effort: Scoped pilot of a few weeks, then extend card types.
Fits when you also want natural-language questions to Priority from Teams and a local model behind them.
Pitfalls
- !Posting cost and pricing data to a channel with broad membership.
- !Treating a Teams button click as authorization without checking Priority approval rights.
- !Leaving cards open after the document was changed in Priority, so approvers act on stale data.
- !Assuming Priority groups equal Entra groups and skipping the mapping table.
- !Overloading the OData endpoint with per-user polling instead of one shared poller.
Frequently asked questions
Is there an official Teams app for Priority?
I would not assume there is one for your version. Priority partners sometimes offer add-ons, so ask your reseller. The reliable approach is a Teams bot or Power Automate flow against the OData API with your own identity mapping.
Can a Teams approval update a Priority document directly?
Yes through the API, provided the integration user has the right and the status transition is allowed by Priority business rules. Record the Teams approver in a note or custom field so the trail is clear to auditors.
Do I need Power Automate premium licensing?
Calling a custom HTTP endpoint from Power Automate typically needs a premium connector license, and on-prem endpoints may need a data gateway. Check current Microsoft licensing for your plan. A custom bot avoids those flow costs but has hosting costs.
How do I keep sensitive data out of Teams?
Send only identifiers, status and a deep link by default, and show amounts only in one-to-one chats to entitled users. Decide field-by-field what a card may contain, and review it with finance before launch.
Can Teams users ask Priority questions in natural language?
Yes, by putting a read-only query layer behind the bot. It needs role-aware access, query logging and ideally a local model if data must stay private. Keep it read-only first, then consider limited write actions with approval.
Want Microsoft Teams working on your Priority ERP?
A free 30 minute assessment: we map the integration path for your version and setup, and where it should run.
Get a free assessment