Guides
A complete guide to automating inbound and outbound phone calls with AI voice agents using Thoughtly — from building your first agent to triggering speed-to-lead calls, post-call CRM sync, and multi-channel follow-up.
Last updated
Every inbound lead that goes unanswered for more than five minutes gets dramatically harder to reach. By ten minutes, the odds of qualifying that lead drop by over 400%. Yet most revenue teams still rely on manual dialing, shared inboxes, and CRMCRMA CRM is the system used to manage leads, contacts, accounts, opportunities, activity, ownership, and follow-up. reminders to follow up with form fills, missed calls, and stale contacts.
The goal is not to replace your human team. It's to make sure no lead goes untouched while your reps focus on the conversations that actually need a human — the warm handoffs, the complex negotiations, the relationship-building. AI handles the volume, speed, and consistency; humans handle the nuance.
This guide walks through how to automate phone calls with AI voiceAI voiceAn AI voice is synthetic speech produced by a text-to-speech model, using a selected or cloned voice to speak an agent's generated or scripted response. agents using Thoughtly — from inbound call handling to outbound speed-to-lead workflows, post-call CRM syncCRM syncCRM sync keeps selected lead, contact, conversation, outcome, and next-step data aligned between an agent platform and a CRM., and multi-channel follow-upMulti-channel follow-upMulti-channel follow-up uses more than one communication channel, commonly voice, SMS, and email, after a prospect raises their hand. sequences. Whether you run a mortgage call center, an insurance brokerage, an elective healthcare practice, or a real estate team, the same mechanics apply: deploy an agent, connect a phone number, triggerTriggerA trigger is an event or condition that starts, resumes, changes, or stops an automated workflow. calls from lead events, and let the agent qualify, book, and transfer without human intervention until a warm handoff makes sense.
Thoughtly's Agent Builder is a visual flow editor where you design the conversation your AI agent will have with callers or callees. The builder uses four node types: Start, Speak, Transfer, and End. You connect them using Outcomes — the branching logic that decides where the conversation goes after each node.
The Start node is the entry point. It fires the moment a call connects — inbound or outbound. Keep it short: a greeting, an optional compliance line (consent to record, identity disclosure), and a transition into your first Speak node.
For example, an insurance agency's inbound agent might open with: "Thanks for calling [Agency Name]. This call may be recorded. How can I help you today?" The Start node speaks this verbatim, then hands off to a qualification Speak node.
Speak nodes come in two modes: Message and Prompt. Message mode speaks a fixed string exactly as written — useful for compliance lines, confirmations, and short answers. Prompt mode lets the agent compose a dynamic response using context from variables, actions, and Genius knowledge bases.
For a lead conversion agent, a typical flow looks like this:
Outcomes are the routing layer. After each Speak node, outcomes evaluate what the caller said and route to the next node. You can use prompt-based outcomes (the AI interprets intent) or rule-based outcomes (deterministic checks against extracted variables).
For qualification flows, use rule-based outcomes tied to variables. For example, if your agent collects a variableVariableA variable is a named value captured, calculated, or retrieved during a conversation and reused in logic, messages, actions, or integrations. called intent, you can route to different paths based on its value:
Outcome: "Book appointment"
Condition: intent == "book"
Next node: Schedule node
Outcome: "Transfer to agent"
Condition: intent == "talk_to_human"
Next node: Transfer node
Outcome: "Not interested"
Condition: intent == "not_interested"
Next node: End (nurture)Variables are the extracted facts from the conversation — name, phone, intent, service needed, urgency. Each Speak node can extract variables before outcomes fire. Define clear extraction instructions: instead of "get their info," write "Extract the caller's phone number in +1-555-555-5555 format. If not provided, leave empty."
Variables are immediately available to rule-based outcomes in the same node, and they flow into post-call automations and CRM updatesCRM updatesCRM updates are changes written after or during a conversation, such as status, notes, owner, next step, appointment, or disposition..
Actions run inside Speak nodes — they trigger integrations mid-call. You can look up CRM records, check calendar availability, create or update contacts, send SMS, and fire webhooks. Actions execute after the agent speaks but before outcomes evaluate, so the agent can use action results to branch the conversation.
For example, a mortgage speed-to-lead agent might use a HubSpot lookup action to pull the lead's name and loan type, then reference them in the conversation: "I see you submitted a rate inquiry for a 30-year fixed refinance. Is that still what you're looking for?"
Inbound deployment means connecting a phone number to your agent so it answers incoming calls. You have three options:
Once a number is connected, every inbound call routes to your agent. No IVRIVRIVR, or Interactive Voice Response, is a phone menu that routes or serves callers through keypad entries or spoken choices. menus, no hold music, no queue. The agent picks up on the first ring and starts the conversation you designed.
The same agent handles after-hours calls without any additional configuration. If your team is offline, the agent can still answer, qualify, book appointments on connected calendars, and promise a callback during business hours. This captures leads that would otherwise hit voicemail and bounce.
Outbound calling is where the biggest conversion lift lives. Instead of waiting for leads to call you, Thoughtly's Automations trigger outbound calls the moment a lead event fires — a form submission, a CRM record creation, a webhookWebhookA webhook sends event data from one system to another through an HTTP request when a defined event occurs. from your ad platform, or a scheduled batch.
Automations are deterministic workflows built from Triggers and Steps. A Trigger starts the automation (a new lead, a form submit, a recurring schedule). Steps are what the automation does — call a contact, send SMS, update CRM, branch on conditions.
To automate outbound calls on new form fills:
Map the phone number from the trigger payload using the data picker. For example, if your trigger is a webhook with a phone field, reference it as:
{{ trigger.payload.contact.phone }}Metadata is temporary, per-call context. It doesn't persist on the contact record — it lives only for the duration of the call. Use it for campaign labels, A/B test variants, intent signals, and priority flags.
{"campaign": "summer_promo", "intent": "book_demo", "priority": 2}Inside the agent, reference metadata values using the pattern {{metadata.campaign}} or {{metadata.intent}}. The agent can adjust its conversation based on these signals — for example, opening with a different script for a high-priority lead.
Attributes are persistent facts stored on the Thoughtly Contact record. They survive across calls. Use them for traits you'll reuse: region, plan, lifetime value, VIP status, consent timestamps, last booking date.
Reference attributes inside the agent using {{system.contact.attributes.ATTRIBUTE_NAME}}. For example, if a contact has a VIP attribute set to true, the agent can prioritize them in the conversation flowConversation flowA conversation flow is the designed path through greeting, intent capture, qualification, actions, routing, fallback, and closing..
For bulk outreach — re-engaging stale leads, calling through a purchased list, or running a seasonal campaign — use a Recurring Schedule trigger or a webhook that feeds contacts in batches. The Call Phone Number step calls each number with the selected agent, and you can use Conditions to route outcomes (qualified, not interested, no answer) to different downstream steps.
Every call generates data: the transcriptTranscriptA transcript is the written record generated from a spoken conversation, typically showing what the caller and agent said during a call., the disposition, the variables extracted, the duration, the outcome. Use the On Call Completed trigger in Automations to sync this data back to your CRM and trigger follow-up actions.
After each call, an On Call Completed automation can:
If the call goes unanswered, the agent can leave a voicemail (if enabled in Settings > Voicemail), send an SMS with a callback link, and trigger an email campaign — all from the same On Call Completed automation. This creates a multi-touch sequence without any manual effort.
For answered calls that don't convert, the automation can schedule a callback, add the contact to a nurture sequence, or flag them for human follow-up based on the disposition.
Thoughtly provides two testing tools: Test Agent (text chat) and Call Me (real phone call). Always test in this order.
Test Agent simulates the conversation in a text chat interface. Use it to verify that outcomes route correctly, variables extract properly, and actions fire. Test every path — happy pathHappy pathThe happy path is the ideal route where expected inputs are available and the conversation reaches its intended outcome without detours., objection handling, voicemail, no-answer, and error states.
Once text testing passes, use Call Me to place a real call to your phone number. This validates voice quality, latencyLatencyLatency is the elapsed time between a caller's speech and the agent's response, including listening, processing, tool, network, and speech-generation delays., interruption handling, and the natural flow of the conversation. Test with realistic scenarios — pretend to be a lead with a specific need, try to throw the agent off, and see how it recovers.
If your agent uses metadata or attributes, inject sample values during testing to verify the agent references them correctly. For example, set a test contact with attributes like region and preferred_language, and confirm the agent uses them in the conversation.
Once your agent is live, track these metrics to evaluate performance and identify improvements:
| Metric | What it tells you | Target |
|---|---|---|
| Speed-to-lead (seconds) | Time from form submission to first call | Under 60 seconds |
| Contact rate (%) | Share of outbound calls that reach a live person | 40–60% |
| Qualification rate (%) | Share of answered calls that result in a qualified outcome | 15–30% |
| Booking rate (%) | Share of qualified calls that result in a booked appointment | 30–50% |
| Transfer rate (%) | Share of calls warm-transferred to a human rep | 10–25% |
| Avg. call duration | How long the agent spends on a typical call | 2–5 minutes |
| Voicemail detection accuracy | Whether the agent correctly detects voicemail vs. live answer | 95%+ |
| CRM sync success rate (%) | Share of calls where post-call CRM update completes | 99%+ |
Use Thoughtly's Analytics dashboard to monitor call volume, outcomes, dispositions, and agent performance over time. Filter by agent, date range, and outcome to spot patterns — for example, if qualification rate drops on Mondays, your agent may need a better objection-handling path for weekend leads who've already moved on.
Set up weekly review cadences with your team. Look at calls where the disposition was "no answer" or "not interested" — patterns in timing, script, and lead sourceLead sourceLead source identifies the channel, campaign, marketplace, partner, form, or referral that generated an inquiry. often reveal quick wins. If a particular objection keeps stalling the agent, add a Speak node with a better response path and re-test before pushing live.
Yes. You can port an existing number to Thoughtly, forward calls from your current number, or import a number via BYOC (TwilioTwilioTwilio is a cloud communications platform that provides programmable voice, messaging, phone numbers, and related APIs./TelnyxTelnyxTelnyx is a cloud communications provider offering voice, messaging, phone numbers, and network services through APIs.). Inbound calls to that number will route to your Thoughtly agent.
With an Automation triggered by a form submission webhook, Thoughtly places the outbound call within seconds. Real-time triggers (instant webhooks, HubSpot form submissions) fire almost immediately. Polling-based triggers may have a 1–15 minute delay depending on the source app.
Yes. Thoughtly's voicemail detectionVoicemail detectionVoicemail detection identifies whether an outbound call reached a live person or an answering system, then selects the appropriate next action. is built into the agent settings. When enabled, the agent detects voicemail, plays your configured voicemail message, and ends the call. You can also configure the agent to leave different messages based on the call context using metadata.
The agent will attempt to handle the question using its conversation prompt and any connected Genius knowledge bases. If it still can't answer, route to a Transfer node to warm-transfer to a human rep. Design a fallbackFallbackA fallback is a safe alternate path used when input is unexpected, a tool fails, or the agent cannot complete the intended step confidently. outcome in every Speak node so the conversation never stalls.
Yes. Use Metadata to pass a test variant flag (for example, script_version: "A" or "B") into each call. The agent can reference the metadata value to adjust its opening or qualification path. Track outcomes by variant in your analytics or CRM.
Yes. Use the Send SMS and Send Email steps in an On Call Completed automation to follow up based on the call outcome. You can also build multi-step sequences that branch on disposition — for example, sending a booking link to qualified leads and a nurture email to early-stage contacts.