How to set up MadKudu Fastlane

SaaS companies typically have many web visitors but visitor-to-lead drop-offs are high. MadKudu Fastlane increases your qualified pipeline by 60% by predicting the fit of your web visitors in real-time and allowing them to book a meeting directly with Sales.

Pre-requisites

To run MadKudu Fastlane on your demo forms you will need:

  • MadKudu snippet installed on your demo page (see instructions)

  • Advanced knowledge of HTML and JS or support from your internal web development team

  • A calendar solution like Calendly, ChiliPiper or Outreach linked to your reps’ availabilities. Please note that only the latter 2 allow for real-time round-robin.

  • A connection between your calendar app and your CRM to indicate when a lead has picked a time to meet and thus exclude them from any automated campaign

  • A test page on your website where you can run experiments with forms and MadKudu Fastlane

  • A sample of low and very good leads to test the behavior of the Fastlane (see here how to find those)

How to set up MadKudu Fastlane

Step 1: Create a campaign

  • Create an Advanced Campaign: in the App, go to Process>Campaign>Set up an Advanced Campaign

  • Edit the Campaign name: name your campaign according to the landing page the campaign will be implemented on.

  • Configure the URL: input the URL of your demo request page in the URL field

⚠️ It is recommended to start the configuration on a test URL landing page and, once satisfied with the setup, to change the URL back to a production landing page.

ℹ️ You can use RegExp if you want the Fastlane to trigger on a set of URLs.

Step 2: Define the email field to track for qualification

Let's complete the section "How to get the email of a lead".

If you don’t know the HTML identifier of the email field, ask your internal web development team! It's usually any field of name or type equal to "email". It's also recommended to implement a timeout function to ensure the email listening functions properly:

setTimeout(function () { 
form.track_input($('input[type=email]')); 
}, 1500);

⚠️ It’s important to check how your website captures the email address in the forms and refine this line of code accordingly.

Step 3: Configure your Calendar solution

Let's now move on to the section "What to do when a visitor is found to be qualified". 

Setup with Calendly

Calendly is a free calendar tool to get started when you have a small sales team.

1. Paste the code below in the “What to do when a visitor is found to be qualified” section

console.log('MadKudu identified you as a Fastlane candidate!');

var traits = madkudu.user().traits() || {};
var email = traits.email;
var firstName = traits.firstname;

if (!firstName) {
      firstName = 'Howdy';
  }

var modalOptions = {
calendlyUrl: ''https://calendly.com/francis-madkudu/30min?utm_campaign=madkudu&utm_medium=smart_form',
title: 'firstName + ', you qualify for the fast lane!',
subtitle: 'Our scoring tells us you should get access to our experts\' calendar',
cta_yes: 'Book time now',
cta_no: 'No thanks'
};

form.show_modal(modalOptions);

2. Connect the form to your Calendly instance

Replace line 12 with your calendly URL

calendlyUrl: 'https:/calendly.com/francis-madkudu/30min?utm_campaign=madkudu&utm_medium=smart_form',

3. Optionally, personalize the message

Replace line 11 with your desired messaging

var modalOptions = {
  // Input your calendly link here
  calendlyUrl: 'https:/calendly.com/francis-madkudu/30min?utm_campaign=madkudu&utm_medium=smart_form',
  title: firstName + ', you qualify for the fast lane!',
  subtitle: 'Our scoring tells us you should get access to our experts\' calendar',
  cta_yes: 'Book time with an expert!',
  cta_no: 'No thanks.'
};

 

Setup with ChiliPiper

ChiliPiper is a calendar tool that connects to Salesforce to handle round robin in real time, making it an ideal solution for sales teams of 2+ reps.

1. Paste the code below in the “What to do when a visitor is found to be qualified” section


var traits = madkudu.user().traits();
var firstName = traits.first_name;

if (!firstName) {
      firstName = 'Howdy';
  }

var success_state = false;

const chili_options = {
  title: 'Thanks! What time works best for a quick call?',
  lead: {
    // use first name from enrichment otherwise default to null
    FirstName: traits.first_name || '',
    LastName: traits.last_name || ' ',
    Email: traits.email,
    Company: traits.company && traits.company.name ? traits.company.name : ''
  },
  onSuccess: function () {
    success_state = true;
    // Optional code if you have Segment and want to track modal interactions
    // analytics.track('Fast Lane Calendar Clicked');
    form.dismiss_modal();
  },
  onClose: function () {
    if (success_state) {
      // redirect to your website here after a meeting is booked
      window.location.href = "http://www.madkudu.com";
    }
  }
}

var modalOptions = {
  title: firstName + ', you qualify for the fast lane!',
  subtitle: 'Our scoring tells us you should get access to our calendar now.',
  cta_yes: 'Book time with us',
  cta_no: 'No thanks.'
};

form.show_modal(modalOptions);

setTimeout( function () {
  // listen on the cancel button to trigger the hiding of the MadKudu modal
  $('.madkudu_modal__cancel').on('click', function () {
    // Optional code if you have Segment and want to track modal interactions    
    // analytics.track('Fast Lane Modal Dismissed');
  });
  // listen on accept button to trigger the showing of the Calendly widget
  $('.madkudu_modal__accept').on('click', function () {
    // input your router information here
    ChiliPiper.submit("madkudu", "inbound-router", chili_options);
    // Optional code if you have Segment and want to track modal interactions
    // analytics.track('Fast Lane Modal Clicked');
  });
}, 300);


console.log('MadKudu scored you as a qualified lead. Learn more at www.madkudu.com/smart-form');

2. Connect the form to your Chilipiper instance

Replace line 53 with your Chilipiper router

ChiliPiper.submit("madkudu", "inbound-router", chili_options);

To find it, log into Chilipiper, head to the workspace where your inbound router is created and find his router name.

3. Paste the code below in the “Customization of your existing page” section

// load ChiliPiper javascript - need if ChiliPiper JS is not loaded
form.load_external_script('https://js.chilipiper.com/marketing.js')

4. Optionally, personalize the message

Replace line 35 with your desired messaging

var modalOptions = {
  title: firstName + ', you qualify for the fast lane!',
  subtitle: 'Our scoring tells us you should get access to our calendar now.',
  cta_yes: 'Book time with us',
  cta_no: 'No thanks.'
}; 

 

Setup with Outreach

Outreach has come out with a great team calendar feature which allows some random round robin based on reps' availabilities. Their documentation can be found here.

1. Paste the code below in the “What to do when a visitor is found to be qualified” section

  • Edit the code below to obtain the form information (line 5-16)

  • Input your Outreach calendar link (line 22)

// Wait for the prospect to submit the form and store the information
$('[type="submit"]').click(function(){
  var traits = madkudu.user().traits();
  // Update the variables according to your form
  var email = $('#Email').val() || traits.email;
  var firstName = $('#FirstName').val() || traits.first_name;
  var lastName = $('#LastName').val() || traits.last_name;
  var company = $('#Company').val() || traits.company;
  var phone = $('#Phone').val() || traits.phone;

  var leadInfo = {
    "first_name": firstName,
    "last_name": lastName,
    "company": company,
    "email": email,
    "phone_number": phone
  };

  var leadInfoEncoded = btoa(JSON.stringify(leadInfo));

  var urlAppend = '?prefill=' + leadInfoEncoded;
  var calendarUrl = 'https://YOUR_OUTREACH_TEAM_CALENDAR_URL' + urlAppend;

  if (!firstName) {
    firstName = 'Howdy';
  };

  var modalOptions = {
    calendlyUrl: calendarUrl,
    title: firstName + ', you qualify for the fast lane!',
    subtitle: "Our scoring tells us you should get direct access to our experts' calendar",
    cta_yes: 'Book time with us!',
    cta_no: 'No thanks.'
  };

  form.show_modal(modalOptions);
});

Step 4: Test your Fastlane and publish it

Once you're content with your Campaign setup, remember to save and publish it. After a brief wait, you can confirm that the form is active by navigating to your demo request page and executing the following command in the console:

madkudu.forms[0].verify_location()

A return value of true indicates that the form is live and prepared to enhance the demo booking process for qualified prospects.

Please note that when testing Fastlane, any meetings booked will be logged as real demos. Ensure to either delete these meetings afterward or inform your sales team accordingly. Whenever possible, we recommend testing using a staging calendar to prevent any confusion.

You can simulate Fastlane behavior by completing your demo form with emails of both good/very good fit leads and low/medium fit leads.

To verify if the lead's email is correctly captured and sent to the MadKudu API, you can utilize the following code snippet within the console:

madkudu.user().traits()

FAQ

How can I find examples of lead to test the Fastlane?

To test the Fastlane behavior, you will need both examples of leads scored good/very good or medium/low. To do so, you can either:

  • search for such leads in your Salesforce, filtering on mk_customer_fit_segment

  • search in the MadKudu platform in Predictions > Customer Fit > Diagnostics > Deep Dive, and then filter on good/very good or medium/low.

If you don't want to trigger the Fastlane with actual emails, you can replace the prefix by something like "madkudu", e.g brian@mycompany.com becomes madkudu@mycompany.com.

I’m using Hubspot forms and cannot auto-populate the firmographic fields.

This can be linked to a documented issue with jQuery and Hubspot forms (see here). Try using

jQuery('input[name="firstname"]').val("Brian").change();

instead of

$('input[name="firstname"]').val("Brian").change();