CallPal

Guides6 min read

Click-to-Call: How to Add One-Click Dialing to a CRM That Doesn’t Have It

Four ways to put a dial button on a CRM record — tel: links, extensions, native integrations and a calling layer — and what each costs you in caller ID.

A CallPal contact record for Vera Jenkins with a Call button, a masked phone number, an Open in Attio link, and three timestamped notes from two different reps.
The contact record a rep calls from: one button, the CRM link kept, and the notes that explain the last conversation.

Click-to-call sounds like a solved problem. A phone number is on the screen; make it clickable. The reason it keeps coming up is that dialing was never the hard part — a tel: link has worked in every browser for twenty years. The hard part is everything the click is supposed to trigger: the right number going out as caller ID, the call being recorded, and the outcome landing back on the record without a human typing it.

There are four common ways to add dialing to a CRM that lacks it. They are not equivalent, and the difference is measured in how much admin your reps still do after the call ends.

Most CRMs already render phone fields as tel: links. Clicking one hands the number to whatever the operating system has registered as a phone handler — a desk phone app, a softphone, or, on a laptop with nothing installed, nothing at all.

  • Cost: nothing. It already works.
  • Logging: none. The CRM never learns the call happened.
  • Caller ID: whatever the handling device sends, which is frequently the rep’s own line.
  • Recording: none, unless the handling device does it.

Fine for a founder making a handful of calls a week. Unworkable for a team, because the two things that make outbound measurable — automatic logging and consistent caller ID — are both absent.

Option 2: a browser extension

Extensions scan the page for anything shaped like a phone number and overlay a dial button. This is how several dialers reach CRMs they have no formal integration with.

It works, right up until the CRM changes its markup. The button lands on the wrong element, or on a fax number, or stops appearing after an upgrade — and because the extension is inferring structure from a rendered page, nobody can promise it will not. Logging back is similarly best-effort: the extension has to find a notes field and type into it as though it were the user.

Worth it when your CRM has no API worth using. Otherwise a fragile way to get a fragile version of option four.

Option 3: a native integration your CRM already ships

Some CRMs have a calling partner programme: install the app, authorise it, and dial buttons appear on records with calls logged as first-class activities. When your CRM has one and your telephony vendor is in it, this is the best available answer — the integration is maintained by two parties who both want it to work.

The catch is coverage. Partner programmes cluster around the largest CRMs. If you run Attio, Capsule, Copper, Insightly, Nimble or Less Annoying CRM, the list of calling partners is short, and often the ones that exist are pointed at a different market than yours.

Option 4: a calling layer that syncs both ways

The fourth approach inverts the relationship. Instead of adding a phone to your CRM, you run a calling application that holds a synced copy of the contacts and writes activity back through the CRM’s API. Reps work in the calling app; the CRM stays the system of record.

It costs one context switch and buys everything the other three lack: dialing, recording, caller-ID control, and a call log that appears on the CRM record without anyone typing it. It also means the dialer can do things a page overlay never can — power-dial a filtered list, put a supervisor on a live call, report on answer rate per rep.

A CallPal contact detail page for Vera Jenkins: a Call button and a Test call button in the header, an Open in Attio link back to the CRM, a masked phone number, an email address, and a notes panel with three timestamped notes.
The rep calls from here. "Open in Attio" is the way back to the CRM record, so the copy never becomes a second system of record.

Comparing the four

tel: linkExtensionNative appCalling layer
Setup effortNoneLowLowMedium — one sync to configure
Survives a CRM redesignYesOften notYesYes
Company caller ID enforcedNoSometimesYesYes
Call logged automaticallyNoBest effortYesYes
RecordingNoSometimesYesYes
Power dialing a listNoRarelySometimesYes
Works with a niche CRMYesYesRarelyYes, if it has a connector

The three things to get right whichever you choose

Caller ID must be a company number, always

This is the requirement teams underrate until a rep leaves and their personal mobile keeps ringing with callbacks from prospects. Whatever you install, the number presented to the person you called should come from the organisation’s pool, and there should be no configuration in which a rep’s own line can be presented instead.

The call must reach the record, not a report

A dialer that keeps its own perfect call history and writes nothing back has moved your data into a second silo. The test is simple: open the CRM record for someone you called an hour ago, and see whether the call is there with its duration and outcome. If it is not, your CRM reporting is now wrong in a way nobody will notice for a quarter. There is more on making that reliable in how to log every sales call automatically.

Contact data should be masked by default

A clean, normalised list is the precondition for all of this, and the formatter will show how much of yours is not. A rep also does not need to read a phone number in order to dial it. Showing the last four digits is enough to confirm the right record and removes the easiest way for a full contact list to be copied out of the screen. In the screenshot above the number is masked and the call still places — that is the shape to look for.

What this looks like in CallPal

CallPal is the fourth option. Contacts sync in from Attio, Close, ActiveCampaign, Capsule, Copper, Insightly, Nimble or Less Annoying CRM — or from a CSV or Excel file — and each record keeps a link back to the object it came from. The Call button places the call over your own SIP trunk with a company number as caller ID, records it, and writes the call back to the CRM record. See click-to-call for the mechanics, or the integrations list for what connects today.

Frequently asked questions

What is click-to-call?

Placing a phone call by clicking a number on a screen rather than keying it into a handset. In a sales context it usually means more than dialing: the call is placed from a company number, recorded, and logged back onto the CRM record it was started from.

Can I add click-to-call to a CRM with no calling integration?

Yes, in three ways of increasing reliability: rely on the CRM’s existing tel: links and a softphone, install a browser extension that overlays dial buttons, or run a calling application that syncs contacts from the CRM and writes calls back through its API. Only the third gives you automatic logging you can depend on.

Why do calls from a browser dialer show the rep’s personal number?

Because a tel: link hands the call to whatever the device has registered as a phone handler, and that handler sends its own caller ID. Fixing it means placing the call through a system that owns the outbound leg and can set the presented number — which is what a real calling integration does and a tel: link never can.

Does click-to-call work from a browser without installing anything?

Yes, if the platform runs a WebRTC softphone in the page. The rep needs a headset and microphone permission; no desk phone or desktop application is involved. CallPal works this way.

Will calls appear on the CRM record automatically?

With a native integration or a syncing calling layer, yes — as a call activity where the CRM supports one, or as a note where it does not. With a tel: link, never. With an extension, sometimes, and typically by typing into a notes field on the rep’s behalf.

Keep reading

Start calling from your CRM today.

Sign up, connect your phone provider, and make your first call. Your own CRM, your own data.

  • Every feature, up to 5 people
  • No card, nothing to cancel
  • Your CRM, your phone provider

Or write to us at [email protected].