The most common failed attempt looks like this. Someone exports a general ledger extract, pastes it into a chat window, gets a plausible answer, and concludes the integration is nearly done. It is not. What made that demonstration work was a human doing the retrieval, and the moment you remove the human you need a real interface.

The good news is that JD Edwards gives you one. The AIS Server exposes REST endpoints, Orchestrator wraps applications and data into callable services, and both were designed for this kind of external caller. What follows is how the pieces fit.

AIS Token
Form Service
Data Service
Orchestrator
Tool Design
Approval Gate
Audit Log

The Architecture in One Paragraph

A user asks a question. The application sends the question to the model along with a list of tools it may call. The model picks a tool and supplies arguments. Your middle layer executes that tool against JD Edwards, applies whatever policy you have defined, and returns structured data. The model then explains the result. The model has no credentials, no network path to the ERP and no ability to invent a transaction, because everything it can do is an entry in that tool list.

AI first architecture for connecting agents to an ERP

It is already happening without you

Someone on your team has probably pasted JD Edwards output into a personal ChatGPT account already. The choice is between a governed connection and an ungoverned one.

You have people that are using these personal tools that are doing work for your business.

Chris Ortega, on the AgentCFO podcast

A sanctioned architecture like the one below is how you bring that usage inside your controls. Banning it rarely works.

Authentication Against the AIS Server

This is the part teams usually get wrong on the first attempt, either by embedding a single powerful account everywhere or by trying to open a session per request. The AIS token model is straightforward once you follow its intent.

Request a token: A post to the token request service with credentials returns a session token along with the username, environment and role in the response. Subsequent calls carry that token.
Reuse the session: Tokens are valid for a lifetime you configure. Reusing one is correct. Opening a session for every question wastes resources and floods your logs.
Map the human: Where possible, obtain a session for the actual user rather than a shared service account, so that data visibility follows your existing role design.
Protect the boundary: Encrypt in transit, keep the AIS Server off the public internet, and place a gateway in front of it. The gateway is where rate limits and payload inspection belong.

Designing the Read Tools

Resist the temptation to expose a single generic query tool that accepts arbitrary SQL. It feels flexible and it produces an unbounded attack surface plus results nobody can validate. Narrow tools with typed arguments are easier to secure, easier to test and easier for the model to use correctly.

Data service queries: Query tables and business views with a defined query and sort, using paging for large sets rather than pulling everything into context.
Form service queries: Execute a form such as an application and form pair when you want the application's own logic and formatting rather than raw rows.
Aggregation at the source: Push sums and groupings down to the data service. A model reasoning over a hundred rows of totals is reliable. A model summing fifty thousand rows is not.
Named views: Wrap the common finance questions as fixed tools such as open payables by supplier or ledger detail for an account and period, with parameters rather than free text.
Asking finance a question and getting a sourced answer

Designing the Write Tools

Writes need a different design philosophy from reads. A read that goes wrong returns a bad answer. A write that goes wrong creates a transaction in your ledger. The correct pattern is that the model never writes. It requests a write, and something else decides.

One orchestration per action: A posting orchestration, a voucher creation orchestration, and so on. Single purpose services are auditable and testable in a way that a general write endpoint is not.
Propose then approve: The tool call produces a draft with the full payload visible to a person. Nothing reaches JD Edwards until that person approves it.
Return a reference: On success the tool returns the document number and batch so the action can be traced afterwards. Silence on success is a design flaw.
Capture failures: Recent Orchestrator releases let a failed step store its exception message in a variable for use in later steps and notifications. Surface that to the user rather than a generic error.

Model by Model, Briefly

Once the tool layer exists, the model is a component you can swap. The differences that matter in practice are deployment location, data handling terms and how well the model follows a tool schema under pressure.

OpenAI and ChatGPT: Strong tool calling, straightforward to integrate, hosted by the vendor. Check your data handling terms against your own policy before ledger data leaves the boundary.
Claude: Strong at multi step reasoning over structured finance data and at declining to guess when a tool returns nothing, which matters more than raw benchmark scores in accounting work.
Azure OpenAI: The usual choice where the enterprise is already on Microsoft and wants the model inside its own tenant and network controls.
OCI Generative AI: The natural fit for an Oracle estate, and Orchestrator has been able to authenticate to OCI services using the OCI API signature since Tools Release 9.2.8.2, which keeps the call inside the Oracle stack.
ChatFin connects to your existing ERP stack including JD Edwards, NetSuite, SAP and Acumatica

The Controls Finance Will Ask For

Internal audit will not evaluate your prompt. They will ask who can do what, how it is evidenced, and what happens when it goes wrong. Design for those three questions from the beginning and the review is short.

In practice this means the agent's permissions are visible and limited, every action is logged with its inputs and approver, and there is a defined path for reversing something that should not have happened.

Least privilege: The agent sees only the companies, business units and accounts its role permits, because it inherits a real JD Edwards session.
Allowed action list: An explicit whitelist of orchestrations. Anything not on the list cannot be called, regardless of what the model requests.
Complete logging: Question, tool calls, arguments, data returned, approver and resulting document number, retained together.
Reversal path: A defined way to void or reverse an approved action, and evidence of who did it.

Build It or Adopt It

Building this yourself is entirely feasible and a competent team can get a read only assistant working in a few weeks. The effort is not the connection. It is everything after: the finance logic, the approval workflow, the audit record, the memory of how your organisation codes transactions, and the long tail of exception handling that decides whether people keep using it.

ChatFin is that layer as a product. It connects to JD Edwards through AIS and Orchestrator, exposes finance tools rather than raw table access, gates every posting behind human approval, and keeps the audit trail. You choose the model. The controls do not change.

"The model is the easy part. The tool layer between the model and the ledger is the product."

ChatFin as the AI layer sitting on top of the ERP

Connect the Model to a Controlled Layer, Not to the Ledger

ChatFin gives ChatGPT, Claude, Azure OpenAI or OCI Generative AI a governed path into JD Edwards through AIS and Orchestrator, with finance tools instead of raw queries, approval on every write and a full audit trail.

Every safe integration has the same shape: the model requests, the layer decides, a person approves, and the record survives.

Book a Demo

Frequently Asked Questions

Can ChatGPT or Claude connect directly to JD Edwards?

Not directly. A language model has no database access and no credentials. It calls tools you define, and those tools call the JD Edwards AIS Server or a published orchestration. That intermediate layer is where authentication, permissions, approval and logging live, and it is the part that determines whether the integration is safe.

Which authentication method should the integration use?

Use the AIS token request service to establish a session, then reuse the token for subsequent calls. The response carries the username, environment and role, so the agent operates inside your existing JD Edwards security model. Avoid embedding a single high privilege service account for all users, because it flattens your permission design and weakens the audit trail.

Is OCI Generative AI a better fit than ChatGPT for JD Edwards?

It can be, mainly for architectural reasons rather than model quality. Orchestrator has been able to authenticate to OCI services using the OCI API signature since Tools Release 9.2.8.2, so an OCI model keeps the call inside the Oracle estate. If your enterprise standard is Microsoft, Azure OpenAI gives you the equivalent benefit inside your own tenant.

Related Articles