Oracle JD Edwards and Twilio integration
Oracle JD Edwards manages your supply chain and finances at your site. Twilio delivers notifications to your team wherever they are. Connecting the two turns critical financial events in JD Edwards - high-value purchase orders, overdue payables, inventory thresholds, customer credit holds - into real-time alerts to the right people via SMS or email, without building a separate notification engine. ml-connector runs the query and delivery pipeline on a schedule you control.
What moves between them
Data flows one direction: from Oracle JD Edwards to Twilio. On a schedule tied to your finance calendar (e.g., daily for AP aging, hourly for high-value POs), ml-connector queries JD Edwards F0411 (Accounts Payable Ledger) for aged invoices, F4301/F4311 (Purchase Orders) for orders exceeding a threshold, and F0101 (Address Book) to find the phone numbers and email addresses of approvers and managers. It compiles alerts using JD Edwards item descriptions, vendor names, and GL cost center codes, formats them as SMS or email, and posts them to Twilio. Twilio delivers the messages in real time. If delivery fails, ml-connector retries with exponential backoff and logs the outcome.
How ml-connector handles it
ml-connector stores the JD Edwards AIS Server URL and login credentials encrypted in its database. At the start of each scheduled run, it requests a fresh session token from JD Edwards (tokens expire after 30-60 minutes), and caches it until the next cycle. It queries F0411, F4301, F4311, and F0101 tables with maxPageSize=100, using the moreRecords flag and POST /jderest/v2/dataservice/next for pagination when needed. For each record matching the alert rule (e.g., an AP invoice over 60 days old), it extracts the vendor name and due date from F0411, looks up the vendor contact phone and email in F0101, and maps the cost center to a JD Edwards GL account. It assembles an SMS body such as 'Invoice 123456 from Acme Corp due 5 days ago - amount 25000' and an email with more detail, then POSTs to Twilio at https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Messages with the phone number or email address. Twilio returns a MessageSid immediately; ml-connector stores it and polls Twilio's status callbacks to track delivery. If a Twilio POST returns 429 (rate limit), ml-connector backs off exponentially. If JD Edwards returns 444 (invalid token), ml-connector requests a fresh token and retries. Every alert carries an audit trail: timestamp, JD Edwards table and record ID, alert rule, recipient, and Twilio MessageSid.
A real-world example
A mid-sized manufacturing company runs Oracle JD Edwards for supply chain and finance at their facility. The procurement team monitors open purchase orders above 50K, and the accounting department watches for invoices overdue by 30 days or more. Previously, the team logged into JD Edwards each morning to manually scan the AP aging report and forward alerts via email or text. Now, ml-connector runs a daily schedule at 8 AM. It queries JD Edwards for POs over 50K and AP invoices over 30 days old, looks up the approver and accountant phone numbers from the vendor master (F0101), and sends SMS alerts to their phones and email digests to a finance group mailbox. The procurement director gets a text when a critical PO ships, and the AP supervisor knows immediately when an invoice is aging without logging in. Month-end close is faster because escalation is automated.
What you can do
- Query Oracle JD Edwards purchase orders, accounts payable, and GL transactions on a schedule and route alerts to procurement and finance teams via Twilio SMS and email.
- Map JD Edwards purchase order and vendor information to Twilio phone numbers and email addresses from the Address Book (F0101) so alerts reach the right approver.
- Authenticate JD Edwards with session tokens managed by ml-connector and refresh automatically when tokens expire after 30-60 minutes.
- Retry failed Twilio deliveries with exponential backoff, track delivery status via Twilio MessageSid, and log every alert attempt with full audit trail.
- Trigger alerts on rules you define - high-value purchase orders, overdue payables by age, inventory thresholds, GL posting errors - without building custom notification code.
Questions
- What kinds of events in JD Edwards trigger Twilio alerts?
- Any rule you configure: high-value purchase orders (F4301/F4311 headers above a threshold), accounts payable aging (F0411 open invoices by due date), GL transactions in specific accounts (F0911), or item quantities below reorder point (F4102). ml-connector polls JD Edwards on a schedule and fires the alert to Twilio when the rule matches. Twilio sends the message in real time via SMS or email to the phone and email addresses you map from JD Edwards Address Book records (F0101).
- Does ml-connector need direct write access to JD Edwards?
- No. JD Edwards is query-only. ml-connector reads address book, purchase orders, AP, and GL data using the REST data service with date filters on UPMJ (date updated) and DGJ (GL date). All JD Edwards writes - such as updating a vendor record or posting a GL entry - must still happen through your finance team or an orchestration process. Twilio receives only formatted alert text, not JD Edwards objects, so there are no writes back to JD Edwards.
- How does authentication work given JD Edwards is on-premises and Twilio is in the cloud?
- ml-connector stores both credential sets encrypted: the AIS Server URL, username, and password for JD Edwards, and the Account SID and Auth Token for Twilio. At each scheduled run, it requests a fresh JD Edwards session token (valid 30-60 minutes) and caches it until expiry or the next cycle. Twilio API calls use HTTP Basic Auth with the stored Account SID and Token on every request. If a JD Edwards token expires mid-run (returns 444), ml-connector fetches a new one and retries. If Twilio rate-limits (429), ml-connector backs off and retries.
Related integrations
More Oracle JD Edwards integrations
Other systems that connect to Twilio
Connect Oracle JD Edwards and Twilio
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started