AI & Chat

AI & Chat

Message threads, prompt composers and agent surfaces — the screens an AI ops assistant actually ships with.

Message bubbles

Every Bubble variant in both alignments. This is the vocabulary every other surface on this page is built from.

default

The Assay splitter ran on 128 lots overnight.
And how many need review?

secondary

The Assay splitter ran on 128 lots overnight.
And how many need review?

muted

The Assay splitter ran on 128 lots overnight.
And how many need review?

tinted

The Assay splitter ran on 128 lots overnight.
And how many need review?

outline

The Assay splitter ran on 128 lots overnight.
And how many need review?

ghost

The Assay splitter ran on 128 lots overnight.
And how many need review?

destructive

The Assay splitter ran on 128 lots overnight.
And how many need review?
Bubble · BubbleContent · BubbleGroup — align='start' for the assistant, align='end' for the person.
Invoice intake is back to normal — 41 documents cleared in the last hour.
3
BubbleReactions pins a reaction cluster to the edge of a bubble.

A full chat thread

Avatars, headers, timestamps, model attribution — and rich content rendered inside the bubble itself.

Perpetuum Ops Agent
Connected to n8n · 14 live flows · Kestrel workspace
Claude Opus 4.8
DV
Three Kestrel invoice runs failed overnight. What happened?
09:12
Ops Agent
All three failed on the same node — “Split lots”. Nordvik changed the header of their certificate PDFs on Tuesday, so the pinned template no longer matches.
09:12 · Claude Opus 4.8 · 1,4 s

Failed runs, last 24 hours

FlowClientFailed
coa-splitterKestrel3
invoice-intakeKestrel0
dashboard-syncVarnhem0

What I would do

  1. Pin the parser to template soga-v2 for today.
  2. Re-run the three lots from the error queue.
  3. Train soga-v4 on the new layout this week.
09:13 · Claude Opus 4.8 · 3,1 s
DV
Do step 1 and 2. Leave the retraining to me.
09:14
Done. Template pinned and all three lots re-queued — I will report back once they clear.
09:14 · Claude Opus 4.8 · 0,9 s

Prompt input

A working composer: textarea, attach, model picker, dictation, keyboard hint and a send button that appends to the thread.

Live composer
Type a question, press ⏎ and the agent answers — real state, no backend.
DV
Did the Varnhem dashboard sync finish?
11:04
Yes — it finished at 11:02 and pushed 2.310 rows. One warning: three records had an empty cost centre, so I parked them in the review queue.
11:04 · Claude Opus 4.8

Thinking & streaming states

Four ways to say “I am working on it” before the answer exists.

Working

Analysing 1.284 runs…

Typing

The assistant is typing

Streaming

The splitter failed on three lots because the supplier changed their PDF

Trace

Fetched 84 executions

Grouped failures by node

Diffing the parser template…

Spinner, staggered animate-bounce dots, a blinking caret and a step-by-step trace.

Attachments

Files handed to the agent, with upload state on the wrapper and a working remove action.

tradin-runs-week-30.csvCSV · 248 KB · 1.284 rows
Assay-lot-48219.pdfPDF · 1,8 MB · 12 pages
dashboard-error-state.pngUpload failed · retry
3 of 3 attached
Remove a file — the group genuinely updates.
runs.csv248 KB
contract-tradin.pdfUploading…
Drop a screenshot
Vertical orientation and the smaller sizes, for dense composers.

Suggested prompts & empty state

The first screen of any assistant. Click a chip and it populates the composer below it.

What should the agent look at?
It can read every n8n execution, the warehouse and the client dashboards. Start with one of these.
Empty · EmptyMedia · suggestion chips wired to the input.

Agent & tool calls

How to render an agent trace: the tool it reached for, its status, its arguments and how long it took.

n8n.listExecutions
412 ms
Success

84 executions · 3 errors · 81 success

warehouse.query
2,1 s
Running

Streaming rows…

assay.splitLots
6,8 s
Failed

TemplateMismatchError: expected 4 header columns, found 6

Citations & sources

An answer is only useful if you can check it. Numbered chips map to the underlying run, doc or query.

Ops Agent
The Assay splitter fails because Nordvik changed their certificate layout on Tuesday1. Our parser templates are pinned per supplier2, so every lot since then lands in the error queue — the failure rate went from 0,4% to 3,6%3.
1. n8n · execution 48219
Run log · 26 Jul, 03:12
Node “Split lots” threw TemplateMismatchError after the supplier changed their PDF header from four to six columns.
Click a source chip to expand the record behind it.