Four layers. The expensive one is last, and optional.
Ask the assistant something and it works down this ladder, stopping at the first layer that can answer confidently. In practice, almost everything stops at layer one or two — which is exactly why it costs nothing to use.
A real grammar, not a guess. It recognises the shape of your question, fills in the missing pieces from the screen you are on, and runs the matching query. If you ask “who owes me money?” it runs your aged debtors — the same code path as the report.
When the phrasing is unfamiliar, a small classifier trained inside your workspace at start-up decides what you probably meant. It is ordinary machine learning, not a large language model — it holds no knowledge of the world, makes no network call, and abstains rather than guessing when it is unsure.
Once a phrasing has been resolved in your workspace, Cobalt remembers the route — not the answer. Ask it again next month and it recognises your wording instantly, then re-runs the query live so the number is never stale.
Only if all three fail does Cobalt consider a language model, and only if one has been configured for your deployment — none is set up out of the box. It is provider-neutral: Anthropic's Claude and OpenAI's GPT models are both implemented behind a single interface, and which one runs is a configuration setting rather than a rewrite.
Whatever answers, the sentence you read is composed from templates around real figures — so a number in a reply is the number in your database, never a plausible-looking one a model produced. That is the whole point of building it this way round.
What it looks like when you use it.
Two of the surfaces where this shows up: asking a question, and dropping in a supplier bill.
who owes me money?
Across 14 customers you are owed £38,204.16.
£9,412.80 of that is over 60 days, mostly Vertex Logistics (£6,118.00, 74 days).
Greenleaf Trading has £1,204.12 falling due on Friday.
functionCalculated from your ledgerEvery extracted field carries a confidence score and a citation back to where it was read, shown beside the document itself — click a field and the page scrolls to the line it came from. You are checking a claim against a source rather than trusting a black box. Text is read on-device with open-source OCR by default; the higher-accuracy vision model is a separate, per-workspace opt-in, and a document read that way is labelled differently from one read locally.
The assistant is wherever you already are rather than parked on its own page: a panel you open from the top bar or with ⌘J, from the command palette, or straight from an error message with the error already filled in. Press Enter in a list search and the question goes to the assistant instead of returning nothing. It knows which record you are looking at, so “what's this customer's exposure?” needs no name. And if your role permits it, there is an audit page listing every AI action taken in your workspace.
Twenty capabilities, declared in one list.
The assistant can do exactly these twenty things — no more. They are declared in a single manifest, and if the code and the manifest ever disagree, the application refuses to start. There is no open-ended “ask it anything and hope” surface.
Reads 15
Answers a question by running the same query the equivalent report runs. Cannot change anything.
- Aged debtors
- Aged creditors
- Customer account summary
- Supplier account summary
- Stock search and availability
- Describe any record
- Explain a screen or a term
- Margin check on a product or order
- Suggest products for a customer
- Quote-to-cash attention list
- Month-end review
- Bill inbox status
- Order inbox status
- Draft a quote follow-up
- Draft an invoice chase
Drafts 5
Prepares a record and hands it to you. Nothing is created, sent or posted until you confirm it.
- Draft a supplier bill
- Draft a credit note
- Create a quote
- Create a sales order
- Create a purchase order
One capability was deliberately taken back out: drafting a supplier credit note, because the only code path available posted it immediately. Rather than weaken the rule, the capability was removed — and there is a test that fails if anyone puts it back.
The assistant never posts to your ledger.
Not “we told it not to”. It structurally cannot, and that is the difference.
Draft actions are dispatched through a fixed allow-list. Anything not on it is refused by the server, so a cleverly-worded message cannot talk the assistant into a wider action.
On confirmation your permissions are re-checked from scratch, any edit you made in the card is re-validated, and the write is executed by the ordinary ERP service under your identity — with row-level security applying exactly as usual.
The confirmation path is tested against real attacks on a real database — altering the action type, escalating the permission, and smuggling a record from another tenant. Confirming twice cannot double-post.
Every answer says where it came from.
Cobalt labels its own output with one of five sources. A figure computed from your ledger is not allowed to present itself as something a model wrote, and the reverse is true too.
Only the last of those five may appear on a genuine model turn. It is worth being blunt about the implication: the insights Cobalt surfaces on your customers and suppliers are all calculated or rule — real arithmetic and thresholds you set. We could market them as “AI-generated insights”. They are not, so we don't.
If you do switch the model layer on.
The governance was built before the capability, which is the right order.
- Off unless it is configured — no model provider is set up out of the box, so a fresh workspace makes no outbound model call at all. Turning the assistant's model layer on is a deployment-level change, not a checkbox a user can trip over.
- Reading scans with a vision model is a separate, audited opt-in — it sits behind its own per-workspace switch, off by default, and the setting itself names the sub-processor your images would be sent to. Flipping it writes an audit entry in the same database transaction as the change, so the record of who enabled that and when cannot drift from the setting.
- Included allowance, then it degrades — it doesn't stop — Growth includes 100 AI credits a month, Scale 500, Premier 2,000. Run out and the assistant keeps working on the free deterministic layers rather than switching off. Nothing bills you by surprise.
- No unpriced model can be called — the model has to appear in an internal price book before a request is allowed out. An unrecognised model is rejected before the call rather than after the invoice.
- Spend ceilings, timeouts and a circuit breaker — a cost ceiling per workspace, a hard token clamp, a 30-second timeout that genuinely cancels, and a breaker that trips on repeated provider failure. A request that may already have been charged is never retried.
- An append-only credit ledger — the database itself revokes update and delete on credit history. Corrections are added as compensating entries; nothing is quietly rewritten.
- A durable record of AI actions — which model ran, which provider, how many tokens and what it cost, kept in its own audit table that outlives the chat history.
One thing to be straight about, because it matters more than a reassuring sentence: with a model provider configured, your question and the recent conversation context are sent to that provider, and Cobalt does not currently strip identifiers from them first. That is precisely why nothing is configured out of the box. If your data must not leave the platform, leave layer four unconfigured and leave the vision-OCR switch off — everything else on this page still works, at no cost, on your own data.
What this isn't.
Things you might reasonably assume from the word “AI” that Cobalt does not do. If one of these is what you need, we would rather you knew now.
- Not semantic search. Finding records uses full-text and fuzzy matching. There are no embeddings and no vector database, so it matches words and near-spellings, not meaning.
- Not chat-with-your-documents. There is no retrieval-augmented question answering over your files. Documents are read into structured fields, not into a conversation.
- No voice input. There is no dictation or transcription anywhere in the product.
- No autonomous bookkeeping. The assistant cannot post a journal, pay a supplier or send a document. It drafts; you confirm.
- No provider failover. Claude and GPT are both implemented, but one is selected per deployment. If your provider is down, the assistant falls back to the deterministic layers, not to the other vendor.
- It does not learn from your data. No model is trained or fine-tuned on your workspace. What it remembers is which phrasing maps to which query, and which supplier name maps to which record.
Does Cobalt's AI work without an API key?
Yes, and that is the normal case. The deterministic router, the on-device classifier, document field extraction, on-device OCR and all thirteen customer and supplier insights run with no API key, no per-message cost and no data leaving the platform. A language model is only involved if you configure one.
Which AI models does Cobalt use?
Anthropic's Claude and OpenAI's GPT models are both implemented behind one internal interface, and which one a deployment uses is a configuration setting. There is no automatic switching between vendors: if the configured provider fails, the assistant answers from the deterministic layers instead.
Is my business data sent to OpenAI or Anthropic?
Not unless a model provider has been configured for your deployment, and none is set up out of the box. If one is enabled, your question and recent conversation context are sent to that provider, and Cobalt does not strip identifiers beforehand — so treat it as a deliberate data-sharing decision rather than an invisible default. Reading scans with a vision model is a separate switch again: off by default, per workspace, and it names the sub-processor before you turn it on. Everything described on this page except layer four works without any of it.
Can the AI change my accounts or send things to customers?
No. It can prepare five kinds of draft — a supplier bill, a credit note, a quote, a sales order and a purchase order — and nothing more. Drafts are dispatched through a fixed allow-list, your permissions are re-checked when you confirm, and the write is then performed by the ordinary ERP service under your own identity. It cannot post a journal, pay anyone or send a document.
What happens when I run out of AI credits?
The assistant carries on. Credit exhaustion degrades it to the free deterministic layers and shows a note; it never hard-blocks and it never generates an overage charge. Growth includes 100 credits a month, Scale 500 and Premier 2,000; Launch has the assistant switched off.
Which plan includes the assistant?
Growth and above. Launch does not include it. Document capture with on-device OCR is also Growth and above, and the higher-accuracy vision model on top of that needs a separate per-workspace opt-in.