Back to Blog

Click-to-X Links: mailto, sms, tel, wa.me & CTR

One tap to email, text, call, or chat, click-to-X URI schemes consistently outperform forms by 30-50% on mobile. Here is how to implement mailto:, sms:, tel:, and wa.me correctly for every platform.

Karan Bhakuni
Karan Bhakuni
Founder, Flyn
MobileApr 21, 202613 min readUpdated May 10, 2026
Click-to-X Links: mailto, sms, tel, wa.me & CTR

The Four URI Schemes Every Marketer Should Know

Four click-to-X schemes cover roughly 95% of mobile contact use cases. Knowing when to use each and how to format them correctly is the entire game.

SchemeWhat it doesBest forMobile lift vs form
mailto:Opens default mail app with pre-filled draftSupport, sales, docs3-5x
sms:Opens messaging app with pre-filled bodyLocal services, opt-in keywords4-6x
tel:Opens dialer with number ready to callLocal services, urgent support5-7x
wa.me/Opens WhatsApp with chat ready to sendInternational, D2C in LATAM/India/MENA3-5x

Universal Compatibility

Each scheme works on every modern smartphone (iOS 11+, Android 6+) and most desktop browsers, though desktop behavior depends on whether a default app is configured. macOS with a paired iPhone via Continuity supports all four. Windows 11 with Phone Link supports tel: and sms:. Linux varies by distribution and mail client setup.

Zero Security Risk

Because none of these schemes can auto-send, there's no phishing or automated abuse vector. The worst case is a malicious site drafting an SMS to a premium-rate number, but the user still has to tap Send. Browser vendors keep these schemes on by default for this reason. You don't need to ask permission to use them.

Mailto: Best Practices and Gotchas

The full mailto format: mailto:[email protected]?subject=...&body=...&cc=...&bcc=...

Pre-Fill the Subject for Triage

Pre-filled subjects let you triage inbound faster and route to the right inbox. Subject: Sales inquiry from /pricing tells your team the source page before they read a word. Subject: Bug report from dashboard v2 routes the message instantly. This is the cheapest analytics system in existence, no code, no tooling, just baked-in context.

Pre-Fill the Body for Speed

Body templates like Hi team, I'm interested in [PRODUCT]. My use case is reduce typing and give the user a starting point. Don't pre-fill the entire message (that removes their voice and makes the contact feel canned), but a one-line opener accelerates the response.

Three Common Gotchas

  1. Outlook truncates mailto URLs at ~2000 characters. Keep the total URL length under 1000 to be safe. Long pre-filled bodies will cut off mid-sentence on Outlook desktop.
  2. HTML in the body does not render. The body is plain text only. Use line breaks (encoded as %0A) but not HTML tags.
  3. Special characters need URL encoding. Spaces become %20, ampersands inside body text become %26, line breaks become %0A, question marks become %3F.

Our Mailto Link Generator handles all encoding automatically and produces a copy-paste HTML anchor tag ready to drop into your site. It also validates the email address syntax and warns if your total URL length is approaching the Outlook limit.

For deeper analysis of when mailto wins versus forms, see our mailto vs contact form deep dive.

WhatsApp wa.me: Click-to-Chat for International Markets

WhatsApp's click-to-chat format: https://wa.me/15551234567?text=Hi%20there, opens WhatsApp with a chat ready to send. (Note: wa.me/ is WhatsApp's canonical short link; you can also use api.whatsapp.com/send?phone=...&text=... for the longer form.)

Why wa.me Matters Globally

With 2 billion+ users, WhatsApp is the dominant messaging platform in most non-US markets, India, Brazil, Mexico, Indonesia, Nigeria, MENA, much of Europe. For D2C brands selling internationally, wa.me links are essential. The conversion lift versus email contact in these markets is often 3-5x simply because WhatsApp is where customers already are.

Phone Number Format

The wa.me format is E.164 without the plus sign. +15551234567 becomes wa.me/15551234567. +919876543210 becomes wa.me/919876543210. Get this wrong (include the plus, include spaces, miss the country code) and the link opens WhatsApp's "Invalid contact" screen.

The Text Parameter Drives Reply Rates

The ?text= parameter pre-fills the message. This dramatically improves response rates. Without a pre-filled message, the customer opens an empty chat and has to think of what to write, many bounce. With a pre-filled message ("Hi! I'm interested in your summer collection"), the customer just taps Send. Pre-filled messages double or triple reply rates for D2C brands.

Cross-Platform Behavior

WhatsApp click-to-chat works on iOS WhatsApp, Android WhatsApp, WhatsApp Web (desktop), and WhatsApp Business. Clicking on iOS opens iOS WhatsApp; clicking on Android opens Android WhatsApp; clicking on desktop with WhatsApp Web active opens WhatsApp Web. The same URL handles all four cases.

Our WhatsApp Link Generator builds wa.me links with QR code output (essential for print materials, packaging, restaurant menus) and validates the phone number format. For deeper tactics on WhatsApp commerce, see our WhatsApp Business catalog playbook.

If your target market is anywhere outside the US, wa.me links should be your default contact CTA. The 2-billion-user platform is not a "nice to have", it is the dominant commerce channel in most of the world.

Beyond WhatsApp: Messenger, Viber, Signal, FaceTime

WhatsApp dominates globally, but every region has secondary chat apps that convert better for specific audiences. Knowing which to offer alongside (or instead of) WhatsApp is the difference between a generic "contact us" page and one that meets customers where they actually live.

Facebook Messenger (m.me), When the Page Already Exists

Format: https://m.me/yourpage?ref=footer-cta&text=Hi%21. The ref parameter is passed to your Messenger webhook so you can attribute conversations to a specific placement (homepage hero vs email footer vs Instagram bio). For any business that already has an active Facebook Page, this should be the second chat CTA, zero setup, every visitor already has Messenger installed, ref attribution out of the box. Build them with our Messenger Link Generator.

Viber (viber://chat), Eastern Europe and the Philippines

Format: viber://chat?number=%2B14155552671&text=Hi. In Ukraine, Belarus, Greece, and the Philippines, Viber dominates business chat the way WhatsApp dominates India. If your audience is there, a Viber CTA converts better than WhatsApp. Same E.164 phone-number requirement, same pre-filled message support. Generate them with our Viber Link Generator.

Signal (signal.me), Privacy-Conscious Clients

Format: https://signal.me/#p/+14155552671. No pre-filled message support (by design, Signal's privacy ethos rejects URL referrer leaks), end-to-end encryption by default. Lawyers, journalists, healthcare providers, security researchers, and activists pick Signal as the "serious business" alternative. Pair it with WhatsApp/Messenger so the privacy-conscious self-select toward Signal. Build them with our Signal Link Generator.

FaceTime (facetime: + facetime-audio:), Apple-Heavy Audiences

Format: facetime:+14155552671 for video, facetime-audio:+14155552671 for audio. Apple-only, but for creative agencies, real estate, healthcare providers, and personal-brand consultants whose clients live in iMessage and FaceTime, a one-tap call link in the email signature converts dramatically better than "DM me to schedule a call." Phone number OR Apple ID email both work. Build them with our FaceTime Link Generator.

The Multi-Chat Strategy

Most small businesses end up with 2-3 chat CTAs side by side, letting the visitor pick the app they already use. Common combinations: WhatsApp + Messenger (for any Facebook-page business), WhatsApp + Signal (for legal/medical/journalism), WhatsApp + Viber (for Eastern European or Filipino audiences), iMessage SMS + FaceTime (for Apple-heavy creative agencies). Use a Flyn short link per channel to track which one actually drives conversations, same destination, separate click counts.

Tracking Click-to-X Conversions

The myth: "URI scheme links can't be tracked." Reality: they can be tracked three ways, each suited to different analytics maturity.

GA4 Enhanced Measurement

GA4 fires an automatic click event when a user clicks any link with a non-HTTP scheme. The event is automatically captured under "Outbound clicks" and includes the URL clicked, page context, and user device data. No code changes required if Enhanced Measurement is on (it's on by default in 2026). The limitation: you see clicks, not conversions, you don't know if the user actually placed the call, sent the SMS, or completed the email.

Wrap your URI scheme link in a short link that redirects to it. flyn.to/call-sales redirects 301 to tel:+15551234567. The short link click is tracked in your Flyn dashboard with geographic, device, and referrer detail. This gives you per-source click data that GA4's outbound tracking doesn't surface natively. Build the destination URL with our UTM Builder for consistent campaign attribution.

Per-Source URI Variants

The simplest attribution: vary the URI itself per source. A mailto on /pricing uses Subject: Sales [src=pricing]. A mailto on /demo uses Subject: Sales [src=demo]. The inbound email's subject line tells you the source page. Zero code, zero infrastructure, perfect attribution.

Server-Side Receipt Tracking

For mature setups, your sales or support team can tag inbound emails by source in your CRM (Salesforce, HubSpot, Pipedrive). The mailto subject line carries the source; the CRM rule routes and tags based on the subject. After 90 days you have full funnel data: clicks per source → contacts per source → qualified leads per source → closed-won per source.

When to Use Each Scheme: A Decision Framework

A copy-paste framework for choosing which scheme to use on which page.

The 4 Questions

  1. Is the visitor's primary contact medium voice? If yes, tel: wins. Local services, urgent support, sales calls.
  2. Is the visitor's primary contact medium text (async)? If yes, choose between mailto: (formal/B2B), sms: (US opt-in marketing), or wa.me/ (international/D2C).
  3. What's the geographic distribution of traffic? US-heavy → mailto/sms/tel. International (especially India, Brazil, MENA) → wa.me/ dominates.
  4. What's the brand voice? Casual/D2C/consumer → SMS or WhatsApp feels right. Enterprise/B2B → mailto with a structured subject line feels appropriate.

Vertical-Specific Recommendations

  • Local services (plumbers, dentists, attorneys): tel: as primary, sms: as backup, mailto: as tertiary
  • SaaS B2B: mailto: with pre-filled subject, contact form as fallback
  • D2C consumer brands: wa.me/ for international, sms: for US, mailto: for press/wholesale
  • Restaurants/hospitality: tel: for reservations, wa.me/ if international clientele
  • Healthcare/legal: tel: for urgent, contact form with mailto fallback for non-urgent

Stacking Schemes for Maximum Reach

The highest-converting contact sections stack multiple schemes side by side: "Call us at +1-555-123, text us at +1-555-456, or email [email protected]." Three taps, three options, every visitor gets their preferred channel. The combined conversion rate of stacked schemes consistently beats any single scheme presented alone. For channel-specific deep dives, see our guides to short links in SMS marketing and add-to-calendar links for events.

Frequently Asked Questions

What is the difference between mailto:, sms:, and tel: links?
They are all URI schemes that open native mobile apps with content pre-filled. mailto: opens the default email client (Gmail, Apple Mail, Outlook) with a draft email. sms: opens the messaging app with a pre-filled text message draft. tel: opens the phone dialer with a number ready to call. All three are universally supported by every modern browser, they're built into the platform spec, not a Flyn feature.
Do click-to-X links work on desktop browsers?
Yes, with caveats. mailto: works if a default mail client is configured (always on macOS, ~60% of Windows). sms: works on macOS with a paired iPhone (via Continuity) and Windows 11 with Phone Link. tel: works similarly via paired phones or VoIP apps like Skype. wa.me/ works if WhatsApp Web is active. Without a paired phone or default app, desktop users see an error or nothing happens. Always show the contact info in text as a copy-paste fallback.
How do I add a pre-filled message to an SMS link?
Append ?body= followed by your URL-encoded message. Example: sms:+15551234567?body=Hi%20there. Use %0A for line breaks. Keep the body under 160 characters (or 70 if you use any emoji) to fit in a single SMS, longer messages split into multiple billable segments. Our SMS Link Generator has a real-time character counter that shows segment count and encoding mode (GSM-7 vs UCS-2) as you type.
Can I use wa.me links for business?
Yes, wa.me click-to-chat links are widely used for business communication. They work with WhatsApp Business accounts and let customers start a chat with one tap. Add them to product pages, support buttons, contact pages, email signatures, and printed materials (with QR codes). For international audiences, WhatsApp click-to-chat often outperforms email contact by 3-5x. For D2C specifically, see our WhatsApp Business catalog playbook for the complete strategy.
Why should I use tel: instead of just displaying a phone number?
On mobile, tel: links convert 5x higher than static phone numbers, one tap to call vs read, copy, switch apps, paste. The user gets to the dialer with the number pre-filled, ready to confirm. Even users who eventually type the number manually appreciate the option. Always make phone numbers tappable on mobile-first sites. Build correctly-formatted tel: links with extensions and DTMF support using our Tel Link Generator.
Can I track clicks on click-to-X links?
Yes, three approaches work. (1) Wrap the URI scheme link in a Flyn short link redirect, you get full click analytics in our dashboard. (2) GA4 Enhanced Measurement automatically fires outbound link events for non-HTTP schemes, no code required. (3) Encode source context in the pre-filled subject (mailto:) or body (sms:, wa.me/) so the source appears in the inbound message itself. Most teams combine the first and third for click-side data plus inbound matching.
How do I format international phone numbers for tel: and sms: links?
Use E.164 format: plus sign, country code, national number, no spaces or punctuation. UK: +447700900000. India: +919876543210. Germany: +4915123456789. For wa.me/ links, drop the plus sign: wa.me/919876543210. Display the number to humans in readable format (+91 98765 43210) but always encode the href in canonical E.164. Domestic-only formats (e.g., 5551234567 for US) fail for international visitors.
Do click-to-X links work in QR codes?
Yes, and they're among the highest-converting QR code destinations possible. A QR code that resolves to a tel: URI launches the phone dialer directly when scanned. mailto: drafts an email. wa.me/ opens a chat. This is enormously effective for print materials, restaurant menus with a "Order via WhatsApp" QR, business cards with a "Call me" QR, packaging with a "Email support" QR. For QR-specific tactics, see our QR codes marketing strategy guide and use our QR Destination Audit to verify your QR resolves correctly across devices.

Ready to try Flyn?

Free plan includes 25 links/month, full analytics, and access to all 30+ free tools above. No credit card required.

Already a member? Log in

Karan Bhakuni
Karan Bhakuni· Founder, Flyn

Karan Bhakuni is the founder of Flyn. He writes about branded links, click analytics, and the link-management tooling growth teams and creators actually need, drawn from building Flyn and reading a lot of user feedback.