Filters

Oracle Responsys

Connect Branch and Responsys to enable a seamless email-to-app linking experience.

1328

Overview

Design and launch contextually relevant digital marketing campaigns to reach every consumer. Oracle Responsys helps you manage, personalize, and orchestrate interactions across all channels to deliver timely, helpful messages in the moments that matter—all without code, complex technical training, or reliance on other experts.

How does it work?

  1. User clicks on a link in an email from their mobile mail client (Gmail, Apple Mail, etc.)
  2. 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.
  3. 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.

Prerequisites

📘

Required Roles

Branch's Universal Email requires the following roles involved in order to enable:

  • Developers
  • CRM/Email Team
  • Oracle Responsys Account Manager / Support Team

In order to enable Responsys, you need to have completed the following:

  1. Admin access to your Branch Dashboard.
  2. Enabled Universal Email for your Branch account.
  3. Implemented the Branch SDK into your mobile app (iOS | Android)
  4. Obtained or set up your Responsys click tracking domain (CTD). Reach out to your Responsys account manager for assistance on this.

Enable Oracle Responsys

Connect Oracle Responsys Service in Branch

In the Branch Dashboard in Email → Manager tab, find Oracle Responsys and click Enable

1428

Input Click Tracking Domain

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

The Oracle Responsys integration requires you provide the following:

  • Click Tracking Domain - The domain you use with Oracle Responsys for links in emails

Additionally, Responsys hosts the AASA file for your click tracking domain. You can provide your Responsys account manager's email for Branch to send the AASA file.

🚧

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 Responsys CTD to your Associated Domains

For your iOS App, you must add the CTD to the Associated Domains. Additional details can be found here.

Add Handle Web-Only Content App Code

If you have links to content that exist only on the web and not in the app (for example, a temporary marketing webpage that isn't in the app), then this code snippet will ensure all links that have not had deep linking script applied will open in a browser. Details can be found here.

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.

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

Add Branch Links to your Emails

Before you start sending your email campaigns, you need to determine what flow you want the user to experience and flag your email links accordingly.

There are a few different ways you can create Branch links that are compatible with Universal Email + Responsys. You will need to replace the web URLs in your templates with these. To create Branch links, you can either:

  1. Use the Branch Responsys SDK
  2. Making regular Branch links compatible with email
  3. Create email links via API without changing your email templates
  4. Convert all web links in your email to deep links

Responsys uses the shortcode e_rs for links in emails - please use this in place of e_xx in the guide below.

1. Use the Branch Responsys SDK

In this step, we'll upload an SDK that makes it very easy to create deep links in your emails. Please remember that this will require an EMD (Email Message Designer) enabled account.

  1. Work with your Branch account manager to modify the following code snippet, replacing DOMAIN-HERE with your Branch base domain:
<#macro deeplink link_to_be_wrapped><#assign branch_base_url="https://DOMAIN-HERE/3p?%243p=e_rs"><#assign final_link=branch_base_url + "&%24original_url=" + link_to_be_wrapped?url("ISO-8859-1")><a href="${final_link}"><#nested></a></#macro> <#macro tracked_deeplink link_to_be_wrapped><#assign branch_base_url="https://DOMAIN-HERE/3p?%243p=e_rs"><#assign deeplink=branch_base_url + "&%24original_url=" + link_to_be_wrapped?url("ISO-8859-1")></#macro>
  1. Log in to your Responsys account.

  2. In the Responsys Dashboard, open your Content Library. You can also access it via the Shortcuts screen on the main page:

    image

  3. Once you are in the Content Manager, you’ll see a list of folders where content is stored. Under All Content, create a new folder named Branch_SDK:

    image

  4. Select the Branch_SDK folder and then click Create Document:

    image

  5. In the Create Document window:

    • Enter branch-sdk in the “Document Name” field.

    • In the Content Box, delete all the text.

    • Paste the snippet you copied in 1.

    • Click Save.

      image

You have now successfully created the deep linking script. Your file structure should look as follows:

image

Configure your Responsys email templates

This code is referred to as the "Branch script" - this script will convert your web URLs to deep links.

The Responsys integration requires you to add email template code in two places.

  1. At the top of an email template
  2. Immediately before a hyperlink

Copy the following snippet, and using the “Source” view, paste the snippet directly under the <html> tag for every template you plan to add deep linking to.

<#include "cms://contentlibrary/Branch_SDK/branch-sdk.htm">

Configuring the Responsys Link Table

For the Branch SDK to generate Branch links in the email or the 3P links while redirections, the Link Tracking table for the email template should contain the following two LINK NAME with the ${deeplink} as the LINK URL.

image

For creating tracked links, ensure that ‘Track Link’ is set to ON. Tracked links will be generated under the Responsys Click Tracking Domain and will then redirect to a Branch 3p link (the link added as the base URL in the Branch_SDK.htm file.

Create deep links

Wherever you are using <a> tags in your email templates, replace those with <@deeplink> tags, or add <@tracked_deeplink /> for web URLs that you would like to deep link.

Here's how it looks with Link Tracking disabled.

Before:
<a href="https://branch.io">Example link</a>

After:
<@deeplink "https://branch.io">Example link</@deeplink>

With link tracking enabled, you can still use Branch links in emails.

Before:
<a href="https://branch.io/product/1234">Example link</a>

After:
<@tracked_deeplink "https://branch.io/product/1234" /> <a href="${clickthrough('TEST_TRACKED_DEEPLINK' , 'deeplink=' + deeplink)}">Example link</a>

This latter example pulls from a Link Table.

image

2. Making regular Branch links compatible with email

Be sure to add "$3p":"e_xx" to the deep link data of any links you use in email to ensure Universal Link and click tracking works as expected.

3. Create email links via API without changing your email templates

To create email links via API, please use the instructions on how to create links via API, but include the following key value pairs in your call:

  1. "$3p":"e_xx" This is required for Universal Link and click tracking functionality.
  2. "$original_url":"{{your web url URI encoded}}" For each piece of content, include a URI encoded version of your content's web URL. You can also add deep link data as query parameters on that web URL. This ensures accurate Content Analytics reporting.
    Example: "$original_url":"https%3A%2F%2Fshop.com%2Fshoes%2Fbrown-shoes%3Fmy_key%3Dmy_value%26campaign%3Dshoe_discounts"

4. Convert all web links in your email to deep links

We have provided a way of easily converting web links to Branch links. The example takes an html email (as a string) and applies the script to it.

Here is the script:

var crypto = require('crypto');
module.exports = function(original_url, branch_base_url) {
    if (!original_url) { return new Error('Missing original_url'); }
    if (typeof original_url != 'string') { return new Error('Invalid original_url'); }
    if (!branch_base_url) { return new Error('Missing branch_base_url, should be similar to https://bnc.lt/abcd/3p?%243p=e_xx'); }
    if (typeof branch_base_url != 'string') { return new Error('Invalid branch_base_url'); }

    return branch_base_url + '&%24original_url=' + encodeURIComponent(original_url);
};

Here is how links look before and after (the latter being a Branch deep link).

  1. Before: http://example.com/?foo=bar
  2. After: https://vza3.app.link/3p?%243p=e_xx&%24original_url=http%3A%2F%2Fexample.com%2F%3Ffoo%3Dbar

Note that these are simplified examples, not actual demo links.

Handle links for web-only content

In some cases you may have content on web that isn’t in the app - for example, a temporary Mother’s Day promotion or an unsubscribe button. You can designate links to only open on web if you use the Responsys Link Table feature. There are three URL fields in the link table when creating a new link: LINK_URL, IOS_LINK_URL, and ANDROID_LINK_URL. If you only enter the link in the LINK_URL field, the path of the final click-wrapped url will begin with /pub/cc. However, if you also input the same link in IOS_LINK_URL, then the path of the final click-wrapped url will begin with pub/acc. You should set up your AASA file to whitelist only the path /pub/acc* in order to not launch the app from web-only links.

image

image

Additional Information

Styling

If you include style tags within your <a> tags, you’ll need to separate those out into a separate div inside the <@deeplink> tag. If you use tracked links with <a> tags, those will work fine.

Style Tags within your anchor tags like so:

Before:

<a href="https://branch.io/" style="color:#000001; text-decoration:none;">Branch Website</a>

After:

<@deeplink "https://branch.io/"><div style="color:#000001; text-decoration:none;">Branch Website</div></@deeplink>

Launch failed error

You’ll see this error if you haven’t included the <#import > snippet in your template.

Launch Failed: Launch failed: Template /contentlibrary/branch test campaign/My Default Template.htm caused an execution error: on line 183, column 92 in cms://contentlibrary/branch test campaign/Content.htm: deeplink is not a user-defined directive. It is a freemarker.template.SimpleScalar

Using dynamic data from profile extension tables

The <@deeplink > and <@tracked_deeplink /> tags even work with dynamic links injected via RPL.

<@deeplink "${latestProduct.url}">${latestProduct.name}</@deeplink>

Dynamic Query Parameters

Certain links in the Responsys Link Table use dynamic variables as query parameters.
Ex. ....com/?key=${VALUE}
In some cases, the value parameter will require additional URI encoding in order for the final URL to be a valid link.

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.