# How to add AI agents to Acumatica

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

## Short answer

Build an AI agent on Acumatica by giving a model a small set of tools backed by the contract-based REST API and OData Generic Inquiries, then keeping every write behind a human approval. The agent reasons and drafts; Acumatica stays the system of record and enforces its own roles and validations.

## System

Acumatica

## Capability

ai-agents

## Intro

Acumatica customers, especially distribution and light manufacturing shops on the Manufacturing Edition, tend to have clean data and a good API but thin staffing in purchasing, planning and finance. The pain is rarely a missing report. It is the repetitive judgement work around exceptions: a PO that will land after the production order needs it, a sales order stuck on credit hold, a vendor bill that does not match the receipt.

An AI agent is a loop: the model reads the situation through tools, decides what to look at next, and proposes an action. On Acumatica that loop is practical because the platform exposes almost every screen as an entity through its REST API, and Generic Inquiries let you publish pre-joined, permission-aware read models without touching the database.

The design question is not which model to use. It is which tools to expose, which of them can write, and who approves. Get those three right and the model is replaceable.

## Use Cases

### Late purchase order expediting

**Description:** The agent reads open PO lines against requirements from production orders and sales orders, finds lines whose promise date lands after the need date, and drafts a vendor email plus a proposed promise-date change for a buyer to approve.

### Sales order hold triage

**Description:** Orders on credit hold or with failed availability get a summary: customer balance, past-due invoices, stock position per warehouse. The agent proposes release, partial ship or escalate to a credit manager.

### Three-way match exceptions

**Description:** For AP bills that fail matching against the PO receipt, the agent compares quantities, UOM and price, explains the variance and drafts a correction or a vendor query.

### Reorder and transfer proposals

**Description:** Using stock item replenishment parameters and recent demand, the agent proposes purchase or warehouse transfer documents as drafts rather than releasing them.

### Month-end accrual checks

**Description:** Before close, the agent scans unreleased batches, receipts without bills and unapplied payments, and produces a checklist with links to the offending documents.

## System Surface

Contract-based REST API under /entity/Default/<version>/ with endpoints such as SalesOrder, PurchaseOrder, StockItem, Bill, Customer. Endpoint versions vary by Acumatica release (for example 24.200.001), and you can define custom endpoints in Web Service Endpoints (SM207060).

Generic Inquiries (SM208000) with the Expose via OData option, readable at /OData/<tenant>/<inquiry name>. Best tool for joined, read-only views.

OAuth 2.0 through Connected Applications (SM303010), or cookie login at /entity/auth/login for simple service accounts. Prefer OAuth with a dedicated integration user.

Push Notifications and Business Events (screens vary by version) to wake the agent on a change instead of polling.

License-level API limits on concurrent requests and requests per minute, which matter if the agent fans out many calls.

## How It Works

### Create a dedicated integration user and role

**Detail:** Give it only the screens the agent needs. Start with read access. Acumatica role rights then bound what any tool can ever do, regardless of what the model asks for.

### Publish read models as Generic Inquiries

**Detail:** Build inquiries such as OpenPOLinesWithDemand or HeldOrdersWithCredit with the exact columns the agent needs. Fewer, wider reads beat many narrow REST calls.

### Wrap entities as narrow tools

**Detail:** Expose get_order_status, list_late_po_lines, draft_po_change. Each tool validates arguments, calls one endpoint and returns trimmed JSON. Do not hand the model a generic HTTP client.

### Split read tools from write tools

**Detail:** Write tools create drafts (a saved but unreleased document, a note, an activity) and return a proposal object. They never call Release actions.

### Add an approval queue

**Detail:** Proposals land in a small queue UI, Teams card or Acumatica approval map. A named user approves, and only then does a separate executor perform the write under that user's context.

### Trigger from events and a schedule

**Detail:** Use a Business Event or push notification for urgent cases and a nightly sweep for the rest. Log every tool call with arguments and result.

## Example Flows

### Late PO sweep

**Trigger:** Nightly job at 05:00

**Steps:**

- Call the open PO lines inquiry joined to production and sales demand.
- Filter lines where promise date is later than need date minus transit time.
- For each, fetch vendor contact and last two receipts for reliability context.
- Draft an expedite email and a proposed new promise date.
- Post proposals to the buyer queue.

**Result:** Buyers start the day with a ranked list of lines to chase, each with a ready-to-send message.

### Credit hold release assist

**Trigger:** Business event when a sales order enters Credit Hold

**Steps:**

- Read the customer's balance, credit limit and past-due invoices.
- Check payments received but unapplied.
- Summarise and recommend release or hold.
- Wait for the credit manager's decision in the queue.

**Result:** Credit holds clear in minutes with a recorded rationale instead of sitting until someone notices.

## On Prem

Acumatica can be installed on your own IIS and SQL Server, and the agent stack can sit beside it. Run an open-weight model with vLLM or Ollama on a GPU server in the same network, keep the tool layer as a small service that talks to the local Acumatica endpoint, and keep logs in your own storage. For cloud-hosted Acumatica with sensitive data, the same pattern works in a private cloud tenant and calls the instance URL over TLS. Smaller open models are weaker at long multi-step reasoning, so keep tools coarse and the plan short.

## Security

- Run the agent as a dedicated Acumatica user with a minimal role; never reuse an administrator account.
- Separate read and write credentials so a prompt-injection cannot reach release actions.
- Treat text from vendor emails and document descriptions as untrusted input to the model.
- Log tool name, arguments, result and the approving user for every write.
- Respect multi-tenant boundaries: always bind the tenant and branch in the tool, not in the prompt.

## Options

### Acumatica's own AI features and Intelligence tooling

**Fit:** Good for in-product assistance and simple automation if your edition and release include them; capabilities vary by version.

**Effort:** Low, subject to licensing

### Build in-house with an agent framework

**Fit:** Fits teams with a developer who knows the REST API; you own tools, evals and monitoring.

**Effort:** 6 to 12 weeks for a first useful agent

### Work with a partner such as Netray

**Fit:** Fits shops needing private or on-prem models, approval design and tool hardening without a build team.

**Effort:** Typically a few weeks for a scoped pilot

## Pitfalls

- Letting the model call arbitrary endpoints; one bad filter can pull a whole table through your API limit.
- Forgetting that REST sessions consume license capacity; reuse tokens and cap concurrency.
- Releasing documents automatically; Release actions post to the GL and are hard to unwind.
- Ignoring custom fields: custom endpoints must be extended or the agent will not see them.
- No evaluation set, so quality regressions after an Acumatica upgrade go unnoticed.

## Faq

### Does Acumatica have built-in AI agents?

**Answer:** Acumatica has been adding AI features and an intelligence layer, and availability depends on your release and edition. Check your version's release notes. A custom agent is still useful when you need cross-system logic, a specific model, or private deployment.

### Can an agent write back to Acumatica safely?

**Answer:** Yes, if writes create drafts and a named user approves before anything is released. Keep the integration user's rights minimal and log every call. Never allow the agent to run Release actions on its own.

### Which API should the agent use?

**Answer:** Use Generic Inquiries over OData for reads that join several tables, and the contract-based REST API for entity reads and draft writes. The screen-based SOAP API is legacy for most new work.

### Will it hit my API limits?

**Answer:** It can. Acumatica licenses cap concurrent API requests and rates. Use coarse inquiries, cache stable data like items and vendors, and queue calls rather than letting the agent fan out freely.

### Can this run without sending data to a cloud model?

**Answer:** Yes. An open-weight model served locally can run the agent, with the tool layer calling your own Acumatica instance. Expect to tune prompts and keep tasks narrower than with the largest hosted models.

## Search terms

acumatica ai agents, ai agent for acumatica, acumatica agentic ai, acumatica automation with ai, acumatica purchasing automation, acumatica rest api ai, acumatica generic inquiry ai, add ai to acumatica, acumatica llm integration, acumatica manufacturing ai

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