← Back to Blog

How to Open Your App from a WhatsApp Link: Previews, Deep Links, and Attribution

How to open your app from a WhatsApp link, fix a missing link preview, and keep install attribution when links travel through chats.

Quick answer: To open your app from a link shared in WhatsApp, share a normal HTTPS URL on a domain where you have set up Universal Links (iOS) and App Links (Android). In current versions, WhatsApp usually hands the tap to the operating system rather than trapping it in an in-app browser, so a verified link opens your app when it is installed - though some builds and settings route the tap through WhatsApp's own preview browser instead. The preview card people see before tapping comes from Open Graph tags (og:title, og:description, og:image) on the destination page: with no tags, the link can render as a bare URL, and a missing or unreadable og:image alone costs the card its thumbnail. When the app is not installed, no deep link can open it - carrying the destination and the attribution through a fresh install is the deferred deep linking problem.

$ cat table-of-contents

  1. What happens when someone taps your link in WhatsApp?
  2. Why does your WhatsApp link show no preview?
  3. How do you make the link open the app instead of the browser?
  4. What about wa.me links and WhatsApp Business buttons?
  5. How do you keep attribution when a link travels through WhatsApp?
  6. How do you test a WhatsApp link before shipping it?
  7. Where LinkTrace fits
  8. Frequently asked questions

What happens when someone taps your link in WhatsApp?

Definition: A WhatsApp deep link is an ordinary HTTPS link, shared inside a WhatsApp chat, that opens a specific screen in your app when the app is installed. There is no WhatsApp-specific link format for reaching your app: the same Universal Links and App Links you use everywhere else do the work, because in current versions WhatsApp usually passes the tap to the phone's operating system, and the OS decides whether your app or a browser should take it.

That hand-off is what makes WhatsApp unusually friendly to deep links. The apps that break deep links are the ones that keep taps inside their own in-app browsers - Instagram, TikTok, and Facebook are the worst offenders, and we covered that mechanism in Deep Links in In-App Browsers. WhatsApp, on both iOS and Android, usually hands the link to the system instead, which means full Universal Link and App Link behavior applies (checked 28 October 2026 - these classifications age as apps change how they handle links).

Three outcomes are possible when a recipient taps your link:

SituationWhat the tap doesWhat you need
App installed, link verifiedOS opens your app directly on the linked screenUniversal Links / App Links on the link's domain
App installed, link not verifiedLink opens in the browser, app stays closedFix the verification files (AASA / assetlinks.json)
App not installedLink opens in the browser; the destination screen is lost on installDeferred deep linking to carry context across the install

One edge case worth knowing: on some builds and settings, WhatsApp opens links in its own built-in preview browser instead of handing them off. In that case the tap behaves like any in-app browser tap, and the fixes in the in-app browsers guide apply. If your link works for most people but fails for a few, this is usually why.

Why does your WhatsApp link show no preview?

Before anyone taps, WhatsApp renders a preview card: title, description, and a thumbnail. WhatsApp builds that card by fetching the destination page with its own crawler and reading its Open Graph tags. If a share renders as a bare URL, or as a card with no thumbnail, the cause is one of these:

  1. The page has no Open Graph tags at all. Check this first; it is the one that bites landing pages built as bare single-page apps or redirects. If the destination HTML contains no og:title, og:description, and og:image, WhatsApp has nothing to render and the share shows a bare URL. A missing og:image on the destination page is enough to lose the thumbnail even when the title and description still appear.
  2. The image is too large or the wrong shape. WhatsApp is stricter than Facebook here. Practitioners report thumbnails failing when the image runs into the hundreds of kilobytes, and square images around 300x300 pixels rendering reliably. Treat those numbers as field reports, not an official spec - Meta publishes no WhatsApp-specific image requirements.
  3. The crawler could not reach the page. Redirect chains, bot protection, or a robots rule that blocks WhatsApp's fetcher all produce the same bare-URL result.

The minimum block for a shareable page:

HTML

<meta property="og:title" content="Your app or page name">
<meta property="og:description" content="One line about what the recipient will see">
<meta property="og:image" content="https://yourdomain.com/preview.png">
<meta property="og:url" content="https://yourdomain.com/the-page">

Two practical notes. First, the og:image URL must be absolute and publicly fetchable - a relative path or an image behind a login will silently fail. Second, there is no official WhatsApp preview debugger, and Meta's Facebook Sharing Debugger does not reflect WhatsApp's crawler, so the reliable test is sending the link to yourself in a real chat. If you route WhatsApp traffic through a short link, check whether the preview is read from the short link's own landing page or the final destination, and put the tags where the crawler will actually see them.

How do you make the link open the app instead of the browser?

The mechanism is the standard one, and WhatsApp changes nothing about it: your link's domain must be verified as belonging to your app. On iOS that means an apple-app-site-association file on the domain and the Associated Domains capability in the app. On Android it means an assetlinks.json file and an autoVerify intent filter. Once verification passes, the OS hands matching HTTPS links to your app instead of a browser. The full comparison of the two systems is in Universal Links vs App Links.

Three failure modes show up specifically with WhatsApp traffic:

  • The link opens the store instead of the app. If your routing link sends uninstalled users to the Play Store or App Store, that part is working; the complaint "it only opens the Play Store even though the app is installed" means verification failed on that device or OS version, not that the store fallback is wrong.
  • It worked in QA but not in the chat. Links tested from a notes app or tapped from Safari behave differently from links tapped inside WhatsApp. Always test from a real conversation.
  • Formatting eats the URL. WhatsApp auto-links text, and a bracket or full stop immediately after the URL can get swallowed into the link. Put the URL on its own line with a space on either side.

What about wa.me links and WhatsApp Business buttons?

Everything above is about links that travel out of WhatsApp into your app. The other direction - links that bring people into a WhatsApp conversation - has its own official format. WhatsApp's own help center documents https://wa.me/<number> as its universal link for starting a chat, with an optional pre-filled message via ?text=. Use it for "chat with us" entry points on your site or inside your app; it opens WhatsApp directly on phones where it is installed.

For businesses on the WhatsApp Business Platform, two more pieces matter. Message templates can include URL buttons, and the Cloud API can render a rich preview for a link inside a message when preview_url is enabled - which runs on the same Open Graph tags described above, so the same og:image discipline applies. If WhatsApp is a real distribution channel for you, the template button and the preview are the two highest-leverage places to get the link right.

How do you keep attribution when a link travels through WhatsApp?

WhatsApp traffic is the classic dark social case. A user copies your link, pastes it into a family group or a team chat, and every tap that follows arrives with no referrer. In your analytics those visits read as direct traffic, and if they convert to installs, the installs read as organic. The link traveled; the attribution did not.

Three things survive the trip, if you put them in place before sharing:

  1. Query parameters. UTM tags on the URL survive copy-paste, because they are part of the link itself. They get you as far as the web visit or the store page.
  2. A routing link that records the click. If the shared URL is a link you control, the tap is logged server-side regardless of which browser renders it, so you at least know the click happened and where it was headed.
  3. Deferred deep linking for the install. When the recipient does not have the app, the only way to connect the eventual install back to that tap is to carry the link's context through the store and recover it on first open. That is the deferred case, and it is covered end to end in the deferred deep links implementation guide.

The measurement gap this closes is the same one we described for Twitter, Reddit, and LinkedIn in organic social attribution - except that for most consumer apps, and especially in markets where WhatsApp is the default messaging layer, the WhatsApp share is larger than all of those channels combined.

How do you test a WhatsApp link before shipping it?

  1. Send the link to yourself in a real WhatsApp chat, on its own line, and check the preview card renders with title, description, and thumbnail.
  2. Tap it from inside the chat with the app installed. It should open the app on the right screen, not the browser and not the home screen.
  3. Tap it twice and record both results - first and second taps can behave differently on iOS.
  4. Delete the app, tap the link, install from the store, and open. Confirm you land on the linked screen and the share context survived.
  5. Repeat on at least one Android and one iPhone, and check what happens for a recipient whose WhatsApp opens links in its built-in preview browser.

Where LinkTrace fits

LinkTrace is built for exactly this path. A LinkTrace link is an HTTPS URL on a verified domain, so a tap from WhatsApp opens the app when it is installed; we host the AASA and assetlinks.json verification files, and your app still needs the Associated Domains capability and the manifest lines on its side. Every tap is recorded server-side with its source parameters, so WhatsApp click traffic is visible even when nobody installs. When the app is not installed, the same link falls back to the store or a web page and defers the destination: if the install happens within 24 hours of the tap and the device fingerprint matches, your app recovers the original destination and campaign through one Attribution API call after sign-up, and the install is credited to the shared link instead of reading as "direct". Routing and attribution live on the same link, at a flat published price, with no SDK.

Frequently asked questions

Does WhatsApp block deep links?

No. In current versions (checked October 2026), WhatsApp on iOS and Android usually hands links to the operating system, which is why Universal Links and App Links behave normally from inside a chat. The apps that break deep links are the ones with aggressive in-app browsers - Instagram, TikTok, and Facebook. The exception is WhatsApp's built-in preview browser on some builds, which behaves like any in-app browser.

Why does my WhatsApp link open the Play Store instead of my app?

For users without the app, the store is the correct destination. If it happens for users who have the app installed, App Links verification is failing on their device: check that assetlinks.json is served correctly on the link's domain, that the SHA-256 certificate fingerprint matches the build they installed, and that the intent filter has autoVerify enabled. The iOS equivalent is a broken AASA file or a missing Associated Domains entitlement.

Why is there no thumbnail when I share my link on WhatsApp?

Start with the destination page's Open Graph tags. If the page has no og tags at all, the share renders as a bare URL. If the og:image is missing, not publicly fetchable, oversized, or blocked from WhatsApp's crawler, the card renders without its thumbnail while the title and description may still appear. Use absolute URLs, keep the image small (field reports suggest staying well under a megabyte, and square works reliably), and test by sending the link in a real chat - there is no official WhatsApp preview debugger.

Do UTM parameters survive being shared on WhatsApp?

Yes. Query parameters are part of the URL, so they survive copy-paste and forwarding. What does not survive is the HTTP referrer, which is why WhatsApp traffic shows up as direct unless your links carry their own parameters or you measure taps server-side.

What is the difference between a wa.me link and a deep link?

They point in opposite directions. A wa.me link is WhatsApp's official universal link for opening a WhatsApp chat with a specific number - it brings people into WhatsApp. A deep link brings people out of WhatsApp (or anywhere else) into your app. Many products need both: a wa.me link for support entry points, and deep links for everything users share with each other.

Do I need the WhatsApp Business API for any of this?

No. Everything about opening your app and rendering previews works with ordinary links in ordinary chats. The Business Platform adds template messages with URL buttons and server-side sending with preview control, which matter once WhatsApp becomes a managed channel rather than purely user-to-user sharing.

If you remember three things

  • WhatsApp is usually not the problem. In current versions it hands links to the OS, so standard Universal Links and App Links do the work - if your link opens the browser, check your verification before blaming the chat app.
  • The preview card is your page's job. WhatsApp renders og:title, og:description, and og:image from the destination; no tags means a bare URL, and a missing og:image alone means a card with no thumbnail.
  • WhatsApp attribution has to be built in before sharing. The referrer never survives a paste into a chat, so UTMs, server-side click logging, and deferred deep linking are the only way shared links stop reading as "direct".

Sources

Platform behavior in this guide was checked against the following pages on 28 October 2026.


LinkTrace is a deep linking and install attribution service for startups and app developers. Two HTTPS calls, flat pricing, no SDK. Create a free account or see the plans.

Related guides: What Is Deep Linking?, Deep Links in In-App Browsers, You're Getting Installs from Twitter, Reddit, and LinkedIn, and Deferred Deep Links: Implementation Guide