Vapi voice agent tutorial: setup, test calls and webhooks
Quick answer: follow this Vapi voice agent tutorial by creating an assistant, testing it in the dashboard, connecting a phone number, and checking webhook delivery before adding business actions.
The goal is a small assistant that asks for a fictional caller’s name and reason for calling, repeats the details, and ends without claiming to book anything. Treat the conversation, telephone connection and event delivery as separate checkpoints. Vapi’s official quickstart covers assistant creation, dashboard testing and phone connections.
In my VAPI voice agent: setup, test call and webhook checks video, I connect an assistant to Make and a Twilio number, receive a call, and later receive an end-of-call webhook. That recording does not establish a completed calendar booking or a correctly matched spreadsheet update.
Vapi voice agent tutorial: account and assistant setup
Create or sign in to a Vapi AI account through the dashboard linked in the assistant quickstart. Open Assistants and select Create Assistant for a blank configuration. Add a First Message and System Prompt. The first is the opening greeting; the second defines the role and conversation instructions.
Vapi’s standard pipeline has three parts: the transcriber converts speech to text, the model generates a response, and the voice converts that response to audio. These components are interchangeable, as explained in Core models.
For this exercise, select Balanced under Model Presets. To change a component, use the pencil icon on its panel and choose the provider or model from the settings dropdown. Review all three panels before publishing. Vapi documents this process in Model Presets; there is no need to copy an older video’s exact model names.
Use this original practice greeting: “Hello, this is a practice assistant for Cedar Workshop. What name should I use?” Then give it a narrow brief:
You are Cedar Workshop’s practice intake assistant.
Ask for the caller’s name and the reason for calling.
Collect one detail per turn. Use short, ordinary sentences.
Repeat both details and invite corrections.
If asked about availability or prices, say those details are unknown.
Do not claim to reserve a slot or update any external system.
After confirmation, thank the caller and say goodbye.
Write down the expected result before testing: the corrected name and request should appear in your review notes, and the assistant should make no booking promise. This gives you a concrete basis for deciding whether a prompt change helped.
Test a call in the dashboard
Select Publish, review the changes and version settings, then complete publication. Select Talk and allow microphone access to start the web call. These are the current controls in the quickstart.
- Give a fictional name and a simple request, such as asking about a repair.
- Correct the name after the assistant repeats it.
- Ask for an appointment tomorrow. It should explain that availability is unknown.
- Say goodbye, end the call and compare the conversation with your brief.
Open Logs → Calls to review the available transcript and errors. Vapi recommends dashboard testing to remove phone-network variables from diagnosis in its debugging guide. If the name was transcribed incorrectly, investigate speech recognition; if the transcript was correct but the response was wrong, inspect the instructions and model behavior. Change one thing, then repeat the same phrases.
Connect a phone number and repeat the test
Open Phone Numbers → Create Phone Number → Free Vapi Number, enter a supported US area code, and create the number. Once active, select your assistant under Inbound Settings and save. Vapi says activation can take a few minutes. Its phone-number guide states that free numbers are US numbers for inbound calls, and that calls still consume credits.
Call the assigned number from your own phone and repeat the practice conversation. Record whether you heard the intended greeting and whether the correction survived. This is a separate check from the dashboard test: keep both results.
For outbound calling, import a supported provider’s number instead. The quickstart lists Twilio, Telnyx and DIDWW. Start with one destination you control, as in the recorded walkthrough, before attempting any larger workflow.
Set the server URL and inspect events
Prepare a test endpoint that records incoming requests. On the assistant, open Advanced → Webhook Server, enter its Server URL and configure the required authentication credential and headers. Publish the change. Vapi’s server URL documentation also explains precedence: a relevant tool URL takes priority, followed by assistant, phone-number and account URLs. Check that an older configuration is not directing events elsewhere.
Vapi sends server events as POST requests with a top-level message object. Inspect message.type and the call object. A status-update describes call state; an end-of-call-report provides end-of-call details and available artifacts. These payloads are documented in Server events. Do not assume every event has the same fields.
Run another short call and hang up. In Logs → Webhooks, filter by event type and call ID, then open the delivery. Review the Request and Response tabs and correlate the identifiers with your endpoint’s log. A 2xx response indicates the server accepted the delivery, according to Webhook logs.
For this exercise, acceptance means you can identify the call and read its delivered event. If you later add a spreadsheet or calendar action, keep a separate check for the destination record. Carry a stable record identifier through your workflow and compare the final record with the caller’s corrected details. A successful HTTP response alone does not validate that mapping.
Understand the officially documented costs
As of October 23, 2026, Vapi pricing lists prepaid usage with a $0.05/minute hosting fee and $5 in starting credits. The hosting fee is only one part of the bill. Pricing and Success Packages describes additional model, voice, transcriber and telephony costs; optional packages do not replace usage charges, and legacy customers retain their existing terms.
Use the pricing calculator with your selected components, then inspect a completed call’s Call Cost tab when available. Vapi’s cost documentation explains why displayed estimates are not exact quotes: prompts, tool definitions and how much the assistant speaks affect component usage. Keep the duration and configuration alongside each test’s cost so you can compare like with like.
Troubleshoot the failed checkpoint
- No dashboard audio: confirm microphone access was allowed, then repeat the Talk test.
- Wrong words or answers: compare transcript and response before changing settings, following Vapi’s debugging guide.
- Phone does not answer: check number activation and the saved inbound assistant assignment in the number setup.
- Webhook rejected: inspect authentication for 401/403 responses and the URL path for 404 responses; inspect server errors for 5xx. A missing log can also reflect retention settings. See webhook diagnosis.
Stop expanding the build until you can reproduce a successful conversation, telephone call and event delivery. Save the configuration and test notes together. Those three checks are a useful first milestone; a customer-facing workflow needs its own checks for each action it performs.
FAQ
Do I need a phone number for the first test?
No. Use Talk in the assistant dashboard to start a web call and allow microphone access.
Which model, voice and transcriber should I choose?
Start with the Balanced preset, then change one component at a time and repeat the same test conversation.
Can a free Vapi number make outbound calls?
No. Free Vapi numbers support inbound calls only; outbound calls require an imported number from a supported provider.
Is $0.05 per minute the total cost?
No. That is the Vapi hosting fee on usage-only pricing; model, voice, transcriber and telephony costs also apply.
Does a successful webhook mean an appointment was booked?
No. It establishes delivery to your endpoint; verify the booking separately in the destination calendar.
Sources
Official references checked as of October 23, 2026; pricing and dashboard controls can change.