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:
- Brand your Program
- Tag your Website
- Design your Experience
- 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
Improve Email Open Rates
We see a 5–15% improvement in the open rate of emails that from your domains.
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 Field | Description |
---|---|
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 Field | Description |
---|---|
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 Field | Description |
---|---|
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 Fields | Description |
---|---|
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.
Updated 29 days ago