Skip to main content

Difference between qualified, escalated, and recovered contacts

This article describes the states of leads and conversations: Qualified, Escalated, and Recovered. It provides definitions and a journey example to improve commercial management.

Nahuel Gomez avatar
Written by Nahuel Gomez
Updated over a week ago

✅ Qualified

Session.forwarded becomes "qualified" when it meets certain criteria and is considered a valid and useful transfer within the conversation flow — that is, after the AI has done its qualification or prior data-collection work.

📋 When is it considered qualified?
An escalated session is considered qualified if:

  • The AI collected all the information required by the conditionals (for example: name, email, reason for contact, etc.).

  • The criteria of the current state were met before moving to the transfer state (next_flow).

  • The escalation state was reached after meeting conditions, not due to abandonment, anger, or error.

Typical example:
The AI asked for the name, email, and reason for contact. The customer answered everything correctly. Then they asked to speak with a human. That is a "forwarded qualified".


📈 Escalated

An escalated session.forwarded is a conversation that was automatically escalated by the AI due to critical behavior, customer frustration, offensive language, or an explicit request to speak with a human — and this happened before the flow’s objectives were met.

🔥 When is an escalation triggered?
This occurs when the AI detects any of these scenarios:

  • The customer is upset or angry
    e.g., “This doesn’t work,” “I want to cancel now,” “this is garbage.”

  • The customer insults or uses aggressive language
    e.g., “you’re useless,” “I don’t want to talk to a robot.”

  • The customer asks to speak to a human directly
    e.g., “I want to talk to someone,” “is anyone there?”, “can you transfer me?”

  • Custom escalation conditions
    (Configured in the agent’s escalation state).


🔄 Recovered

What does it do?
Allows recovering sessions that were unqualified and not escalated at the moment of closure, automatically transferring them to a representative if they meet predefined conditions. The end customer is not notified.

Important: adjust session_inactivity_timeout to control how quickly inactive sessions are closed.

Limitation: not supported on Instagram (it’s not possible to request a phone number after closure).

How it works (in simple terms)

  • When the session is closed, the Agent evaluates recovery conditions.

  • If any condition is met (OR logic), the conversation is transferred.

  • The destination is defined with rep_round.

  • Darwin 2.0: the destination is an Escalation stage in a Pipeline (not a direct “Rep/Team”).

What you can condition

  • minimum_human_interactions: minimum number of human messages required.

  • smart_fields: rules about fields (operators: is, is_not, contains, greater_than_or_equal, in, etc.).

  • tags: all specified tags must be present.

  • min minutes since last human activity: only recover if X minutes have passed since the last human activity (max 7 days / 10080 minutes).


Did this answer your question?