A sales dialer is only worth having if every call it places ends up as a clean record in your CRM. That means the right contact, the outcome, the recording and the next task. A dialer that makes reps faster but leaves the CRM half-empty creates a second job: someone reconciles call logs on Friday afternoon, and pipeline reports stop being trustworthy.

There are three ways to get a dialer into a CRM: use the one the CRM ships with, install a dialer from the CRM's marketplace, or build your own on a voice API like Twilio. Each one involves a different amount of setup, sync quality and ongoing maintenance. This post walks through all three for Zoho, Close and custom setups. It also covers local presence and is plain about where Ready fits and where it doesn't.

What a progressive dialer does, and what it isn't

Teams use the same words for different things, so here are the definitions this post uses:

  • Click-to-call: a rep clicks a number and one call goes out. Nothing happens until the rep clicks again.
  • Progressive dialer: the dialer works through a list one call at a time. When a call ends, the next one starts automatically, usually after a short wrap-up window. One rep handles one line.
  • Predictive dialer: the dialer calls several numbers per rep at once and connects whoever answers. It gets more talk time per hour, but it brings abandoned calls and more regulatory exposure.

The more the dialer does on its own, the more attention you owe the TCPA and your state's calling rules. How a system places calls to mobile numbers can matter legally. Before you switch on anything that dials without a rep clicking, talk to counsel. A vendor's marketing page is not legal advice.

Three ways to put a dialer inside your CRM

ApproachSetup effortCRM sync qualityWho maintains itBest for
Native CRM dialer (e.g. Close's built-in calling)Low: turn it on, buy numbersBest: calls are first-class CRM objectsThe CRM vendorTeams already committed to that CRM
Marketplace add-on (e.g. a Zoho PhoneBridge telephony partner)Low to medium: install, map users and fieldsGood, but depends on the connectorAdd-on vendor plus your adminZoho, HubSpot and Salesforce shops that want more than the CRM offers
Built on a voice API (Twilio Voice or similar)High: you write the dialer, the UI and the syncWhatever you buildYour engineers, foreverPlatforms with unusual workflows or a product to resell

For a deeper side-by-side of the first two options, see CRM with a built-in dialer vs a standalone dialer.

Zoho and Close specifically

Close

Close was designed around calling. Power dialing, recordings and call outcomes sit directly on the lead, and reps rarely leave the app. If your team lives in Close, the built-in dialer is genuinely fine and is usually the right answer. A separate dialer would mainly add a second login and a second place for data to drift.

Zoho CRM

Zoho takes a different approach. Telephony comes through PhoneBridge, a framework that lets third-party phone providers plug calls into Zoho records. Your Zoho experience therefore depends on which provider you connect. Before you pick one, test these four things in a trial:

  1. Does the provider log the call against the right module (Lead or Contact) without creating duplicate records?
  2. Does the recording link land on the record, or only inside the provider's own app?
  3. Can a call outcome change a field or start a Zoho workflow?
  4. Does inbound caller ID match an existing record before the rep answers?

Dialer integrations for HubSpot, Pipedrive, Zoho, Salesforce and GoHighLevel goes through the connector differences CRM by CRM.

Building a dialer on Twilio: what you actually own

Twilio Voice gives you the parts: numbers, call control, recordings and a browser SDK. A progressive dialer built on those parts is very doable. The problem is everything around the call, which tends to get underestimated:

  • The queue logic. Next-number selection, retry rules, wrap-up timers and what happens when a rep's browser tab crashes mid-list.
  • The CRM write-back. Every CRM has its own API, rate limits and field model. Zoho, Close and HubSpot each need separate code.
  • Number reputation. Rotating caller IDs, watching for spam labels and retiring burned numbers are your problem.
  • Compliance plumbing. DNC suppression, calling-hour windows by recipient time zone, and recording-consent rules that vary by state.
  • Messaging alongside calls. If reps also text, you need A2P 10DLC registration, opt-out handling and a second set of webhooks.

Raw CPaaS is the low-cost route per minute and per segment, and if voice is your product, building is reasonable. If calling is just something your sales team does, you are taking on a software project to avoid a subscription. Our honest Twilio cost comparison works through that trade.

CRM sync: the checklist that decides whether a dialer works

Whatever you pick, a call isn't finished until these items are in the CRM:

  • Activity record on the correct contact, with direction, duration and timestamp
  • Disposition (connected, voicemail, no answer, wrong number, not interested), as a field the CRM can report on
  • Recording and transcript linked or attached, and only where consent was captured
  • Next step: a task, a pipeline stage change or enrollment in a follow-up
  • Do-not-call flags written back, so the next list pull excludes them
  • Inbound matching, so a returned call opens the right record

If a dialer misses two or more of these, reps will build their own workarounds, and your reporting will slowly drift from what actually happened.

Local presence: calls and texts are different problems

Local presence means reaching a contact from a number in or near their area code. The reason teams want it is simple: people are more willing to pick up, or reply to, a number that looks local. We won't quote a lift percentage, because the honest answer depends on list, industry and how many numbers you burn through.

For calls, local presence is a dialer feature. It decides which caller ID each call shows. The risk is running a large pool of numbers that each make a lot of short calls, which is exactly the pattern that earns spam labels.

For texts, Ready's local presence sends from the account number closest to the contact's area code. It is one account switch, and GoHighLevel texts follow it too. Every number still sits on the account's registered 10DLC campaign. Local presence chooses among registered numbers; it doesn't get around registration.

Local presence texting has a listed price of $0.0015 for each segment of a delivered text.

Where Ready fits, honestly

Ready is not a progressive dialer. The Ready Dialer is click-to-call from a dial pad, in the Ready dashboard or inside GoHighLevel. It has:

  • consented call recording and transcripts
  • inbound calls that ring the open pad
  • a Missed call card in the Inbox thread for each call you miss

It does not have list-based auto dialing, predictive dialing, voicemail drop, transfers, or manager barge and whisper. If your team needs one rep working 80 numbers an hour off a queue, use Close's built-in dialer or a dedicated progressive dialer, and treat Ready as the texting layer next to it.

Ready is a good fit for a different motion: text a new inbound lead instantly, then call them by hand from the pad within the first few minutes.

How it connects to your CRM

  • GoHighLevel: a native OAuth integration with two-way message sync, mapped per GHL location so each sub-account stays isolated. This is our deepest integration. Setup is covered in the GHL SMS setup guide.
  • Close: connect Close under Settings, then Integrations, and turn on texting from Close. A rep then texts a lead from your Ready number with a "Text via Ready" activity or a Close Workflow step.
  • Zoho CRM: connect it in the App Library, where an automation can text a lead when it appears in Zoho, with no code.
  • A homegrown CRM: connect through the REST API. A workflow or webhook calls Ready when a lead comes in. See docs.tryready.com/api/messages for the full reference.
curl -X POST https://api.tryready.com/v1/messages \
  -H "X-API-Key: $READY_KEY" \
  -H "Idempotency-Key: 3f1c2a9e-7b44-4d0e-9a51-2c8e6f0b1d77" \
  -H "Content-Type: application/json" \
  -d '{"to": "+12125550199", "body": "Thanks for the request. Calling you in a few minutes from this number.", "consent_attested": true}'

Set consent_attested only when the lead actually opted in, for example on your form. Ready records your attestation per send, but the opt-in record itself (time, wording, page) lives in your CRM or form tool. For a wider look at wiring texting into different CRMs, see auto dialer with CRM: GoHighLevel, HubSpot, Zoho and Twilio setups.

Worked example: one rep, one day

These numbers are assumptions, not benchmarks:

  • 60 inbound leads that opted in on a web form
  • each gets one instant 1-segment text
  • each then gets one manual call from the pad
  • 18 calls are answered (live or voicemail), averaging 3 minutes 20 seconds
  • the other 42 ring out

Calls. Each started minute bills as a full minute, so each answered call is 4 minutes:

  • 18 × 4 = 72 minutes
  • 72 minutes × $0.025 = $1.80
  • The 42 ring-outs cost nothing, because only answered time is billed.

Texts.

  • 60 sends × $0.0075 = $0.45, plus 60 × $0.0045 in carrier fees
  • Assume 20 leads reply with one segment each. Replies bill like sends: 20 × $0.0075 = $0.15, plus 20 × $0.0045.

All-in on Standard, that's 80 segments at the Standard rate plus 80 × $0.0045 in carrier fee. This excludes the compliance surcharge: TCPA/DNC scrubbing and landline validation are $0.003 per segment each if you switch them on, and both are off by default.

On compliance, a few protections reduce risk, though compliance remains your responsibility as the sender:

  • The standalone TCPA and DNC litigator scrub runs $0.005 per contact. That's cheap protection against TCPA exposure of $500 to $1,500 per text.
  • Quiet hours hold texts outside the recipient's permitted local hours. 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.
  • STOP replies propagate across every campaign.

The practical takeaway

  • Close user: use Close's dialer.
  • Zoho shop: pick a PhoneBridge provider by testing the four sync questions above, not by reading its feature list.
  • Thinking about building on Twilio: price the engineering time, not just the per-minute rate.
  • Speed to lead: if what you need is an instant text plus a quick manual call, with both logged where your team works, Ready covers that natively in GoHighLevel and through the API everywhere else.

To try it, create an account. Your first 20 one-to-one texts are free, so use them to test the flow before you register. To send, you add a card and get a number, which is $2 a month with the first month charged when you get it. 10DLC registration costs $25 at submit, then $25/mo for registration and $2 per number, and most approvals take 2 to 7 days.