It learns how your company counts
Every company means something different by revenue, by overdue, by an active project. The assistant writes yours down as it works: the correction you made, the way you compute a figure, the table the answer lives in. A second agent checks each entry, and the next answer uses it. Nobody has to build this layer first.
It writes the terms down as it works
When something gets settled in a conversation (a definition agreed, a correction made, a figure explained), the assistant proposes a term: what it means, when it applies, and often the exact query behind it. A reviewing agent checks it before it counts, and from then on it is part of every conversation it applies to. All of it sits on one page in the portal.
Shown: the AI knowledge page on its Semantic layer tab, with three current terms. Each was proposed by the assistant, is approved, and applies to any Business Central connection.
- Customers over credit limit (Hvem er over kreditten). Read from the Customer table (table 18): field 59, Balance (LCY), and field 20, Credit Limit (LCY), where Credit Limit (LCY) is not 0, so customers with no limit set are left out. Keep those over their limit, with Over by = Balance (LCY) − Credit Limit (LCY), furthest over first. Applies when: someone asks which customers are over their credit limit, or who has used up their credit.
- Receivables outstanding (Tilgodehavender). Read from the Customer table (table 18): field 59, Balance (LCY), for every customer where it is not 0, largest first. The figure is what customers owe today, in local currency. Applies when: someone asks what customers owe us, or how much is outstanding.
- Hours on a job (Timer på sagen). Read from Job Ledger Entry (table 169). Sum field 9, Quantity, where Entry Type is Usage and Type is Resource, by Work Type Code. Sale entries are left out, so invoiced hours are not counted twice. Applies when: someone asks how many hours were posted to a job, in total or by work type.
The four states a term can be in
- Awaiting review
- Proposed in a conversation and not reviewed yet. It shapes no answer until it is approved.
- Approved
- In play. It is brought into any conversation its Applies when matches, on the connections its scope names. A daily sweep re-runs each stored query once a week and flags a term whose query stops returning data.
- Denied
- Turned down in review, with the reason. It never reaches an answer.
- Superseded
- Replaced by a newer term that says it more precisely. It stays on the list, so you can see what changed.
In the chat you see it at work: an answer says which term it was read as, which memory it applied, and which term it proposed and whether that was approved.
What it picks up
Two kinds of thing, and they behave differently on purpose.
The semantic layer
A business term plus how to compute it. Always company scope, because a definition that is only true for one person is not a definition. An entry can carry the exact query that established a figure, so the next answer does not re-derive it. It replays it.
Customers over credit limit
A customer whose Balance (LCY) is above the Credit Limit (LCY) on its customer card. Customers with no limit set are left out.
- Keywords
- credit limit
- over limit
- kreditmaksimum
- over kreditten
- Stored recipe
- bc:read:18:7d2e90c4a1b3 · Customer (18) · Credit Limit (LCY) <> 0 · kept where Balance (LCY) > Credit Limit (LCY)
- Used
- used 14 times
Memory
Lessons, preferences and corrections. Company scope for something true of the business, user scope for something true of one person's way of working. A user-scope memory learned inside a customer company is only ever retrieved back inside that company.
Report currency
This company reports in DKK even though several projects are invoiced in EUR. Convert before totalling across projects.
- Triggers on
- currency
- valuta
- EUR
- Scope
- company · memory
- Used
- retrieved 41 times
Example entries. The counters show what the product records for each entry; the numbers here are illustrative.
Why the next answer is better than the last
An entry does not sit in a settings page waiting to be read. It arrives in the conversation that needs it, by one of four routes.
- By name
A term appears, so its definition comes with it
A semantic entry whose title or one of its trigger keywords appears in the message becomes a candidate, and a reader decides whether it applies; at most six come in full. Beyond those, the assistant sees a list of at most thirty titles and can search for the rest.
- By tool
An entry can attach itself to a result
An entry bound to a tool (Job Ledger Entry reads, any Outlook call) is attached to that tool's result the moment it is used, and stays on the session afterwards.
- By meaning
Found by meaning, not by keyword
Each message is matched by meaning once, against memories and terms alike: the reader brings a close match in full and offers a weaker one as a title. Mid-answer, the assistant can search the knowledge itself with its search tool.
- By connection
Scoped to where it is true
A binding can hold an entry to one company, one Business Central environment, or every connection of a kind, so a rule about one environment does not follow you into another.
What you control, and what it will not do
The layer is yours to steer, and it is built so that steering it is optional rather than required.
- Moderation
A list, not a black box
Every entry is a row with a status, a scope and an owner. Read them, sort by how often each was actually used, edit one, delete one, restore one you retired, or write one yourself. A report query can be saved as a business term straight from the editor.
- Who approves
The second agent, or a person
By default the reviewing agent's approval publishes an entry at once, and nobody is notified. Switch the policy to administrator review and a company-wide entry waits as a recommendation: your administrators are notified, and one of them confirms it.
- Switching it off
Two separate toggles
Memory and the semantic layer switch on and off separately, per company, and each governs both what is proposed and what is brought back; personal memory follows the company's setting. Turning one off asks first and warns that answers get worse without it.
- When it breaks
If it is down, you still get an answer
If the knowledge layer cannot be reached, the question is answered without it. A broken knowledge layer is never allowed to break an answer.
- How long it lasts
Until it stops being true
Entries are not conversations and do not expire with them. A definition that is still correct should outlive the chat that produced it. You can set an expiry anyway, and you are warned first that still-true terms will go with it.
Ask it the same question twice, a month apart
Correct one figure and the next answer uses your definition. Start a trial to see the portal, or book a demo and watch it learn on a tenant set up like yours.
Or write to us at hello@uni4c.ai