Email is the highest-ROI marketing channel for e-commerce. But the default email experience is poor: user taps a link, browser opens, website loads, user has to navigate to the mobile version, maybe log in, then find the product. Deep links fix this: user taps a link in the email, app opens directly to the product or cart.
For general email deep linking, see Universal Links in Email Campaigns. For the broader e-commerce strategy, see Deep Linking for E-Commerce Apps.
The Email-to-App Gap
Here's what happens without deep links:
- User opens email on their phone
- Taps a product link
- Mobile browser opens (or in-app browser in the email client)
- Website loads (mobile web version)
- User may need to log in
- User browses, adds to cart, checks out on the web
Here's what happens with deep links:
- User opens email on their phone
- Taps a product link
- App opens directly to the product
- User is already logged in (the app maintains their session)
- User taps "Buy Now"
Fewer steps, no login friction, and the app provides a better shopping experience than mobile web. The conversion rate difference is typically 2-3x.
Email Types and Deep Link Patterns
Product Recommendation Emails
The most common e-commerce email. Each product links to its deep link:
<table>
<tr>
<td>
<a href="https://go.yourapp.com/product/SKU-001?utm_source=email&utm_campaign=weekly-picks">
<img src="product-image.jpg" alt="Running Shoes V2" />
</a>
<p>Running Shoes V2 - $89.99</p>
<a href="https://go.yourapp.com/product/SKU-001?utm_source=email&utm_campaign=weekly-picks">
Shop Now →
</a>
</td>
</tr>
</table>
Both the product image and the CTA button link to the same deep link.
Order Confirmation Emails
Link to the order tracking screen:
<a href="https://go.yourapp.com/orders/ORD-12345?utm_source=email&utm_medium=transactional">
Track Your Order →
</a>
Shipping Notification Emails
Link to the shipment tracking detail:
<a href="https://go.yourapp.com/orders/ORD-12345/tracking?utm_source=email&utm_medium=transactional">
Track Your Shipment →
</a>
Sale/Promotional Emails
Link to the sale landing page with auto-applied promo:
<a href="https://go.yourapp.com/sale/summer-2026?promo=SUMMER30&utm_source=email&utm_campaign=summer-sale">
Shop the Sale →
</a>
Back-in-Stock Notifications
Link directly to the product that's back:
<a href="https://go.yourapp.com/product/SKU-789?back_in_stock=true&utm_source=email&utm_campaign=restock">
It's Back! Shop Now →
</a>
Abandoned Cart Emails
Link to the cart with items restored:
<a href="https://go.yourapp.com/cart?recover=true&promo=COMEBACK10&utm_source=email&utm_campaign=cart-recovery">
Complete Your Order (10% Off) →
</a>
For abandoned cart strategies, see Abandoned Cart Recovery with Deep Links.
The Link Wrapping Problem
The biggest technical challenge with email deep links: email service providers (ESPs) wrap your links for click tracking.
When you put https://go.yourapp.com/product/123 in an email through Mailchimp, SendGrid, or any ESP, the actual link in the HTML becomes something like:
https://click.mailchimp.com/track/click/12345?url=https%3A%2F%2Fgo.yourapp.com%2Fproduct%2F123
The OS sees click.mailchimp.com, not go.yourapp.com. Since your app doesn't handle click.mailchimp.com, the link opens in the browser instead of the app.
Solutions
Option 1: Use your deep linking platform's email compatibility
Most deep linking platforms handle this automatically. When the wrapped link hits the deep linking server, it detects the device and either:
- Opens the app via a redirect through a page with a Universal Link
- Falls back to the web destination
Option 2: Custom link redirect
Some ESPs allow you to set a custom click tracking domain. If you set click.yourapp.com as the tracking domain, you can configure it to redirect through your deep link domain:
click.yourapp.com → go.yourapp.com/product/123 → App opens
Option 3: Bypass wrapping for specific links
Some ESPs allow you to mark specific links as "no-track" or raw. The trade-off: you lose click tracking for those links.
Option 4: Smart banner as fallback
If the link opens in the browser instead of the app, display a smart banner on the web page that deep links to the app:
Web page: "Open in app for a better experience"
[Open in App] → https://go.yourapp.com/product/123
This adds one extra tap but recovers the app experience.
Testing with Your ESP
Before launching an email campaign with deep links, send test emails through your actual ESP (not just a test email tool) and verify:
- The link in the delivered email opens the app (not the browser)
- The link works in Apple Mail, Gmail app, Outlook, and the ESP's email client
- Click tracking still records (if using a compatible solution)
Test on both iOS and Android. Different email clients handle links differently.
Email Client Behavior
Different email clients handle links differently:
| Email Client | Universal Links Support | Behavior |
|---|---|---|
| Apple Mail | Yes | Tapping a link opens the app if configured |
| Gmail (iOS) | Partial | Opens in Gmail's in-app browser first |
| Gmail (Android) | Yes | Opens the app via App Links |
| Outlook (iOS) | Partial | May open in in-app browser |
| Outlook (Android) | Yes | Opens the app via App Links |
For clients that open an in-app browser first, the web page should display a smart banner that deep links to the app.
Building the Email Template
Structure
<!-- Header with logo linking to app home -->
<a href="https://go.yourapp.com/?utm_source=email">
<img src="logo.png" alt="Your App" />
</a>
<!-- Hero banner linking to sale page -->
<a href="https://go.yourapp.com/sale/summer?promo=SUMMER30&utm_source=email">
<img src="sale-banner.jpg" alt="Summer Sale: 30% Off" />
</a>
<!-- Product grid - each product links to its page -->
<table>
<tr>
<td>
<a href="https://go.yourapp.com/product/SKU-001?utm_source=email">
<img src="product-1.jpg" alt="Product 1" />
</a>
</td>
<td>
<a href="https://go.yourapp.com/product/SKU-002?utm_source=email">
<img src="product-2.jpg" alt="Product 2" />
</a>
</td>
</tr>
</table>
<!-- CTA button -->
<a href="https://go.yourapp.com/sale/summer?promo=SUMMER30&utm_source=email"
style="background: #000; color: #fff; padding: 12px 24px; text-decoration: none;">
Shop the Sale →
</a>
UTM Parameters
Every link should include UTM parameters for attribution:
utm_source=emailutm_medium=marketing(ortransactional)utm_campaign=campaign-nameutm_content=cta-button(orproduct-1,hero-banner)
These parameters pass through to your analytics when the app opens.
Measuring Email Deep Link Performance
Key Metrics
| Metric | Formula | Benchmark |
|---|---|---|
| Email open rate | Opens / Delivered | 20-30% |
| Click-through rate | Clicks / Opens | 3-5% |
| App open rate | App opens / Clicks | 40-70% |
| Conversion rate | Purchases / App opens | 5-15% |
| Revenue per email | Total revenue / Emails sent | Varies |
A/B Testing
Test deep linked emails against web-linked emails:
- Group A: Links deep link to the app
- Group B: Links go to the mobile website
Compare conversion rates, average order value, and revenue per email.
Segmentation
Segment your email list by app install status:
- App installed: Use deep links (user goes directly to app)
- App not installed: Use web links with smart banner (user sees web page + app install prompt)
If you know which users have the app installed (via your analytics), you can send different email versions to each segment.
For deep linking features, see Tolinku deep linking. For e-commerce use cases, see the e-commerce documentation.
Get deep linking tips in your inbox
One email per week. No spam.