Guides
Step-by-step guide to building an AI receptionist that answers inbound calls, routes callers to the right department, handles after-hours inquiries, and takes messages — using Thoughtly's Agent Builder, Transfer nodes, Outcomes, and Genius knowledge base.
Last updated
Every missed call is a missed opportunity. For law firms, dental practices, insurance agencies, home services companies, and real estate offices, the front desk is the first — and sometimes only — impression a prospect gets. If nobody picks up, the caller moves on to the next listing.
An AI receptionist answers every call, identifies what the caller needs, routes them to the right person, books appointments, takes messages, and handles after-hours inquiries. No hold music. No voicemail black hole. No staffing gaps.
This guide walks you through building a fully functional AI receptionist in Thoughtly, step by step. You will use real product features — the Agent Builder, Speak nodes, Transfer nodes, Outcomes, Genius knowledge base, and phone number deployment — to create a receptionist that handles inbound calls the way your best front-desk person would, except it never takes a lunch break.
Open the Agent Builder and create a new agent. Give it a descriptive internal name — something like "Main Line Receptionist" or "Front Desk - Downtown Office" — so your team can identify it later.
Write the Start node greeting. Everything in the Start node is spoken verbatim, so proofread it carefully. Keep it short — under three sentences — and mention your business name so the caller knows they reached the right place.
Example greeting for a dental practice:
Hi, thanks for calling Bright Smile Dental. My name is Sarah. How can I help you today?If you need a legal disclaimer or recording consentRecording consentState-by-state legal requirement to disclose call recording. Some states require all-party consent; Thoughtly enforces the right script per state. line, include it in the Start node so it is delivered consistently on every call.
After the greeting, your receptionist needs to figure out why the caller is calling. This is where Speak nodes and prompt-based Outcomes work together.
Add a Speak node (Prompt mode) after the Start node. The prompt should instruct the agent to listen to the caller's response and identify their intent. Keep the prompt short and goal-oriented:
Listen to what the caller needs. If they want to schedule an appointment, get pricing, speak to a specific person, or have a general question, identify that intent. Keep your response brief and helpful.Now add prompt-based Outcomes to this node. Open the node, scroll to Outcomes, and click Add outcome. Each outcome represents a caller intent your receptionist can handle:
Make your outcome labels distinct and concrete. Avoid overlapping labels like "Positive" and "Very positive" — the AI needs clear separation to route correctly. Each outcome branches to a different part of your flow.
For callers who need a human, use Transfer nodes. Thoughtly offers two transfer modes:
For each routing destination, create a Transfer node and connect it to the appropriate Outcome from Step 2.
Example department routing for a home services company:
| Caller Intent | Transfer Mode | Destination |
|---|---|---|
| Schedule service appointment | Agent Transfer | Scheduling Agent |
| Emergency repair | Phone Router | On-call dispatcher |
| Billing question | Phone Router | Billing department line |
| Speak to a technician | Phone Router | Service manager cell |
| General question | None (handled by Genius) | Stay in current agent |
Add a pre-transfer message to each Transfer node so the caller knows what is happening. This message is spoken exactly as written, so keep it natural:
Let me connect you with our scheduling team. They will be able to find a time that works for you. One moment please.Important: Each phone number can only serve as inbound for one agent. If you need routing logic across multiple agents, use Transfer nodes within a single receptionist agent rather than assigning the same number to multiple agents.
Callers do not stop calling at 5 PM. Use Thoughtly's time-based routing to detect the current time on each inbound call and adjust behavior accordingly.
There are two approaches:
For most small and mid-size businesses — insurance agencies, dental offices, law firms — the single-agent approach is simpler and easier to maintain. Reserve the multi-agent setup for organizations with fundamentally different after-hours workflows.
Your after-hours branch should:
Many callers just want a quick answer: office hours, directions, pricing, whether you accept their insurance. Instead of routing these to a human, let the agent answer directly using a Genius knowledge base.
Create a Genius database and populate it with Q&A pairs. Use a strict question-and-answer format — this gives the retrieval system the best accuracy:
Q: What are your business hours?
A: We are open Monday through Friday from 8 AM to 6 PM, and Saturday from 9 AM to 1 PM. We are closed on Sundays.
Q: Where are you located?
A: Our office is at 4521 Elm Street, Suite 200, in Riverside. There is free parking in the lot behind the building.
Q: Do you accept Blue Cross Blue Shield insurance?
A: Yes, we accept Blue Cross Blue Shield, Aetna, Cigna, and UnitedHealthcare. For other plans, please call and we will verify your coverage.
Q: How much does an initial consultation cost?
A: Initial consultations are $150, or free for patients referred by an existing client. We also offer virtual consultations for $75.Navigate to the Genius tab in your agent's Settings and attach the knowledge base. Changes take effect immediately — no restart needed.
Keep Genius entries concise and current. Remove seasonal or outdated information regularly. Incorrect hours or pricing will erode caller trust faster than a missed call.
When a caller asks for a specific person who is unavailable, the receptionist should take a message rather than dead-ending the call. Build a message-taking branch in your flow using a Prompt Speak node:
The person the caller is trying to reach is not available right now. Collect the caller's name, phone number, and a brief message. Repeat the information back to confirm accuracy. Let them know someone will return their call within one business day.Use Variables to extract the caller's name, phone number, and message from the conversation. Then use a post-call Automation with the On Call Completed trigger to deliver the message — push it to Slack, email, your CRMCRMThe system of record for leads, contacts, deals, and activity. Thoughtly reads from and writes to your CRM continuously., or a webhook endpoint.
For teams that use a CRM like HubSpot or Salesforce, configure an Action to create a task or note on the contact record so the message appears in the rep's workflowWorkflowAn automated, multi-step process — usually triggered by an event (form fill, new lead) and orchestrating one or more voice / SMS / email actions., not buried in an inbox.
Your receptionist agent needs a phone number. You have three options, all covered in the deployment docs:
Assign the phone number as the Inbound Profile for your receptionist agent in the Phone Numbers section. Confirm the assignment — each number can only route inbound calls to one agent.
If you want the receptionist to send SMS confirmations or follow-up texts, assign the same number as the SMS Profile as well.
Use Thoughtly's built-in testing tools before routing real callers to your new receptionist:
Test each branch of your flow independently. Verify that:
Track these metrics after your AI receptionist goes live:
| Metric | What It Tells You | Target |
|---|---|---|
| Call answer rate | Percentage of inbound calls the agent picks up vs. goes to voicemail | 99%+ (no staffing gaps) |
| Correct routing rate | How often the agent sends the caller to the right department or person | 90%+ within first two weeks |
| Average handle time | How long the agent takes to identify intent and route or resolve | Under 90 seconds for routing calls |
| Genius resolution rate | Percentage of FAQ-type calls resolved without a human transfer | 40-60% for general business lines |
| Message completion rate | Percentage of message-taking calls where all fields are captured | 95%+ |
| After-hours capture rate | Percentage of after-hours calls that result in a message or callback booking | 85%+ |
Review call history weekly for the first month. Look for patterns in misrouted calls and unclear intent detection, then adjust your Outcome labels or add new branches.
Yes. You can assign different phone numbers to different receptionist agents — one per location — or use a single agent with rule-based Outcomes that branch based on the dialed number or caller area code. For multi-location franchises, separate agents per location is usually cleaner because each location may have different staff, hours, and services.
The agent will rely on its Speak node prompts and conversation flow. If it cannot answer confidently, design a fallback Outcome that offers to take a message or transfer to a human. This prevents the agent from guessing or making up information.
Yes, if you connect a scheduling integration like Calendly or Cal.com. The agent can check real-time availability and book the appointment during the call using a mid-call Action. For a detailed walkthrough, see How to Build an Appointment-Setting AI Agent.
Create a separate receptionist agent with Spanish language settings and a matching voice. Use an Automation or a language-detection node in your primary agent to transfer Spanish-speaking callers to the Spanish agent. Each language agent should have its own Genius knowledge base with translated content.
Disclosure requirements vary by jurisdiction and industry. Some states and regulatory frameworks require AI disclosure at the start of the call. Check your local regulations and, when required, include a disclosure line in your Start node greeting. When in doubt, disclose — it builds trust and rarely hurts conversion for receptionist-type calls.