Subscription

Quickly build an effective subscription referral program to turn customers into advocates and to turn the passion they have for you into new subscribers.

Overview

This guide will walk you through the four necessary steps for going live with Extole:

  1. Brand your Program
  2. Tag your Website
  3. Design your Experience
  4. Reward your Customers

Brand your Program

Create a CNAME for your Domain

📘

Task Duration

This task will typically take an IT/Ops engineering team 10–15 minutes to complete.

You'll want to create a CNAME for your domain so that you can create branded Promotion Links and Share Links.

To set up your CNAME, please complete the steps outlined in Extole DNS Requirements.

Send from Your Branded Email

The referral program will send program emails from you to your customers:

  • Welcome Email
  • Advocate Stats Email
  • Earned Reward Email

The from address for this will typically be something similar to [email protected]. Once this email has been identified, Extole can check if it is configured to allow Extole to send emails from this address.

For details on how to update your SPF DNS records and install Extole DKIM keys, please reference Extole DNS Requirements.

📘

Related Content

Tag your Website

Extole works with your site using lightweight JavaScript tags. The core tag must be included on every page of your site and contains Extole's JavaScript Library.

Extole tags can go anywhere in the HTML of the page and do not need to be loaded in any specific order. They are asynchronous to ensure fast page loading.

Marketing tags display CTA s inline on your page. These tags will reference a specific span tag by id and should be placed into the HTML inline where they will be displayed.

Add the Core Tag (Extole's JavaScript Library)

Extole's JavaScript library must be placed on all of your pages using the core tag. This tag is used to activate the Extole system and ensures that any other Extole tags on your page work properly.

The core tag can be found under your program’s branded domain (refer.brand.com). If you haven't set up your branded domain yet, you can load the tag from the Extole unbranded domain.

Find your active referral domain and use that for your core tag. It will look like brand.extole.io (unbranded) or refer.brand.com (branded).

<!-- BRANDED -->
<script type="text/javascript" src="https://refer.brand.com/core.js" fetchpriority="high" async></script>

<!-- UNBRANDED -->
<script type="text/javascript" src="https://brand.extole.io/core.js" fetchpriority="high" async></script>
var extoleScript = document.createElement('script');
extoleScript.setAttribute('type', 'text/javascript');
extoleScript.setAttribute('async', 'async');
extoleScript.setAttribute('src', 'https://origin.extole.io/brand/core.js');
document.getElementsByTagName('body')[0].appendChild(extoleScript);

Add Marketing Tags

In order to drive participation, Extole displays CTAs that promote the program. For example, a global_header CTA will add a banner element to the top of the screen that will say something like “Refer a friend.” When clicked or tapped, the banner will take the user to the Share Experience.

Marketing tags tell Extole where to serve CTAs onto your website. These CTAs are clickable or tappable links and images that advertise your program to your customers and visitors. These marketing tags also enable tracking, so that you can know which marketing placements are driving participation in the program.

Your Extole referral campaign comes with standard marketing tags, which you can enable or disable in the My Extole Campaign Editor:

  • global_header
  • global_footer
  • product
  • confirmation
  • overlay

It's easy to create additional marketing tags if you want to add calls to action to additional pages like your blog, help pages, etc. As you're getting started, contact your Customer Success Manager to help learn how.

Marketing Tag Placement

There is a span section that goes into your web page where the content will appear. This is typically done through your CMS or on site. It is required for all tags that put content inline (but not required for overlay and confirmation tags).

<span id="extole_zone_global_header"></span>

Additionally, there is the script tag that loads the targeted content from the program and inserts it onto the page in the span tag.

Below is an example of a global_header tag:

<span id="extole_zone_global_header"></span>
<script type="text/javascript">
  /* Start Extole */
  (function(c,e,k,l,a){c[e]=c[e]||{};for(c[e].q=c[e].q||[];a<l.length;)k(l[a++],c[e])})(window,"extole",function(c,e){e[c]=e[c]||function(){e.q.push([c,arguments])}},["createZone"],0);
  /* End Extole */

   extole.createZone({
     name: 'global_header',
     element_id: 'extole_zone_global_header',
     data: {
       "partner_user_id":"00O40000004SA1AA", // RECOMMENDED IF AVAILABLE
       "email": "[email protected]",  // RECOMMENDED IF AVAILABLE
       "first_name": "April",  // RECOMMENDED IF AVAILABLE
       "last_name": "Advocate"  // RECOMMENDED IF AVAILABLE
     }     
  });
</script>
Marketing Tag FieldDescription
first_name
recommended
This should be passed to a marketing tag if the advocate is logged in and their first name is known.
last_name
recommended
This should be passed to a marketing tag if the advocate is logged in and their last name is known.
email
recommended
This should be passed to a marketing tag if the advocate is logged in and their email is known.
partner_user_id
recommended
This should be passed to a marketing tag if the advocate is logged in. This is your unique identifier for this person such as an account iD or member ID.

Track Signups and Purchases

In order to reward advocates when a friend becomes a paying customer, you need to communicate to Extole when a friend starts their trial and when the friend becomes a paying customer.

Track Signups with Registration Tags

The registration tag passes information about the new customer to allow Extole to attribute the sign up to a referral when possible. This helps successful tracking when the customer goes on to be a paying subscriber.

🚧

Important Note

Make certain that you fire the Extole tag for all registrations so Extole will correctly attribute referrals and manage the fraud and business rules. Extole ignores account creations that are not attributed to a referral after processing rules.

<script type="text/javascript">
  /* Start Extole */
  (function(c,e,k,l,a){c[e]=c[e]||{};for(c[e].q=c[e].q||[];a<l.length;)k(l[a++],c[e])})(window,"extole",function(c,e){e[c]=e[c]||function(){e.q.push([c,arguments])}},["createZone"],0);
  /* End Extole */

   extole.createZone({
     name: 'registration',
     data: {
       "first_name":"Julio", // RECOMMENDED DYNAMIC VALUE
       "last_name":"Friend", // RECOMMENDED DYNAMIC VALUE
       "email":"[email protected]", // REQUIRED DYNAMIC VALUE
       "partner_user_id":"00O40000004SQbO", // REQUIRED DYNAMIC VALUE
       "advocate_code":"QA754AZ" // RECOMMENDED DYNAMIC VALUE
     }
  });
</script>
Registration Tag FieldDescription
first_name
recommended
The first name of the person submitting the lead.
last_name
recommended
The last name of the person submitting the lead.
email
required
The email address of the person submitting the lead
partner_user_id
required
This is your unique identifier for this person submitting the lead such as an opportunity ID or a lead ID.
advocate_code
optional
Ideally your lead form should include the option for a person to enter a referral code.

Track Online Subscription Payments with Conversion Tags

If the online customer comes back to become a paying subscriber on the website, you can use a conversion tag on the page to instantly send the successful subscription payment to Extole.

<script type="text/javascript">
  /* Start Extole */
  (function(c,e,k,l,a){c[e]=c[e]||{};for(c[e].q=c[e].q||[];a<l.length;)k(l[a++],c[e])})(window,"extole",function(c,e){e[c]=e[c]||function(){e.q.push([c,arguments])}},["createZone"],0);
  /* End Extole */

   extole.createZone({
     name: 'conversion',
     data: {
       "first_name":"Julio", // RECOMMENDED DYNAMIC VALUE
       "last_name":"Friend", // RECOMMENDED DYNAMIC VALUE
       "email":"[email protected]", // REQUIRED DYNAMIC VALUE
       "partner_user_id":"00O40000004SQbO", // REQUIRED DYNAMIC VALUE
       "partner_conversion_id":"00O415320037eWy", // REQUIRED DYNAMIC VALUE
       "cart_value":"50.00" // REQUIRED DYNAMIC VALUE
     }
  });
</script>
Conversion Tag FieldDescription
first_name
recommended
The first name of the person making the purchase.
last_name
recommended
The last name of the person making the purchase.
email
required
The email address of the person making the purchase.
partner_user_id
required
This is your unique identifier for this person making the purchase such as an account ID or member ID.
partner_conversion_id
required
This is your order number that uniquely identifies this transaction.
cart_value
required
The revenue of the transaction. For a subscription this is recommended to be the LTV of the subscription.

Track Offline Automatic Payments via API Calls

Often a subscriber will enter their payment information at their initial registration and it will be automatically billed when their trial periods ends. Because this billing is an automatic backend process, the conversions can be sent to Extole through API calls.

To track account billing from your membership system to Extole, you will need to generate API keys with Extole and make a REST API call to track the initial payment.

Create Extole API Keys

Extole requires API calls from account systems to authenticate with an API identifier provided in the header (OAuth key).

Your keys are managed through the My Extole Security Center.

Create your first key via the "Create New Access Token" button. My Extole will temporarily display the newly created random key for you.

Once your API key is created, you can test successful authentication using the Client API method.

curl --user 1-2:0000 https://api.extole.io/v2/me/clients

[
  {
    "client_id": "1",
    "name": "Demo"
  }
]
Track Paid Subscription with Conversion API Calls

All accounts that are successfully opened should call the Extole Conversion API. This should happen for all new paid subscriptions—even ones that may have fired a conversion tag on your website. Extole handles attributing referrals, removing duplicates, and discarding data that doesn't apply.

POST https://api.extole.io/v5/events
{
  "event_name":"conversion",
  "data":{
    "email":"[email protected]",
    "first_name":"julio",
    "last_name":"friend",
    "partner_user_id":"12294838abs2",
    "partner_conversion_id":"122948302lala",
    "cart_value":"50.00"
  }
}

{"polling_id":"6324678551458903928"}
Input FieldsDescription
event_name
required
String
Identifies the step at Extole to create. This will be conversion.
data.email
required
String
The email address of the opportunity being closed.
data.first_name
recommended
String
The first name of the opportunity being closed.
data.last_name
recommended
String
The last name of the opportunity being closed.
data.partner_user_id
recommended
String
The unique opportunity or lead identifier on your side. This should match the value when passed at the time of a registration.
data.partner_conversion_id
required
String
This is the unique identifier for the account that was opened. It is recommended this is not the account number, but an opaque identifier for the account, which could be a SHA-1 or MD5 hash of the account number.
data.cart_value
required
String
The revenue of the transaction. For a subscription this is recommended to be the LTV of the subscription.

Design your Experience

Your entire referral consumer experience can be configured in the My Extole Campaign Editor. This part of setting up the solution can be done entirely by your marketing and creative team and doesn't require technical involvement. Each template is a comprehensive guide for your designer or marketer to customize.

Reward your Customers

Your program will utilize single-use coupon codes that you generate and Extole distributes.

The advocate coupon codes and friend coupon codes are uploaded into the My Extole by your marketing team. The advocate coupon code is delivered via email after the friend purchase is approved, and the friend coupon code is delivered via popup after they click on an advocate’s share link. You may need to create an easy process for your marketing team to generate batches of one-time-use codes.

They will then go into My Extole → Program Admin → Rewards to create and upload rewards.

Recommended Additional Steps

Embed a Share Experience Directly onto a Page

If you want to embed a sharing experience on a dedicated referral page or account page, the tag looks exactly same - you would just call the zone referral_page or account_page.

Uncommon Additional Steps

Below are some of the topics regarding parts of the process that aren't requirements for most retail experiences, but might be for yours.

Cancel Rewards for Cancelled Subscriptions

After a referred friend makes a qualifying purchase, Extole will automatically email the advocate a reward after a period of time (typically 3 days). If you have a high cancel rate for you program, you might want to send Extole the list of transactions that have been cancelled so that rewards are not sent for those subscriptions.

To cancel a reward, provide Extole the order numbers that have been cancelled before the pending window is over through our API. You can send Extole all cancellations and Extole will discard any that don't match a referral. These may be sent either via API or SFTP.

Learn more about sending File-based Events to Extole.

Use your Opt-out List

All mails sent by Extole are CAN-SPAM compliant and honor the customer preferences. Referral programs are typically treated as their own segment of emails unique from the normal marketing opt-out list, making this step optional. Each email sent to an advocate or friend will include an unsubscribe link, managed by Extole, that will opt the customer out of the referral program.

If you need to do a more complex opt-out synchronization, Extole can check your opt-out list with a webhook API or you can upload a list of opt-outs to Extole's SFTP server.

Learn more about Opt-out List Management.

Upload an SSL Certificate for your Branded Domain

When you created your branded domain at Extole and notify your CSM, Extole will automatically procure a certificate from GoDaddy for your domain.

If you have a corporate policy of managing your own certificates, it is possible to upload your own.

Learn more about Extole's DNS Requirements.