13 October 2026 · 4 min read

Adding an AI Assistant to an ERP: What Really Works

How I built an assistant that answers staff questions from live ERP data by text or voice, keeps every permission, and never guesses a number.

Everyone wants "AI in the system" now. The idea is simple: instead of clicking through menus, a person asks a question and gets the answer.

I built that into a live factory ERP. It taught me that the hard part is not making it talk. The hard part is making sure it never tells someone a wrong number with a confident voice.

The problem it solves

A factory ERP has dozens of screens and reports. Most staff use two or three and are lost in the rest. So simple questions become phone calls:

  • "How much is left to print on this lot?"
  • "Where is this customer's order?"
  • "Why can't I see that form?"

The answers are in the system. People just cannot find them.

Rule 1: the assistant never invents a query

It is tempting to let an AI write its own database queries. In a real system that is dangerous. Column names can look right and mean something else, so a query built from a reasonable guess returns rows — the wrong ones, with no error.

So my assistant does not write queries. Each thing it can do is a named tool, and each tool calls a report that already exists and that people already trust. Its answer to "what is left to print on this lot?" is the same number the report shows, because it runs the same code.

Rule 2: permissions come first

The assistant works in this order every time:

  1. Work out what was asked
  2. Work out what this person is allowed to see
  3. Remove everything they are not allowed to see
  4. Only then choose the best answer

Step 3 happens before anything runs. A user without access to a report is not told "you cannot see that". The report is simply not among the answers, the same way the menu does not show them the button.

It also uses the person's own login for every request. It cannot reach anything that person could not open themselves.

Rule 3: it reads, a person writes

The assistant runs reports and explains screens. It never changes data. When an answer leads to an entry, it opens the form with the values filled in, and a person still presses Save.

Rule 4: "did you mean?" beats a confident guess

When the assistant is not sure what was asked, it does not pick the closest report and hope. It shows the nearest few options by name and lets the person choose. A wrong report delivered with confidence costs far more than an honest question.

Why I did not use a big language model

The factory server is an ordinary office PC that also runs the database. A language model on that machine would take 10 to 20 seconds to answer. A report that takes 20 seconds to decide to run is worse than four clicks through the menu.

So I looked at how people in the mill really ask. The vocabulary is small and fixed: lots, customers, qualities and a handful of stages, often shortened the way people type on a phone. That is a matching problem. A carefully built matching engine answers at once, works with no internet, and keeps all business data inside the building.

The design leaves one clear place to plug in a larger model later, if the hardware allows.

Voice

A microphone button sits beside the question box. The words it heard are shown in the conversation, so a mishearing is seen immediately instead of becoming a report nobody asked for. Voice uses exactly the same path as typing, so it has the same permissions and the same limits.

What I would tell a business owner

  • Start with the ten questions your staff ask every day. Make those perfect.
  • Never let an assistant change data on its own.
  • Make it use each person's own access rights.
  • Prefer an honest "did you mean?" to a clever guess.
  • You may not need the cloud at all.

More detail is on the ERP assistant project page. If you want an assistant like this in your own system, tell me what your staff keep asking.

Keep reading

More articles

Contact

Tell me the problem. I will show you the fix.

Describe what is going wrong in your business or your current system. I will reply with how I would solve it.