How to connect Microsoft Teams to abas ERP
Short answer
Put a Teams bot between the two systems. The bot reads abas data through EDP or REST, posts adaptive cards for approvals and alerts, and sends the decision back through a controlled write path. Entra ID identifies the person, and a mapping table ties that identity to an abas user.
Many abas ERP sites already run Microsoft 365 for mail and files. Teams is where purchasing, planning and management talk all day, while abas is where the decisions have to be recorded. The gap shows up as screenshots pasted into chats and approvals buried in email.
A Teams integration closes that gap without asking people to log into the abas client for a one-click decision. It is not a replacement for the ERP screens, it is a thin front for the few actions that are repetitive and well defined.
The practical difficulty is identity and network. abas users and Entra ID accounts are separate worlds, and the ERP usually sits on-prem. The design below keeps both concerns explicit.
What teams use it for
Purchase requisition approval cards
Post an adaptive card with requester, item, value and cost center to the approver, with Approve and Reject buttons, and record the outcome against the requisition.
Material shortage alerts to a planning channel
When a nightly requirements run shows a shortage for an order due within days, post one summarised card to the planning channel with links to the order.
Quality hold notifications
When a lot is blocked or a nonconformance record is opened, notify the quality channel and tag the responsible person.
Ask-the-ERP bot in a channel
Let users type 'stock of item 4711' or 'status of order 10234' and get a card with live figures read from abas.
Daily management digest
A scheduled post with orders shipped, open late deliveries and backlog value, sourced from an infosystem so numbers match what finance sees.
abas ERP integration surface
- EDP interface for reading and, with care, writing records from a service process; exact libraries depend on the abas release.
- REST endpoints in newer abas versions for master and transaction data; confirm what your version and licence expose.
- Infosystems as stable read queries: wrapping an existing 'open requisitions' or 'late orders' list is safer than querying records directly.
- User and role model inside abas, separate from Entra ID, which means a mapping table such as Entra object id to abas user name is needed for approvals.
- Scripts and scheduled jobs in abas can push events outward, or an external scheduler can poll; many sites prefer the external scheduler for easier monitoring.
How it works
- 1
Register the bot in Entra ID
Create an app registration and a Bot Framework or Teams app, restrict it to your tenant, and define the scopes. Decide between a channel bot, a personal bot, or both.
- 2
Build the ERP gateway
A service that wraps abas calls into a handful of functions: get_order, list_late_orders, get_requisition, submit_decision. Expose only those, not generic record access.
- 3
Map identities
Store a table of Entra user to abas user and role. An approval is only accepted if the abas user behind the Teams user has the right to approve that document.
- 4
Design adaptive cards
Keep cards short: key fields, one decision, a deep link. Use Action.Execute so the card refreshes after a decision and cannot be clicked twice.
- 5
Connect on-prem safely
Host the bot endpoint in the cloud or a DMZ and have an internal agent pull requests, or use a reverse tunnel initiated from inside. Do not open the ERP network to inbound traffic.
- 6
Audit and test
Log every card sent and every decision with timestamp and identity, then run a pilot with one approval type before adding others.
Example flows
Requisition approval
Trigger: A requisition above a value limit is saved in abas.
- The gateway detects the new document in the late-approval list.
- It finds the approver through the role mapping and posts a card in a one-to-one chat.
- The approver clicks Approve.
- The gateway checks rights, writes the decision, and updates the card to 'approved by name at time'.
Result: Approvals finish in minutes, and the audit trail lives in abas and in the bot log.
Late delivery stand-up card
Trigger: A scheduled morning job at 07:30.
- The gateway runs the late-orders infosystem.
- It groups results by customer and value.
- It posts a single card to the sales channel with the top ten and a link to the full list.
Result: The morning meeting starts with a shared list and no one exports a spreadsheet.
Keeping data on-prem
With an on-prem abas, the safest layout has the gateway inside the plant network with a service account, and the Teams-facing bot endpoint in a DMZ or cloud function that only queues requests. The gateway polls that queue outbound over HTTPS, executes whitelisted actions against abas, and returns the response. This keeps the ERP port closed to the internet while still giving Teams its required public endpoint. If a natural-language layer is added to the bot, the model can run on your own GPU server so ERP data never goes to a third-party model API; only the Teams message envelope passes through Microsoft, which you already trust for chat.
Security checklist
- Authenticate every Teams request through Entra ID and reject calls whose tenant id does not match yours.
- Authorise in abas terms, not only Teams terms: the mapped abas user must hold the right for that document.
- Whitelist gateway actions; do not expose a generic 'run EDP command' function.
- Use single-use decision tokens inside cards so replays cannot approve twice.
- Keep chat content free of confidential pricing unless the channel membership has been reviewed.
Ways to get it done
Power Automate or Logic Apps with a custom connector
Effort: Days for alerts, weeks for solid approvals.
Simple alerts and a few approvals when you can expose a REST endpoint from abas or a gateway.
Custom Teams bot built in-house
Effort: About 4 to 8 weeks including identity mapping.
You need richer cards, queries and role-aware approvals across several document types.
Partner build such as Netray
Effort: A scoped pilot, then add flows incrementally.
You also want an ask-the-ERP assistant and a private model behind the bot.
Pitfalls
- !Treating a Teams identity as proof of ERP authority without a role check in abas.
- !Cards that try to show a whole order with all lines; they become unreadable on mobile.
- !Hard-coding approver emails instead of reading the approval hierarchy, which breaks when people change roles.
- !Flooding channels with every minor event; start with exceptions only.
- !Leaving bot secrets to expire silently and discovering it when approvals stop.
Frequently asked questions
Is there an official abas connector for Teams?
We cannot confirm a standard one across all versions. Check with your abas partner for any add-on. Otherwise the usual route is a custom bot or a Power Automate flow calling an endpoint you expose through EDP or REST.
Can approvers approve from their phone?
Yes. Adaptive cards render in the Teams mobile app, so a short card with one decision works well on a phone, provided the bot endpoint is reachable from the Teams service.
How do we avoid duplicate approvals?
Use Action.Execute with a unique token per card and check document state in abas before writing. If it is already approved or changed, the bot refreshes the card with the current status instead of writing again.
Will it work if abas is only on-prem?
Yes, with an internal gateway that makes outbound connections only, plus a DMZ or cloud endpoint for Teams. No inbound port to the ERP network is needed.
Can we add natural-language questions?
Yes. Route free text to a local model that maps it onto the whitelisted gateway functions, so the model proposes a query and the gateway runs it read-only.
Want Microsoft Teams working on your abas 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