Prepared in response to your post. The flowchart on the hub page shows the order I'd work in: phone routing first, because every other piece in your scope sits downstream of it.
Everything below is built natively inside your existing agency account. No Zapier, no Make, no third-party subscription.
The thing I'd check first
Three of your four phone symptoms are probably one fault, not three.
When a contact replies STOP — or when any workflow runs an "Add to DND" action — GHL sets DND on that contact. If DND is set on all channels rather than SMS only, the same flag that stops the texts also stops the call from ringing through. So a caller who received your duplicate texts, replied STOP, and then phoned you would show up as exactly what you described: "a legitimate caller automatically blocked or marked as DND."
That gives a clean order of work. Find what is firing the duplicate texts, stop it, clear the DND flags it created, and the "calls not ringing" complaint shrinks to whatever genuine routing fault is left underneath — usually a number not assigned to a user, call forwarding set at the number instead of the user, or notification permissions on the phone itself.
I'd confirm or kill that theory in the first hour, with the contact's DND history and the workflow history side by side, before changing anything.
1. Relevant experience
I build AI-powered sales and operations systems for service businesses — AI voice receptionists, lead qualification, appointment booking, CRM pipelines, automated follow-up, and integrations across GoHighLevel, n8n, Make.com, OpenAI, Twilio and external APIs. The systems I've built have generated over $2.1M in revenue for the businesses running them.
Specific to your four areas:
- GHL phone and LC Phone routing — number assignment, user-level forwarding, call screening and whisper, DND auditing, A2P 10DLC registration, and tracing which workflow sent which message from the contact's own timeline.
- GHL Voice AI agents — knowledge base, qualification fields, a booking action pointed at a live calendar, live transfer to a human, separate business-hours and after-hours call flows, and guardrails against the agent texting people.
- Collective booking calendars — multi-user availability, Google two-way sync, conflict calendars across several connected calendars per user, buffers and notice windows.
- Pipelines and workflow automation — opportunity stages driven by real events rather than manual dragging, and consolidated messaging so a lead can only be contacted once.
2. Estimated hours by task
| Area | Hours | What the hours cover |
|---|---|---|
| 1. Phone system audit and troubleshooting | 7 | Full config audit, DND history review, duplicate-SMS trace, call routing and screening rebuild, spam handling, live inbound tests |
| 2. Shared discovery call calendar | 5 | Collective calendar build, two users connected, five conflict calendars, buffers and notice, double-booking tests from both directions |
| 3. Discovery call pipeline and automations | 9 | Website form connection, pipeline build, team notification, acknowledgment, booking nudge, confirmations and reminders, unbooked follow-up, stage automation |
| 4. AI voice agent | 9 | Knowledge base, greeting and guardrails, qualification fields, booking action, live transfer, after-hours flow, fallback path, test calls and tuning |
| 5. Testing, documentation and handoff | 6 | End-to-end test matrix, recorded walkthrough, written one-pager, live handoff session |
| Total | 36 |
The hours in areas 1 to 4 already include testing of that area. Line 5 is the end-to-end pass across all of them, plus the documentation and the handoff call.
3. Pricing
Fixed price: $2,600, which is what I'd recommend, because it puts the risk of the audit on me rather than on you. The phone troubleshooting is the one piece nobody can size exactly until they're inside the account, and a fixed price means that uncertainty doesn't land on your invoice.
| Milestone | Amount |
|---|---|
| Phone system audit, fixes and routing tests | $520 |
| Shared discovery calendar | $360 |
| Discovery pipeline and automations | $640 |
| AI voice agent, tested | $660 |
| End-to-end testing, documentation, handoff | $420 |
| Total | $2,600 |
Hourly alternative: $70/hour, estimated 36 hours, approximately $2,520. I'd cap it at 40 hours and come to you before going past that, so there's no open-ended meter.
Either way, the price includes a 14-day window after handoff for fixes to anything I built. That isn't ongoing management — it's making sure what I handed over holds up once real calls hit it.
4. Optional features, priced separately
| Add-on | Hours | Cost |
|---|---|---|
| Google review automation — fires when an opportunity moves to won, one ask plus one reminder, and a low rating routes to a private reply instead of the public form | 3 | $210 |
| Database reactivation — segment the existing contacts, a three-touch email and SMS sequence to the booking link, DND and opt-out respected, results reported by segment | 6 | $420 |
| Referral automation — a referral ask after a positive outcome, a trackable link per client, and the referred contact landing in the same discovery pipeline with the source attached | 4 | $280 |
| All three together | 13 | $840 |
The reactivation one carries real SMS cost at your list size, so I'd want to see the contact count before you commit to it. The other two are close to free to run.
5. Timeline
I can start within two business days of getting agency-level access to the sub-account. Twelve to fourteen calendar days from start to handoff, at roughly 36 hours of work.
| Days | Work |
|---|---|
| 1–3 | Phone audit, DND and duplicate-SMS fixes, routing and spam handling live and tested |
| 3–5 | Collective calendar built and double-booking tested |
| 5–8 | Website form connected, pipeline and automations live |
| 7–11 | Voice agent built, test calls, tuning |
| 11–13 | End-to-end testing, recorded walkthrough, written one-pager |
| 13–14 | Handoff session with your team |
Phone work comes first on purpose. Until calls route correctly and the duplicate texts stop, the voice agent and the booking flow would just be sitting on top of a broken layer.
6. Technical approach
Shared discovery calendar
A Collective calendar, not Round Robin. Collective only offers a slot when every assigned user is free, which is exactly your "discovery calls should only be offered when both people are available."
Both team members get added as calendar users, each connecting their own Google account at the user level rather than the location level. This is the step most often done wrong, and when it's wrong the availability still looks correct while the conflicts silently stop being checked.
For the person with roughly five calendars: one calendar is set as the linked calendar, which is where confirmed discovery calls get written. The other four are added as conflict calendars, so anything booked on them blocks the slot. Conflict checking is read-only, so a personal calendar can block a slot without any of its detail becoming visible in GHL or to the person booking.
On top of that: availability windows per user, a buffer either side, a minimum scheduling notice so nobody gets a call fifteen minutes out, a daily cap, and a slot interval set so the calendar doesn't fragment into odd times.
Testing is the part that matters. I put a hold on each of the five calendars in turn and confirm the matching slot disappears from the booking page, then book a real call and confirm it lands on the right calendar for both people with the invite attached. Both directions, because one-way sync is the usual failure.
AI voice agent
The agent answers in two situations, not all of them: outside business hours, and during hours when nobody picks up within about twenty seconds. During business hours your phone rings first. That matches "support our team, not replace personal communication," and it keeps the per-minute cost down.
The build:
- Knowledge base written from your own material — what you do, who you work with, how you engage, your hours. Nothing invented.
- Guardrails on what it won't do: no pricing, no timelines, no commitments on your behalf. Anything in those areas routes to a human or to a callback promise.
- Qualification questions kept to three or four, each one writing to a custom field on the contact, so the answers land on the record instead of only in a transcript.
- Booking action pointed at the same collective calendar, so the agent can only offer slots when both of you are genuinely free.
- Live transfer on request, on frustration, or on any question the knowledge base doesn't cover — a warm transfer to the mobile, with the agent telling the caller what's happening before it moves.
- Fallback when the agent can't answer twice: it stops guessing, takes a message, creates the opportunity, and the caller gets a callback commitment rather than a loop.
- SMS discipline: the agent's own SMS actions are switched off. See below.
The fix that keeps the duplicate texting from coming back
One workflow owns all outbound SMS. Everything else — the voice agent, the form, the pipeline — applies a tag or writes a field. That one workflow reads the tag, checks whether the contact has already been texted recently, and sends at most one message.
Without this, every new automation anyone adds later is another chance for a lead to get three texts. With it, there's one place to look when something sends and one place to change it. This is the single biggest simplification I'd push for in your build.
7. Implementation
I do the work myself. No subcontractors, no agency bench, no handing your account to someone you haven't spoken to. You get one person who was in the account and who can explain any decision in it.
Third-party tools, subscriptions and GHL usage fees
Third-party subscriptions required: none. All four areas are native GHL. Your website form connects either through a GHL form embed or GHL's inbound webhook, both free, so there's no Zapier or Make seat to buy.
GHL usage charges to expect, billed to your sub-account wallet rather than to me:
- LC Phone — per minute on inbound and outbound calls, per segment on SMS. You're already paying this.
- Voice AI — billed per minute of agent talk time. This is the new cost. Limiting the agent to after-hours and no-answer keeps it to a fraction of what always-on would run.
- Email — per email sent, negligible at discovery-call volume.
- A2P 10DLC registration — a one-time brand and campaign registration plus a small monthly carrier fee, if your number isn't registered yet. Worth checking early: an unregistered or poorly registered campaign causes the same kind of delivery and DND weirdness you're already seeing.
Make sure wallet auto-recharge is on before the agent goes live. An empty wallet silently stops calls and texts, and it looks identical to a broken workflow.
What I'd recommend against buying: a separate AI voice platform. GHL's native agent books straight into your calendar and writes to the contact record with no connective tissue to maintain. An external agent is more capable in the abstract and more things to break in practice, and your post says you'd rather stay in GHL. I agree.
What you'd have at the end
- Phone routing that rings the right people, with the DND and duplicate-text causes removed rather than worked around.
- One discovery calendar that only offers slots when both of you are free, honest about five connected calendars.
- A pipeline where stages move on real events, and where a lead gets contacted once.
- A voice agent that covers after-hours and missed calls, books, transfers, and knows when to stop talking.
- A recorded walkthrough, a written one-pager, and a handoff session — so the next change is one your team makes without calling anyone.