When this happens, do that.

A workflow is a trigger, some conditions and a list of actions. You can see all three on one row, with how often it ran and when it last fired.

Workflows 4 enabled
  • VIP fast lane 412 runs · 11 min ago
    conversation.opened customer.segment == “vip” set priority P1 assign to VIP queue
  • Refund spike breaker 2 runs · 6 days ago
    refunds_24h > 3× baseline pause Auto lane for refunds notify the team

One run, from the event to the log

A workflow is not a black box with a switch on it. Here is a single run: what fired it, what it checked, what it did, and what it left behind.

Order-delay outreach enabled · 31 runs
order.delayed delay > 2 days message the customer create a task
Trigger · an event on the log

order.delayed · A‑1042 · Mara Ellis · 14:02

  • delay > 2 days4 days · true
  • consent for SMS is grantedtrue
  1. Open the conversation with Maraconsent checked · 1 per 72h
  2. Create a task for the account ownerassigned

Ran — one entry per action, replayable14:02

Example data. A workflow that calls a tool is checked by your rules exactly like a call the AI proposes — it has no privilege the AI does not have.

  1. A workflow is one trigger, some conditions and a list of actions, on one row.
  2. An event on the log fires it: this order slipped its promised date.
  3. The conditions are evaluated as written. A condition that cannot be read reports an error — it never quietly answers “no”.
  4. The actions run in order. Reaching out first has to clear consent and the cap.
  5. One entry per action on the event log, so you can read back what happened and replay it.

Three kinds of trigger, a dozen kinds of action

Conditions are written in the same language your approval rules use, so anything you can gate on there you can branch on here.

What starts it

  • Anything that happens A message arrives, a refund posts, a draft is approved, an SLA breaches — any event on the log can start a workflow.
  • A schedule Every weekday at 8am. The first of the month. Whatever cron-like shape you need.
  • A number crossing a line Refunds in the last 24 hours above three times the usual. Or a plain floor — “more than one”, so a rare thing still fires.

What it can do

  • Set priority, tags, queue or required skill
  • Route or assign it to someone
  • Open a conversation with the customer first
  • Run a procedure
  • Create a task for a person
  • Notify by email or a Slack webhook
  • Pause the Auto lane for one intent or one tool
  • Call a tool you have registered
  • Create a deal
  • Add a note to the customer

A workflow that calls a tool is checked by your rules exactly like a call the AI proposes. It has no privilege the AI does not have.

See what it would have done, then turn it on

Before a new workflow is enabled, Aqvitus replays your last thirty days against it and tells you how many times it would have fired — and shows you which conversations.

Dry run · last 30 days

Would have fired 31 times

  • Mara Ellis · order A‑1042 delayed 4 days
  • Tom Veer · order A‑0987 delayed 3 days
  • 29 more

Example data, to show the shape of the report.

Nothing fires quietly either

Every run is written to the event log, with one entry per action. You can read back what happened and why, and replay it.

If a condition reaches for something that is not there, the run reports a rule error. It does not silently decide the answer was “no” — that is the bug you would never find.

Six templates ship ready to edit: VIP fast lane, order-delay outreach, churn-risk save, low-CSAT follow-up, refund-spike breaker and a swarm for a P1 account.

Reaching out first has brakes on it

A workflow can start the conversation. That power comes fenced, because the alternative is a platform that spams your customers on your behalf.

Consent, checked every time

An unsolicited message needs the consent the customer gave for that channel. Without it, nothing sends.

A cap per customer

One unsolicited message every 72 hours by default, and you can set it tighter. Quiet hours are respected.

A dismissal is an answer

If the customer dismisses it, that trigger is suppressed for them. If the channel keeps refusing, the integration trips its breaker rather than retrying for ever.

Targets you set, and assignments you can explain

The two things that decide whether a conversation is answered in time and by the right person.

SLAs

A first-response target and a resolution target per priority. Timers pause outside your business hours if you configure that.

  • A conversation approaching its target raises its own routing pressure.
  • A breach is an event, so it can trigger another workflow.
  • Attainment is reported per policy, not as one number for everything.

Routing

Assignment reads skills including language, load and capacity, who is actually present, priority, SLA pressure, the customer’s segment and value, and sentiment.

  • The same inputs always give the same answer.
  • Every assignment records its reasons, so “why me?” has an answer.
  • Nothing about it is a model judgement.

How this connects

Approvals

A workflow that calls a tool goes through the same rules and the same approval as the AI does. There is no back door.

Analytics

SLA attainment is reported per policy, and a workflow can be triggered by a metric crossing a threshold.

The AI agent

Every workflow run lands on the event log, so a change can be replayed against real history before you enable it.

Sales

A product event — a seat limit hit twice — can raise a sales signal and create the deal.

Aqvitus

AI First. Human Always.

Write the rule once. Watch it run, on the log, where you can read it.