# How to add Slack alerts and commands to JD Edwards World

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

## Short answer

Build a small Slack app that receives IBM i events from data queues or journals, posts interactive messages, and answers slash commands from read-only DB2 for i queries. Approvals and updates return through a staging table and a controlled World job.

## System

JD Edwards World (IBM i)

## Capability

slack

## Intro

Slack is less common than Teams in the older manufacturing base, but plenty of distribution and engineering-led companies run on it, and their World system is exactly the kind of back-end nobody opens unless they must. The result is that answers live in the IBM i and conversations live in Slack, with a person copying between them.

Slack's strength for this job is its simple developer model: slash commands, interactive blocks and Socket Mode, which lets an app inside a private network receive events without a public inbound endpoint. That matters for an IBM i shop that does not want to open firewall holes.

This page describes a design built around that strength, including what the IBM i can supply, how to keep write-back safe, and where the effort really goes.

## Use Cases

### Slash command for item and stock lookup

**Description:** Type /stock 4471 and get on-hand, allocated and on-order quantities by branch/plant from a read-only query of the item location data.

### Order status for customer service

**Description:** Use /order with a sales order number to return status, ship date, carrier and any hold code, so support staff stop asking for terminal access.

### Late shipment alerts to a channel

**Description:** Post when an order passes its promised date without ship confirm, tagging the account owner and linking to the order lookup.

### Buyer exceptions thread

**Description:** Create one thread per MRP action message for critical items, so buyers discuss and resolve the exception in context.

### Inventory adjustment approvals

**Description:** Send an interactive message for cycle count variances above a threshold; a supervisor approves before a World adjustment job runs.

### Weekly open-order summary

**Description:** Post a scheduled digest of backlog by customer and week to a sales channel from a saved query.

## System Surface

- DB2 for i over JDBC (jt400) or ODBC for read-only lookups; table and column names vary with release and customizations, so confirm against your data dictionary.
- Data queues and journal receivers for event capture, either from a trigger program or from a journal reader that polls changes.
- The IBM i job scheduler for periodic summaries and for a staging-table poller.
- World interactive-batch or batch input programs as the sanctioned way to apply a change; direct file updates skip edits and audit.
- Spooled output or IFS files for attaching a report to a Slack message after a conversion to PDF or CSV.
- Slack side: slash commands, Block Kit interactive messages, Socket Mode or Events API, OAuth scopes, and signing secrets.

## How It Works

### Create the Slack app

**Detail:** Define slash commands, a bot user and the minimum OAuth scopes. Prefer Socket Mode if you do not want an inbound public URL.

### Stand up the service tier

**Detail:** Run a small service on a server with network access to the IBM i. It holds the Slack tokens, the query catalogue and the staging logic.

### Define a query catalogue

**Detail:** Write each slash command as a parameterized SQL statement with a result format. This avoids users or models producing unreviewed SQL.

### Connect event feeds

**Detail:** Add triggers or a journal reader for a few high-value events such as order holds and late shipments, writing keys to a data queue the service drains.

### Build interactive messages

**Detail:** Use Block Kit buttons with an order key and a version stamp. On click, verify the Slack signature and the user's mapped World profile.

### Stage and apply

**Detail:** Write the decision to a staging table. A scheduled World job revalidates and posts, then the service edits the Slack message to show the result.

## Example Flows

### Cycle count variance approval

**Trigger:** A count entry creates a variance above the tolerance for a lot-controlled item.

**Steps:**

- The variance is written to a staging table by the count program or a trigger.
- The service posts a message to the inventory channel with item, location, system quantity and counted quantity.
- A supervisor clicks Approve or Recount.
- A World job posts the adjustment or opens a recount task.

**Result:** Variances are resolved the same shift with a visible approver name.

### Customer service order lookup

**Trigger:** A support rep types /order 482913 in Slack.

**Steps:**

- Slack sends the command to the service over Socket Mode.
- The service runs the named order query against DB2 for i with the order number bound as a parameter.
- It replies with a compact block: status, promised date, ship date, carrier, hold code.

**Result:** Reps answer customers without asking planners to look it up.

## On Prem

Slack is a hosted service, so treat it like any external channel: keep the IBM i and the service on your network, use Socket Mode so no inbound path is required, and send only what the recipient is allowed to see. If a language model turns free-text questions into catalogue queries, host an open-weight model locally so your order and customer data is not sent to a third party. Where Slack itself is not acceptable for a program, the same service layer can front a different chat tool or an internal web page.

## Security

- Verify the Slack signing secret on every request and store tokens in a secrets manager.
- Limit the bot to the channels it needs and do not post customer pricing in shared channels.
- Map Slack user IDs to World profiles and check authority at apply time, not at click time.
- Run lookups under a read-only DB2 profile with row-level limits where practical.
- Retain logs of commands and decisions with the Slack user ID for audit.

## Options

### Use a no-code automation tool with an IBM i connector

**Fit:** Fits simple notifications where a vendor connector for DB2 for i exists and licensing is acceptable.

**Effort:** Days to a couple of weeks, with limited control over approvals and audit.

### Build a Slack app in-house

**Fit:** Fits teams with a developer who knows JDBC and Slack's SDKs and a stable list of commands.

**Effort:** A few weeks for lookups and alerts, more for governed approvals.

### Engage a partner such as Netray

**Fit:** Fits those who want a vetted query catalogue, a local model for free-form questions, and write-back design for World.

**Effort:** A short pilot on two or three commands, then extended after review.

## Pitfalls

- Free-form SQL from users or models is a risk; keep to a catalogue or review generated SQL before it runs.
- Slack retains messages by workspace policy, so a pricing detail posted once may live for years.
- Slash commands time out after a few seconds; acknowledge immediately and post the result asynchronously for slow queries.
- Triggers on high-volume files must stay light, otherwise order entry slows.
- A bot token that posts to every channel is easy to misuse; scope it narrowly.

## Faq

### Does Slack have a native JD Edwards World app?

**Answer:** No official one exists that I would rely on for World. The practical route is a custom Slack app with a service that queries DB2 for i and captures IBM i events. Third-party IBM i vendors may offer connectors, but check their approval and audit features.

### Can we avoid opening the IBM i to the internet?

**Answer:** Yes. Keep the service on your network and use Slack's Socket Mode so it opens an outbound connection to Slack. The IBM i is only reachable from the service host over your internal network, which is a much smaller attack surface than a public webhook.

### Can Slack users update World records?

**Answer:** They can request updates, which are staged and applied by a World job after revalidation. Allowing the Slack side to write directly to files is not recommended because it bypasses World's edits, security and audit fields.

### What data should never be posted to Slack?

**Answer:** Anything your customer contracts, export rules or internal policy restrict: pricing, margins, controlled technical data and personal information. Post identifiers, statuses and dates, with a link to a protected lookup page for detail.

### Can an LLM power the /ask command?

**Answer:** Yes, and it works best when the model chooses from a catalogue of vetted queries or proposes read-only SQL for review. A locally hosted open-weight model keeps queries and results inside your network, and answers should always show the query used.

## Search terms

jd edwards world slack integration, slack for jd edwards world, slack slash command erp ibm i, as400 slack notifications, ibm i slack bot, jd edwards world slack alerts, jde world order status slack, slack approvals erp db2 for i, jd edwards world chatops

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