Tutorials
Hands-on guides that walk you through common workflows from start to finish.
Tutorial 1: Setting Up a Sales Cold-Calling Agent
A well-configured sales agent can qualify leads, handle objections, and book follow-up meetings without human intervention. This tutorial walks you through creating one from scratch.
Step 1 — Define the Goal
Before you write a single word of your system prompt, decide what success looks like for each call. Common goals for cold calling include booking a demo, qualifying the prospect against a checklist (budget, authority, need, timeline), or simply confirming interest so a human rep can follow up.
Step 2 — Write the System Prompt
Your system prompt is the single most important factor in agent performance. Include the following sections:
- Identity — Who the agent is, what company it represents, and why it is calling.
- Value proposition — A one-sentence benefit statement the agent can deliver early in the conversation.
- Qualifying questions — List three to five questions the agent should ask, in order.
- Objection handling — Provide scripted responses for the most common pushbacks: "I'm not interested," "Send me an email," "I'm busy right now," and "How much does it cost?"
- Boundaries — Instruct the agent on what it should never do (e.g., never make up pricing, never guarantee specific results, always offer to schedule a callback if the prospect is busy).
Step 3 — Choose a Voice
For sales, choose a voice that sounds confident and approachable. Preview several options. ElevenLabs voices tend to have the most natural inflection. If speed is critical, Vapi built-in voices offer the lowest latency.
Step 4 — Craft the First Message
The first message is what the prospect hears immediately when they pick up. Keep it under 20 seconds. Introduce yourself, state the reason for the call, and ask a permission-based opener. Example: "Hi, this is Alex from Acme. We help companies like yours cut scheduling overhead by 60 percent. Do you have a quick moment?"
Step 5 — Test and Iterate
Use the Test Call feature to call yourself. Try different objections. Review the transcript and adjust your prompt until the agent handles each scenario smoothly.
Tutorial 2: Running Your First Outbound Campaign
Campaigns let you call hundreds or thousands of contacts automatically. The platform handles scheduling, retries, and compliance so you can focus on results.
Step 1 — Prepare Your Contact List
Navigate to Contacts and click Import. Upload a CSV with columns for first name, last name, phone number (E.164 format), email (optional), and company (optional). The system will validate numbers and flag any duplicates or numbers on your Do-Not-Call list.
Step 2 — Create the Campaign
Go to Campaigns and click New Campaign. Give it a name, select the agent that will handle the calls, choose the phone number to call from, and assign the contact list you just imported.
Step 3 — Configure the Schedule
Set a start and end date, calling hours (e.g., 9 AM to 5 PM), and the timezone. CallTone will only place calls during the window you specify. You can also set a maximum number of calls per day and configure retry logic for unanswered calls (e.g., retry up to two times with a four-hour gap between attempts).
Step 4 — Launch
Review the campaign summary and click Start Campaign. Monitor progress in real time from the campaign dashboard. You will see calls queued, in progress, completed, and any that resulted in voicemail or no answer.
Step 5 — Review Results
After the campaign finishes, visit the Analytics page for a breakdown of call outcomes, average call duration, sentiment distribution, and conversion rate. You can export the results as a CSV for your CRM.
Tutorial 3: Automating Appointment Booking
CallTone agents can book appointments directly during a call and send confirmation emails automatically.
Step 1 — Enable Appointments on Your Agent
Open your agent, scroll to Capabilities, and toggle on Appointment Scheduling. This gives the agent the ability to check calendar availability, propose time slots, and confirm bookings during live calls.
Step 2 — Configure Your Calendar
Go to Settings → Appointments. Set your available days and time slots. You can create different appointment types with different durations (e.g., a 15-minute discovery call vs. a 30-minute demo). Buffer time between appointments can also be configured to prevent back-to-back bookings.
Step 3 — Set Up Confirmation Emails
CallTone automatically sends a confirmation email when an appointment is booked. Customize the email template from Settings → Email Branding. You can include your logo, brand colors, and a link to a self-service portal where the customer can confirm, reschedule, or cancel.
Step 4 — Enable Reminders
Turn on multi-channel reminders to reduce no-shows. CallTone can send reminders via email, SMS, or even an automated voice call. Configure when reminders are sent (e.g., 24 hours before and 1 hour before the appointment).
Step 5 — Update Your System Prompt
Add instructions to your system prompt so the agent knows when and how to offer an appointment. For example: "If the prospect is interested, offer to schedule a 15-minute demo. Check available slots and confirm the booking before ending the call."
Tutorial 4: Building a Virtual Receptionist
A virtual receptionist answers inbound calls, routes callers to the right department, takes messages, and operates around the clock.
Step 1 — Create a Receptionist Agent
Create a new agent and toggle on Receptionist Mode under Capabilities. Write a system prompt that greets callers warmly, asks how it can help, and knows how to look up departments and staff members.
Step 2 — Set Up Departments
Navigate to Dashboard → Receptionist and create your departments (e.g., Sales, Support, Billing). For each department, add staff members with their name, role, email, and direct phone number.
Step 3 — Configure Call Routing
When a caller asks to speak with someone, the receptionist agent uses Vapi's transferCall function to connect the caller to the right staff member's phone number. If the staff member is unavailable, the agent offers to take a message instead.
Step 4 — After-Hours Handling
Configure business hours under Receptionist → Settings. During off-hours the agent automatically switches to message-taking mode, collects the caller's name, number, and reason for calling, and notifies the relevant staff member via email or SMS.
Step 5 — Review Messages
All messages taken by the receptionist appear on the Receptionist dashboard with caller details, timestamp, the department they were trying to reach, and the full message. Staff members can mark messages as read or follow up directly.
Tutorial 5: Connecting to Your CRM via API
Sync call data, contacts, and outcomes with your CRM automatically using the CallTone REST API and webhooks.
Step 1 — Generate an API Key
Go to Settings → API Keys and click Create Key. Give the key a descriptive label like "CRM Integration." Copy the key immediately — it will only be shown once. The key is prefixed with vxf_ and should be stored securely in your CRM's environment variables.
Step 2 — Set Up a Webhook
Navigate to Settings → Webhooks and add your CRM's webhook endpoint URL. Select which events to subscribe to — most CRM integrations need call.completed, appointment.booked, and contact.created. CallTone will send a POST request to your endpoint every time a subscribed event occurs.
Step 3 — Verify Webhook Signatures
Each webhook request includes a X-CallTone-Signature header containing an HMAC-SHA256 signature. Verify this signature in your receiving application to ensure the request genuinely came from CallTone and was not tampered with in transit. Your webhook signing secret is available on the Webhooks settings page.
Step 4 — Map Fields to Your CRM
When a call.completed event fires, the payload includes the contact ID, call duration, transcript, AI-generated summary, sentiment, and lead score. Use these fields to create or update a contact record, log the call as an activity, and update the lead status in your CRM.
Step 5 — Pull Data on Demand
In addition to webhooks you can poll the REST API to fetch agents, calls, campaigns, and contacts at any time. This is useful for building dashboards or running batch syncs on a schedule.