Most small businesses don't set out to buy an "SMS CRM." They already have a CRM, or they're about to pick one, and they notice customers answer texts far faster than emails. Then the question comes up: use the texting that came with the CRM, or bolt on a separate texting platform?
Both can work. The texting feature is rarely the deciding factor. What matters is the plumbing underneath it: where replies land, whether contacts stay in one record, who keeps proof of consent, and whether your automations know a contact texted STOP last Tuesday. This guide covers each one with concrete checks, then works through the per-segment math so you can price it honestly.
The real choice: built-in, separate, or connected
There are three setups, not two:
- Texting built into the CRM. One login, one contact record. The tradeoff is that texting is often a secondary feature, so registration help, opt-out handling and pricing can be thin or opaque.
- A separate texting platform. These are usually stronger at messaging. The cost is a second contact list and a second inbox that drift out of sync.
- A texting provider connected to your CRM. The messaging layer is specialized, and it syncs into the CRM you already use. This is how Ready works with GoHighLevel. It is also how most CRMs handle SMS through integrations.
We've covered the build-vs-integrate decision in more depth in CRM with SMS: built-in texting vs integrating a provider. The rest of this post is the checklist to use on whichever setup you're evaluating.
Two-way inbox: where do replies actually land?
A one-way texting tool is a notification system. An SMS CRM should be a conversation tool. Here is what to check:
- Replies thread under the contact, not in a generic "messages" bucket. Your team should see the full history (past texts, notes, deal stage) before typing.
- Shared inbox with assignment. If three people answer texts, you need to see who owns a thread so a customer doesn't get two answers or none.
- Replies are visible where your team works. If your team lives in the CRM, a separate texting app's inbox becomes the thing nobody checks.
- Replies are billed, so budget for them. Many platforms charge for inbound texts. On Ready, a reply you receive is billed like a sent text: $0.0075 per segment plus a $0.0045 carrier fee. That is fair, but it belongs in your cost model.
For GoHighLevel users, Ready connects through OAuth with two-way sync of inbound and outbound messages. It maps per GoHighLevel location, so each sub-account stays isolated, and replies show up in GHL as well as in the Ready inbox.
Contact sync: one record, not two
This is where separate tools quietly fail. You import a list into the texting platform, someone updates a phone number in the CRM, and now the two disagree. Six months later nobody trusts either.
Ask these questions:
- Is sync two-way and automatic, or a CSV export you run when you remember?
- Do opt-outs sync back to the CRM? If a contact texts STOP in the texting tool, the CRM needs to know. Otherwise someone sends them a "quick follow-up" by hand from another channel.
- Does it validate numbers? Texting a landline wastes a send. Ready can check numbers before sending (see the number validation docs). Landline validation is off by default and costs $0.003 per segment when you switch it on.
- What's the matching key? Phone number in E.164 format (+12125550199) is the safe answer. Fuzzy name matching creates duplicates.
If your CRM is Pipedrive, Salesforce, Airtable or similar, our roundup of CRM SMS integrations covers how sync tends to work for each.
Consent storage: who keeps the proof?
Vendors often blur this point, and the distinction matters.
Under the TCPA, texting someone without consent can cost $500 to $1,500 per text. When a complaint arrives, you need to show this person agreed, when, with what wording and where. That is a per-contact consent record, and it belongs in your CRM or the system where the opt-in happened: your web form, checkout or booking tool. Store these fields on the contact:
- Opt-in timestamp
- The exact consent language they saw
- The page URL or source (form, in-store sign-up sheet, checkout box)
- Opt-out timestamp, if any
The texting layer keeps a different record. Ready records the sender's attestation on each campaign you send and each API send that attests consent: who sent it, to how many people, and when. Your team promises the recipients agreed, and that promise is logged as an audit trail. It is not a per-contact consent record. Ready doesn't store each recipient's opt-in time, wording or source page, and a keyword reply doesn't create one. Your CRM or store keeps that. (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.)
So the right question for any vendor is not "do you handle consent?" Ask "which part do you store, and which part am I responsible for?" Compliance is ultimately the sender's job, and any tool that says otherwise is overselling. Our post on TCPA compliance software breaks down what each layer actually covers.
Automation that knows about opt-outs and quiet hours
Automations are the main reason to want texting inside your CRM. A new lead gets an instant text, an appointment gets a reminder, a stalled deal gets a nudge. They are also how businesses end up texting people they shouldn't.
Your automations should respect these rules on their own:
- Opt-outs propagate everywhere. On Ready, an inbound STOP or UNSUBSCRIBE is honored, and the contact can't be messaged again across any campaign or drip campaign. Opt-outs are refused up front and not charged.
- Quiet hours are enforced by the system, not by memory. Ready holds sends that fall outside permitted local hours for the recipient's area, then sends them later. You're only charged when they actually go out. 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.
- Litigator and DNC scrubbing is available. Ready can screen known TCPA-litigator and DNC numbers before send. As an account setting it's $0.003 per segment and off by default. The standalone scrub is $0.005 per contact.
- Cold lists stay out of SMS automations. Cold outreach belongs on phone and mail. Texting is for people who opted in or replied to you.
Ready also includes an AI message writer and a spam-filter check, which help you draft texts that carriers are less likely to filter. Ready no longer offers AI agents that answer inbound texts on their own, so your team replies.
For a wider comparison of reminder and reply tools, see automated text message systems.
The plumbing nobody demos: registration and segment math
10DLC registration
Any business texting from a regular 10-digit number in the US needs A2P 10DLC registration, or carriers filter the traffic. Some CRMs leave you to work this out alone. Ask whether registration happens inside the product, and what it costs.
On Ready, brand and campaign registration is handled in-app. There's no setup fee. The charge at submit is the first month, $25. After that, the monthly is $25/mo for registration and $2 per number. Most approvals take 2 to 7 days. The 10DLC explainer covers what carriers check.
Worked example: a small service business
This is a hypothetical example with stated assumptions, not a customer.
- 600 appointment reminders a month, each under 160 plain characters = 1 segment each = 600 segments
- Assume 200 replies, 1 segment each = 200 segments (replies are billed)
- One monthly promo to 800 opted-in customers: 175 characters with an emoji. An emoji switches the text to unicode, which allows 67 characters per part, so 175 characters = 3 segments = 2,400 segments
That totals 3,200 segments. On Standard, the cost is 3,200 × $0.0075 = $24 in rate plus 3,200 × $0.0045 in carrier fees. Add $27/mo for registration with one number. Any compliance surcharge you switch on (scrub or landline validation) comes on top.
Ready's all-in prices per segment include the carrier fee but not screening: Scrub lists and Number validation, the two switches in Settings under Compliance, each add $0.003 per segment when switched on, shown as screening on your bill, and both are off by default. Unless you turn the opt-out footer off, the first text to each contact, and one again from time to time, also gets "Reply STOP to opt out" and your business name if the message does not already have them, so a text close to the segment limit can bill one more segment.
Now drop the emoji. The promo becomes 175 plain GSM characters, which splits into 153-character parts, so 2 segments instead of 3. That removes 800 segments: 800 × $0.0075 = $6 in rate plus 800 × $0.0045 in carrier fees, every month, from one character. Any SMS CRM should show you segment counts before you hit send. If it doesn't, you're guessing at your bill.
Built-in vs separate vs connected
| CRM's built-in texting | Separate texting platform | Provider connected to CRM | |
|---|---|---|---|
| Contact record | One | Two, drift over time | One, synced |
| Inbox | In CRM | Separate app | Synced into CRM |
| Registration help | Varies widely | Usually good | Usually good |
| Opt-out sync to CRM | Usually yes | Often manual | Should be automatic, so verify |
| Per-contact consent storage | In CRM fields | Often missing | In CRM fields |
| Pricing clarity | Often bundled or opaque | Per-seat or subscription common | Per-segment, itemized |
Where Ready fits, and where it doesn't
We make Ready, so here's the honest version.
If raw per-message price is your only criterion, Twilio at roughly $0.0083 a segment and GoHighLevel's LeadConnector at roughly $0.0083 a message both come in under our $0.0075 Standard rate. Raw CPaaS APIs mean you build the inbox, registration flow and opt-out handling yourself. That's fine if you have developers and want to.
What you get on Standard is the rest: self-serve registration, automatic opt-out handling, quiet-hours holds, optional scrubbing, a CRM with pipeline, automations and a unified inbox, and a native GoHighLevel integration if that's your CRM. Billing is prepaid credits through Stripe, with carrier fees itemized separately. Against per-seat texting tools and subscription plans, per-segment pricing often works out better for small teams. Run your own volume through the math above to check.
If you're a software platform texting on behalf of your own customers, the same stack is available through the API: sub-accounts, numbers and registration per customer. The quickstart shows the first send.
The short version
When you evaluate any SMS CRM, check four things. Replies should land in one inbox your team actually uses. Contacts should live in one synced record. Per-contact consent proof should be stored in your CRM, separate from the sender attestation the texting layer logs. Automations should obey opt-outs and quiet hours without anyone having to remember them. Then price it in segments, counting replies.
If you want to see how Ready handles these checks, sign up with a card on file and use your first 20 free one-to-one texts to test the inbox before you register. Campaigns are paid from the first text, and the free texts end once you pay for registration.