NNabeel Hassan

Blog · July 18, 2026 · 8 min read

A Voice Agent Is Only Half the Build: The Dashboard and CRM Behind It

By Nabeel HassanAI Engineer · ICPC World Finalist

TL;DR: The voice agent is the part everyone demos, but it is maybe half the actual build. The other half is where the calls land: a CRM that owns the lead, and a client dashboard that lets the business see what the agent did without calling me. At Tested Media I build voice and chat agents on Retell AI for their CallSetter AI product, and wire the whole system together, the Retell agents, a chat-dash client dashboard, and GoHighLevel as the CRM. This is what that back half looks like, and why it decides whether a voice agent survives past the first month.

Most "AI voice agent" content stops at the agent. It talks about prompts, latency, and how natural the voice sounds. All of that matters. But a business does not buy a voice. It buys a system that catches leads and lets them trust it. If the calls disappear into a black box, the agent gets switched off no matter how good it sounds. Here is the layer that keeps it on.

The agent is the front door, not the building

A voice agent has one job on the call: understand the caller, do the thing (book, qualify, route), and end cleanly. Once the call ends, the agent's job is over and a different set of questions starts. Where did that lead go? Did the booking land in the right calendar? Can the business owner see, at 9am on Monday, every call the agent handled over the weekend and what came of them?

If the answer to those is "email Nabeel," the build is not finished. At Tested Media the CallSetter AI product is not a voice agent, it is a voice agent plus a place for the lead to live plus a window the client looks through. I build all three, and I think about them as one system, because the client experiences them as one.

I have written before about keeping the agent's business logic in n8n rather than the voice prompt. This is the same principle one layer up: the agent should be swappable and thin, and the durable value, the leads and the visibility, should live in systems built to hold them.

GoHighLevel as the system of record

Every lead the agent touches ends up in GoHighLevel. Not in the call transcript, not in a spreadsheet, not in the voice platform's own logs. The CRM is the single source of truth, and I wire the agent to feed it, not the other way around.

Why GoHighLevel specifically, for this product? A few honest reasons.

It already holds the pipeline. CallSetter AI is about setting appointments and managing leads through campaigns. GoHighLevel is built for exactly that: contacts, pipelines, opportunities, calendars, and campaign automation in one place. Putting the voice agent's output anywhere else would mean rebuilding half of what the CRM already does.

It closes the loop after the call. A voice agent that books an appointment is useful. A system that books the appointment, drops the contact into the right pipeline stage, fires the confirmation and reminder sequence, and marks the opportunity when it converts, that is a business tool. The agent is one event at the start of a longer automated flow, and GoHighLevel runs the rest.

A2P and messaging live there too. The confirmation texts, the reminders, the missed-call follow-ups all go out through the CRM's messaging with proper A2P 10DLC registration, so they actually get delivered instead of silently filtered. Keeping voice and SMS under one roof means one compliance story, not two.

So the data flow is: Retell agent handles the call, fires the outcome (a new contact, a booking, a qualified lead with its details) into GoHighLevel, and GoHighLevel owns it from there. If we ever swapped the voice platform, the CRM and everything downstream would not notice. That is the point.

The chat-dash client dashboard: the window the client trusts

Here is the piece most builders skip, and the one that decides retention. A business owner cannot log into Retell, and should not have to. They do not care about the voice platform's internals. They care about a small number of things, and they want to see them without asking anyone.

The chat-dash client dashboard is the window I build for exactly that. It gives the client their own view into what the agent is doing, in their language, not the platform's.

What a client actually wants to see

After shipping these I have learned the list is short and consistent:

The dashboard is deliberately not the CRM. GoHighLevel is powerful and, for a busy business owner, overwhelming. The chat-dash view is the curated, client-facing surface: the few things they check, presented simply, pulling from the same source of truth underneath.

Why the dashboard is a trust instrument

A voice agent asks a business to hand over their front line to something they cannot see. That is a genuine leap of faith. The dashboard is how you earn it back. When the owner can watch, on their own screen, the agent catching calls they would have missed and turning them into booked appointments, the abstract fear ("is the robot dropping my customers?") turns into concrete evidence ("it booked nine jobs this week"). No demo does that. Only their own live data does.

This is the same lesson I took from building AR for firefighters: a system that shows its state honestly, including when it is uncertain or when it handed off, is trusted more than one that just insists it is working. Visibility is a feature, not a nicety.

Voice and chat are the same system

CallSetter AI runs chat agents as well as voice, and I build both. The temptation is to treat them as two products. They are not. A caller who books by phone and a website visitor who books by chat should end up in the same pipeline, in the same CRM, visible on the same dashboard. The channel is just the front door; the building behind it is shared.

Practically, that means I keep the outcome model identical across both. A "qualified lead" is the same object whether it came from a voice call or a chat thread, so GoHighLevel and the dashboard do not care where it originated. Build the channels to converge early and the reporting stays simple; let them diverge and you get two half-broken pipelines and a client who cannot tell what is actually happening.

What this means if you are shipping a voice agent

If you are building or buying a voice agent, judge it by the back half, not the demo.

Ask where the leads live. If the answer is the voice platform's own logs, that is a black box with a switch-off date. Insist on a real CRM as the system of record.

Ask what the client sees. A voice agent with no client-facing dashboard is a support ticket generator. Every "how is it doing?" becomes a message to the builder. A dashboard turns that into self-serve trust.

Keep the agent thin. The durable value is the leads, the pipeline, and the visibility. The voice agent is a replaceable front door. Build it so you could swap Retell for something else and the business would keep running. I made the same argument about not locking yourself to one voice platform, and it holds all the way up the stack.

The agent is what gets the applause in the demo. The dashboard and the CRM are what get the renewal. At Tested Media, building all three as one system is the actual product, and it is the difference between a clever voice and a tool a business keeps paying for.


I build production AI voice and chat agents, and the dashboards and CRM plumbing behind them, for startups and service businesses, including the CallSetter AI work I do at Tested Media. If you want a voice agent built as a real system, not just a voice, book a call.

FAQ

Where do leads from an AI voice agent actually go?

In a well-built system they go into a real CRM, not the voice platform's own logs. For the CallSetter AI product at Tested Media I wire every lead the Retell agent touches into GoHighLevel, which becomes the single source of truth: it holds the contact, drops it into the right pipeline stage, and fires the confirmation and reminder sequences. The voice agent is one event at the start of a longer automated flow the CRM runs. If the leads only live in the voice platform's logs, you have a black box with a switch-off date rather than a business tool.

Why does a voice agent need a client dashboard?

Because a business owner cannot and should not log into the voice platform, and without a client-facing view every 'how is it doing?' becomes a support message to the builder. The chat-dash dashboard I build gives the client their own window: calls handled, what came of them (bookings, qualified leads, escalations), the leads themselves, and a way to spot a problem. It is deliberately not the raw CRM, which is overwhelming, but a curated surface pulling from the same source of truth. Most importantly it is a trust instrument: watching their own live data catch calls they would have missed turns an abstract fear into concrete evidence.

Should voice and chat agents share the same CRM and dashboard?

Yes. A caller who books by phone and a visitor who books by chat should end up in the same pipeline, in the same CRM, on the same dashboard. The channel is just the front door; the building behind it is shared. Keep the outcome model identical across both, so a qualified lead is the same object regardless of where it came from. Build the channels to converge early and reporting stays simple; let them diverge and you get two half-broken pipelines and a client who cannot tell what is happening.

Building something in this space?

I take on AI-agent, automation and product work directly — scoped fast, shipped fast.

Book a discovery call →

Keep reading