WhatsAppJD Edwards World (IBM i) Agent view

How to add WhatsApp to JD Edwards World on IBM i

Short answer

JD Edwards World has no built-in messaging API, so WhatsApp is added by watching IBM i events (data queues, journal entries or file triggers) and calling the WhatsApp Business Platform from a small service that sits next to the IBM i. Replies are parsed and written back through your existing World entry programs, never by direct file updates.

Most World shops run a green-screen core that has been stable for twenty years, with a handful of RPG customizations and a lot of tribal knowledge. The people who need answers, buyers chasing suppliers, drivers at a dock, a plant manager on the road, live on their phones and already use WhatsApp for everything else. The gap is that World can print, fax and send plain email through the IBM i, but it cannot hold a conversation.

The good news is that you do not need to touch the World codebase to close the gap. The IBM i itself is an excellent event source: files can fire triggers, journals record every change, and data queues let an RPG or CL program hand a message to any outside process. WhatsApp sits at the other end of that pipe.

This page walks through a realistic design for a World shop, the pitfalls specific to IBM i and to Meta's template rules, and the honest options for building it.

What teams use it for

Supplier PO acknowledgments

When a purchase order is released, send the supplier contact a template message with the PO number and promised date, and accept a reply of 'confirm' or a new date that lands in a review queue for the buyer.

Shipment and ETA alerts to customers

After ship confirm on a sales order, push the carrier and tracking number to the customer contact held in the Address Book, so customer service stops fielding 'where is my order' calls.

Approval requests for managers away from the terminal

Send a short request for a PO over a spending limit or an order on credit hold, with quick-reply buttons for approve and reject, and apply the decision through the normal World approval path.

Shortage alerts to the shop floor lead

When MRP planning messages show a late component for a released work order, notify the planner and the lead with item, quantity and need date.

Delivery confirmations from drivers

Let a driver reply with a photo of a signed delivery note, store the image on the IFS, and flag the order as delivered for billing review.

JD Edwards World (IBM i) integration surface

  • Data queues (*DTAQ): a small RPG or CL change, or a wrapper program, can write an event record that an external service reads with the QRCVDTAQ API or the jt400 DataQueue class.
  • DB2 for i triggers (ADDPFTRG) and journaling (STRJRNPF): record changes on files such as the sales order detail file (F4211 family) or purchase order detail (F4311 family) can be captured without modifying World source. Exact file names and layouts depend on your release and any local modifications.
  • JDBC and ODBC access to DB2 for i through IBM i Access or the open source jt400 driver, used for read lookups of contact numbers and order status.
  • Native World entry programs and interactive batch interfaces: the safe route for write-back is to stage a record and let a World job or an existing batch input program post it.
  • IFS (integrated file system) folders for storing inbound photos and PDFs, reachable over SMB, SFTP or jt400 IFSFile.
  • Job scheduler (WRKJOBSCDE or a third party scheduler) to poll a staging table when triggers are not acceptable on production files.

How it works

  1. 1

    Pick the event source

    Choose between a trigger on the file, a journal reader, or an explicit data queue write from a modified program. Triggers and journals need no World source change; a data queue write is the cleanest but needs an RPG edit and a regression test.

  2. 2

    Build a small relay service off the IBM i

    Run a Node, Java or Python service on a Linux or Windows server that reads the event, enriches it by SQL lookups, and decides which template to send. Keeping it off the IBM i avoids loading a production box and keeps TLS and HTTP libraries current.

  3. 3

    Register WhatsApp Business Platform access

    Use the Cloud API directly or a Business Solution Provider. You need a verified business, a phone number not already tied to a personal WhatsApp account, and approved message templates for anything you send outside a 24 hour customer reply window.

  4. 4

    Maintain the contact and opt-in table

    World's Address Book holds phones in a generic format. Add a side table keyed by address number with the E.164 number, language, role and opt-in timestamp. Do not send to a number without a recorded opt-in.

  5. 5

    Handle inbound webhooks

    Meta posts replies to an HTTPS endpoint. Verify the signature, map the sender to a supplier or user, parse button payloads, and write the result to a staging table with the source order key and the raw text.

  6. 6

    Post to World through a controlled path

    A scheduled World batch job or an existing input program reads the staging table, validates it against the order, and posts the change under a service user profile with a clear audit trail.

  7. 7

    Monitor and replay

    Log every outbound message ID and delivery status, alert on failed templates, and keep a replay tool so a missed event does not mean a lost notification.

Example flows

PO release to supplier confirmation

Trigger: A buyer releases a purchase order in World and the status changes on the order header.

  1. A trigger on the PO header file writes the order key to a data queue.
  2. The relay service reads the queue, looks up the supplier contact and opt-in, and sends the 'po_released' template.
  3. The supplier taps 'Confirm' or replies with a date.
  4. The webhook writes the reply to the staging table.
  5. A nightly or five minute World batch job validates the PO and updates the promised date, or flags it for the buyer.

Result: Buyers see confirmed dates in World without chasing email threads.

Credit hold release by approver

Trigger: An order lands on hold because it exceeds a customer credit limit.

  1. The relay service picks up the hold event and finds the approver from a routing table.
  2. It sends an interactive message with customer, amount and the buttons Release and Keep on hold.
  3. The approver taps a button; the service records user, time and decision.
  4. A World job applies the release code, or the order stays held with a note.

Result: Holds clear in minutes rather than waiting for someone to reach a terminal.

Keeping data on-prem

The IBM i and the relay service can stay inside your network; only the relay needs outbound HTTPS to Meta and an inbound webhook endpoint exposed through a reverse proxy or a tunnel with strict IP and signature checks. Message content passes through Meta's infrastructure, so keep sensitive details out of the text: send an order number and a status, not margins, drawings or customer pricing. If an AI model interprets free-text replies, run an open-weight model on a local GPU server so the supplier's wording never goes to an outside API.

Security checklist

  • Use a dedicated IBM i service profile for the staging reader with authority limited to the staging library and the specific posting program.
  • Verify the Meta webhook signature and restrict the endpoint by IP range where possible.
  • Never put pricing, margins, drawings or export controlled technical data in WhatsApp messages; send identifiers and statuses.
  • Record opt-in and opt-out, and honor stop requests immediately.
  • Keep the WhatsApp access token in a secrets store, not in a CL program or a source member.

Ways to get it done

Off-the-shelf notification add-on from an IBM i or World reseller

Effort: Weeks, mostly configuration and template approval; two-way approvals are usually limited.

Fits shops that only need one-way alerts such as shipment notices and have a vendor already supporting World.

Build the relay in-house

Effort: Roughly a few weeks for one-way alerts, longer for approvals and replies with proper staging and testing.

Fits teams with an RPG developer and someone comfortable with webhooks and REST who want full control of the flows.

Work with a partner such as Netray

Effort: A scoped pilot on one flow, then extended; Netray and a World-experienced partner typically split the IBM i and the AI parts.

Fits shops that want two-way flows, reply parsing with a local model, and write-back designed around World's controls.

Pitfalls

  • !Phone numbers in the Address Book are often free text with extensions and spaces; normalize to E.164 before sending or messages silently fail.
  • !Triggers on a hot file add latency to every write; test under load and keep the trigger program tiny, writing only a key to a queue.
  • !Templates must be approved by Meta, and a vague marketing-sounding template may be rejected or reclassified; word them as transactional notices.
  • !Direct SQL updates to World files from the webhook bypass edits and workflow; always stage and post through a World path.
  • !Time zones and the 24 hour window: a reply after the window closes needs a template to reopen the conversation.

Frequently asked questions

Does JD Edwards World have a WhatsApp connector?

Not natively. World predates modern messaging APIs, so the pattern is to capture events from the IBM i with triggers, journals or data queues and call the WhatsApp Business Platform from a small external service. Some IBM i resellers sell notification add-ons, but check whether they support two-way replies.

Can we do this without changing World source code?

Yes for outbound alerts. A DB2 for i trigger or a journal reader can detect changes without editing World RPG. Inbound write-back is safer when it goes through a staging table and a World batch input path, which may need a small new program but not a change to core World objects.

Is WhatsApp allowed for business messages to suppliers?

Yes, through the WhatsApp Business Platform, which requires a verified business, opt-in from recipients and approved templates for messages outside a customer reply window. Pricing and rules change, so confirm current terms with Meta or your provider before committing.

What about data privacy and sensitive orders?

Treat WhatsApp as an external channel. Send identifiers, statuses and dates, not pricing or technical data. If your contracts or export rules restrict where information may travel, keep the content generic and let the recipient look up detail in a controlled portal.

Can AI read the replies and update World?

It can interpret free-text replies such as 'can ship Friday' into a proposed date, but the result should land in a review queue or follow a confidence threshold. A locally hosted open-weight model keeps supplier text on your network, and a human or a rule approves before World is updated.

Want WhatsApp working on your JD Edwards World (IBM i)?

A free 30 minute assessment: we map the integration path for your version and setup, and where it should run.

Get a free assessment