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 CRMCRMThe system of record for leads, contacts, deals, and activity. Thoughtly reads from and writes to your CRM continuously. 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 artificially generated, natural-sounding voice produced by a TTS model. Thoughtly supports a library of AI voices and brand-specific cloning. agents using Thoughtly — from inbound call handling to outbound speed-to-lead workflows, post-call CRM syncCRM syncCRM sync is the two-way flow of lead records, conversation notes, outcomes, and next steps between an AI agent platform and a CRM so human teams inherit current pipeline instead of manual updates., and multi-channel follow-upMulti-channel follow-upA follow-up motion that uses more than one channel — usually voice, SMS, and email — to improve contact rates 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, triggerTriggerThe event or condition that starts an automated workflow, such as a new lead, missed call, CRM status change, calendar booking, or completed call. 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 named value the voice agent stores during a conversation — caller name, intent, qualifying answers — and uses to drive routing and post-call actions. 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 updates.
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 IVRIVRInteractive Voice Response — a phone menu system that routes callers using keypad or spoken inputs. AI agents often replace or augment rigid IVR trees. 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 webhookWebhookAn event-based integration that sends data from one system to another when something happens, such as a form submission, booked appointment, or completed call. 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 flowThe designed path an AI agent follows through greeting, intent capture, qualification, routing, objections, fallback, and next-step confirmation..
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 transcriptTranscriptThe text record of a voice conversation, used for review, training, compliance audit, and search., 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 ideal conversation flow where every input matches expectations and the agent reaches the intended outcome with no 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, latencyLatencyThe delay between a caller speaking and the agent responding. Lower latency makes AI voice conversations feel more natural., 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 sourceThe channel, campaign, marketplace, referral partner, or form that generated a lead. Lead source often determines routing, compliance rules, and follow-up cadence. 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 (TwilioTwilioA cloud communications platform widely used as the carrier layer for voice and SMS. Thoughtly supports Twilio for inbound and outbound traffic./TelnyxTelnyxA telecommunications provider competing with Twilio for cloud-native voice and SMS. Thoughtly supports Telnyx as a carrier.). 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 is the ability to identify when a call reaches a voicemail greeting instead of a live person, then trigger the right message, callback, or alternate-channel follow-up. 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 safe backup path used when the caller says something unexpected, an integration fails, or the agent cannot confidently complete the intended step. 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.