Tutorials

Hands-on guides that walk you through common workflows from start to finish.

Back to Documentation

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.