Full disclosure — I run ReadySMS, a GoHighLevel-native SMS provider. I'm writing this because the math is the same whether you switch to ReadySMS, BYO Twilio, or do nothing. Pull up your own GHL invoice and check the numbers — that's the only opinion that matters.
If you run a GoHighLevel agency, your largest recurring expense is probably not what you think it is.
It's not your GHL Pro plan ($497/month). It's not your team's seats. It's the SMS line item.
And the part that surprises agency owners is that half of that line item is markup, not actual delivery cost.
What you're actually paying
GoHighLevel's built-in SMS provider is LC Phone (LeadConnector Phone). When you check your sub-account billing inside GHL, here's what you see:
| Line item | LC Phone rate |
|---|---|
| Outbound SMS | $0.0158/segment |
| Carrier fee (pass-through) | $0.0045/segment |
| All-in per message | $0.0203 |
| Phone number rental | $1.15/month per number |
| 10DLC brand registration | $4 (one-time, per location) |
| 10DLC campaign registration | $10/month per campaign |
Now compare to what's underneath the hood:
LC Phone is a rebranded wrapper around Twilio. Every outbound message routes through Twilio's carrier infrastructure. Twilio's direct rate to a developer with their own account is $0.0079/segment. LC Phone charges $0.0158/segment for the identical underlying delivery.
That's a 2x markup. The $0.0079 difference is GHL's revenue per message in exchange for "you don't have to manage a Twilio account."
The bill at agency scale
A single sub-account sending 5,000 messages/month doesn't notice this. The math at 20-100 sub-accounts is different.
Mid-sized agency, 20 active sub-accounts, 3,000 msgs/month each:
- 60,000 msgs/month total
- 60,000 × $0.0203 = $1,218/month
- Plus phone numbers (20 × $1.15) = $23/month
- Plus 10DLC campaigns (assume 1 per sub = $200/month)
- Total: ~$1,441/month = $17,292/year
Larger agency, 50 sub-accounts, 5,000 msgs/month each:
- 250,000 msgs/month
- $5,075/month outbound, $58 phones, $500 campaigns
- Total: ~$5,633/month = $67,596/year
For most agencies this is the largest line item on the books after payroll. And about half of it is the markup, not the carrier delivery cost.
Three migration paths (honest trade-offs on each)
There are three real paths off LC Phone. None of them is free; the question is which trade-off you prefer.
Path 1 — BYO Twilio (DIY)
Use Twilio's Messaging Service via GHL's "Bring Your Own Twilio" option (only available on certain GHL plans).
- Saves: ~50%. You pay Twilio's $0.0079/segment instead of LC Phone's $0.0158.
- Costs: A separate Twilio account per sub-account (or one master account with strict sub-account isolation), separate billing, separate 10DLC registration in Twilio's portal, and you lose the convenience of one GHL invoice.
- Right for: Agencies with 1-3 sub-accounts that send heavy volume; agencies with engineering capacity.
Path 2 — Switch to a GHL-native alternative provider
Install a marketplace SMS provider (ReadySMS, others) that exposes the same UI inside GHL but routes through a different backend.
- Saves: 36-64% depending on volume tier. ReadySMS at the Growth tier is $0.0119/msg all-in vs LC Phone's $0.0203.
- Costs: A second provider to manage, separate auth (though the integration handles most of this), and you're trusting a third party's infrastructure.
- Right for: Agencies that want to stay inside GHL's UI but cut the bill in half. Most common path.
Path 3 — Mixed strategy
Keep LC Phone on low-volume sub-accounts (under 500 msgs/month — the savings don't justify the migration overhead), switch heavy senders to BYO Twilio or a third-party.
- Saves: 30-50% blended.
- Costs: Operational complexity. You need to track which sub-account is on which provider.
- Right for: Larger agencies (40+ sub-accounts) where one-size-fits-all doesn't fit.
The agency margin math
This is the part most agency owners haven't done.
Setup: You charge clients $0.03/msg wallet rate. Sub-account sends 60,000 msgs/month.
| Provider | Your cost/msg | Client charge | Your monthly margin | Margin % |
|---|---|---|---|---|
| LC Phone | $0.0203 | $0.03 | $478 | 32% |
| ReadySMS Growth | $0.0119 | $0.03 | $1,086 | 60% |
| BYO Twilio | $0.0124 | $0.03 | $1,056 | 59% |
The client sees no change in their wallet pricing. Your margin nearly doubles.
For 20 sub-accounts at this volume, switching providers moves your monthly profit from $9,560 to $21,720. That's $146,000/year of margin you keep.
Hidden costs nobody mentions
The headline per-segment number isn't the whole bill. Three line items get glossed over:
- 10DLC campaign registration per sub-account. TCR (The Campaign Registry) charges quarterly on a per-campaign basis. At ~$10/month per campaign, 50 sub-accounts × 1 campaign = $500/month just to be allowed to send.
- Phone number rental. $1.15/number/month inside GHL adds up. 50 numbers = $57.50/month. With ReadySMS or BYO Twilio it's typically $1.00-$1.15/number — comparable but not zero.
- Wallet top-up payment processing. Stripe takes 2.9% + $0.30 every time a sub-account tops up their wallet. If clients top up $50 at a time, you're losing $1.75 per top-up to fees. At scale this is hundreds per month.
What I'd do if I were running an agency today
If your agency does <$2K/month in SMS spend, don't migrate. The engineering and operational time costs more than the savings.
If you do $2K-$10K/month, switch your top 5 senders. The 80/20 rule applies — most of your spend is in 20% of sub-accounts. Move those, keep the rest on LC Phone for now.
If you do >$10K/month, build a migration plan this quarter. Every month you delay is real money walking out the door.
A realistic migration timeline
I've watched agencies do this migration. Here's what 2-4 weeks actually looks like:
- Week 1 — Audit. Pull 90 days of LC Phone billing per sub-account. Identify the top 20% by spend.
- Week 2 — Pick a provider, install the integration, test on one of your own internal sub-accounts.
- Week 3 — Migrate 3-5 client sub-accounts. Run both providers in parallel for the first 48 hours.
- Week 4 — Migrate the remaining heavy senders. Notify clients of any phone number ports (LNP can take 5-10 business days).
The "2-minute install" you'll see in marketing materials is technically true (the GHL marketplace app installs in 2 minutes) but the full client migration is a 2-4 week project.
The numbers above are pulled from real GHL invoices and current published rates. If your numbers are different, run them yourself and decide. The point of this post isn't to switch you to ReadySMS — it's to make sure you've actually done the math on what you're paying.
Calculator with your own volume → readysms.io/calculator