Email Integration Guide

This guide applies to all Branch Email partners. Please follow the steps below to integrate your ESP with Branch. If your ESP requires additional instructions, you will be directed to a dedicated guide.

1. Complete Email Prerequisites

DEVELOPER MAY BE REQUIRED

The following Email prerequisite includes providing URI schemes and other components that may require a developer:

DEVELOPER REQUIRED

The following Email prerequisites involve app code changes:

2. Enable the Integration

To enable the integration:

  1. In the left-hand navigation, click Email.

  2. On the Email overview page, click the Manager tab at the top.

  3. Find your ESP and click Enable.

Branch automatically detects any global link settings you have already provided during the initial setup of your Branch account as outlined above.

If you have not set up your global link settings and redirect preferences, you will be prompted to do so at this time.

3. Provide Click Tracking Domain

Click tracking domains allow you to track engagement on email opens and link clicks.

If you're unsure what your click tracking domain (CTD) is, take a look at one of your recently sent emails. If you hover over the link or right-click/copy the link address, you will see that the domain of the link in the email does not match the URL in your HTML. This domain is your click tracking domain used by your ESP to provide you click reporting.

Alternatively, use the button below to find your ESP's documentation on how to find your click tracking domain. If no documentation is available, we provide a link on how to contact the support team for your ESP.

Remove http:// or https:// when adding your click tracking domain in the Branch dashboard

2412

HELP ME FIND MY ESP'S CTD

KEEP IN MIND

  • You can enable the integration with multiple CTD if needed, but you cannot add the same CTD to multiple Branch dashboards or ESP integrations.

  • In some ESP integrations, you will also be required to add a "data domain" the ESP uses to collect click data.

    • The ESP selected will dictate whether this field appears or not - if the field does not appear, you're not required to add it.

    • Confirm the data domain with your ESP’s account manager.

  • In some ESP integrations, you will also be required to send them the AASA file Branch generates by providing your ESP's contact email.

    • The ESP selected will dictate whether this field appears or not - if the field does not appear, you're not required to add it.

Before you click NEXT and proceed to the Validate & Test section, please complete the following section as it’s required for passing integration validation.

4. Point DNS CNAME to Branch

The majority of ESP integrations require updating the DNS record for your CTD to include a CNAME (alias) record that points to Branch’s thirdparty.bnc.lt domain.

Please follow your web hosting provider’s instructions on how to configure your DNS CNAME. Here are a few common provider’s instructions for reference:

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 3rd 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.

5. Validate the Integration

Once the SSL certificates and AASA file (iOS only) have been generated, you can proceed to reviewing the validation tests, fix any issues and then test the integration.

Branch automatically validates the following:

  • iOS SDK is integrated (required)

  • Android SDK is integrated (required)

  • Deep linking is setup (required)

  • Click Tracking Domain is setup (required)

  • AASA file is valid (required) - Use our AASA File Validator: https://branch.io/resources/aasa-validator/

  • SSL is correctly setup (required)

  • CNAME points to thirdparty.bnc.lt (case-by-case requirement)

  • Universal Linking is setup (required)

  • Hosted deep link data (optional)

  • App Events being tracked (optional)

  • Android App Links (optional)

Common Validation Issues

CNAME Does Not Point to Branch

Pointing your DNS CNAME to Branch is a vital step of the integration process. Unfortunately, it’s also the step that causes the most headaches.

Please make sure to do the following:

  1. Log into your DNS provider’s console and add the CNAME record as described here.

  2. Wait at least 60 minutes after you’ve added the CNAME record so that it has time to propagate and Branch can create the resulting SSL certificates and AASA files (for iOS apps only).


SSL Not Correctly Set Up

If you are having issues with the SSL certificate validating, the culprit is generally the fact that your click tracking domain already has SSL set up and there are restrictions that prevent a 3rd party from submitting a Certificate Signing Request on your behalf.

AASA File is Invalid

Luckily the easiest issue to fix as the main reason for this error is the fact that it depends on the SSL being set up correctly. By addressing the SSL error, the AASA file error should resolve itself simultaneously.

6. Test the Integration

Once the validation process is complete, you can test the integration by generating a test link. The test link generated by Branch is unique in that it’s already converted to a Branch link for you and allows you to test without creating an email template in your ESP. In reality, this conversion happens behind the scenes once a user clicks on your normal email template link.

To generate a test link:

  1. In the Validate & Test section, input a URL from your website.

  2. Click Get Test Link.

  3. Once the Test Link is generated, you can share it via:

  4. Copy to clipboard

  5. SMS

  6. Email

Once you’ve generated your test link, click the link on your mobile device; don’t forget to make sure your mobile device already has the app installed!

7. Start Sending Emails with Flagged Links

Congratulations, you’ve successfully set up the integration with your ESP! Before you start setting up your email campaigns, you need to determine what flow you want the user to experience and flag your email link accordingly.

Most ESPs support the following user flows:

  • Deep linking users to in-app content

    • Added to your links as a URL query parameter:
      <a href="links.example.com?$deep_link=true" >Link to your app!</a>

    • Added to the HTML:
      <a href="http://example.com" deeplink="true">Link to your app!</a>

  • Linking users to web-only content

    • Added to your links as a URL query parameter:
      <a href="links.example.com?$web_only=true" >Link to your app!</a>

HELP ME FLAG MY ESP'S LINKS

ESP Name

ESP Required Link Flags

adestra

  • Deep linking users to in-app content: add $deep_link=true to you links as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

adobe campaign classic

See Dedicated Adobe Campaign Classic Guide

adobe campaign standard

See Dedicated Adobe Campaign Standard Guide

airship

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

amazon simple email service

  • Deep linking users to in-app content: add $deep_link=true to your links as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

betaout

  • Deep linking users to in-app content: add $deep_link=true to your links as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

bluecore

  • Deep linking users to in-app content via UI Editor: select the Deep Link checkbox

  • Deep linking users to in-app content via HTML Editor: add universal="true" to the HTML

⚠️If you are using dynamic links in email, contact Bluecore team to enable link scraping.⚠️

blueshift

  • Deep linking users to web-only content: add web-only="true" to your HTML code

braze + mailjet

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

braze + sendgrid

  • Deep linking users to in-app content: add universal="true" to the HTML

sparkpost universal links

  • Deep linking users to in-app content: add data-msys-sublink="uni" to the HTML

braze + sparkpost

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

campaign monitor

  • Deep linking users to in-app content: add $deep_link=true  as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

cheetah digital marketing suite

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

clevertap + amazon ses

See Dedicated Clevertap + Amazon SES Guide

clevertap + mailgun

See Dedicated Clevertap + Mailgun Guide

clevertap + mandrill

See Dedicated Clevertap + Mandrill Guide

clevertap + sendgrid

See Dedicated Clevertap + Sendgrid Guide

cmercury

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

cordial

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

customer.io

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

emarsys

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

epsilon

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

ExpertSender

  • Deep linking users to in-app content: add $deep_link=trueto your links as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

hootsuite

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

IBM watson campaign automation

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

iterable v1 (legacy)

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

iterable v2

kahuna

  • Deep linking users to in-app content: add kahuna_branch_deep_link=true as a query parameter

klaviyo

  • Deep linking users to in-app content: add universal="true" to the HTML

leanplum

  • Deep linking users to in-app content: add universal="true" to the HTML

mailgun

  • Deep linking users to in-app content: add deeplink="true" to the HTML

mailjet

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

mailup

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

mandrill

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

marketo

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

message gears

  • Deep linking users to in-app content: add $deep_link=true as a query parameter AND add mobile="true" to the HTML

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

moengage

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

optimove

  • Deep linking users to in-app content: add universal="true" to the HTML

oracle bronto

  • Deep linking users to in-app content: add deeplink="true" to the HTML

oracle eloqua

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

oracle responsys

See Dedicated Oracle Responsys Guide

pepipost

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

postup

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

rapid mail

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

sailthru v1

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

sailthru v2

salesforce open web default

See Dedicated Salesforce Open Web Default Guide

salesforce open app default

See Dedicated Salesforce Open App Default Guide

salesforce legacy v2

See Dedicated Salesforce Legacy v2 Guide

salesforce legacy v3

See Dedicated Salesforce Legacy v3 Guide

selligent marketing cloud

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

selligent message studio

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

sender

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

sendgrid

  • Deep linking users to in-app content: add universal="true" to the HTML

smartech

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

socialflow

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

vero

  • Deep linking users to in-app content: add universal="true" to the HTML

whatcounts

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

yes marketing

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter

yiye technology

  • Deep linking users to in-app content: add $deep_link=true as a query parameter

  • Linking users to web-only content: add $web_only=true to your links as a query parameter