# How to connect Microsoft Teams to JD Edwards World

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

## Short answer

Teams talks to World through a thin middle layer: IBM i events flow to a bot or a Power Automate flow, which posts adaptive cards to a channel or a person, and the card response is staged and posted back into World by a controlled job. Entra ID identifies the user, and you map that identity to a World user profile.

## System

JD Edwards World (IBM i)

## Capability

microsoft-teams

## Intro

A World shop usually has Microsoft 365 for everyone and a handful of green-screen power users who do the real work. Managers, plant leads and finance approvers are in Teams all day but rarely in a 5250 session. As a result approvals sit, exceptions go unseen, and people ask the same questions in chat that someone then answers by looking up a screen.

Teams is a good fit for this problem because it already carries identity, notifications and mobile apps. What World contributes is the event stream and the system of record. The work is plumbing between the two, not rewriting anything on the IBM i.

This page lays out how to wire that plumbing safely, what the IBM i side can realistically supply, and where Power Automate is enough versus where a proper bot is worth building.

## Use Cases

### Purchase order approval cards

**Description:** Post an adaptive card with supplier, amount, requester and line summary to the approver; Approve and Reject buttons stage a decision that a World job applies.

### Order hold and credit alerts to a sales channel

**Description:** When an order lands on hold, notify the account owner in a Teams channel with customer, value and reason code, plus a link to an internal lookup page.

### Nightly exception digest

**Description:** Post a morning summary of past due purchase orders, MRP action messages and open work order shortages to a planning channel from a scheduled SQL query.

### Ask-the-ERP bot for read-only questions

**Description:** Let planners type 'on hand for item 4471 in branch 20' in a Teams chat and get an answer from a read-only SQL layer on DB2 for i.

### Month-end close reminders

**Description:** Post checklist status and open batch counts for general ledger unposted batches to the finance channel so nothing blocks the close.

## System Surface

- DB2 for i read access through JDBC, ODBC or the IBM i Access drivers; most Teams answers come from SQL against the World files, whose names and columns depend on release and local customizations.
- Data queues and file triggers as event sources, so a card can appear within seconds of a status change.
- Scheduled queries from the IBM i job scheduler or an external scheduler for digests and reminders.
- Spooled files (SPLF) that can be copied to the IFS and posted as attachments when a report needs to go to a channel, using CPYSPLF or a PDF conversion tool.
- World batch input and interactive-batch entry programs for write-back; there is no general REST layer in World, so any REST facade is something you add outside the IBM i.
- Microsoft side: Teams bots built with the Bot Framework, incoming webhooks or Workflows, and Power Automate flows with an on-premises data gateway.

## How It Works

### Decide bot versus Power Automate

**Detail:** Power Automate with an on-premises gateway handles simple alerts and approvals quickly. A custom bot is better when you need conversation, many card types, or logic that must not live in a flow designer.

### Expose a small read and stage API

**Detail:** Put a service in front of DB2 for i that offers a few named queries and a stage-decision endpoint. Do not let the Teams side build raw SQL.

### Capture IBM i events

**Detail:** Use a trigger or data queue to write the key of a changed order to a queue; the service reads it and enriches the payload with an SQL lookup.

### Map identities

**Detail:** Keep a table mapping Entra ID user principal names to World user profiles and approval authority. Reject any decision from a user with no mapping.

### Render adaptive cards

**Detail:** Build cards with the key facts and one or two actions. Include an order key and a version stamp so a stale card cannot approve something that has changed.

### Apply decisions through World

**Detail:** A batch job reads staged decisions, revalidates the order status and posts through the normal World update path under a service profile, writing the Teams user to the audit field.

### Update the card

**Detail:** After the decision is applied, update the original card to show the outcome so nobody approves twice.

## Example Flows

### Requisition approval from a phone

**Trigger:** A requisition is submitted in World and needs a department manager's sign-off.

**Steps:**

- A trigger writes the requisition key to a data queue.
- The service builds an adaptive card with item, quantity, requester and cost center.
- The manager taps Approve in Teams on mobile.
- The decision lands in the staging table with user and timestamp.
- A World batch job releases the requisition and the card changes to 'Approved by manager'.

**Result:** Requisitions move without a manager opening a terminal session.

### Morning past-due PO digest

**Trigger:** A scheduled job runs at 6:30 each weekday.

**Steps:**

- The service runs a query against open PO lines past their promised date, grouped by buyer.
- It formats a card per buyer with the top lines and a count of the rest.
- Each buyer receives the card in a private chat; a roll-up goes to the purchasing channel.

**Result:** Buyers start the day with a prioritized list instead of running inquiries.

## On Prem

Teams itself is a cloud service, but the data that feeds it does not have to leave your control. Keep the IBM i, the API service and any language model inside your network, and let only the minimal card text cross to Microsoft 365 through the Bot Framework or a gateway. Power Automate with an on-premises data gateway can reach DB2 for i without opening the IBM i to the internet, though the gateway server then becomes a security asset to patch and monitor. For regulated programs, check whether your Teams tenant meets your obligations (for example GCC High for some US government work) before sending any order details.

## Security

- Authenticate the bot with Entra ID and validate the Bot Framework token on every inbound call.
- Authorize each action by the mapped World user, not by who can see the Teams channel.
- Keep card payloads minimal: identifiers, amounts and statuses, no drawings or controlled technical data.
- Use a read-only DB2 for i profile for lookups and a separate staging profile for decisions.
- Log every card sent and every decision, with the Entra ID object ID, for audit.

## Options

### Power Automate flows with an on-premises data gateway

**Fit:** Fits simple alerts, digests and single-step approvals where licensing for the gateway is already in place.

**Effort:** Days to weeks per flow; the IBM i side still needs the event source and staging.

### Custom Teams bot built in-house

**Fit:** Fits teams with .NET or Node skills and a need for conversation and several card types.

**Effort:** A few weeks for a first bot plus time to harden identity mapping and audit.

### Partner build with Netray

**Fit:** Fits shops that want natural-language questions over World data with a local model plus governed approvals.

**Effort:** A scoped pilot of one or two flows, then extended once the staging pattern is proven.

## Pitfalls

- Teams cards can be forwarded and screenshotted; do not treat card content as secret just because the channel is private.
- Approvals from a stale card are a real risk; always revalidate order status and amount at apply time.
- The on-premises gateway needs patching and a clear owner; when it fails, flows fail silently unless you alert.
- World users often share profiles on older installs; shared profiles make audit trails useless, so fix identity before automating approvals.
- Large result sets in a card are unreadable; send a summary and a link rather than a table of fifty rows.

## Faq

### Can Teams approve a purchase order in JD Edwards World directly?

**Answer:** Not directly. Teams sends a decision to a service, which stages it, and a World job or entry program applies it. This keeps World's edits, audit fields and authority checks in the loop and avoids writing to files from outside the application.

### Do we need Power Automate or a custom bot?

**Answer:** Power Automate is enough for notifications and basic approvals. A custom bot is worth it when users ask free-form questions, when you have many card types, or when logic should be versioned in code. Many shops start with flows and move to a bot later.

### How do we connect Teams to an on-prem IBM i?

**Answer:** Use an API service inside your network that talks to DB2 for i, and either expose it through a reverse proxy to the Bot Framework or use an on-premises data gateway with Power Automate. Avoid exposing the IBM i itself to the internet.

### Will it work with older World releases?

**Answer:** Usually yes, because the integration relies on IBM i facilities such as triggers, data queues and SQL rather than on newer World features. The file layouts and any local modifications vary, so inspect your own data dictionary before building queries.

### Can an AI assistant answer questions in Teams?

**Answer:** Yes. A bot can translate a question into one of a set of vetted queries or generate read-only SQL for review, then return the result. Running the model locally keeps your item, price and customer data off outside APIs, and write actions stay behind the approval path.

## Search terms

jd edwards world microsoft teams integration, teams for jd edwards world, jd edwards world approvals teams, ibm i microsoft teams bot, as400 teams notifications, jd edwards world adaptive cards, power automate jd edwards world, jde world teams chatbot, ibm i power automate gateway, jd edwards world workflow teams

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