Lead Generation

Quickly build an effective lead generation referral program to turn customers into advocates who become the source for your best leads.

Overview

This guide outlines the necessary steps for you to go live with Extole:

  1. Brand your Domain and Links
  2. Tag your Website
  3. Connect your CRM
  4. Design your Experience
  5. Reward your Customers

Brand your Domain and Links

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

Extole campaigns come with the following standard marketing tags:

  • global_header
  • global_footer
  • product
  • confirmation
  • overlay

It's easy to create additional marketing tags if you want to add CTAs to additional pages like your blog, help pages, and so on. As you're getting started, contact your Customer Success Manager to help learn how to create these additional tags.

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>

🚧

Pass in Customer Information

When you have information about a customer, if they are logged-in for example, you should pass that into the tag to make sharing easier.

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 Online Leads

In order to reward advocates when a friend makes a purchase, you need to communicate to Extole when leads are created and purchases are made. Online leads are tracked by adding the registration tag after successful lead form completion?

The registration tag passes information about the lead to allow Extole to connect referred leads to advocates, run quality rules, and run reward rules.

🚧

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 leads that are not connected to an advocate when reward and quality rules run.

<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 IF AVAILABLE
     }
  });
</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
recommended
This is your unique identifier for this person submitting the lead such as an opportunity ID or a lead ID.
advocate_code
recommended
We strongly recommend that your lead form includes the option for a person to enter a referral code so that we can properly identify and attribute referrals.

Connect your CRM

A lead generation referral program supports leads being created from phone calls and in person. Because leads are turned into sales by your sales consultants and sales agents, the conversions are tracked through your CRM and sent to Extole.

To create referred leads from phone calls and in-person conversations as well as track conversion requests from your CRM to Extole, you will need to generate API keys with Extole and make a REST API call to track the following events:

  • Lead Created in CRM
  • Lead Converted in CRM

Create Extole API Keys

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

Your keys are managed through the My Extole in the Security Center.

Create your first key via the "Create New Access Token" button. Extole temporarily displays the newly created and 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"
  }
]

Implement Salesforce Sales Cloud Triggers

Extole does not provide an AppExchange app or plugin for Salesforce, but Salesforce triggers are simple to write by a Salesforce developer who can make sure the important Salesforce events are passed to Extole.

Here is an example trigger to fire an Opportunity Closed/Won event to Extole:

trigger ConversionCreatorOnOpportunityClose on Opportunity (after update) {
  if (trigger.new.size() == 1) {
    List<Opportunity> oldOpportunities = Trigger.old;
    List<Opportunity> newOpportunities = Trigger.new;

    if (oldOpportunities.size() == 1 && newOpportunities.size() == 1) {
      Opportunity oldOpportunity = oldOpportunities[0];
      Opportunity newOpportunity = newOpportunities[0];

      if (newOpportunity.StageName == 'Closed Won' && newOpportunity.StageName != oldOpportunity.StageName) {
        Contact[] contactsForOpportunity = [
           SELECT Id, FirstName, LastName, Email, Extole_Advocate_Code__c
             FROM Contact
            WHERE AccountId = :newOpportunity.AccountId
        ];

        if (contactsForOpportunity.size() == 1) {
          Contact contactForOpportunity = contactsForOpportunity[0];
          ConversionCreator.createConversion(contactForOpportunity.Id,
            contactForOpportunity.Email,
            contactForOpportunity.FirstName,
            contactForOpportunity.LastName,
            contactForOpportunity.Extole_Advocate_Code__c);
          }
        }
      }
    }    
}
Trigger FieldDescription
first_name
recommended
The first name of the person who made the conversion
last_name
recommended
The last name of the person who made the conversion.
email
required
The email address of the person who made the conversion.
coupon_code
required if available
The coupon code that may have been used to make the purchase.
Result FieldDescription
idThe API input event at Extole that can be used for debugging.

Track Phone and Offline Leads

Share messages sent through email and social will prominently display an Advocate Code (referral code) that can be used to help capture a referred lead. Your internal tools used by a phone agent or sales agent to capture a new lead should also ask for and allow your sales team to enter advocate codes with the records.

Track Lead Creation with Registration API Calls

When leads are created in your CRM, you should call the Extole Registration API. This should happen for all leads, even if you don't have an advocate code, Extole handles attributing referrals, removing duplicates, and discarding data that doesn't apply.

🚧

Important Note

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

POST https://api.extole.io/v5/events
{
  "event_name": "lead_created",
  "data": {
    "first_name": REPLACE,
    "last_name": REPLACE,
    "email": REPLACE,
    "lead_id": REPLACE,
    "advocate_code": REPLACE
  }
}
{"input_event_id":"6324678551458903928"}
Input FieldDescription
first_name
recommended
The first name of the person applying for an account.
last_name
recommended
The last name of the person applying for an account.
email
required
On the lead created api, it indicates the email address of the person applying for an account.
lead_id
recommended
This is your unique identifier for this lead applying for the account. This same value should be passed later when the friend opportunity is won

If you do not have a member ID at this time, this is not required.

E.g. 00O4000099PDZ1AA
advocate_code
recommended
Extole will pass this into the friend landing experience as extole_advocate_code and apply it as part of the online lead creation process. If a sales agent is creating the lead, they should ask and enter this field directly.

This is the advocate code that may have been shared to the friend.

E.g. april1

Track Conversions with Conversion API Calls

All leads that turn into sales inside of your CRM should call the Extole Conversion API. This should happen for all leads, even if you don't have an advocate code, Extole handles attributing referrals, removing duplicates, and discarding data that doesn't apply.

POST https://api.extole.io/v5/events
{
  "event_name": "conversion",
  "data": {
    "first_name": REPLACE,
    "last_name": REPLACE,
    "email": REPLACE,
    "lead_id": REPLACE,
    "advocate_code": REPLACE,
    "conversion_id": REPLACE,
    "cart_value": REPLACE
  }
}
{"event_id":"6324678551458903931"}
Input FieldDescription
first_name
recommended
The first name of the person who made the purchase.
last_name
recommended
The last name of the person who made the purchase.
email
required
The email address of the person who made the purchase.
lead_id
recommended
This is your unique identifier for this lead who made the purchase that was passed in the lead created API call.

E.g. 00O4000099PDZ1AA
advocate_code
recommended
This is the advocate code that may have been shared to the friend.

E.g. april1
conversion_id
required
This is your order number that uniquely identifies the purchase.

E.g. 122948302lala
cart_value
recommended
The value that will be shown in the Extole dashboard. This is typically either the initial transfer amount or LTV.

E.g 10000.00

Design your Experience

Your entire referral consumer experience can be configured in the My.Extole Admin tool. 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

After the conversion if complete, Extole will reward the advocate and friend by emailing them a digital gift card.

Your business team manage setting up the gift cards in Extole and providing funding to Extole for the cost of the gift cards.

Recommended Additional Steps

Embedding 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**”.
My Extole Single-Sign On (SSO)
The My Extole admin platform supports single sign-on from a variety of Identity Providers and should be able to enable you to login to My Extole using your corporate email address without needing a separate password for My Extole. Simply let your Launch Manager or Solutions Engineer know to enabled:
  • Okta through OpenIDConnect (OIDC) SAML Single-Sign
    • Google Workspace
      • Microsoft Teams

Uncommon Additional Steps

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.