With Customer.io, send targeted emails, push notifications, and SMS to lower churn, create stronger relationships, and drive subscriptions.
1. Complete Universal Email Prerequisites
DEVELOPER MAY BE REQUIRED
The following Universal Email prerequisite includes providing URI schemes and other components that may require a developer:
The following Universal Email prerequisites involve app code changes:
2. Enable the Integration
To enable the integration:
- In the left-hand navigation, click Email.
- On the Email overview page, click the Manager tab at the top.
- 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.
The Customer.io integration requires you provide the following:
- Click Tracking Domain - The domain you use with Customer.io for links in emails
https://when adding your click tracking domain in the Branch dashboard
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.
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
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 BEFORE 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)
- 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:
- Log into your DNS provider’s console and add the CNAME record as described here.
- 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:
- In the Validate & Test section, input a URL from your website.
- Click Get Test Link.
- Once the Test Link is generated, you can share it via:
- Copy to clipboard
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 Customer.io
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.
Flag your deep links
For the email links that you would like to deep link to content, add
$deep_link=true to the URL as a query parameter, for example:
<a href="links.example.com?$deep_link=true" >Link to your app!</a>
This will ensure that your links are converted to Branch links that will open the app on iOS and Android, with full tracking and attribution.
Flag your web-only links
With your email service provider, all email links will open the app by default. In order for your app to know that the email link should bounce to web after opening the app, add
$web_only=true to your links as a query parameter, for example:
<a href="links.example.com?$web_only=true" >Link to your app!</a>