Most small businesses already run a CRM. They just call it a spreadsheet, a notebook by the phone, or the owner's memory. A customer relationship management system replaces all of that with one record per person: who they are, what they bought, what you promised them, and every conversation you've had. Texting and calling only work well when they write back to that record. Otherwise you have a phone full of threads nobody else can see.

This guide covers what a CRM does, how it differs from helpdesk tools like Zendesk, and the practical ways to connect texts and calls to customer records. It also includes worked cost math, so you know what texting adds to the monthly bill before you switch anything on.

What a CRM actually is

Strip away the marketing and a CRM is three things:

  1. Contact records. One row per person or company, with phone, email, address, tags and custom fields such as "last service date" or "preferred technician."
  2. A pipeline. The stages a lead or job moves through, for example New → Quoted → Booked → Paid. This is how you see what's stuck.
  3. A timeline. Every email, note, call, text and task attached to the contact, in order, so anyone on the team can pick up where someone else left off.

The timeline is where texting matters. A text that never reaches the timeline is a memory, not a record. When a customer says "I told your guy Tuesday I wanted the 9 AM slot," you want to scroll up and find that message in their record, not ask around the office.

CRM vs helpdesk: where Zendesk fits

People often lump Zendesk, Freshdesk and Help Scout in with CRMs. They overlap, but they're built around different objects:

CRM (HubSpot, GoHighLevel, Pipedrive, Zoho)Helpdesk (Zendesk, Freshdesk, Help Scout)
Core objectThe contact and the dealThe ticket
Main question it answers"Where is this customer in our process?""Has this problem been solved?"
Typical ownerSales, owner, office managerSupport team
How texting shows upA thread on the contact timelineA ticket or a reply on a ticket
Success measureBooked, closed, renewedResolved, response time

If your texts are mostly "my order hasn't arrived" or "the app won't log me in," a helpdesk thread is the natural home. If they're "can you come Thursday?" or "here's your quote," they belong on the CRM record. Plenty of businesses run both, and that's fine. The point is to decide which system is the source of truth for each type of conversation, so the same customer isn't half-documented in two places.

Many helpdesks sell a texting channel of their own or through their app marketplace. If yours does and the price works for you, using it is a reasonable choice. Where it gets awkward is when sales texts live in the CRM and support texts live in the helpdesk on a different number. Customers don't care which department they're texting. They reply to whatever number last messaged them.

Where texting fits into a customer record

A well-connected texting setup does four things for the record:

  • Logs outbound and inbound messages on the contact's timeline, both directions, in order.
  • Records opt-outs so a STOP reply marks the contact unreachable by text everywhere, not just in one campaign.
  • Triggers automations. "Quote sent" sends a follow-up two days later, and a reply moves the deal to the next stage.
  • Segments lists by CRM fields, so a reminder goes only to customers whose service is due, not your whole list. Our post on SMS webhooks and CRM workflows goes deeper on the automation side.

Two-way threading is the part people underestimate. A one-way integration that pushes texts out but drops replies into a separate inbox breaks the timeline the first time a customer answers. If you use GoHighLevel, we wrote up what native sync preserves that a webhook loses.

Where calling fits

Calls belong on the same timeline. The common pattern for small teams: a lead comes in, an instant text confirms you got it, and someone calls within the first few minutes while the lead is still paying attention. When the call and the texts sit on one record, whoever picks up the phone can see what was already said.

Ready's Dialer handles this with click-to-call from the dial pad in the dashboard or inside GoHighLevel, consented call recording and transcripts, inbound calls that ring the open pad, and a Missed call card in the Inbox thread for each call you miss. It's billed at $0.025 per minute, and each started minute counts as a full minute. Only answered time bills. A call that rings out costs nothing. A call that reaches voicemail counts as answered and bills like any other connected call. Ready doesn't auto-dial lists. If you need a dialer that works through hundreds of numbers an hour automatically, compare options in CRM with a built-in dialer vs a standalone one.

Three ways to connect texting to your CRM

ApproachGood fitTradeoff
Texting built into the CRMYou're happy with your CRM's texting price and featuresTied to that CRM's numbers, registration process and limits
Native integration (for example Ready inside GoHighLevel via OAuth)You want a different provider without losing two-way threadingOnly exists for the CRMs a provider has built for
API plus webhooks (Zendesk, custom CRMs, internal tools)Your tool has no native texting option, or you're a platform texting for your own customersSomeone has to build and maintain it

Built-in is often the right answer. GoHighLevel's LC Phone, for instance, runs about $0.0083 per message, below our Standard rate. People choose Ready over it for self-serve registration handled in-app and the compliance tools covered below, not for a lower per-text price. For the full argument, see built-in texting vs integrating a provider.

For the API route, a send is one request. Send an Idempotency-Key header with any UUID so a retried request never sends twice:

POST https://api.tryready.com/v1/messages
X-API-Key: <key>
Idempotency-Key: <uuid>

{"to": "+12125550199", "body": "Your order #1042 has shipped.", "consent_attested": true}

Your helpdesk or CRM calls that endpoint on an event, then logs the result back to the ticket or contact. Request and webhook details are in the messages docs and the quickstart.

What it costs: a worked example

This example assumes a small service business sending 400 appointment reminders a month. Each reminder is 150 plain characters with no emoji, which makes it 1 segment. About 30% of customers reply once with a short confirmation, which is a round assumption rather than a benchmark. That's 120 inbound segments.

Ready's Standard rate is $0.0075 per segment, plus a $0.0045 carrier fee per segment. Replies you receive are billed the same way as texts you send.

  • Outbound: 400 × $0.0075 = $3.00, plus 400 × $0.0045
  • Inbound: 120 × $0.0075 = $0.90, plus 120 × $0.0045
  • Messaging subtotal: $3.90 plus 520 × $0.0045 in carrier fees. That's all-in per segment, excluding the optional compliance surcharge.
  • Registration: $25/mo for registration and $2/mo per number.

Watch the emoji. Add one smiley to that 150-character reminder and the message drops to 70-character unicode segments, so it becomes 3 segments. The 400 reminders turn into 1,200 billed segments. The rate is flat, so this math holds whether you send 400 texts or 40,000.

Compliance pieces your CRM should hold

Texting rules land on the sender, and no tool makes you immune to TCPA claims. What a good setup does is reduce the risk:

  • Registration. US business texting on regular numbers needs 10DLC brand and campaign registration, or carriers filter it (our 10DLC explainer). Ready handles it in-app. You pay $25 at submit for the first month, and most approvals take 2 to 7 days.
  • Opt-outs. STOP replies are honored automatically and apply across campaigns.
  • Quiet hours. Sends outside permitted local hours are held and go out later. 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. Optional litigator and DNC screening costs $0.003 extra per segment when switched on for an account, and it's off by default. The standalone scrub is $0.005 per contact.
  • Consent records. Ready records your opt-in 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. Your CRM or website should keep 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.)

Where to start

Pick the system that owns each conversation type. Usually that's the CRM for sales and scheduling, and the helpdesk for support. Then make sure texts and calls write back to it in both directions. If your CRM's built-in texting is priced well and does two-way threading, keep it.

If you want to try Ready, sign up with a card on file. Your first 20 one-to-one texts are free. Use them before you register, because the free texts end once a registration is paid for. Platform pricing is at tryready.com/pricing.