Guides
Set up a Thoughtly AI voice agent that qualifies inbound leads, identifies high-intent callers, and transfers them to human reps with full conversation context — so the rep never starts from scratch.
Last updated
The gap between qualifying a lead and connecting them with a human rep is where deals go to die. An AI agent can identify a high-intent caller in under a minute — someone ready to bind an insurance policy, lock a mortgage rate, or schedule a home services estimate — but if the handoff drops context, the rep starts from scratch, the caller repeats themselves, and the conversion window shrinks.
Thoughtly's early summaries solve this by generating a structured call summary before the transfer happens. The human rep picks up the phone knowing who the caller is, what they need, why they qualified, and what the agent already covered. No more "Can you start from the beginning?"
This guide covers the full setup: capturing qualification signals mid-call with variables, routing high-intent callers through outcomes, configuring transfer nodes with pre-transfer messages, enabling early summaries, and wiring post-transfer automations to log everything in your CRMCRMThe system of record for leads, contacts, deals, and activity. Thoughtly reads from and writes to your CRM continuously..
Before you start, make sure you have:
If you haven't built an agent yet, start with How to Build a Speed-to-Lead AI Agent with Thoughtly first.
Before your agent can route anyone, it needs to know what "hot" means for your business. In Thoughtly, variables capture specific data points from the conversation that you use for routing decisions downstream.
Open your agent in the Agent Builder, click into a Speak node, and scroll to the Variables panel. Click Add variableVariableA named value the voice agent stores during a conversation — caller name, intent, qualifying answers — and uses to drive routing and post-call actions. for each qualification signal you want to capture.
What to extract depends on your vertical:
For each variable, configure four fields:
The key variable for routing is often a boolean like hot_lead or ready_to_talk_to_rep. Set its extraction instructions to derive the value from combined signals: "Return true if the caller has stated a timeline within 30 days AND has confirmed they are the decision-maker. Otherwise return false."
Variables extract immediately after the caller's latest reply and before outcome evaluation, so your routing logic always works with fresh data.
Outcomes tell your agent where to go after each conversation turn. For hot-lead routing, you need outcomes that branch the conversation toward a transfer node when qualification criteria are met.
Open a Speak node in the Agent Builder, scroll to Outcomes, and click Add outcome. You have two options:
Rule-based outcomes work best for hard thresholds. If your hot-lead definition is clear-cut — say, urgency_level equals "immediately" and estimated_value is greater than 50,000 — use rules. They are deterministic and predictable.
Prompt-based outcomes work for softer signals. If you need the agent to interpret intent — "The caller sounds ready to commit but hasn't explicitly said so" — prompt-based outcomes let the AI decide. Write the prompt clearly: "Route to transfer if the caller has expressed clear intent to proceed within the next 30 days and has answered all qualification questions without major objections."
For most lead-conversion workflows, the pattern looks like this:
The goal is to reach a routing decision in 60 to 90 seconds. Callers who are ready to buy do not want a ten-minute screening interview.
When an outcome routes to a Transfer node, the caller gets connected to a human. Thoughtly offers two transfer modes:
Transfers the caller to a specific phone number. Use this when you are routing to a sales team queue, a specific rep's direct line, or an external call center.
Configure the Phone number field with your destination. You can use static numbers or dynamic variables — for example, routing to different numbers based on the caller's location or the type of coverage they need. The optional Extension field supports both static text and variables for destination phone systems that require an extension.
Phone numbers are validated in real time using country-aware formatting rules. If you use variables in the phone number field, validation is bypassed — make sure the variable produces a valid number at runtime.
Connects the caller to another Thoughtly agent in your account. Use this when you want a specialist agent to handle a deeper conversation — like a detailed quote walkthrough or a compliance-heavy intake — before the lead reaches a human. The current agent session ends when the transfer begins.
Both transfer modes support a pre-transfer message: what the agent says to the caller before the handoff. This is critical for setting expectations and maintaining trust.
Good example: "Based on what you've shared, I'd like to connect you with one of our licensed agents who can walk you through your options and get you a quote today. Let me transfer you now — they'll have all the details from our conversation."
Weak example: "Transferring now." This is too abrupt, and the caller does not know what to expect.
The pre-transfer message must be at least 80 characters. Keep it warm, specific, and honest about what happens next. The caller should feel like the transition is intentional, not a dead endDead endA conversation node with no valid next step. Avoid by designing for unexpected inputs and graceful fallback..
This is the step that makes the handoff actually useful. Without early summaries, the human rep answers a transferred call with zero context — they do not know who is calling, what was discussed, or why the caller was routed to them.
Early summaries generate a structured summary before the call transfers. When enabled on a Transfer node:
To enable early summaries, open your Transfer node in the Agent Builder and turn on the early summary option. The summary draws from the full conversation context and all variables captured during the call.
For warm transfers, this means the rep can greet the caller by name and reference what they already discussed: "Hi Sarah, I see you're looking at refinancing your property on Oak Street — let me pull up some rate options for you." That kind of continuity converts.
Early summaries also work on End nodes. If you want to generate a summary before the call ends — for example, to push to your CRM immediately rather than waiting for standard post-call processing — enable early summaries on the End node. This is useful for logging urgent cases even when a live transfer is not the right next step.
Even after the transfer happens, you want the data from the AI conversation to flow into your systems. Thoughtly Automations handle this with the On Call Completed trigger.
Go to Tools → Automations and create a new automation. Select Thoughtly → On Call Completed as the trigger. Choose the specific agent (or All Agents) that should fire this automation. See the Automations documentation for the full setup walkthrough.
The On Call Completed trigger provides rich call data: duration, outcomes, all captured variables, the full structured transcriptTranscriptThe text record of a voice conversation, used for review, training, compliance audit, and search., transfer status, and voicemail detection. Use this data to build post-transfer workflows:
Set up the automation in Draft mode first. Fire a test call, click Refresh on the Output tab to confirm the schema, and verify your field mappings. Only switch to Live when everything checks out.
Thoughtly provides two testing modes, and you should use both in order.
Test Agent (text chat): Run through the qualification flow in the text chat window. Verify that variables extract correctly, outcomes route to the right nodes, and the transfer path is reachable. Text testing is faster and lets you iterate on prompts and extraction instructions without burning phone minutes.
Call Me (real call): Once the text flow works, place a real call. Verify the voice experience: does the pre-transfer message sound natural? Does the transfer connect? Does the early summary populate? Check your CRM and Slack to confirm the post-call automation fired correctly.
Test with different caller profiles to stress the routing logic:
Putting routing logic in the advanced prompt. The advanced prompt sets persona and tone — it is not the place for routing decisions. Use outcomes for routing. Outcomes are deterministic and reliable; advanced-prompt instructions may or may not be followed consistently.
Skipping early summaries. Without them, the transfer is a blind handoff. The rep has no context, the caller repeats themselves, and the conversion advantage of fast qualification evaporates.
Transfer messages that are too short. Transfer nodes require at least 80 characters. More importantly, a terse "Let me transfer you" does not set expectations. Tell the caller who they are being connected to and why.
Using legacy post-call settings instead of automations. Post-call settings (email notifications, disposition) are being deprecated in favor of Automations with the On Call Completed trigger. Automations are more flexible, support conditional logic, and integrate with your full CRM and notification stack.
Trying to qualify everything in one node. Spread qualification across two to four speak nodes with focused questions. Each node captures one or two variables. Stacking five variables on a single node makes extraction unreliable and the conversation feel like an interrogation.
Not testing with real calls. Text chat testing catches flow errors, but voice testing catches timing, pronunciation, and transfer-connection issues. Always run at least three real call tests before going live.
Track these metrics to know whether your hot-lead routing is working:
Yes. Use variables to capture the routing signal (like coverage_type or service_area), then create multiple Transfer nodes — each connected to a different outcome. For example: if coverage_type equals "auto," route to your auto insurance team's number; if it equals "home," route to the property team. You can also use variables directly in the Phone Router's phone number field to make routing fully dynamic.
The summary generates before the transfer initiates, so there is no meaningful delay from the caller's perspective. The agent speaks the pre-transfer message while the summary processes, and the handoff happens after both are complete.
The behavior depends on the destination phone system. If the call goes to voicemail on the rep's side, the caller reaches that voicemail. To handle this gracefully, build a post-call automation that checks the transfer outcome and triggers a follow-up: an SMS to the caller confirming someone will call back, and a Slack message to your team flagging the missed transfer.
Yes. Early summaries also work on End nodes. If you want to generate a summary before the call ends — for example, to push data to your CRM immediately rather than waiting for standard post-call processing — enable early summaries on the End node. This is useful for logging urgent or time-sensitive cases.
Monitor your transfer rate and post-transfer conversion rate together. If transfer rate is high but conversion rate is low, your criteria are too lenient — you are sending unqualified leads to reps. If transfer rate is very low but the leads who do get through convert at high rates, you may be over-filtering and leaving revenue on the table. Adjust outcome rules and variable thresholds based on the data.