11 typed objects. One substrate everything else builds on.
A message in most tools is a blob of text with reactions bolted on. In aanty, every message carries a type from the moment it's written — message, question, answer, decision, update, task, approval, alert, doc, event, or celebration — and that type drives routing, notification priority, search facets, and analytics.
Eleven types, each with its own colour, icon, and behaviour.
Type is AI-suggested at write time and always author-overridable — it never blocks send. Colour is never the only signal: an icon and a label always ride along.
Pick a type, see how it renders and what metadata it carries.
Why chat scrollback destroys decisions — and how the type fixes it.
Decision-typed messages don't just sit in a thread. They aggregate into a per-team and per-org decision log, searchable for the question every org keeps re-asking: why did we choose X?
- Structured fields. Each decision carries its options, the one chosen, an owner, and a revisit date — not just a sentence in a channel.
- Searchable, not scrollback. The ledger answers "why did we choose X?" directly, instead of asking you to scroll back through a thread.
- Owned and revisited. An owner and a revisit date mean decisions get reopened on purpose, not forgotten by accident.
Kills the "asked five times in five channels" pattern.
A typed question is checked against org memory before it ever needs a human — and once it does get answered, that answer is captured back into the graph for the next person who asks.
- Checked against org memory first. "This was answered three weeks ago by Sara: use magic-link, add SSO on Business."
- Escalates when unanswered. If nothing in the graph resolves it, the question routes to whoever's named or best placed to answer.
- Answers feed the graph. Once answered, the answer is captured so the same question never has to be asked cold again.
Every approval carries a safety tier — and the confirmation UI is a direct function of it.
An approval is a native message type with approve, reject, and modify actions, full audit, and — for anything consequential — a confirmation gate that matches its assigned tier. Unassigned actions default to High.
Low
Rename a channel, edit your own message
No modal — inline change with a 7-second undo toast, audited.
Medium
Change a role, approve a budget, modify an approval
Confirmation modal — type-to-confirm for anything irreversible, audited.
High
Export a workspace, bulk delete, disable a channel
Confirmation modal plus an MFA recheck and a cooldown window, audited.
Critical
Delete a tenant, disable retention, change a legal hold
MFA recheck and dual approval from a second admin, or break-glass — with a post-action audit notification.
See your team's messages typed, not just sent.
Bring a real thread. We'll show it classified, routed, and searchable — with a decision ledger entry to match.