How to add Microsoft Teams to Baan IV / Baan V
Short answer
Put a bot or workflow between Baan and Teams: a relay reads events from the Baan database or exported files, posts adaptive cards to channels or individuals, and returns the approver's decision through a reviewed import. Authentication happens in Entra ID, so Baan users never share passwords with Teams.
Many Baan plants have moved their email, calendars and file shares to Microsoft 365 while the ERP stayed put. Teams is therefore already open on most desks, and managers would rather approve something from a chat card than log into a Baan terminal emulator or a Windows client.
Teams also changes who sees what. A shortage alert in a planning channel is visible to the buyer, the planner and the supervisor at once, where today it sits in one person's Baan inquiry session. That shared visibility is usually the real win.
The constraint is the same as elsewhere on this platform: Baan cannot call Teams and Teams cannot call Baan. A relay you control sits between them, and approvals flow back through an import that keeps Baan's own validation intact.
What teams use it for
Purchase requisition approvals
Post an adaptive card to the department manager with requisition number, requester, total and lines. Approve and Reject buttons feed a decision queue that a buyer imports into Baan.
Planning exception channel
After the planning run, post items with late or unfunded planned orders into a Teams channel grouped by planner, with a link to a read-only report.
Quality hold notifications
When a lot is blocked in inventory, notify the quality team channel with item, lot, warehouse and reason so they can act without checking inventory sessions.
Production order release reminders
Daily digest card to the shift lead listing orders due to release with material availability status taken from a nightly extract.
Month-end close checklist
A scheduled card to finance with sub-ledger status counts from exports, replacing a spreadsheet passed around by email.
Baan IV / Baan V integration surface
- Baan database read access through a view layer, usable for detecting approvals pending, blocked lots and planning outputs without touching the application.
- Report and session output to ASCII or file devices, scheduled with the operating system's job scheduler or a Baan batch session, as an alternative where database access is not allowed.
- Baan approval or authorisation status fields on requisitions and orders, whose names and workflow depend on the version and customisation. Confirm which status transitions mean 'pending approval' in your set-up.
- AFS (Application Function Server) or the Baan data exchange and EDI import paths to apply decisions as the approving user or as a defined integration user.
- Windows or Unix user records in Baan mapped to corporate email addresses, which is the join between a Baan user and an Entra ID account.
How it works
- 1
Map identities
Build a table linking each Baan login code to an Entra ID user principal name. Without it you cannot route cards or audit who approved.
- 2
Register the Teams app
Create an app registration in Entra ID, add a bot or use Power Automate and Workflows for simple cases, and install the app to the relevant teams. Use application permissions only for what is needed.
- 3
Extract pending items
A scheduled job queries a read-only view for items awaiting approval or breaching a rule, and writes them to a queue with a stable key so repeats are suppressed.
- 4
Design the adaptive card
Keep the card short: identifiers, amount, requester, a link to a read-only page, and the buttons. Long line detail belongs behind the link.
- 5
Receive the action
The bot endpoint validates the Teams token, records the decision with the Entra identity, and updates the card to show the outcome.
- 6
Apply to Baan with review
A buyer or an automated job with strict rules imports approved items. Rejections produce a note in the requisition history or an email to the requester.
Example flows
Requisition approval from a phone
Trigger: A requisition above the department limit is submitted in Baan.
- Extractor finds the requisition awaiting approval.
- Bot posts a card to the approver's personal chat.
- Approver taps Approve after opening the linked summary.
- Decision is stored with timestamp and Entra identity.
- Import job updates the requisition status in Baan.
Result: Approval time drops from days waiting for a terminal session to minutes, with a clear audit trail.
Lot blocked alert
Trigger: An inventory lot status changes to blocked.
- Nightly or frequent poll detects the status change.
- Card posts to the quality channel with lot and warehouse.
- A quality engineer reacts and replies with disposition in thread.
Result: Quality is aware the same hour, and the discussion sits in one thread rather than three emails.
Keeping data on-prem
Teams is cloud-hosted, so the question is how little data crosses the boundary. Keep Baan and its database on-prem and run the bot service on a server you control, reachable by Microsoft through a reverse proxy with a fixed URL. Cards should carry identifiers, amounts and a link that resolves only on the corporate network or VPN, so sensitive detail stays inside. If even the identifiers are sensitive, use Teams only for generic nudges like 'You have 3 approvals waiting' and keep the content in an internal web page. Any AI used to summarise exceptions can run on a local model.
Security checklist
- Authenticate cards and the bot through Entra ID, validate the bot framework token on every call and restrict the app to specific teams.
- Separate the integration database account from human accounts and give it read-only rights.
- Authorise the approver in the relay against Baan authority limits, not just by who clicked the button.
- Mask cost and price detail in chat if channels include external guests.
- Keep an immutable log of card sent, decision made, and import applied.
Ways to get it done
Power Automate or Teams Workflows with a database connector
Effort: Days, with limits on complex logic and two-way import.
Simple alerts and one-step approvals where a gateway to the Baan database already exists.
Custom bot service built in-house
Effort: A few weeks including identity mapping and import testing.
Sites with .NET or Node developers who want full control of the card design and audit.
Partner build with Netray
Effort: Scoped project; Netray delivers the relay, cards and review queue and can run models on-prem.
When you also want an exception summariser or natural-language lookups inside Teams over Baan data.
Pitfalls
- !Baan authority limits live in many places. Replicating them in the relay without checking the real rule leads to approvals that Baan then rejects.
- !Card spam kills adoption. Group, digest and suppress duplicates from day one.
- !Stale cards: if an item is changed in Baan after a card is sent, the decision must be checked against the current state before import.
- !Entra ID guests and shared mailboxes do not map cleanly to Baan users; plan for exceptions.
- !Do not let the bot write straight to the database for convenience, it bypasses the validations that keep planning data consistent.
Frequently asked questions
Is there a Teams connector for Baan?
Not from the vendor. Teams works through bots, adaptive cards and workflows, and Baan has no outbound web hooks. You need a relay that reads Baan data via the database or exported files and posts to Teams, then applies decisions back through an import path you control.
Can approvers act on Baan without VPN?
Yes for the decision itself, because the card goes through Microsoft's service to the bot on your DMZ. Opening linked detail pages will still need network access unless you expose them securely. Many sites use card content alone for low-risk approvals and require VPN for the detail page.
Do we need Power Automate premium licences?
It depends. Standard connectors cover basic Teams posting, but database and custom HTTP connectors are premium. A custom bot avoids those licences but needs developer time. Check current Microsoft licensing for your tenant before choosing, since terms change.
How do we keep an audit trail?
Store the card payload, the Entra identity and timestamp of the click, and the import result in your own table. Link that to the Baan transaction key. Auditors can then trace a Baan status change back to a named approver and a time, even though Baan itself saw only the integration user.
Could this work with Baan on an old Unix server?
Yes, because everything happens outside Baan. The requirement is a way to read events (database access or file output) and a supported way to import decisions. The Unix host stays on its own network segment and never connects to Microsoft directly.
Want Microsoft Teams working on your Baan IV / Baan V?
A free 30 minute assessment: we map the integration path for your version and setup, and where it should run.
Get a free assessment