# How to add Microsoft Teams to SAP S/4HANA

> Source: https://netray.co/integrations/sap-s4hana-microsoft-teams
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: Integrations

## Short answer

Build a Teams bot or workflow that sends adaptive cards for approvals and alerts, backed by a service that calls S/4HANA released APIs. Use Entra ID to identify the Teams user and map them to an SAP user for authorisation. Approvals complete in the card without opening the Fiori launchpad, while SAP still records the release.

## System

SAP S/4HANA

## Capability

microsoft-teams

## Intro

Many S/4HANA customers also run Microsoft 365, and the daily conversation about delayed orders, blocked invoices and engineering holds happens in Teams channels. The ERP, meanwhile, sits behind the Fiori launchpad, and the inbox of tasks there is easy to ignore. Putting actionable cards in Teams closes that gap.

SAP and Microsoft have both published ways to surface SAP content in Teams, including launchpad-style apps and assistant integrations. What is available depends on your edition, whether you use SAP Build Work Zone, and your licensing, so verify current options before building. The pattern below works regardless: a thin integration service between Teams and the S/4HANA API layer.

The central design question is identity. A Teams user is an Entra ID principal; the SAP user is a separate identity with roles. Getting that mapping right, and not letting the bot act with broader rights than the person, is the difference between a useful tool and a segregation of duties problem.

## Use Cases

### Purchase requisition and PO release in a card

**Description:** Approvers get an adaptive card with requisition number, requester, cost centre, total and line summary, and approve or reject without leaving Teams. The service calls the release API as that approver.

### Blocked invoice triage channel

**Description:** Invoices blocked for price or quantity variance post into an AP channel as cards with the supplier invoice, PO reference and variance. Buyers can reply with an action: accept variance, request credit note, or reassign.

### Production disruption alerts

**Description:** Production order delays, component shortages and quality notification escalations post to a plant channel, tagged to the planner on duty, with a link into the relevant Fiori app.

### Ask SAP for status in a channel

**Description:** A bot command like 'status PO 4500012345' returns the key fields from the purchase order API, honouring the asking user's authorisations rather than the bot's.

### Month-end close checklist

**Description:** Finance posts close task status in a Teams channel, pulling open items counts from relevant APIs and CDS views and flagging blockers to owners.

## System Surface

Released OData APIs (purchase requisition, purchase order, supplier invoice, production order, quality notification) found on the SAP API Business Hub; confirm exact service names and versions on your release.

SAP Business Workflow and the My Inbox / Manage Workflow tasks, which expose work items. A middleware can read pending items and complete them through the task APIs, keeping the standard workflow log authoritative.

Business events or output management as triggers so a card is created when a document needs action, not on a poll.

SAP Cloud Identity Services or a trusted SAML/OIDC setup so Entra ID is the identity provider and the user mapping is consistent with what Fiori already uses.

SAP Integration Suite or on-premise middleware for transformation, plus Cloud Connector when S/4HANA is not reachable from the internet.

SAP Build Work Zone and its Teams-related integrations, where licensed, for launchpad access inside Teams (verify current scope with SAP).

## How It Works

### Define which actions belong in Teams

**Detail:** Start with one approval and one alert. Pick actions where the decision can be made from a summary and where the S/4HANA API supports a safe completion call.

### Register the bot or workflow in Entra ID

**Detail:** Create the app registration, define the scopes, and publish the Teams app package to your tenant. Decide whether it is personal, in a team or in channels.

### Map Entra users to SAP users

**Detail:** Use the user principal name or email in the SAP user master (or business partner) as the key, and refuse actions when the mapping is ambiguous. Prefer principal propagation through Cloud Connector so the call runs as the real SAP user.

### Build the card service

**Detail:** The service receives the SAP trigger, builds an adaptive card with a stable card ID and posts it through the Bot Framework or Graph. It stores the correlation between card, SAP document and approver.

### Handle card actions

**Detail:** On Approve or Reject, the service re-reads the document to confirm it is unchanged, calls the SAP API as the mapped user, and updates the card to show the result and timestamp.

### Monitor and audit

**Detail:** Log every card sent and action taken, and reconcile to the SAP change documents or workflow log weekly while the process is new.

## Example Flows

### PO release approval

**Trigger:** A purchase order lands in a release strategy step assigned to a plant manager.

**Steps:**

- The workflow work item or event triggers the middleware.
- The service reads PO header, supplier and net value, and builds a card.
- The manager taps Approve in Teams.
- The service re-checks the PO status, then calls the release operation as the manager's mapped SAP identity.
- The card updates to show 'Released by name at time'.

**Result:** Approval cycle times drop because the decision no longer waits on someone opening the launchpad.

### Quality escalation to a plant channel

**Trigger:** A quality notification is created with high priority on a material for an important customer.

**Steps:**

- An event or scheduled CDS read flags the notification.
- The service posts a card to the quality channel with material, defect code and linked inspection lot.
- A quality engineer clicks Take ownership, which assigns the processor in S/4HANA through the API.
- Follow-up status changes post as replies in the thread.

**Result:** Ownership is claimed in minutes and the thread becomes a readable timeline of the issue.

## On Prem

Teams is a Microsoft cloud service, but S/4HANA can stay fully on-premise. Use SAP Cloud Connector or a reverse proxy in the DMZ so only the integration service reaches S/4HANA, and keep the service itself in your network with outbound calls to Microsoft Graph and the Bot Framework. Limit card content to non-sensitive summaries and send users into authenticated Fiori for detail. If your environment bans cloud chat for certain data, use a self-hosted alternative or restrict the Teams integration to non-controlled plants. Any AI layer that summarises documents or suggests approvals should run on private open-weight models so ERP content is not passed to an external LLM.

## Security

- Run actions as the real user through principal propagation or a strict mapping, never as a shared super-user bot.
- Re-validate the document state right before executing an approval, since the card may be hours old.
- Apply Conditional Access and tenant restrictions to the bot, and limit which channels can receive cards containing commercial data.
- Keep secrets and certificates in a vault, rotate Entra client secrets, and restrict the Graph permissions to the minimum.
- Retain Teams card and action logs together with SAP workflow logs for audit and segregation of duties review.

## Options

### Use SAP and Microsoft supplied integrations

**Fit:** If your landscape includes SAP Build Work Zone or similar, you may get launchpad access in Teams with little build. It tends to surface apps rather than rich approval cards.

**Effort:** Low, mainly configuration and identity setup.

### Build a custom Teams app with an integration service

**Fit:** Best for tailored approvals and alerts over specific documents and for companies with in-house .NET or Node and ABAP capability.

**Effort:** A few weeks for a first approval flow including identity mapping and testing.

### Partner build with Netray

**Fit:** Fits teams wanting conversational queries and agent behaviour on top of Teams, with the model run privately and writes gated behind approval.

**Effort:** Pilot in weeks; breadth depends on how many document types and plants.

## Pitfalls

- Approving from a stale card after the PO changed is a classic failure. Always re-read and compare a version or changed-on timestamp.
- Teams email addresses and SAP email addresses often differ for contractors and shared accounts; the mapping needs cleaning first.
- Posting every workflow item creates noise. Start with the few decisions that actually block cash or production.
- Adaptive card schema versions differ across Teams clients; test on desktop, web and mobile.
- Skipping the workflow log by writing directly to tables breaks audit trails and can corrupt release status.

## Faq

### Can approvers approve SAP documents inside Teams?

**Answer:** Yes, using adaptive cards that trigger a service calling S/4HANA release or workflow APIs as the approver. Done properly, SAP logs the approval exactly as if it was done in Fiori, and the card is only a front end.

### Do we need SAP BTP for this?

**Answer:** Not strictly. BTP and Integration Suite make connectivity, identity and eventing easier, especially for cloud editions, but an on-premise middleware plus Cloud Connector or a reverse proxy can also do the job in a private deployment.

### How is this different from SAP's own Teams options?

**Answer:** SAP-supplied options tend to expose apps and generic assistants. A custom card integration is narrower but can fit your exact approval rules, fields and escalation. Many companies use both, one for navigation and one for decisions.

### Can a Teams bot answer free-text questions about orders?

**Answer:** Yes, if you add a grounded retrieval layer over released APIs. Keep it read-only first, enforce the asker's authorisations and show the source record so answers can be verified.

### What about guests and external users?

**Answer:** Treat guests as untrusted by default. Do not post commercial SAP data into channels with external members, and route supplier-facing flows through a different channel such as WhatsApp or a portal.

## Search terms

sap s4hana microsoft teams integration, sap approvals in teams, microsoft teams sap bot, sap teams adaptive cards, s4hana teams notifications, integrate sap with microsoft teams, sap purchase order approval teams, sap workflow teams, teams chatbot for sap, sap build work zone teams

---
Talk to an engineer: https://netray.co/contact?intent=erp_ai | Machine catalog: https://netray.co/agent/catalog.json
