Personalized URLs in your Reply.io / Cold Outreach Campaigns

For most situations, I’m a big fan of storing personalization data directly in your marketing automation tool (e.g. Drip). You basically use it as your mini-CRM / subscriber database, and can pull data from there on the fly to personalize your web site to whoever’s browsing it.

There are more advanced cases (maybe 1 in every 20 companies I work with) where having a more complete CRM / custom user database, either instead of or in addition to the marketing automation tool, makes more sense.

But I recently ran into a situation with a client where neither of those options would work.

They were sending a targeted cold outreach campaign using Reply.io

…and wanted to personalize the landing page they link to from within that outreach campaign.

This would be a great opportunity for personalization, because they already knew several things (name, company, etc) about the person clicking the link. Being able to on-the-fly niche that landing page to suit each person reading it could be huge for conversions. Not doing so would be like not personalizing the outreach emails themselves!—Marketing suicide.

But since you can’t go loading 10k+ cold prospects into Drip and using their API to personalize the site—and they didn’t want to start messing with custom databases and server-side lookups—they needed a simpler way to get that prospect data into their web site for personalization.

The solution? Pass the prospect’s personalization data directly in the URL.

What data can you pass?

Anything you want to use for personalization!

In my client’s case, this was:

  • First name
  • Company name
  • Business type (they sell to a few distinct industry segments)
  • Region

Those fields were then used to personalize:

  • The landing page’s headline
  • The background image across the top of the landing page
  • The language used on landing page
  • The calls to action on the site

How do you do it?

The simplest way is to just pass all the data you need directly through the URL, as ‘query parameters’. In Reply.io you start out by creating the link just like any other:

But then insert variables into the URL itself, so you end up with a URL in this format:

https://www.yourwebsite.com/landingpage?firstName={FirstName}&company={CompanyName}&region={RegionCode}&type={CompanyType}

When that email is sent out, the {FirstName}, {CompanyName} and so on will be swapped out with custom data per email recipient, just like if you were to use those fields to personalize the subject and body of the email itself. You can then use those fields to personalize the landing page / web site you’re sending prospects to.

Of course, your field names might differ. But any field you use in your Reply.io campaign is fair game for using in the URL here, and will be passed through to your landing page for personalization. (Note that you might need some extra trickery / columns in your outreach list if any of the fields you want to use have special characters in them)

On the landing page you’re linking to, you’ll need to add some Javascript for getting those values out of the URL:

function getParameterByName(name) {
    var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
    return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}

You can then set up your substitutions to run when the page has loaded (this example assumes jQuery is installed):

jQuery(function() {
    var firstName = getParameterByName('firstName'),
        companyName = getParameterByName('company'),
        region = getParameterByName('region'),
        type = getParameterByName('type');

    var reach = 'customers';
    if (type === 'homeimprovement') {
        reach = 'homeowners';
    } else if (type === 'commercial') {
        reach = 'site owners';
    }
    // ...

    jQuery('h1').text(firstName + ', we can help you reach more ' + reach + '.');
    jQuery('#heroImage').css('background-image', '…');
});

Here we’re grabbing all the values passed in from the email, setting a few custom substitutions (e.g. a reach variable which gets used as part of the headline), and then applying the substitutions to the page.

So, for email recipient Corinne with a business type of homeimprovement:

Whereas Joshua who works on commercial sites would see:

And just like that your outreach prospects can have a personalized—and ultimately higher converting—landing page.