Sage X3 AI Integration On-Prem: A Private Architecture
Sage X3 AI integration without cloud
Also searched as
- how to add AI to Sage X3 on-premises
- Sage X3 private LLM
- Sage X3 SData REST AI assistant
- chat with Sage X3 data on premises
Short answer
Sage X3 keeps data in SQL Server or Oracle, in a schema named after the X3 folder, and exposes supported access through the Syracuse server using SData REST and published SOAP web services. A private AI layer reads from a replica, answers with a local open-weight model, and writes back only through X3 web services after human approval, so data stays on your servers.
Applies to: Sage X3 V11 and V12 on-premises with SQL Server or Oracle. Earlier versions can follow the same pattern with SOAP web services only. Verify endpoint and representation names in your folder.
Add a private AI layer to Sage X3 in seven steps
- 1Identify the X3 folders (production, test, validation) and the modules in scope: sales, purchasing, stock, manufacturing, finance.
- 2Create a read-only replica of the production folder schema using SQL Server Always On secondary or log shipping, or an Oracle read-only standby, and verify that table volumes and indexes behave under analytic load.
- 3Build a restricted schema of views over tables such as ITMMASTER, SORDER, STOCK, MFGHEAD and PORDER, exposing only the columns the assistant needs.
- 4Publish a small set of SData representations or web services for record-level reads, and register a technical user with the least rights that call them.
- 5Index documents and attachments (item sheets, quality certificates, supplier contracts) and carry the source permissions into index metadata.
- 6Deploy the model on local GPUs with vLLM or Ollama and a gateway that logs prompts, tool calls, queries and answers.
- 7Start with read-only questions, then drafts, then approved actions via X3 web services under the approver's identity.
Data access paths in Sage X3
Sage X3 tables live in a database schema named after the X3 folder, and column names carry a numeric suffix such as _0 (for example SOHNUM_0 for the sales order number). Typical tables: ITMMASTER for items, SORDER with SORDERQ and SORDERP for sales orders, STOCK and STOJOU for inventory and movements, MFGHEAD with MFGITM, MFGMAT and MFGOPE for work orders, PORDER for purchase orders, BPCUSTOMER and BPSUPPLIER for business partners. Confirm names in the data dictionary of your folder.
The supported programmatic route is the Syracuse server. It serves SData 2.0 REST endpoints, where a representation such as SORDER wraps the X3 object, and it fronts SOAP web services published from X3 objects and subprograms. Both run under an X3 user, so X3 authorisation applies. Use REST or SOAP for record-level answers that must match the screen, and replica views for bulk questions.
Use the data dictionary and field titles in the prompt context so the model understands that SALFCY means sales site and BPCORD means order-from customer. Plain column names without descriptions are the most common reason an assistant produces plausible but wrong joins.
-- Replica query (schema = X3 folder name, adjust) SELECT TOP 50 SOHNUM_0, BPCORD_0, SALFCY_0, ORDDAT_0 FROM SEED.SORDER WHERE SALFCY_0 = 'FR011' AND ORDDAT_0 >= '2026-01-01' ORDER BY ORDDAT_0 DESC;
GET /sdata/x3/erp/SEED/SORDER?representation=SORDER.$query&count=20&where=(BPCORD eq 'C001') Authorization: Basic <technical user> Accept: application/json
Reference architecture, including air-gapped
Place a read-only replica behind the tool server and keep the production folder untouched by analytic queries. Use CDC or change tracking on the replica source, or a nightly extract, to update the retrieval index. The tool server exposes parameterised queries and a few SData reads as named tools with schemas; the model chooses a tool and fills parameters, and the gateway validates them.
Model serving runs vLLM or Ollama on local GPUs. The gateway holds the audit log: user, question, tool calls, SQL or REST request, row counts and the final answer. Keep the logs in your existing SIEM.
For air-gapped plants, carry weights and container images in on approved media, point the gateway at an internal identity provider, and remove all outbound routes. Syracuse and the X3 runtime already live inside the network, so no part of the design needs the internet.
Permissions and write-back
X3 authorisation combines user profiles, access codes, function profiles and site or company restrictions. A technical user with wide rights would let the assistant see everything, so avoid it for user-facing answers. Instead, resolve the asking person to their X3 user, and either call SData and web services with an identity that carries their rights, or apply their site and legislation limits as mandatory filters on replica views.
Write-back must use X3 web services, import templates or SData create and update calls, never direct SQL. The assistant drafts the payload (a purchase order line, a stock status change), shows it, and sends it after approval. The approver's X3 identity should be on the transaction so standard traceability holds.
Sizing and phased rollout
For 50 to 500 named users, plan one or two data center GPUs for a 14B to 32B class model, and more for 70B class or heavy document workloads. Index size scales with documents: tens of thousands of pages fit in tens of gigabytes. These are starting ranges.
Phase 1: read-only Q and A on orders, stock, work orders and receipts with visible queries. Phase 2: drafts, such as customer emails, shortage notes and work order summaries. Phase 3: approved write actions through web services for a narrow set of transactions, with approvers and rollback rules.
Honest limits
If users only need standard enquiries, X3 reports, Syracuse dashboards and your BI tool may be enough. A language model helps most for cross-module questions and for documents. Heavily customised X3 folders with custom tables need extra data dictionary work.
SData and web service availability depends on version, patch level and how Syracuse was configured, and some modules expose fewer representations than others. Large installations with many folders need clear scoping, and answers involving totals should always come from SQL rather than the model.
Try it here, free
Sage X3 Private AI Layer Blueprint Generator
Generate an architecture plan for adding a private AI assistant to on-prem Sage X3: SQL replica views, Syracuse SData and web services, retrieval, local GPU model, permissions and audit.
Common pitfalls
- !Querying the production folder directly with broad rights, which hurts users at month end.
- !Ignoring the _0 column suffix and X3 data dictionary, leaving the model to guess meanings.
- !Using one wide technical user so site and legislation limits are lost.
- !Writing to X3 tables directly instead of through web services or imports.
- !Forgetting that attachments and linked documents live outside the database and need their own index.
- !Skipping version checks on which SData representations exist in your folder.
How an ERP-grounded AI assistant handles this
ERPray connects to ERPs in read-only mode with query transparency and role awareness, and can run on-prem. For Sage X3 estates, Netray builds the replica views, tool server and approval workflow with your X3 partner, using the same Syracuse interfaces your integrations already rely on.
Frequently asked questions
Does Sage X3 expose an API I can use for AI?
Yes. The Syracuse server provides SData REST representations and SOAP web services that run under an X3 user. For bulk questions, a read-only database replica is faster and kinder to production. Check what your version and folder publish.
Can the model write SQL against X3?
It should not run free-form SQL on production. Give it fixed, parameterised tools over a replica schema with row limits, and validate parameters in the gateway.
How are X3 permissions respected?
Resolve the asker to an X3 user and use their rights via SData or web services, or apply their site and legislation filters to replica views. Avoid one broad technical user for user-facing answers.
Is this possible with Oracle as the X3 database?
Yes. Use an Oracle read-only standby or replication for the replica and the same view and tool pattern. Licensing for features such as Active Data Guard should be checked with your Oracle contact.
Related
Sage X3 REST API: Reading Sales Orders Through Syracuse
Sage X3 (version 7 and later) exposes data through Syracuse at a URL of the form /api1/x3/erp/ENDPOINT/REPRESENTATION, where the endpoint is the folder and the representation is a published object such as SORDER. A GET with credentials returns JSON, and you filter with a where clause and page with count and a link to the next page. Your integration user needs the right Syracuse and X3 rights for that representation.
AdvancedHow to Add AI to Sage 100 and Sage 300 On-Prem
Sage 100 and Sage 300 differ underneath, so the access path differs. Sage 300 runs on SQL Server and offers a REST Web API and a views API. Sage 100 exposes ODBC and COM Business Object Interface, with SQL Server only in Advanced and Premium. Either way, extract to a read-only copy, run a local model, and write back only through supported APIs.
How-toSage X3 Production Planning, Scheduling and Tracking
Sage X3 plans production from master data (items, BOMs, routings, work centers) through MRP or manual work orders, schedules operations against work center capacity, then records progress with production tracking. Setup quality in the BOM, routing and work center calendar decides whether the plan is believable.
Error fixDivision by 0 Error in Sage X3: Find the Cause and Fix It
A division by 0 error in Sage X3 means a calculation divided by a field that was zero or empty at runtime. Typical sources are a zero unit-of-measure coefficient, a zero quantity or base quantity on a BOM or routing, a zero price or rate, or custom 4GL or report code that never guards the denominator. Find the script and line from the error, then fix the data or guard the calculation.
How-toSage X3 Developer Studio: What It Does and How to Track Versions and Release Notes
Sage X3 Developer Studio is the development environment for building and changing X3 solution code and web pages, working with the Adonix 4GL scripts and the Syracuse web layer. To track versions, read the release notes and compatibility guides that Sage publishes for each version and patch rather than relying on remembered dates.
How-toSubcontracting in Sage X3: Setup, Flow, Packing and What MFGM Means
In Sage X3, subcontracting means an outside supplier performs one or more operations on your material. You flag the operation as subcontracted in the routing, the work order drives a purchase document to the subcontractor, components are sent, and the processed goods are received back into stock. MFGM is generally how people refer to the manufacturing module and its records, not a separate feature.
AI for ERPAI for Sage X3, Grounded in Your Own Ledgers and Stock Data
Add AI to Sage X3 finance and stock data without exporting it to a public model. On-prem and private-cloud LLMs for Sage X3 in the UK and France.
AI for ERPA Private LLM Grounded on Your ERP Data
How a private LLM answers questions on your ERP data: RAG plus text-to-SQL, role-based permissions inherited from the ERP, and where each fits.
Stuck on Sage X3 (on-prem)?
Talk to engineers who work inside Sage X3 (on-prem) every week, and who build private AI that answers these questions from your own ERP data.
Keep exploring
Free tools
- Sage X3 Private AI Layer Blueprint GeneratorGenerate an architecture plan for adding a private AI assistant to on-prem Sage X3: SQL replica views, Syracuse SData and web services, retrieval, local GPU model, permissions and audit.
- Sage X3 Maintenance Checklist and ScheduleA tick-box routine maintenance plan for Sage X3: database, batch server, Syracuse, backups, patches, security and testing.
- Sage X3 AI Assistant Sizing and Value CalculatorSize GPUs and estimate value for a private AI assistant on Sage X3. Enter named users, usage and cost assumptions to get concurrency, tokens per day, index size and payback.
ERP fixes and how-tos
- Sage X3 API Documentation: REST (Syracuse), SOAP Web Services and Where to Find DocsSage X3 API options explained: Syracuse REST (SData), SOAP web services and where official documentation lives, plus guidance on choosing and securing access.
- Sage X3 REST API: Reading Sales Orders Through SyracuseHow to call the Sage X3 REST API through Syracuse: URL pattern, endpoint and representation, authentication, filtering with where, paging, and common 401 and 404 causes.
- Sage X3 maintenance guide: services, patches and databaseA routine maintenance checklist for on-prem Sage X3: services, Syracuse, database, logs, backups, patches and what to test before and after changes.
AI on your ERP
- AI for Sage X3 in Food and Beverage: Lot Genealogy and Shelf-Life Answers From Your Own DataPrivate AI on Sage X3 for food and beverage: lot genealogy, shelf-life, allergen and batch yield questions answered from live data, on-prem or private cloud.
- AI for Sage X3, Grounded in Your Own Ledgers and Stock DataAdd AI to Sage X3 finance and stock data without exporting it to a public model. On-prem and private-cloud LLMs for Sage X3 in the UK and France.
Integrations
- How to add AI agents to Sage X3How to add AI agents to Sage X3: a tool layer over SData and web services, read-first design, human approval on writes, and on-prem models for MRP and POs.
- How to build an MCP server for Sage X3How to build a Model Context Protocol server for Sage X3: read-only tools over SData, auth to Syracuse, stdio versus HTTP, permission scoping and audit logging.