You run an agency on GoHighLevel. You've got 50 sub-accounts, one per client, and every one of them wants to send text messages. Somewhere in your onboarding checklist is a step that says "register 10DLC," and every time you hit it you feel the same twinge: do I really have to do this fifty times? Register fifty brands, fifty campaigns, pay fifty stacks of carrier fees, babysit fifty approvals?
Or can you just point them all at one registration and move on with your life?
Full disclosure: I work for Ready, and we handle 10DLC registration in-app for GHL agencies, so I have a horse in this race. But the honest answer to "can I share one registration across all my clients" is usually no, and here's exactly why — with a couple of narrow exceptions where consolidation is genuinely the right call. This post is the decision tree I wish someone had handed me.
First: what a 10DLC brand and campaign actually represent
10DLC (10-digit long code) registration has two layers, and the distinction is the whole ballgame here.
- A brand is a legal entity. It's tied to an EIN, a business name, a physical address. The carriers use it to answer "who is actually sending these texts?"
- A campaign is a use case attached to a brand. It describes what you're sending — appointment reminders, marketing promos, 2FA codes — with sample messages and an opt-in flow.
Carrier fees run roughly ~$10/mo per brand and ~$20/mo per campaign, with approvals typically landing in 1–3 days. Unregistered traffic gets carrier-filtered into oblivion, so this isn't optional if you want messages to actually arrive.
The reason you can't just casually share is that the brand is a legal entity attestation. When you register a brand, you're telling the carriers "this specific business, with this EIN, is responsible for this traffic." If your client's HVAC company sends texts under your agency's brand, the carrier's records say your agency is the sender — not the client.
The default answer: one brand per client
For an agency with 50 distinct client businesses, the correct default is 50 brands, each with its own campaign(s). Boring, I know. But there are three concrete reasons it's the right default.
1. The consent and the sender have to match. When a client's customer texts a keyword to opt in, they think they're opting in to that business. Their consent is with the plumber, not with your agency. If the sender-of-record is your agency's brand, you've created a mismatch between who has consent and who's technically doing the sending. That's exactly the kind of gap TCPA litigators look for.
2. Deliverability is per-brand. Carrier trust scores, throughput limits, and spam-filtering reputation attach to the brand. If you pool 50 clients under one brand and one of them sends something spammy, everyone on that brand eats the reputation hit. Isolating brands means one client's bad week doesn't tank the other 49.
3. When a client leaves, they should take their registration with them. If everything lives under your agency brand, offboarding a client is a mess — their consent records, their sending history, their opt-out list are all tangled up in your shared registration. Separate brands keep clients cleanly isolated, which is also how Ready's native GHL integration maps things: registration and messaging live per location / sub-account, so a client's data stays inside their own boundary.
The narrow cases where consolidation actually makes sense
Consolidation isn't always wrong. It's wrong when the sub-accounts represent different legal businesses. It's fine — sometimes better — when they don't.
Here's when sharing a single brand is defensible:
| Scenario | Consolidate? | Why |
|---|---|---|
| 50 separate client businesses, each own EIN | No | Consent + legal entity must match per client |
| Multiple locations of one franchise you operate | Maybe | Same EIN can host one brand + per-location campaigns |
| Your own internal sub-accounts (sales, support, ops) | Yes | One legal entity, split by campaign use case |
| Sub-accounts you spin up for testing/demos | Yes | No real consumer consent involved |
| A client with 5 sub-accounts for 5 store locations | Maybe | One client brand, campaigns per location |
The pattern: brand = legal entity, campaign = use case. If two sub-accounts share a legal entity, they can share a brand and split into separate campaigns. If they're different businesses, they need different brands. That single rule resolves most of the decision.
So the franchise example is the classic "consolidate" case: one brand for the parent company, then separate campaigns for appointment reminders vs. promotions vs. per-region messaging. You pay one brand fee (~$10/mo) and stack campaign fees (~$20/mo each) as needed, instead of paying a brand fee per location.
The math on doing it right vs. doing it lazy
Let's price both paths for a 50-client agency where each client sends one campaign type.
Path A — one brand per client (correct):
- 50 brands × ~$10/mo = ~$500/mo
- 50 campaigns × ~$20/mo = ~$1,000/mo
- ~$1,500/mo in carrier registration fees
Path B — one shared agency brand, 50 campaigns (the shortcut):
- 1 brand × ~$10/mo = ~$10/mo
- 50 campaigns × ~$20/mo = ~$1,000/mo
- ~$1,010/mo
You "save" ~$490/mo with the shortcut. Now weigh that against the downside: TCPA statutory damages run $500–$1,500 per text. A single client sending to a list where the consent doesn't cleanly attach to the sender-of-record can generate exposure that dwarfs a year of registration savings in a single afternoon. That's before you factor in the deliverability contagion risk across all 50 clients.
Roughly $490/mo to keep 50 clients legally and reputationally isolated is one of the easier ROI calls in agency operations. Bill it through to clients as a compliance line item and it's net-neutral to you anyway.
Where the per-message cost actually lands
Registration fees are the fixed cost. The variable cost is per segment sent. On Ready that's $0.02/segment on Standard (0–50,000 segments/month), plus the $0.0045/segment carrier pass-through billed transparently and separately — so $0.0245 all-in. Once your aggregate account crosses 50,000 segments in a calendar month, you drop automatically to the Growth rate of $0.016/segment ($0.0205 all-in). You don't pick a plan or negotiate; it applies on its own.
Here's a point that matters for the consolidation question: the volume discount pools at the account level, not per brand. So separating your clients into 50 brands doesn't cost you the aggregate discount — all 50 clients' segments count toward the same 50,000/month threshold. You get client isolation for compliance and pooled pricing for volume. You're not choosing between the two.
Worked example: say your 50 clients collectively send 80,000 segments in a month. That whole 80,000 bills at the Growth rate:
- 80,000 × $0.0205 = $1,640 in messaging
- Plus ~$1,500/mo in per-client registration fees
- ~$3,140/mo all-in for a properly isolated, 50-client agency SMS operation
You can run your own numbers on the cost calculator.
The compliance stack does the babysitting
The real reason agencies dread 50 registrations isn't the fee — it's the operational load of managing consent, opt-outs, and quiet hours across 50 clients by hand. That's where sharing a platform (not a brand) earns its keep. Across all your sub-accounts, Ready handles:
- Automatic STOP/opt-out — an inbound STOP is honored and propagates so that contact can't be messaged again, per the boundary you've set.
- Quiet-hours enforcement — sends outside permitted local hours are held, based on the recipient's area, reducing TCPA exposure.
- Litigator / DNC scrubbing — known TCPA-litigator and DNC numbers can be screened before send. The standalone litigator scrub is $0.005/contact if you want to run it as a pre-flight check.
- Consent / attestation capture for bulk and API sends, building a per-client audit trail.
None of this makes anyone lawsuit-proof — compliance is ultimately the sender's responsibility, and I'll never pretend otherwise. But it turns "manage 50 clients' compliance by hand" into "the platform enforces the rules per sub-account by default."
The practical takeaway
The decision comes down to one question: do these sub-accounts represent one legal entity or many?
- Many distinct client businesses → one brand per client. Yes, it's 50 registrations. Do it anyway; the isolation is worth ~$490/mo.
- One legal entity split across locations or use cases → one brand, multiple campaigns.
- Internal or demo sub-accounts → consolidate freely.
The good news is the part everyone dreads is mostly automated now. Self-serve 10DLC in-app means most approvals land same-day to a few days, not the weeks of manual A2P onboarding you might've suffered through elsewhere — and the GHL integration keeps each registration mapped to the right sub-account so nothing bleeds across clients.
If you want to see how the per-location mapping works before committing, the GHL setup guide walks through connecting sub-accounts, and there are 2,500 free credits to test a real send — no card required. Register one client, watch the approval flow, and decide from there whether 50 registrations is actually the burden you were dreading.