Customer service is quietly becoming a different job than it was two years ago. I wanted to see how far I could push it myself, so I sat down with Vapi and built two AI voice agents from scratch. One handles support questions for a fake tea company. The other books real repair appointments on my actual Google Calendar. Both talked to me on the phone like a real agent would, and both broke in small, telling ways along the way.

Why I picked Vapi for this test

I started with Vapi because it lets you get going for free and because the dashboard shows exactly what you're paying before you commit to anything. Vapi ships with a default assistant called Raleigh that costs 15 American cents a minute on the GPT4o cluster, and the dashboard shows latency right next to the price, so I could compare cost against speed before building anything of my own.

I clicked into assistants, saw Raleigh sitting there by default, and started poking at the configuration. First message mode controls whether the agent speaks first or waits for the caller. The assistant prompt is the real engine of the whole thing: identity, persona, rules, everything that decides whether the call feels like a real business or a broken script.

Building Atlas, my first support agent

I named my first agent Atlas and gave it a persona: customer support specialist for an imaginary tea company called Eden Supply. I wrote a policy and FAQ document for Eden Supply, uploaded it under files, and attached it to Atlas so the agent could pull answers straight from the document instead of guessing.

When I called Atlas as a customer named Marcus, I asked about shipping to Australia, refund processing time, tracking, and cancellation windows. Every answer came back accurate: refunds in five to seven business days, tracking numbers by email, a twelve hour cancellation window. The transcript showed the agent calling a query tool behind the scenes to check the document before each answer.

One thing went wrong immediately, and it's a mistake worth flagging. I renamed the agent from Alex to Atlas but forgot to update the opening line, so the agent introduced itself as Alex on the call. Small detail, but it's exactly the kind of gap that makes an AI agent feel sloppy to a real caller.

Building Polaris, an agent that books real appointments

The second agent, Polaris, worked for a fictional repair shop called Pixel Nest and had a much bigger job: check calendar availability and book real appointments in Google Calendar. I copied Atlas's prompt into ChatGPT, described Polaris's job and her two tools, and asked for a prompt that also told her today's exact date, since a caller asking for an appointment today needs the agent to know what today actually is.

I connected the Google Calendar integration inside Vapi, then built two tools: one to check availability, one to create events. Once both were attached to Polaris and published, I called her as Marcus and asked to book a phone repair. She walked through the issue, found me fully booked at 11am, offered 1pm instead, confirmed my name letter by letter, confirmed my email letter by letter, and booked it.

Here's the catch. The booking didn't show up in my calendar right away. I dug into call logs, saw the tool had fired correctly, and eventually found the real problem: my Google Calendar was set to United States time while Vapi was configured for Sydney, Australia. Once I matched the time zones, the appointment appeared, though everything already on my calendar shifted too. If you're setting this up, fix your calendar's time zone before you build anything else.

Sending call data into n8n

After the call works, you want the data somewhere useful. I set up structured data output in Vapi asking for customer name, email, phone number, appointment type, and booking time after every call, adding a property for each field.

Then I built a workflow in n8n with a webhook trigger, pasted the webhook path into Vapi's advanced messaging settings, and turned off every server message except end of call report. On the next test call with Polaris, the structured data landed in n8n exactly as specified. From there I added a Google Sheets node to append each call as a row, dragging in customer name, email, appointment date, phone number, and the call summary. You could just as easily plug in a Gmail or Telegram node so you get a notification the moment a real call comes in.

What this means for customer service right now

The economics behind this are hard to argue with. AI resolutions average $0.62 versus $7.40 for a human agent across a McKinsey sample, with voice AI landing at $1.18. That's not a small saving, that's a different cost structure for the whole department.

Speed tells the same story. Response times drop from something like 6 hours to 4 minutes with AI in place, and a lot of small businesses are leaking revenue right now because 60 to 80% of their calls go unanswered. An agent like Polaris fixes that specific problem overnight.

But resolution quality still depends heavily on what's being asked. Median tier-1 deflection sits around 41.2% across enterprise programs, and refund or password reset questions deflect at 70% or higher. Nuanced complaints rarely break 25%. Simple and repeatable, AI handles it well. Anything emotional or messy, it still struggles.

Trust hasn't caught up either. 79% of Americans still strongly prefer a human, and 31% explicitly mistrust AI on anything touching money or account changes, a number that hasn't moved in two years. People will happily let a bot check a tracking number. They don't want it near their bank details without a human somewhere in the loop.

Klarna is the case everyone points to now. In February 2024 Klarna said its AI assistant did the work of 700 agents, handling 2.3 million conversations a month and cutting resolution time from 11 minutes to under 2. Fourteen months later, CEO Sebastian Siemiatkowski told Bloomberg that cost had become too dominant a factor and quality had slipped, and the company started rehiring humans under what he called an Uber-type model. By mid-2026 Klarna had settled into a hybrid: the chatbot still handles two-thirds of inquiries, cost per transaction dropped 40% over two years, and human service is positioned as something closer to a VIP option.

That's the pattern I saw in miniature with Atlas and Polaris. The AI handles the repeatable stuff fast and cheap. The moment something needs judgment, a time zone mismatch, a mistyped name, a caller who isn't sure what's wrong with their device, you still need a human checking the seams.