How to add Microsoft Teams to SYSPRO
Short answer
Teams talks to SYSPRO through a small bot or Power Automate flow that reads SYSPRO via e.net business objects or SQL Server, posts adaptive cards for alerts and approvals, and writes the decision back through a business object. Entra ID identifies the approver and maps them to a SYSPRO operator.
Most SYSPRO shops already live in Microsoft 365, and the SYSPRO client is where approvals go to wait. A purchase requisition sits in someone's queue for days because they only open SYSPRO twice a week, while they answer Teams messages within the hour.
Putting the decision in Teams, with the context in the card and the result written back to SYSPRO, shortens that wait without changing who is allowed to approve what. The trick is keeping SYSPRO as the system of record and Teams as the front door.
What teams use it for
Purchase requisition approvals
Post an adaptive card with item, supplier, value and budget to the approver. Approve or reject writes the outcome back and records the Teams user as the approver.
Production and quality alerts channel
Post late jobs, scrap above a threshold or a held lot to a plant channel, with a link back to the job or lot in SYSPRO.
Credit hold release requests
Notify finance when a customer order lands on credit hold, show open balance and overdue amounts, and let an authorised person release it from the card.
Engineering change notices
Notify planners and buyers when a bill of material changes so they can review open jobs and orders affected before the change takes effect.
Ask SYSPRO from a Teams chat
A bot answers read-only questions such as stock on hand for an item or the status of a sales order, using the asker's mapped permissions.
SYSPRO integration surface
- SYSPRO e.net business objects for sales orders, purchase orders, requisitions and inventory, called with XML. Names and parameters differ by release, so verify them for your version.
- SYSPRO Workflow Services and operator alerts, where available, which can fire an HTTP call or email into your integration layer on a status change.
- Read access to SQL Server company databases for alert queries (for example job, requisition and purchase order tables), using a dedicated read-only login.
- SYSPRO operator codes and role or group settings, which define who may approve what, and which you must map to Entra ID accounts.
- Optionally the SYSPRO e.net REST or web service endpoint in newer releases to avoid COM-based calls from non-Windows hosts.
How it works
- 1
Decide bot versus workflow
For a few simple approvals, Power Automate with an HTTP action and adaptive cards is quick. For conversational queries or many flows, a Teams bot built with the Bot Framework gives you more control.
- 2
Register the app in Entra ID
Create the app registration, grant only the Microsoft Graph and Teams permissions you need, and use single tenant unless you serve multiple organisations.
- 3
Build the SYSPRO adapter
A service close to SYSPRO that exposes narrow endpoints such as get requisition, approve requisition and get stock. It calls business objects or reads SQL, and nothing else touches SYSPRO.
- 4
Map Teams users to SYSPRO operators
Keep a table from Entra user principal name to SYSPRO operator code. Refuse any action if the mapping is missing or the operator lacks the SYSPRO right.
- 5
Design the adaptive cards
Show the facts needed to decide, such as value, requester and budget, then Approve, Reject and Request info buttons. Include an idempotency key so a double click is harmless.
- 6
Write back and update the card
Apply the decision through the business object, then update the card to show the result and who acted, so the channel holds an audit trail.
Example flows
Requisition approval in chat
Trigger: A requisition exceeds an operator's approval limit.
- The adapter detects the pending requisition and finds the next approver.
- An adaptive card is sent in a private chat with item, value and budget remaining.
- The approver taps Approve; Entra identity maps to a SYSPRO operator.
- The adapter calls the requisition business object and updates the card.
Result: Approval time falls from days to hours with the same permission checks.
Late job alert with owner response
Trigger: A job's due date passes with open operations.
- A scheduled query lists late jobs per planner.
- Each planner gets a card listing their jobs and the short component, if any.
- The planner picks a reason code from a list.
- The reason is stored as a note against the job through the adapter.
Result: Late work gets a recorded reason and owner without a status meeting.
Keeping data on-prem
On-prem SYSPRO can stay behind the firewall. Teams is cloud-hosted, so the bot or flow reaches your adapter through an outbound-only relay, an Azure Relay or Application Proxy style endpoint, or a published HTTPS endpoint with strict allow-listing. Keep SYSPRO credentials only on the adapter host. If you add natural-language questions in Teams, send the question to a model hosted inside your network rather than a public API, and return only the answer text to the cloud service, not raw tables.
Security checklist
- Validate the Teams or Bot Framework token on every request and reject unauthenticated calls to the adapter.
- Enforce SYSPRO operator rights in the adapter, not just in the card design.
- Use a least-privilege SQL login for reads and business-object operators for writes.
- Do not post pricing or customer financials into wide channels; use private chats for sensitive cards.
- Retain adapter logs with Entra user, operator code and document reference.
Ways to get it done
Power Automate with HTTP and approvals
Effort: Days per flow once an adapter endpoint exists.
Single-step approvals and notifications where licences are already in place.
Custom Teams bot
Effort: Several weeks including adapter, mapping and testing.
Several flows, conversational queries and tighter control over identity and logging.
Partner build with Netray
Effort: Scoped by flow, usually weeks for the first set.
You want natural-language questions over SYSPRO in Teams with a private model and approval gates.
Pitfalls
- !Approving as a shared service account hides who acted; always map the real user.
- !Cards that omit key context lead to blind approvals; include value, requester and budget.
- !Calling COM-based e.net from a cloud host can fail; run the adapter on a Windows host near SYSPRO or use the web service layer.
- !Letting a card be approved twice because there is no idempotency check.
- !Posting detailed financials to a channel with guest members.
Frequently asked questions
Can approvals in Teams respect SYSPRO permissions?
Yes, if you map each Entra user to a SYSPRO operator and check the operator's rights in your adapter before writing back. The card is only the interface. If you skip this mapping and use a shared account, you lose accountability and may bypass SYSPRO controls.
Does this need SYSPRO 8 specifically?
No. Any release that exposes e.net business objects or a readable SQL database can work. Newer releases may offer easier web service access. Confirm the available objects and endpoints for your installed version with your SYSPRO partner or the product documentation.
Can I use Power Automate instead of a bot?
Often yes for simple notifications and one-click approvals. You still need an adapter or HTTP endpoint that talks to SYSPRO safely. A bot becomes worthwhile once you want conversational questions, many flows or more control over identity, retries and logging.
Will SYSPRO data leave my network?
Card content is stored in Microsoft 365, so only include what you are comfortable with there. The adapter and SQL Server can stay on-prem. Keep cards to references and decision context, and send sensitive detail via a link that requires SYSPRO sign-in.
Can Teams ask questions about stock or orders in plain English?
Yes, by adding a language model behind the bot that turns questions into read-only calls to the adapter. Use an on-prem model if data is sensitive, show the underlying query or source, and limit results to what the mapped operator may see.
Want Microsoft Teams working on your SYSPRO?
A free 30 minute assessment: we map the integration path for your version and setup, and where it should run.
Get a free assessment