You rolled out Webex Calling, Zoom Phone, RingCentral or another VoIP system. Calls route well, the softphone works on every laptop, and meetings live in the same app. Then someone in sales or support asks, "Can customers text us?" The phone system's answer is often "sort of": SMS is limited to certain plans or regions, only does one-to-one conversations, or sits behind a 10DLC registration flow nobody on your team owns.
This post is for the IT or ops person who has to sort that out. It covers why texting bundled into a phone system often falls short, what carriers actually require before business texts get delivered, and how to keep your VoIP system for voice while a dedicated messaging layer like Ready handles SMS. We make Ready, so we'll be specific about what it does and where your phone system is still the better tool.
Why texting in a VoIP phone system often disappoints
Most UCaaS platforms were built around voice and video. Texting came later, and it shows in three places.
Registration is your problem, not theirs
In the US, every business text sent from a regular 10-digit number is application-to-person (A2P) traffic. Carriers expect it to be registered under A2P 10DLC: a brand (your company) and a campaign (what you send and how people opted in). Unregistered traffic gets filtered or blocked. The phone system may give you a form, but you still have to write the use case, the sample messages and the opt-in description. When the campaign gets rejected, the error messages are often vague. We broke down what each major platform asks for in 10DLC registration on Zoom, RingCentral, Nextiva, GoTo, Genesys and other platforms.
It's built for conversations, not volume
Bundled texting usually assumes a person typing a reply from the desktop app. That works for a receptionist answering "are you open Saturday?" It breaks when you want to:
- Send 2,000 appointment reminders every Monday
- Trigger an order or ticket update from your own software
- Text a list of customers who opted in to service notices
Many phone platforms cap or discourage bulk sending, have no real API for outbound texts, or both. That's a reasonable product decision for a phone company. It just doesn't fit a messaging workload.
Compliance plumbing is thin
STOP handling, quiet hours, litigator screening and an audit trail of who sent what are messaging problems. A phone system may handle STOP on one number. It rarely carries that opt-out across every number and every campaign you send from.
If your team has been texting from personal-style VoIP numbers (Google Voice, Grasshopper and similar), this post explains why 10DLC blocks it. For the deliverability side of texting to VoIP numbers, see can you text a VoIP number.
The split that works: VoIP for voice, a messaging layer for SMS
The cleanest architecture gives each job to the system built for it:
- Your VoIP or UCaaS platform keeps calls, IVR, call queues, hunt groups, voicemail and meetings. Ready does not replace any of that. The Ready Dialer is click-to-call with recording and a Missed call card in the Inbox thread for each call you miss. It has no call queues, auto-dialing or transfers, so if you run a contact center, keep your phone system.
- Ready handles texting: registered numbers, one-to-one conversations in an inbox, bulk campaigns, an API your software can call, and the compliance checks that sit in front of every send.
Your staff work from two windows: the softphone for calls and the Ready inbox (or your CRM, if it's connected) for texts. That's one more tab. In return, texting stops depending on what your phone vendor chooses to support next quarter.
One honest tradeoff: your texts go from numbers on your Ready account, which is not automatically the main voice number printed on your website. To text from that number, port it into Ready from Numbers, then Port your numbers. Porting is free; the number is $2 a month once it lands. Calls move with it, so do that only if Ready's dialer covers your calling.
What you get on the messaging side
| Need | Typical bundled VoIP texting | Ready |
|---|---|---|
| 10DLC registration | Form inside the admin portal; you write it | Brand and campaign registration handled in-app; most approvals take 2 to 7 days |
| Bulk sends | Often limited or not offered | Bulk campaigns, templates, and POST /v1/messages/bulk (up to 100 recipients per call) |
| API for your own software | Varies by plan; often none for SMS | REST API with idempotency keys |
| STOP / opt-out | Usually per number | Honored and propagated so the contact can't be texted again across campaigns |
| Quiet hours | Rarely enforced | 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 |
| Litigator / DNC screening | Not usually included | Optional scrub, $0.003 per segment when switched on (off by default) |
| Audit trail | Message logs | Sender's consent attestation recorded per bulk send and per API send that sets consent_attested (who, how many, when) |
On attestation: Ready records your consent attestation for each bulk send and each API send that sets consent_attested. It does not store each recipient's opt-in time, wording or page URL. Keep that in the system where people opt in, such as your web form, CRM or booking tool. Compliance stays the sender's responsibility. These tools reduce risk; they don't make you immune to it. (A contact who signs up on a Ready-hosted opt-in page is the exception: Ready stores that sign-up, with the time, IP address and exact wording, and support@tryready.com can send you a copy.)
Three ways to wire it up
1. Staff text from the Ready app
The lowest-effort option. Agents keep the softphone open for calls and the Ready Inbox open for texts. Replies land in the inbox, and opt-outs are handled automatically. This fits front desks, service teams and small sales teams.
2. Your systems send through the API
If texts are triggered by software (a scheduling tool, ticketing system, order database), call the API directly. A single send:
POST https://api.tryready.com/v1/messages
X-API-Key: <key>
Idempotency-Key: 6f1c2a9e-0b7d-4d1e-9a3f-2c8e5b7d1a40
{"to": "+12125550199", "body": "Your service visit is confirmed for Tuesday 10 AM. Reply STOP to opt out.", "consent_attested": true} The Idempotency-Key means a retried request never sends twice. That matters when a job runner times out and tries again. Opt-outs and numbers on your Ban list are refused up front and not charged. You can pull the opt-out list with GET /v1/opt-outs and sync it back into your CRM. That list holds only this account's opted-out contacts, so check GET /v1/opt-outs/:phone before another tool texts a number. Start with the quickstart and the messages API docs.
3. Through your CRM
If your team lives in GoHighLevel or Close, Ready connects natively with two-way sync. Ready's automations can also start from, or write to, HubSpot, Pipedrive, Salesforce and Zoho CRM without code. For anything else, the API plus your existing automation tool covers most cases. Ready serves everyone from local service businesses to SaaS platforms, so pick whichever pattern matches where your team already works.
What it costs: a worked example
Assumptions for this example: one registered brand, one campaign, one number, 2,000 reminder texts a month, each 140 plain characters (one segment), and about 600 customer replies, each one segment.
Ready's Standard rate is $0.0075/segment, plus a $0.0045 carrier fee per segment. Replies you receive are billed the same way as sent texts.
- Segments: 2,000 sent + 600 received = 2,600
- Ready rate: 2,600 × $0.0075 = $20
- Carrier fees: 2,600 × $0.0045, itemized separately on the bill
- Registration monthly: $25/mo for registration and $2/mo per number (the charge at submit is the first month, $25)
Watch segment count. A 140-character reminder with one emoji drops to the 70-character unicode limit and becomes 3 segments, so the outbound line goes from 2,000 to 6,000 segments. That one emoji roughly triples the send cost. Ready swaps curly quotes, long dashes and ellipses for plain ones before sending, so those don't change the count. Emoji still do.
If you switch on litigator/DNC scrubbing, add $0.003 per segment. It's off by default.
To be straight about price: raw CPaaS APIs such as Twilio (around $0.0083 per segment) charge less per message. If you have engineers who want to build registration flows, opt-out propagation and quiet-hours logic themselves, that's a legitimate path. What Ready adds is that work already done, plus an inbox, campaigns and an app non-developers can use. For a deeper breakdown of fees, see 10DLC cost: every fee explained.
Volume and throughput: set expectations early
Carriers don't publish a rate card, so treat these as round approximations:
- A fresh standard campaign without vetting often gets about 1 to 4 segments per second.
- T-Mobile caps daily volume by brand trust score, from roughly 2,000 messages a day at the lowest tier up to around 200,000 at the highest.
At an assumed 2 segments per second, 2,000 one-segment reminders take about 17 minutes. That's fine for a Monday morning batch. If you need much more, optional brand vetting ($79 Standard or $179 Enhanced, one-time) can raise your trust score. It only moves the daily cap when it crosses a tier, and it doesn't change the per-second rate. Most senders don't need it.
Getting started without stalling
- Write down what you'll send. Reminders and service updates register differently from marketing. Pick the campaign use case that matches reality.
- Sign up and add a card. To send, you add a card and get a number, which is $2 a month with the first month charged when you get it. Your first 20 texts are free one-to-one sends, so use them to test before you pay for registration, because they end once registration is paid.
- Register. Submit the brand and campaign in-app. Most approvals take 2 to 7 days. Before registering, an account can send up to 500 texts a month at its normal per-text rate.
- Connect your systems. Use the app for staff, the API for software triggers, or both.
- Leave voice alone. Your Webex, Zoom or other VoIP setup keeps doing what it does well.
The practical takeaway
Your VoIP platform is a good phone system. It usually isn't a messaging platform, and forcing it to be one means fighting registration forms, volume limits and thin opt-out handling. Keep calls where they are, put texting on a layer built for registered A2P traffic, and connect it to the systems that already know when a customer needs a message.
If that split fits your setup, create an account, send a few test texts, and check the pricing page against your expected monthly volume before you register.