Nobody likes calling the cable company. You sit on hold, explain yourself twice, get transferred, and then have to decide on the spot whether the "special offer" is any good.

My internet bill had crept up to $86.54 a month, so I had a good reason to find out whether an AI voice agent could make that call for me. It mostly could, with me watching, and I closed the deal myself. Here's what I built, what went wrong, what it saved, and how I kept it on a short leash.

The setup: a phone line, a voice model, and me in the loop

The system has three pieces:

How I supervised it

I didn't want an agent I couldn't see or stop. An agent negotiating on your account is acting with your authority, so I set it up to work for me, not instead of me.

Before the call, it got hard limits:

During the call, I was watching:

At the end, I made the call:

And it was honest with the other side:

That's the whole arrangement. The agent did the dialing, the waiting, and the negotiating. I kept the judgment calls. And honestly, those limits mattered more than anything in the prompt. The goal is to save money without accidentally changing something you can't undo.

What went wrong, and what I fixed

The first attempts didn't go well. These lessons are the most useful part of the project:

1. Timing matters. My first tries were in the evening, and they failed because the retention department was closed. Retention is where the real offers live. A tireless agent doesn't help if the people it needs to reach have gone home.

2. Caller ID matters. I bought a local 925-area-code number for the agent to call from. An unfamiliar out-of-area number is a bad start when you want to sound like a normal customer.

3. Silence on hold isn't a cue to talk. Early versions narrated the hold time, filling dead air with commentary nobody needed. I stopped that and added a speak-on-demand mode, so the agent stays quiet until a real person picks up or I tell it to speak.

4. One small bug can cost you the ending. At the very end of the call, a keypad-tone (DTMF) bug dropped the line, which is the worst possible moment for a disconnect. Luckily, the Xfinity rep called me back, and I finished the deal myself on that callback. The agent had already done the long hold and the negotiating; I just closed it. I've since fixed the bug.

5. Hold time costs money. The successful call lasted about an hour and 45 minutes, and most of it was hold. A voice model bills while it listens to hold music, and my AI credits ran out before I could make a second call. If you build one of these, budget for the waiting, not just the talking.

The result

Here's what came out of that long call and the rep's callback:

That's a bill cut by about 40%: $35 a month, or about $2,100 over five years. And the connection is twice as fast.

What this taught me about AI agents

The interesting part isn't that an AI can talk on the phone. It's what made this one work:

Next up: the mobile bill

I'm not done. My mobile bill recently jumped from $123.65 to $166.28 a month. That's the next call. I haven't made it yet, so I don't have a result to share. When I do, I'll write it up here, good or bad.

If you manage a team, or just your own bills

Most of us have a list of calls nobody wants to make: vendors, renewals, billing disputes, appointment confirmations, follow-ups. Those are good candidates for an AI voice agent, as long as you build it with oversight, clear limits, and realistic expectations about cost and edge cases.

The win here wasn't only the $35 a month. The agent did the dialing, the waiting, and the negotiating for an hour and 45 minutes. I kept an eye on it, made every decision, and closed the deal myself on the callback.

Let's talk

This is the kind of work I do at AWH Industries: practical AI agents and automation, set up with guardrails so a person stays in charge. If there's a phone task or workflow eating your team's time, get in touch and we'll figure out together whether an agent makes sense for it.

Andy Halvorsen, AWH Industries