Most bulk texting starts with whatever is already open: the GoHighLevel bulk action, a Google Voice tab, or the messaging app on your phone. You paste a list, type a promo, hit send, and the first few hundred go out fine. Then replies stop, delivery reports show failures, or the number gets suspended.
The tool decides more of the outcome than the message does. Each of these paths has a ceiling, set by carrier rules, the tool's terms of service, and whether anything tracks who opted out. This post covers where each ceiling sits, what automation each path supports, and what a compliant setup costs per segment, including where we make Ready and where Ready is not the cheapest option.
Why carriers treat bulk texts differently
US carriers split texting into two classes. Person-to-person (P2P) traffic is you texting your sister. Application-to-person (A2P) traffic is a business sending the same or similar message to many people. A2P traffic on regular 10-digit numbers has to go through A2P 10DLC registration: a registered brand, plus a registered campaign that describes what you send and how people opted in. Our 10DLC explainer walks through it, and A2P vs P2P texting covers where the line sits.
Carriers don't care which app you used. They see one number sending near-identical content to hundreds of recipients, and they filter it. Unregistered A2P traffic gets blocked or throttled, and repeated violations can get the number shut off. 10DLC enforcement covers what that costs.
Google Voice: built for one person, not a list
Google Voice is a good personal and small-office line. It is a poor bulk sender, for three reasons:
- Terms of service. Google Voice's acceptable use rules prohibit automated and bulk messaging. Accounts that text many people quickly get rate-limited or suspended, and Google does not warn you in advance.
- No 10DLC path. Google Voice offers no 10DLC registration for business campaigns, so your bulk traffic is unregistered A2P traffic by definition.
- No compliance plumbing. A STOP reply is just a text in your inbox. Nothing suppresses that contact from your next send, nothing holds messages outside permitted local hours, and nothing records an opt-in attestation.
If you send fewer than a handful of personal follow-ups a day, Google Voice is fine. Once you are sending the same message to a list, you have outgrown it.
Android phones and "bulk SMS" apps
There are two common approaches here, and both have problems.
Group MMS. Adding 40 contacts to one thread turns the message into group MMS. Every recipient sees every other recipient's number, and one "reply all" floods 40 phones. That causes a privacy problem as well as complaints.
Apps that send one-by-one from your SIM. These apps loop through a list and send individual texts from your personal number. To the carrier, that is a consumer line producing A2P volume, which most consumer plan terms prohibit. Content filtering catches the repeated message, and the line itself can be suspended. You also inherit the same gaps as Google Voice: no opt-out suppression, no quiet hours and no audit trail.
The phone's built-in scheduler is useful for one-off reminders. Our post on scheduling texts compares phone features with business tools. A phone is not a campaign tool.
GoHighLevel: the right shape, with knobs to set
GoHighLevel is the strongest of the three because it was built for business texting. It has three ways to send to many contacts:
- Bulk actions from a filtered contact list. Use the batch (drip) settings to send in chunks, for example 100 contacts every 10 minutes, instead of all at once.
- Workflows triggered by a tag, form fill or pipeline stage. These are better than one-shot sends for anything recurring. SMS marketing automation workflows lists the ones to build first.
- Drip campaigns inside workflows, with waits between steps.
GoHighLevel also requires A2P registration before it will send at volume. The default phone system is LC Phone (LeadConnector), and it is a reasonable choice. Per message, LC Phone runs about $0.0083, or roughly $0.0128 all-in with carrier fees. That is less per message than Ready's Standard rate. If LC Phone's registration went through and your texts deliver, staying on it is a defensible decision.
Agencies usually switch phone providers inside GHL for other reasons: a registration stuck in review, wanting the compliance controls below switched on per sub-account, or wanting one messaging layer they can also use outside GHL. Ready installs into GoHighLevel via OAuth as an LC Phone alternative. Inbound and outbound messages sync both ways, and each GoHighLevel location maps to its own Ready sub-account, so one business's contacts and conversations stay separate. Opt-outs are the exception: a STOP to any sub-account is honored across your whole agency account, because carriers and the TCPA treat it as revoking consent for every number you control. The GHL SMS setup guide covers the switch step by step.
How the four paths compare
| Google Voice | Android phone | GoHighLevel + LC Phone | Ready (standalone or in GHL) | |
|---|---|---|---|---|
| 10DLC registration | No path | No path | Yes, through GHL | Yes, in-app; most approvals take 2 to 7 days |
| STOP suppression across sends | No | No | Yes | Yes, propagates across campaigns |
| Quiet-hours hold | No | No | Configure yourself | Held for permitted local hours: campaigns, drip campaigns and automations up to 24 hours, a one-to-one or API text up to 6, otherwise refused |
| DNC / litigator screening | No | No | Not built in | Optional scrub |
| Batching / automation | None | App-dependent | Bulk actions, workflows | Bulk campaigns, drip campaigns, API |
| Per-message cost | Free (until suspended) | Plan-included (until suspended) | ~$0.0128 all-in | $0.0075/segment + $0.0045 carrier fee |
Ready is not GHL-only. Plenty of teams use the Ready app directly, and platforms send through the API. A bulk send is POST /v1/messages/bulk with up to 100 recipients per call, and the bulk messages docs show the request.
The math on a real send
Here is a worked example with stated assumptions: 2,000 contacts who opted in on your website, one promo text, sent on Ready Standard.
Version A: 150 characters, plain text. That fits in one GSM-7 segment (the limit is 160).
- 2,000 × 1 segment = 2,000 segments
- 2,000 × $0.0075 = $15, plus 2,000 × $0.0045 carrier fee
Version B: 175 characters, with one emoji. The emoji switches the whole message to unicode, which allows 70 characters per single segment or 67 per part when split, so the message becomes 3 segments.
- 2,000 × 3 = 6,000 segments
- 6,000 × $0.0075 = $45, plus 6,000 × $0.0045
One emoji tripled the bill. Cutting the emoji and trimming 15 characters saves more than any other choice you'll make on this campaign. Ready swaps curly quotes, long dashes and ellipses for plain ones before sending, so those characters won't inflate the count, but an emoji will.
Those all-in figures don't include screening. If you switch on scrubbing or landline validation for the account, each adds $0.003 per segment. Both are off by default. Replies are billed like a sent text, so an engaged, opted-in list that replies a lot adds real segments. Budget for them.
Throughput. A fresh standard campaign with no vetting typically gets about 1 to 4 segments per second. At an assumed 2 per second, Version A's 2,000 segments take roughly 17 minutes. Version B's 6,000 take closer to 50. T-Mobile also caps brands per day by trust score, starting around 2,000 messages a day at the lowest tier. A 6,000-segment send from a new low-score brand can hit that cap. Split the send across days, or look at brand vetting ($79 Standard / $179 Enhanced, one-time), which raises the daily cap only if your score crosses a tier.
Compliance: what the tool can and can't do for you
Software reduces risk. It does not move responsibility. Whoever sends the text owns consent, and TCPA exposure runs roughly $500 to $1,500 per text. Here is what Ready handles:
- STOP / UNSUBSCRIBE replies are honored automatically. That contact is refused on every later campaign, and the refused send isn't charged.
- Quiet hours. Texts landing outside permitted local hours are held and sent later, and you're charged only when they send. Campaigns, drip campaigns and automations wait up to 24 hours for the window; a one-to-one or API text is held only if the window opens within 6 hours, otherwise it is refused and must be resent; a one-to-one reply to someone who texted you in the last 24 hours goes out at any hour.
- Scrubbing. The standalone TCPA & DNC Litigator Scrub checks known litigator and DNC-complainer lists at $0.005 per contact.
- Attestation. Each bulk send and each API send that sets
consent_attestedrecords who sent, to how many, and when. This is a record of your attestation, not a per-contact consent record. Your opt-in form or store has to keep each person's opt-in time, wording and page URL.
One rule no tool fixes: don't text cold lists. Cold outreach goes by phone or mail. SMS goes to people who opted in or already replied to you.
Getting started without a big commitment
If you're on Google Voice or a phone today, the move is to a registered sender. In Ready:
- Your first 20 texts are free one-to-one sends, so use them to test before you register. They end when a registration is paid. Campaigns are paid from the first text, and to send any text you need a card and a number ($2 a month, the first month charged when you get it).
- You can send up to 500 texts a month at the normal rate before registering. After that, registration is required.
- Registration costs $25 at submit (the first month), then $25/mo for registration and $2 per number. There is no setup fee. Most approvals take 2 to 7 days.
The practical takeaway
Google Voice and Android phones are fine for conversations and break down as list senders. They have no registration path, no opt-out suppression and a real risk of suspension. GoHighLevel on LC Phone is a solid, low-cost setup if registration went through and delivery is clean. Ready makes sense if you want the compliance controls built in, sub-account isolation, or one sender that works inside GHL and on its own.
Whichever you pick, three habits matter most: register first, cut the emoji, and batch the send. If you want to try Ready, create an account and send a few one-to-one texts before you register.