Universal Links and App Links in Customer.io

Customer.io partner logo

Table of Contents

Summarize this documentation using AI

This banner was added using fs-inject

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Overview

Universal links and app links in Customer.io help your email clicks open your mobile app when it is installed, and fall back to the right web page when it is not. For D2C brands, that means fewer broken journeys between email and checkout, and more sessions that start on the PDP, cart, or order status screen you intended.

A common win is abandoned cart recovery, where the same “Return to cart” button can deep link into the app for loyal customers and still work on mobile web for everyone else, without building separate emails. Propel typically helps brands standardize these link patterns across flows so every click reliably drives toward purchase, book a strategy call.

If you are implementing this inside Customer.io, treat universal links and app links as part of your conversion infrastructure, not a deliverability afterthought.

How It Works

Universal links and app links in Customer.io work by turning a normal URL in your email into a mobile deep link experience, where iOS uses Universal Links and Android uses App Links to route the click into your app when possible.

In practice, you set up your app and domains so the operating system trusts that certain HTTPS links belong to your app. Then you use those same HTTPS links in your emails. When a shopper taps the link:

  • If the app is installed and the association is configured correctly, the OS opens the app to the mapped screen.
  • If the app is not installed (or the association fails), the click opens in the browser and lands on the fallback URL (usually the same URL).

From a retention operator standpoint in Customer.io, the key is consistency. Your email templates should always use your approved deep link URLs for high intent destinations like cart, checkout, reorder, and order tracking.

Step-by-Step Setup

Universal links and app links in Customer.io setup is mostly about getting your app, domain, and link conventions aligned before you scale into high volume flows.

  1. Choose the destination URLs you care about most. Start with cart, checkout, PDP, collection, order status, and account login. Map each to a stable HTTPS URL structure (avoid fragile query strings that change per session).
  2. Confirm your app supports deep linking for those destinations. Your mobile team should confirm the app can route an incoming universal link or app link to the correct screen, including handling parameters like SKU, variant, or order ID.
  3. Set up iOS Universal Links for your domain. This typically requires hosting the Apple App Site Association (AASA) file on your domain and configuring associated domains in the iOS app. Validate that the OS opens the app when tapping a link from Notes or Messages (not just from inside the app).
  4. Set up Android App Links for your domain. This typically requires Digital Asset Links on your domain and intent filters in the Android app. Validate behavior across Gmail and Chrome.
  5. Define a link convention for email templates. For example, always use https://brand.com/cart for cart recovery, and let the OS decide app vs web. Avoid mixing in custom schemes (brand://) in email unless you have a very specific reason.
  6. Implement dynamic links with Liquid where needed. Use event or profile data to generate URLs like https://brand.com/products/{{event.product_slug}} or https://brand.com/orders/{{customer.last_order_id}}.
  7. QA on real devices and real inboxes. Test on iOS Mail, Gmail iOS, Gmail Android, and Outlook mobile. Confirm app-installed and app-not-installed behavior. Confirm analytics attribution still fires on the web fallback.
  8. Roll out to one high intent flow first. Cart abandonment or post-purchase order tracking are the best starting points. Once stable, propagate the same link pattern across browse abandon, replenishment, and winback.

When Should You Use This Feature

Universal links and app links in Customer.io are worth prioritizing when you have meaningful mobile app traffic and you want email clicks to land shoppers closer to purchase with fewer steps.

  • Abandoned cart recovery: Send shoppers straight back into the cart screen in-app, where saved payment methods and faster checkout increase conversion rate.
  • Post-purchase order tracking: “Track your order” should open the order detail screen in-app for a smoother support experience, while still working on web for guest checkouts.
  • Back-in-stock and price drop alerts: Deep link into the exact PDP and variant selection to reduce friction, especially for fast-selling items.
  • Reorder and replenishment: Link into a prefilled reorder flow or the last purchased product page, which tends to lift repeat purchase rate.
  • Product discovery journeys: Collection and quiz result links can open in-app for higher engagement, while maintaining a clean web fallback for non-app shoppers.

Operational Considerations

Universal links and app links in Customer.io require operational discipline across segmentation, data flow, and template governance, otherwise you end up with inconsistent click behavior that is hard to debug.

  • Segment by app install state if you can, but do not depend on it. Even if you track “has_app_installed,” universal links should still work without perfect data. Use segmentation for messaging (for example, “Open in app” copy), not for separate link structures.
  • Keep destinations stable across campaigns. If your cart URL changes by locale, currency, or storefront, document the canonical URL pattern and enforce it in templates.
  • Coordinate attribution expectations. Deep linking into the app can reduce web analytics visibility. Align on how you measure success (incremental conversions, app sessions from email, downstream revenue), and ensure your mobile analytics captures the open and subsequent purchase.
  • Be careful with authentication walls. If a universal link routes to a login screen in-app, you can lose the conversion. In retention programs we’ve implemented for D2C brands, the biggest lift comes when cart and checkout links land users in an already-authenticated state.
  • Template governance matters. One rogue template using an old domain or a non-associated subdomain can break app opens. Maintain a short “approved link destinations” list for your team.

Implementation Checklist

Universal links and app links in Customer.io go smoothly when you treat them like a cross-functional launch with clear QA criteria.

  • List of priority destinations (cart, checkout, PDP, order status, reorder)
  • Confirmed iOS Universal Links configuration for the sending domain
  • Confirmed Android App Links configuration for the sending domain
  • Validated fallback behavior when app is not installed
  • Email templates updated to use canonical HTTPS deep link URLs
  • Liquid variables tested for dynamic PDP, cart, and order URLs
  • Device QA across iOS Mail, Gmail iOS, Gmail Android, Outlook mobile
  • Attribution plan agreed (app analytics events and revenue reporting)
  • Rollout plan starting with one high intent flow (cart or post-purchase)

Expert Implementation Tips

Universal links and app links in Customer.io perform best when your click destinations are designed around shopper intent, not internal URL convenience.

  • Use “intent matched” destinations. Cart emails should go to cart, not homepage. Back-in-stock should go to the exact variant. Every extra tap costs conversion.
  • Standardize your UTM strategy, but do not let UTMs break routing. Some deep link setups are sensitive to URL variations. Keep UTMs consistent and test that the app still opens with parameters attached.
  • Write link copy that sets expectations. For app-heavy segments, “Open your cart in the app” can lift click-to-purchase. For mixed audiences, keep it neutral like “Return to checkout.”
  • Start with your highest AOV or highest volume flow. In retention programs we’ve implemented for D2C brands, cart recovery and replenishment are usually the fastest payback because the click intent is already high.

Common Mistakes to Avoid

Universal links and app links in Customer.io often fail due to small inconsistencies that only show up at scale.

  • Using a different subdomain than the one associated with the app. If your email links go to shop.brand.com but the app association is set for brand.com, app opens can fail.
  • Relying on custom URL schemes in email. They can behave inconsistently across inboxes and security layers. Prefer HTTPS universal links as the default.
  • Sending shoppers to a generic page. Deep linking only pays off when the landing screen matches the email promise.
  • Skipping real inbox testing. A link that works in a browser test may not work inside Gmail or iOS Mail.
  • Not planning for logged-out users. If the app opens but the user must log in before seeing cart or checkout, conversion drops and support tickets rise.

Summary

Use universal links and app links when email clicks need to open the app reliably and still convert on web when the app is not installed. It is most impactful for cart recovery, reorder, and post-purchase journeys where fewer steps directly increases revenue.

If you want this set up cleanly across flows, templates, and reporting in Customer.io, treat it as a system, not a one-off template tweak.

Implement with Propel

Propel helps D2C teams implement universal links and app links across Customer.io campaigns, including QA, template standards, and measurement. If you want this live fast and stable, book a strategy call.

Contact us

Get in touch

Our friendly team is always here to chat.

Here’s what we’ll dig into:

Where your lifecycle flows are underperforming and the revenue you’re missing

How AI-driven personalisation can move the needle on retention and LTV

Quick wins your team can action this quarter

Whether Propel AI is the right fit for your brand, stage, and stack