
Overview
Customer Engagement for the Modern Marketer. An integrated, cross-channel platform, built for marketers, trusted by engineers, designed with intelligence.
How does it work?
User clicks on a link in an email from their mobile mail client (Gmail, Apple Mail, etc.)
If the user has the app installed and the link has a corresponding screen in the app, the app will open and deep link the user to the right content.
Ex. Product detail page, category shopping page, etc.
If the user does not have the app installed or the link only corresponds to a screen on the web, the user is routed to the website using their default mobile web browser.
Ex. Unsubscribe link, privacy policy, etc.
Before you begin
Required Roles
Branch's Branch Email requires the following roles involved in order to enable:
Developers
CRM/Email Team
Iterable Account Manager / Support Team
In order to enable Iterable, you must first:
Have admin access to your Branch Dashboard.
Have Branch's Engagement product enabled for your Branch Account.
Implement the Branch SDK into your mobile app (iOS | Android)
Set Up Deep Link Routing. How your mobile app routes to in-app content will determine how you will create and tag your Branch Links.
Review our Email Overview and Basic Email Integration Guide to understand the feature and our integrations.
Obtain or set up your Iterable click tracking domain (CTD). Reach out to your Iterable account manager for assistance on this.
Enable Iterable
Connect Iterable Service in Branch
In the Branch Dashboard in Email → Manager tab, find Iterable and click Enable

Input Click Tracking Domain
Click tracking domains allow you to track engagement on email opens and link clicks.
The Iterable integration requires you provide the following:
Click Tracking Domain - The domain you use with Iterable for links in emails
For additional help, please see Iterable's documentation.
Click Tracking Domain
Remove
https://when adding your click tracking domain.Never add the same CTD to both your Live and Test Branch environments.
You can enable the integration with multiple CTDs, if needed, but you cannot add the same CTD to multiple Branch Dashboards or ESP integrations.

Configure your App
Add your Iterable CTD to your Associated Domains
For your iOS App, you must add the CTD to the Associated Domains. Additional details can be found here.
.png?sv=2026-02-06&spr=https&st=2026-09-17T22%3A31%3A08Z&se=2026-09-17T22%3A46%3A08Z&sr=c&sp=r&sig=DrMmtoTi4d0rz5MbvKpUw9tgU%2FPRlipqv0UOcdtJAuc%3D)
Return YES to continueUserActivity
Additionally, you will need to add the CTD to your iOS app's info.plist file. Additional details can be found here.
.png?sv=2026-02-06&spr=https&st=2026-09-17T22%3A31%3A08Z&se=2026-09-17T22%3A46%3A08Z&sr=c&sp=r&sig=DrMmtoTi4d0rz5MbvKpUw9tgU%2FPRlipqv0UOcdtJAuc%3D)
Point DNS CNAME to Branch
Please follow your web hosting provider’s instructions on how to configure your DNS CNAME.
Update the DNS CNAME and point it to thirdparty.bnc.lt. Once the CNAME record is added, please allow up to an hour for Branch to generate SSL and AASA files for your click tracking domain.
Important CNAME Info
The Branch dashboard must be enabled & reflect the CTD AFTER you add the CNAME.
If the CTD already has SSL setup, confirm if your security credentials allow a third party to submit a CSR on behalf of the domain. If not, contact Branch's Support team, to coordinate providing an SSL certificate manually to Branch.
Once the CNAME is added, Branch auto-generates an SSL certificate and AASA file for your click tracking domain. It may take up to an hour to resolve SSL errors once you change the CNAME. During this time, link redirects on the click tracking domain will redirect to the Default URL you provided in the General Configuration section of your account.
If you are making this change to a live domain with active email click traffic, schedule the CNAME change to occur during an off-hours time with low click traffic.
Note: Branch and Iterable each host deep link files
After your CNAME points to Branch, Branch generates and hosts two files on your click tracking domain. The apple-app-site-association (AASA) file is at
https://<click tracking domain>/.well-known/apple-app-site-association. The Android Digital Asset Links file is athttps://<click tracking domain>/.well-known/assetlinks.json. iOS and Android read these files to verify your Universal Links and App Links. You do not create or upload them.Iterable also asks you to upload an AASA file and an
assetlinks.jsonfile for each destination domain under Settings > Domains. Iterable uses the paths in those files only to decide which links it rewrites as deep links before it sends an email. They do not replace the files Branch hosts. To change which paths open your app, update the files in Iterable. Branch needs no change. For details, see Iterable's Configuring Deep Links for Email or SMS.
Add Branch Links to your Emails
The Iterable integration includes automatic link recognition; this means you do not have to individually tag each link you use in your emails as you would with the legacy Iterable integration.
However, to use this feature for iOS apps, you must set up iOS Universal links in your Iterable account.
Analytics on the Branch Dashboard
To see how the email campaigns have performed and break it down into campaigns, it is very essential to tag your email links with the ~campaign tag. If your team uses UTM tags, Branch will also ingest the UTM_campaign tag. This will help dedupe the numbers and hence see the downstream events. You can add the campaign tag in any comparisons and filters in any Dashboard views.
Add deep link data to your email links
After you enable the integration and configure your click tracking domain, you can pass deep link data on your email links so the Branch SDK routes users to specific in-app content. There are two ways to do this.
Option 1: Add parameters to individual links
Add a Branch reserved key as a query parameter on the destination URL in your email template. For example:
https://www.example.com/?$deeplink_path=locationsBranch reads the query parameters on the destination URL and passes them to your app as deep link data. Keys that start with $, such as $deeplink_path, $ios_deeplink_path, and $android_deeplink_path, control in-app routing. Any other key is passed through as custom data that your app can read.
Note
Use this option when links in the same email need to route to different in-app destinations, for example separate buttons that point to different content. URL-encode every value, or the link will break.
Option 2: Add link parameters to the whole template
Iterable can append the same query parameters to every link in a template. Use this option when one deep link value applies to the whole email, or when a merge tag resolves the value for each recipient.
In Iterable, go to Content > Templates and open the template.
In the "Details" area, select Edit.
Select the Link parameters checkbox.
Select Add link parameter.
Enter a key and a value. For example, use the key
$deeplink_pathand the valuelocations. The value can be static text or a merge tag such as{{deeplinkPath}}. Iterable URL-encodes the value for you.Save the template.
For details, see Iterable's Link Parameters article.
Note
Link parameters add the same key and value to every link in the template. If buttons in the same template need different destinations, use Option 1 instead.