AI Capabilities
The AI Assistant is a chat panel embedded in NomaUBL. It answers three kinds of questions:
- How does the product work? — from the NomaUBL documentation, indexed by the server, with the title and the link of the page it used.
- How is this instance set up? — from the implementation report generated from the configuration of the instance: documents, mappings, rules, jobs, roles.
- What is the state of my data? — from the database, in read-only mode: one invoice in full, the figures of a period, the backlog, the errors, the server log, the integrity checks.
The assistant knows the page you are on and the invoice you have open, so "why is this invoice refused?" needs no number typed by hand. Replies stream as the model writes them; every tool call appears as a pill with the filters used; each reply ends with follow-up buttons. The assistant works in French or English and follows the language of the question.
Opening the assistant
- Click ✦ AI Assistant at the right end of the top bar. The panel opens as a drawer beside the page; it stays usable while an invoice window is open.
- Press Enter to send, Shift+Enter for a new line, ■ to stop a reply in progress.
- The conversation is kept when the panel is closed or the page reloaded (the last 40 messages, in the browser). + New chat starts a fresh one.
- Opening another invoice starts a new conversation: the previous exchange was about another invoice and would mislead the model.
At a glance
| Element | Role |
|---|---|
| Model picker | Default uses the model set by the administrator; the list offers Sonnet 5.5, Opus 5.5, Fable 5.1 and Haiku 4.5. The choice is remembered in the browser. |
| + New chat | Clears the conversation. |
| Context bar | The page you are on and, when an invoice window is open, a chip with the invoice number and status. × on the chip leaves the invoice out of the current chat. |
| Tool pills | Each tool called, with the filters it received. |
| 📋 Copy | Copies the reply as Markdown, without the follow-up line. |
| Domains and questions | Above the input: the follow-ups of the last reply, or the four questions of a domain — see Context and starter questions. |
Context and starter questions
With every question the panel sends the current page, its navigation filter and the open invoice (document, type, company, number, status, customer). The assistant assumes the question is about them unless told otherwise.
Above the input, a domain picker offers four questions per domain. A question ending with … only fills the input, to be completed (an invoice number, a customer).
| Domain | Questions |
|---|---|
| This invoice (when an invoice is open) | Why is this invoice in this status? · Summarise its lifecycle · What should I fix to resubmit it? · What are its validation errors? |
| Period | Give me this month's invoice summary · Last month's summary, compared to the month before · Deposit rate and error rate this month · Net amounts deposited this month, per company |
| Backlog | Which invoices await an action and what to do? · Which refused invoices still await an action? · Any invoices pending at the platform for more than 2 days? · Which invoices are deposited but not transmitted? |
| Invoices | Which invoices failed this week and why? · Find invoice number … · Invoices of customer … · Any duplicates this month? |
| Statuses & errors | What does status 9906 mean? · What to do with an invoice refused by the customer? · What to do with an invoice rejected by the platform? · What does rule BR-FR-… |
| Configuration | Which documents are sent to the platform? · Which notification rules are active? · Who has access to what (roles and users)? · How is the platform connection configured? |
| Documentation | How do watched folders work? · How does e-reporting work? · How do I resend or reprocess an invoice? · What changed in the last release? |
| Technical | Any errors in the server log today? · Is the instance healthy? · Did all scheduled jobs run? · Run this month's integrity checks |
The page chooses the starting domain: This invoice when an invoice is open; Technical on the IT dashboard, Diagnostics and Scheduled jobs; Configuration on Settings, Roles, Users, Developer, Documents, Notification rules, Actions and Watched folders; Documentation on the reference pages and the release notes; Period everywhere else — accounting and sales land on the period, IT on the instance.
Every reply ends with one to three follow-ups — the natural answer to a question the assistant asked, the next check, or a deeper question. They show in place of the domain's questions; a click on a domain brings its questions back.
What the assistant uses
Documentation
| Tool | Pill | Use |
|---|---|---|
search_docs | 📚 | Searches the NomaUBL documentation, indexed by the server from the site's full-text export (llms-full.txt); returns the best pages with title, URL and passage. Called first for any product question. |
read_doc_page | 📖 | Reads one page found by search_docs, in windows of 12,000 characters for long pages. |
list_doc_pages | 📑 | The table of contents of the documentation, when the search finds nothing relevant. |
instance_docs | 📘 | The implementation report of this instance: table of contents, one section, or a search across sections. Called first for any question about how this instance is configured. |
The documentation is indexed per language: a French interface searches the French pages, an English interface the English ones. The index is refreshed every six hours; when the site cannot be reached, the assistant uses the copy of the documentation bundled with the application and says so in its answer.
The assistant quotes the page it used and gives its link. It never invents a setting, a status code or a URL: when the documentation does not cover a point, it says so.
Data of the instance
| Tool | Pill | What it returns |
|---|---|---|
invoice_dossier | 🧾 | Everything about one invoice in one call: header (status, customer, amounts, dates, PA identifier), lines, VAT breakdown, validation errors and the full lifecycle with the PA reasons. |
list_invoices | 🧾 | Up to 50 invoices filtered on status, company, transaction type (B2B / B2BINT / B2C / B2G / OUTOFSCOPE), customer, invoice number (BT-1) and issue dates. |
lifecycle_history | 🕘 | Every status event of an invoice, with the PA rejection reason, expected action and status note. |
validation_errors | ⚠️ | The validation errors of an invoice (level, source, rule, message), as in Integration errors. |
period_figures | 🗓️ | The summary of a period from the audit report: indicators with the previous period and the variation, the breakdown of processed invoices, the findings, and the backlog across all periods (by status, company and age). Default: the current month to date. |
billing_overview | 💶 | The figures of the Billing overview for a period, sales or purchases: revenue excl. VAT with invoices and credit notes apart, VAT, counts, transmission or acceptance rate, compared with the previous period; twelve months by outcome; what needs a decision, all dates, in amounts; the split per company and per transaction type. Options: date basis (document date by default) and whether to count the reviewed errors. |
status_statistics | 📈 | The data of the Statistics dashboard for a period, sales or purchases: invoices by stage, status, activity code, reason and transaction type (count and amount), the same for the previous period, the trend per day, and the open invoices by waiting time. Same options. |
dashboard_overview | 📊 | The counters of the Operations dashboard for a date range. |
tech_dashboard | 🩺 | The health of the instance, as on the IT dashboard: JVM, scheduled jobs and their last runs, send failures, waiting invoices, configuration issues, table sizes. |
server_log | 📜 | The end of the server log, newest first, filtered on level, module and text. |
integrity_checks | 🔎 | The configured integrity checks and, for one check, its result on a date range. |
list_ereports | 🔍 | Up to 50 e-reporting runs filtered on direction (inbound / outbound — each run carries both flows 10.1 and 10.3), company and status. |
explain_status_code | 🏷️ | The tag and the FR / EN labels of an invoice or e-reporting status code. |
reason_codes | 📋 | The PA rejection reasons and expected actions with their labels. |
edirectory_lookup | 🏢 | A company in the e-directory by SIREN, SIRET or name: legal data and routing lines. |
template_settings | ⚙️ | The settings of one template, secrets masked. Requires the Settings access feature. |
The assistant knows every page of the application — among them the Billing overview, Statistics, the Explorer and the invoice stages — and answers a question on revenue, credit notes, transmission rate or decisions with billing_overview, a question on stages, waiting time or reasons with status_statistics. Through the implementation report (instance_docs) it also knows the default periods and the dashboard rules of the instance. The two tools answer only when the user's role grants the page (Billing overview, Statistics).
The assistant also receives the live status catalogue, so "en litige", "refused" or "awaiting deposit" map to the right code.
The data tools follow the rights of the signed-in user: the company visibility of the role applies to the invoices, figures and backlog the assistant reads.
Playbooks
For a diagnosis, the assistant first loads the matching playbook (🧭 load_playbook), then follows its steps. The built-in playbooks are:
| Playbook | Diagnosis |
|---|---|
refused-invoice | An invoice awaiting an action (213, 9905, 9907, 9904, 207, 208, 210, 221, 206): what was refused, what to correct, how to resubmit — or, for a refusal, the internal credit note to issue. |
backlog | What still awaits an action, for one company or all: to fix and resend, answer to the buyer expected, pending at the platform, deposited but not transmitted. |
missing-invoice | An invoice or a JDE print job that did not reach NomaUBL: which step failed and what to run. |
ereporting-error | A failed e-reporting run (9956 to 9959): the offending data and the correction. |
status-not-updated | An invoice that keeps an old status although the platform moved on. |
The administrator can add playbooks or replace a built-in one under the same name, from the Custom playbooks field of the global settings (AI tab).
At most 10 tool calls are chained for one question. When a tool fails, the assistant gives the tool, the input and the error.
Conversation examples
Diagnosing the open invoice
User — (invoice F2026-1203 open) Why is this invoice in this status?
🧭
load_playbook · refused-invoice🧾invoice_dossier · 1203 RI 00001AI Assistant — Invoice F2026-1203 was refused by the buyer (status 210) on 2026-10-22 with the reason
PU_ERR— incorrect unit prices. A refusal requires an internal credit note: cancel the invoice with a credit note, then issue a corrected invoice.Follow-ups:
Show its lifecycle·Other refusals this month?
Summary of the month
User — Give me this month's invoice summary
🔍
period_figures · 2026-10-01 → 2026-10-24AI Assistant — 1,240 invoices processed (+6 % on September), 1,180 deposited — deposit rate 95 %. 38 await an action: 22 to fix and resend, 16 awaiting an answer to the buyer. First-pass validation: 97 %.
Awaiting Count Oldest 9905 — Validation failed 14 6 days 213 — Rejected 8 3 days 210 — Refused 16 9 days Follow-ups:
Detail the 9905 errors·Which companies are behind?
How the product works
User — How do watched folders work?
📚
search_docs · watched folders📖read_doc_page · …/management/watched-foldersAI Assistant — A watched folder is scanned on a schedule; each new file is processed with the document it is bound to… (Source: Watched Folders — link)
What the assistant cannot do
- Change anything. It only reads. Asked to resend, reprocess or change a setting, it says where in the application to do it.
- Go beyond your rights. The data tools apply the company visibility of your role, and the settings require the Settings access feature.
- Read files. The chat is text-only; a short XML pasted in the question is read, a file cannot be attached.
The administrator sets the API key, the default model, the documentation source, the custom playbooks, the system prompt and the tools from the AI tab of the global settings.
Tips & best practices
- Open the invoice, then ask. The context chip gives the assistant the invoice; there is nothing to type. Use × on the chip to ask a general question without leaving the window.
- Ask for a period summary in plain words. "This month", "last quarter", "our deposit rate" — the assistant reads the figures of the audit report.
- Click the follow-ups. They carry on the diagnosis with the right next check.
- Start a new chat for a new subject. A long thread on another topic weighs on the answers.
- Pick a heavier model for a long diagnosis, the default for everyday questions.
- Treat the panel as an external service. Questions and tool results are sent to the model provider; avoid pasting personal data that the screens do not already show.
- For exhaustive lists, use the dedicated pages. The assistant characterises a problem; the E-Invoicing list, Diagnostics and Reports give the full picture.