Learn and improve

Every conversation teaches the next one.

The learning engine analyses completed conversations, identifies what's working and what's not, and proposes specific changes — with supporting evidence. Nothing changes until you approve it.

20 convosminimum sample before any proposals are generated
4 evidence classesDescriptive, Directional, Statistically Supported, Human Judgment
0 auto-changesevery proposal requires explicit human approval
Full historyevery version linked back to the proposal that created it
How proposals are generated

Evidence first. Proposal second. Human approval always.

The pattern detector analyses completed conversations and classifies findings by evidence strength before generating any proposal. Low-confidence findings are labelled clearly — no finding is dressed up as more certain than it is.

  • Descriptive — observational finding, limited sample, no causal claim
  • Directional — correlation observed across a growing sample
  • Statistically Supported — consistent signal with sufficient sample size
  • Human Judgment — pattern identified but not quantifiable, routed for expert review
  • Minimum 20 closed conversations required before any proposals are generated
  • Test conversations flagged with is_test=True are excluded from all analysis
Proposal lifecycle
  1. 1
    Conversations analysed
    Completed conversations only — CLOSED, BOOKED, TIMED_OUT
  2. 2
    Patterns detected
    Drop-off, tone signals, conversion drivers identified
  3. 3
    Evidence classified
    Descriptive / Directional / Statistically Supported
  4. 4
    Proposal written
    Specific change proposed with before/after metric projection
  5. 5
    Human review
    Approve or reject with notes — config unchanged until approved
  6. 6
    New version created
    Approval creates a new campaign version — revertable
Campaign version control

Every change is tracked. Every change is revertable.

Approving a proposal creates a new campaign version automatically. All new conversations run under the new version. The prior version is preserved — one click to revert.

Full version history

Every campaign change — manual or from a proposal — creates a versioned record with a timestamp, the user who made it, and a change summary. The full history is visible from the campaign detail page.

How it works: Conversations started before a change are linked to the prior version — attribution is always accurate.

One-click revert

If a change makes performance worse, any prior version can be restored instantly. Reverting creates a new version record so the revert action itself is auditable.

How it works: All new conversations switch to the reverted config immediately on revert.

Proposal origin tracing

Versions created from proposals include a link back to the originating proposal. You can see the evidence and reasoning that justified any change — even after the proposal is marked applied.

How it works: The full proposal detail — evidence class, metric projection, diff — is always accessible from version history.

No live conversation impact

The learning engine reads from the database and writes only to the proposals table with status PENDING. It has no write access to campaigns or live conversations — it cannot affect anything in flight.

How it works: Approval is the only action that updates campaign configuration — and only a human can approve.

Want to see how campaigns
improve over time?

We'll show you a real proposal — evidence, diff, and the version it produced.