Learn and improve

Every completed conversation analysed. Every insight stored.

The conversation analyser runs on closed conversations only — CLOSED, BOOKED, TIMED_OUT, or ARCHIVED. It identifies drop-off points, conversion drivers, and tone patterns, then stores them as structured signals for the pattern detector.

Closed onlyanalyser never runs on ACTIVE or PAUSED conversations
20 minimumconversations required before pattern detector generates proposals
4 tone flagsfrustrated, warm, confused, rushed — captured per turn
0 test turnsexcluded via is_test=True flag — Campaign Tester data never contaminates
How analysis works

Completed conversations only. Test data excluded. Always.

The analyser is strict about what it reads. It only processes conversations in a terminal state — CLOSED, BOOKED, TIMED_OUT, or ARCHIVED. It never touches ACTIVE or PAUSED conversations. And it excludes all turns flagged is_test=True, so Campaign Tester activity never contaminates production analytics.

  • Only terminal conversations analysed — ACTIVE and PAUSED never touched
  • Drop-off point identified from maximum answered_question_ids on final turn
  • Conversion driver turns tagged on conversation_turns.contributed_to_outcome
  • Tone flags read from conversation_turns — frustrated, warm, confused, rushed
  • Minimum 20 conversations required — no patterns generated below threshold
  • Test turns excluded by is_test=True flag — Campaign Tester never distorts data
Analysis pipeline
  1. 1
    Terminal check
    Only CLOSED, BOOKED, TIMED_OUT, ARCHIVED processed
  2. 2
    Test exclusion
    is_test=True turns filtered out before analysis
  3. 3
    Drop-off detection
    Last answered_question_ids from final disengaged turn
  4. 4
    Conversion tagging
    Turns preceding BOOKED tagged contributed_to_outcome
  5. 5
    Tone pattern read
    tone_flags per turn aggregated across cohort
  6. 6
    Signals stored
    Structured signals available to pattern detector
What gets detected

Drop-off, conversion drivers, and tone — all from data you already have.

The analyser works from signals already stored on conversation_turns — no additional instrumentation required. If you have 20 completed conversations, the analyser has enough to work with.

Drop-off by question

The analyser identifies which question was last answered before a contact disengaged. This maps to a specific question number in the campaign sequence — showing operators exactly where conversations are failing.

How it works: Drop-off rate per question is surfaced in the Conversation Intelligence reporting layer — accessible by client admins without contacting Friyay.

Conversion drivers

The analyser identifies turn sequences that preceded a BOOKED outcome. These are tagged on conversation_turns.contributed_to_outcome and used by the pattern detector to identify what message characteristics correlate with conversion.

How it works: Conversion driver tagging is tested in the pattern detector — booking rate computed from tagged turns.

Tone pattern recognition

The AI stores tone flags on every turn — signals like 'frustrated', 'warm', 'confused', or 'rushed' observed in the contact's message. The analyser aggregates these across conversations and identifies which tone patterns correlate with booking or drop-off.

How it works: Tone signal detection tested in the pattern detector suite — tone correlated with booking rate correctly identified.

Minimum sample enforcement

The pattern detector enforces a minimum sample of 20 closed, analysed, non-test conversations per campaign before generating any proposals. Below this threshold, no findings are produced — preventing low-confidence conclusions from influencing campaign configuration.

How it works: Both the engine and the Conversation Intelligence UI enforce the 20-conversation minimum independently.

Want to see what your
conversations are telling you?

We'll run the analyser against a live campaign and show you what the data surfaces.