Skip navigation
All Places > Champion Program > Blog > 2017 > October
2017

This week’s Champion Spotlight is Rachel Noble. Let’s get to know Rachel a little bit better!

 

Rachel N.jpg

 

Company: Digital Pi

Title: Manager, Client Services

Location: Bozeman, MT

Hometown: Bozeman, MT

 

What was your first job? Course instructor at Idaho State University.

 

How and when did you get started with Marketo? What was your first role and initial reaction to the platform?  I was hired on at PFL to do analysis in the marketing department. The role slowly developed into ownership of the Marketo platform and now that is my main focus here.

 

What is your favorite thing to do in Marketo and why? Building crazy-complex programs designed to engage people from every channel. If someone says "this can't be done," then we are going to make it happen.

 

Through out your Marketo career, what are you most proud of? Being included in the awesome Champion group - what an honor is it to be included in this category full of insanely smart people who I have looked up to throughout my own Marketo journey.

 

What piece of advice would you give to someone who is just starting a career with Marketo?  Ask tons of questions! Collaboration is good, and you never know what hidden gems other people have found.

 

Who is your celebrity crush?  Jimmy Fallon

 

If you could have an endless supply of any food, what would it be?  Krispy Kreme Donuts

 

Have any questions for Rachel? Ask them below!

 

Connect with Brittany:

LinkedIn:  https://www.linkedin.com/in/noblera/

Over the years here at the Marketing Nation, I've seen many basic form questions come over and over again with common functionalities. Just so there's a central repository of how to handle these requests, I've compiled a quick post that goes over form functions.

 

Do note that the vast majority of these response require you to know a little bit of HTML and JavaScript (or work with someone who can deploy JavaScript on your page) and are globally scoped—include the script and they'll fire on any form that's on the same page as the form. If you plan to use multiple forms on one page, you may need to alter these snippets to target specific forms.

 

Frequently Asked Questions

 

My team is asking me about form values being prefilled with the forms we have on our site. How do I do this?

Marketo's form code does not support prefill in places outside of Marketo landing pages due to security concerns. The only non-API way to use things like prefill is to create an iframe (and ideally something like pym.js to handle the iframe itself.)

 

How do I record Google Analytics events upon form submit?

My preferred method for doing this is simply to do a slight modification of your embed code to include a formName variable, so you'd go from something like

<script>MktoForms2.loadForm("//app-abc.marketo.com", "123-ABC-456", 1);</script>

to

<script>MktoForms2.loadForm("//app-abc.marketo.com", "123-ABC-456", 1); var formName = "Contact Us form";</script>

 

From there, it's simply a manner of adding the following to your site's overall JavaScript:

<script type="text/javascript">
MktoForms2.whenReady(function(form) {
form.onSuccess(function(vals, page) {
ga('send', 'event', {
eventCategory: 'Marketo Form',
eventAction: 'Form Submission',
eventLabel: formName,
hitCallback: function() {
document.location.href = page;
};
});
return false;
});
});
</script>

 

Do note that if you're using User ID tracking that you may need to explicitly set it in the onSuccess function before sending the event.

 

How do I show a thank you message on the same page upon a form being submitted rather than redirecting to a new page or just showing the form again?

 

You'll need to make a div containing the messaging you want to display and place it in the same parent element as your form, similar to the following:

<div class="container">
<script src="//app-abc.marketo.com/js/forms2/js/forms2.min.js"></script>
<form id="mktoForm_27"></form>
<script>MktoForms2.loadForm("//app-abc.marketo.com", "123-ABC-456", 1);</script>
<div id="confirmation" aria-hidden="true" style="display:none;">
<p>This is a sample thank you message. Thanks for viewing.</p>
</div>
</div>

 

Then, simply include the following in your site's JavaScript:

 

<script type="text/javascript">
MktoForms2.whenReady(function (form){
form.onSuccess(function(vals, page){
form.getFormElem().hide();
var confirm = document.getElementById('confirmation');
confirm.style.display = 'inline-block';
confirm.setAttribute('aria-hidden', false);
confirm.focus();

return false;
});
});
</script>

 

You can also get creative with this and use a mktoText area in your Marketo landing page template to allow dynamic thank you messages to be added without needing a second page!

 

How do I block certain domains from filling out my forms?

 

First off: please, don't do this. There are few reasons to do this, especially because most people want to block free domains or certain characters. There are quite a few people, especially in technical industries, who will use disposable addresses or character separators for filtering early in your funnel. Irritating people who want to engage with you, regardless of their email, is not going to help much. However, if you must:

 

<script type="text/javascript">
(function (){
// Please include the email domains you would like to block in this list
var invalidDomains = ["@gmail.","@yahoo.","@hotmail.","@live.","@aol.","@outlook."];


MktoForms2.whenReady(function (form){
form.onValidate(function(){
var email = form.vals().Email;
if(email){
if(!isEmailGood(email)) {
form.submitable(false);
var emailElem = form.getFormElem().find("#Email");
form.showErrorMessage("Must be Business email.", emailElem);
}else{
form.submitable(true);
}
}
});
});

function isEmailGood(email) {
for(var i=0; i < invalidDomains.length; i++) {
var domain = invalidDomains[i];
if (email.indexOf(domain) != -1) {
return false;
}
}
return true;
}


})();
</script>

 

 

How can I improve email data quality entered from forms?

 

I like a little script called Mailcheck, which provides suggestions when people misspell email addresses. Include jQuery and mailcheck.js on your page (or reference it via cdnjs) and then use the following:

 

<script type="text/javascript">
MktoForms2.whenReady(function (form){
var domains = ["aol.com", "att.net", "comcast.net", "facebook.com", "gmail.com", "gmx.com", "googlemail.com","google.com", "hotmail.com", "hotmail.co.uk", "mac.com", "me.com", "mail.com", "msn.com","live.com", "sbcglobal.net", "verizon.net", "yahoo.com", "yahoo.co.uk", "email.com", "games.com", "gmx.net", "hush.com", "hushmail.com", "icloud.com", "inbox.com","lavabit.com", "love.com" , "outlook.com", "pobox.com", "rocketmail.com" ,"safe-mail.net", "wow.com", "ygm.com", "ymail.com" , "zoho.com", "fastmail.fm","yandex.com","iname.com","bellsouth.net", "charter.net", "cox.net", "earthlink.net", "juno.com","btinternet.com", "virginmedia.com", "blueyonder.co.uk", "freeserve.co.uk", "live.co.uk","ntlworld.com", "o2.co.uk", "orange.net", "sky.com", "talktalk.co.uk", "tiscali.co.uk","virgin.net", "wanadoo.co.uk", "bt.com", "sina.com", "qq.com", "naver.com", "hanmail.net", "daum.net", "nate.com", "yahoo.co.jp", "yahoo.co.kr", "yahoo.co.id", "yahoo.co.in", "yahoo.com.sg", "yahoo.com.ph","hotmail.fr", "live.fr", "laposte.net", "yahoo.fr", "wanadoo.fr", "orange.fr", "gmx.fr", "sfr.fr", "neuf.fr", "free.fr", "gmx.de", "hotmail.de", "live.de", "online.de", "t-online.de", "web.de", "yahoo.de", "mail.ru", "rambler.ru", "yandex.ru", "ya.ru", "list.ru", "hotmail.be", "live.be", "skynet.be", "voo.be", "tvcablenet.be", "telenet.be", "hotmail.com.ar", "live.com.ar", "yahoo.com.ar", "fibertel.com.ar", "speedy.com.ar", "arnet.com.ar", "yahoo.com.mx", "live.com.mx", "hotmail.es", "hotmail.com.mx", "prodigy.net.mx", "yahoo.com.br", "hotmail.com.br", "outlook.com.br", "uol.com.br", "bol.com.br", "terra.com.br", "ig.com.br", "itelefonica.com.br", "r7.com", "zipmail.com.br", "globo.com", "globomail.com", "oi.com.br"];

var topLevelDomains = ["co.uk", ".ca", "com", "net", "org", "info", "edu", "gov", "mil"];

var selector = '#Email, .mktoEmailField, .mktFormEmail, input[type=email]';
$(selector).on('blur', function(){

$(this).mailcheck({
domains: domains,
topLevelDomains: topLevelDomains,
suggested: function(element, suggestion) {

var $parent = $(selector).parent();
$('.mailcheck-msg', $parent).remove();
$parent.append('<span class="mailcheck-msg">Did you mean <a href="#" class="mailcheck-suggestion">' + suggestion.full + '</a>?</span>');

}
});
$('a.mailcheck-suggestion').on('click', function(){
$(selector).val( $(this).html() );
$(this).parent().remove();
return false;
});
});
});
});
</script>

 

How do I include links (or other HTML) on a Marketo field label?

 

This is commonly used to link to terms and conditions, privacy policies and the like on checkboxes. Simply grab the API name of the field you're trying to manipulate and use the following structure:

 

<script type="text/javascript">
MktoForms2.whenReady(function(form)
{
var termsBox = document.querySelector("[for='acceptTerms']");
termsBox.innerHTML = "Check here to indicate that you have read and agree to the terms of the <a href='privacy-policy-link'>Privacy Policy</a>.";
}
);
</script>

 

 

 

How can I prevent spam entries to my form?

 

One of the biggest ongoing problems Marketo users who have forms run into is ensuring their forms are free of automated spam. As spam bots have become more sophisticated, traditional honeypot and captcha methods haven’t worked, but at the same time, end users don’t want to have to prove they’re not a robot!

 

Google introduced the Invisible reCAPTCHA in late 2016 to handle this problem more elegantly, and building the technology into your forms is a straightforward affair. To get started, visit https://www.google.com/recaptcha/admin and fill out the “Register a New Site” section:

 

pasted image 0.png

 

Select “Invisible reCAPTCHA” and add any domains you plan on having forms on in the Domains box. Do note that you only need your base domain, so go.example.com and pages.example.com will be covered by example.com. Accept the terms and register. Once you register, you’ll see an area with two keys:

 

pasted image 0 (1).png

 

Keep both of these keys handy, because we’ll be using them!

 

Meanwhile, head over to Marketo and create two fields in Admin->Field Management>: a string called “spamCheck” and a boolean field called “Verified”. These will be used to check the spam challenge and route your records accordingly.

 

If you don’t have jQuery installed on your page already, make sure you have a copy of jQuery, and then implement the following script after jQuery loads:

 

<script type="text/javascript">
MktoForms2.whenReady(function (form) {
$( "button[type='submit']" ).addClass( "g-recaptcha" ).attr( "data-sitekey", "YOUR-SITE-KEY" ).attr("data-callback","letsGo");
$.getScript( "https://www.google.com/recaptcha/api.js",);
letsGo = function() {
MktoForms2.whenReady(function (form) {
var v = grecaptcha.getResponse();
form.vals({"spamCheck" : v});
form.submit();
});
};
});
</script>

 

This will load Google’s reCAPTCHA API on your page. In short, what will happen is that when a user submits your form, the form will quickly call Google’s reCAPTCHA service to check that the submitter isn’t a spam bot. Google then returns a response, which we’ll store in the spamCheck field in Marketo. However, this is only half of the equation: we need to use our private key to check that the response is valid. Thankfully, we can do this with a simple webhook.

 

Head to Admin->Webhooks> and create a new webhook with the following values:

 

Webhook Name: ReCAPTCHA Validation

URL: https://www.google.com/recaptcha/api/siteverify?secret=YOUR-SECRET-KEY&response={{lead.spamCheck}}

Request Type: GET

Response Type: JSON

 

Hit “Save”. From there, hit the “Edit” button next to Response Mappings. For your response attribute, type in success (all lowercase) and for Marketo Field, choose the Verified boolean field you created earlier. The final product should look like the following:

 

pasted image 0 (2).png

 

From there, using the reCAPTCHA validation is simple; when you set up a trigger for a form to be processed, you’ll simply call the webhook, wait 1 minute, and then do what you wish with the form fillout:

 

pasted image 0 (3).png

 

And that’s all there is to it! Do note that per Google's reCAPTCHA policy, you'll be required to show the reCAPTCHA logo and terms of service. This is added by the script itself by default, but you can change how it appears as needed.




Hi All -

 

Many of you saw my Summit 2017 presentation on Dark Side of the Forms.  If you haven't, it's available here:

https://events.marketo.com/summit/2018/2017-recordings/learn-the-dark-side-of-the-forms-seduce-your-customers-to-provide-their-personal-secrets

 

I was recently asked by a colleague to write up the section I did on how to fire events from YouTube videos, so since I had already written it up I thought I'd share it here on a blog post in case anyone else is interested. This is the very basic version of that presentation, there are a lot of other items on the sample I provided that I'm not including here but will in the future.

 

Please Note: this requires some knowledge of JavaScript. I can't help you write out everything you need, but if you ask and I have some code, I'm happy to help you.

Also Note: I trimmed a lot of extra script out of here. If you find that something isn't working, please reply and I'll update it when I can

 

How this works (Customer Facing):

You go to a landing page with a video that automatically starts playing.

Screen Shot 2017-10-25 at 12.24.26 PM.png

 

If you pause the video:

1. If you are anonymous or don't have complete info, a form pops up

Screen Shot 2017-10-25 at 12.24.35 PM.png

 

2. If you fill out the form the form disappear and the video resumes playing.

 

Now, what REALLY happens:

As soon as you hit the page, a hidden background form submission occurs.

  1. A hidden form is submitted in the background
  2. A workflow is triggered from the form fill (even if anonymous) to:
    1. Make you a member of the program
    2. Record the campaign ID to your record
    3. Add to the lead note that you've watched the video
  3. OPTIONAL: Time spent watching can be recorded

 

How it works:

I won't go into all of the HTML necessary to build out the page, but you start with a basic 3 row page with the middle section having two columns.  The left column shown above is sized to fit the form in it. There are some tokens needed for this program. The screen shot is not complete but shows the main ones:

 

Screen Shot 2017-10-25 at 11.55.30 AM.png

 

For the {{my.youtube-video-id}} token, you can get it from the URL in the "v=" parameter:

 

Screen Shot 2017-10-25 at 3.41.18 PM.png

 

What else you'll need:

  • A completely blank form. Absolutely no fields on it.: {{my.hidden-submit-form}} Add in a token with the form ID
  • A form with all of the information you'll want someone to fill out: {{my.update-info-form}}. Add in a token with the form ID

 

  • the Form IDs, which can be found in the URL for the form. I always include the form ID in the name of the form for precision selection:
    • Screen Shot 2017-10-25 at 12.42.35 PM.png
      • Create tokens using JUST the form ID number. I store these tokens in a folder and put all my programs under it. You'll code in <form id="mktoForm_{{my.update-info-form}}"></form>, which will make this template usable with any number of different forms for different programs.
        Screen Shot 2017-10-25 at 2.48.44 PM.png
        Also worth noting, I keep my Munchkin code as a token, and you'll see that below as {{my.Munchkin-Code}}. This makes it easier when developing on a DEV / UAT server and then migrating to PROD.

  • A workflow to handle the form fills. I always store my forms in the design studio and use one form for multiple programs, so you'll also need to add in the referrer page name. I like to do "contains" and then just put in the page name from the URL builder. Notice that I have several forms in here: you'll want the Hidden form and the Update Info form (I have others in there that are relics and should be cleaned out eventually). Don't worry too much about steps 2 and 3, we'll get into those later.
    • Screen Shot 2017-10-25 at 11.59.59 AM.png
    • Screen Shot 2017-10-25 at 12.00.10 PM.png



Now, for the code.  I'm not going to go into all of the HTML necessary but here are a few important pieces:
1. Initial Code:

     <meta name="viewport" content="width=device-width, initial-scale=1.0"> // Make this mobile friendly

     <meta http-equiv="X-UA-Compatible" content="IE=edge" />    // Make this IE friendly

     <link rel="shortcut icon" href="http://yourcompanywebsite/favicon.png" type="image/x-icon" /> 

     <title>COMPANY NAME | PRODUCT LINE | {{my.Asset-type}}</title>

     <meta charset="utf-8">

     <meta name="author" content="{{my.Metadata-Author}}">  // Optional, but best practice

     <meta name="keywords" content="{{my.Metadata-Keywords}}"> // Optional, but best practice

     <meta name="description" content="{{my.Metadata-Description}}">  // Optional, but best practice

     <link rel="stylesheet" type="text/css" media="all" href="/css/mktLPSupportCompat.css"> //Just because

 

Next, call the scripts under the head: (tokens highlighted in bold)

     <script src="//app-<your pod ID>.marketo.com/js/forms2/js/forms2.min.js"></script>
     <script type="text/html" id="form-html"><form id="mktoForm_{{my.update-info-form}}"></form></script>
     <script type="text/javascript"  src="https://app.marketo.com/js/public/jquery-latest.min.js"></script>

 

2. CSS is attached to this post. I removed URLs for images used.

 

3. This is the basic HTML structure for this template

 

<div id="column"> //Centers the DIVs in the middle
   <div id="middle"> //I've excluded the top and bottom but this is a basic three row design page
              <div id="rectangle"> // The rectangle is a DIV in the #middle that conforms to the #column and has a different colored background. It's made up of #body-left and #body-right
                      <div class="box" id="body-left"> // Holds the text describing the video, including speaker pics and bios. It's all token driven.
                           <div id="asset-type"><h3>{{my.Asset-type}}</h3></div> //Not necessary, but I have it on my page
                           <div id="headline"><h1>{{my.Body-headline}}</h1></div>
                           <div id="left-side-copy">{{my.Body-copy}}</div> // Rich Text token so a marketer can be fancy without needing to alter the template
                  </div><!--left-side-container-->

                  <div id="body-right" class="box"> // Holds the text video
                        <div id="preform-div" style="z-index: 100;">
                              <div id="player"></div> //This is where the video will play
                              </div> //Closes Preform DIV
                        <div id="form-div" class="form"></div> //We won't really use these two DIVs, but it doesn't hurt to keep them in
                        <div id="postform-div"></div>
                  </div><!---Body-Right Close-->
        </div><!--Rectangle-->
      </div><!--Middle Div-->
      </div><!--Column-->
     <div class="clear"></div> // Keeps everything looking nice
     <div class="mktoContent"></div>  //Because Marketo insists!

<!--This is the main form wrapper and form. It's not going to appear initially it's going to be invisible and will overlay everything else when visible -->
     <div id="mainFormWrapper" class="vertical-center">
          <div id="formContainer" class="vertical-center">
               <div style="cursor: pointer;" id="formClose">CLOSE</div>  //Not getting into this at this point, there's more for later
               <div id="formHeader"><h1>{{my.Modal Header}}</h1>  //This is text that you put in a token to appear at the top to the modal
                     <p>
                             {{my.Modal Text}}       //This is just test you want to appear above the form
                     </p>
                </div>
                <div id="spacer"></div> //Puts in some space, create your own CSS value for how much
                 <div id="verifyInfo" style="z-index: 40; padding: 20px;"> //Cutting out a lot on this part for later, but keep this in
                     <p>
                           If you'd like to be contacted by a Representative, please confirm your information below:
                     </p><br />
                    <form id="mktoForm_{{my.hidden-submit-form}}" style="display: none;"></form>
                 </div> <!--Verify Info -->
                <div id="mainFormDiv"></div>
               <div id="mainFormDivBottomSpace"></div>
     </div> //form Container

 

4. This script:

   <script type="text/javascript">
          $ja = jQuery.noConflict();
           var showAlert = 1; //Make sure the pop-up only shows once
           var showModalAgain = 1 //Turns the modal on
           var emailAddress = '{{lead.Email Address}}';
           var firstName = '{{lead.First Name}}';
           var state = '{{lead.State}}';
           var formSubmitted = 0;
           var addedToProgram = 0;
           document.getElementById("mainFormDiv").innerHTML = document.getElementById("form-html").innerHTML;

//This function shows the form, in a box, when called -->
          function showModal() {
                 if (showModalAgain != 0) {
                      document.getElementById("mainFormWrapper").style.display = 'block';
                      document.getElementById("mainFormWrapper").style.zIndex = '30';
                      document.getElementById("mainFormDiv").style.zIndex = '40';
                      showUpdateForm();
                      $ja("#verifyInfo").fadeOut();
                      $ja('#verifyInfo').replaceWith( '<div id="left-side-copy" style="padding-left: 20px;"><p>If you would like to learn more, please fill out the form below.</p></div>' );
                      $ja("#verifyInfo").fadeIn("slow");
                      $ja("#verifyInfo").append($ja("#mainFormDiv"));
                       document.getElementById("mainFormDiv").style.display = 'block';
                  }
            }
//This is the YouTube API -->
     var tag = document.createElement('script');
     tag.src = "https://www.youtube.com/iframe_api";
     var firstScriptTag = document.getElementsByTagName('script')[0];
     firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
     var player;

//Adjust the width and height as needed -->
     function onYouTubeIframeAPIReady() {
            player = new YT.Player('player', {
                 videoId: '{{my.youtube-video-id}}',
                 height: '390',
                 width: '640',
                 events: {
                     'onReady': onPlayerReady,
                     'onStateChange': onPlayerStateChange
                  }
            });
         }
//The API will call this function when the video player is ready. This starts playing the video. -->
     function onPlayerReady(event) {
       event.target.playVideo();
     }
//These are the recognized events / states -->
/** YouTube API
        -1 (unstarted)
        0 (ended)
        1 (playing)
        2 (paused)
        3 (buffering)
        5 (video cued)
**/
//Part 1: Immediately run a hidden form submit when the video is playing to trigger a workflow to add the person to the program -->
     function onPlayerStateChange(event) {
            if ((event.data === 1) && (addedToProgram === 0)) {  //event.data === 1 means the video has started playing
             addedToProgram = 1;  //this prevents this script from continuously running at starts and stops
         MktoForms2.loadForm("//app-XXX.marketo.com", "{{my.Munchkin-Code}}", {{my.hidden-submit-form}},
        function(form) {
               var myForm = MktoForms2.getForm({{my.hidden-submit-form}});
               myForm.addHiddenFields({ // Since the form you're using is absolutely blank, you'll need to add in any fields you want to post to it and any values. 
                                                            //If you have custom dedupe fields, make sure you add them as well
                     "Email":"{{lead.Email Address}}",
                     "formProgramID":"{{program.name}}", //whichever field you use for Campaign IDs
          }); //Since we're not asking any questions, just the email address and Campaign ID are enough to update the record, but you do you.
        form.onSuccess(function(values, followUpUrl) {
             // Stop the form from refreshing the page
             return false;
         });
     myForm.submit();
          }
         );
     }
//At this point, you have an event that can trigger a workflow to add the person to the program. Information about a trigger campaign is mentioned above. --> 


//Now we're going to pop up a REAL form is they hit Pause-->
  if ((event.data === 2) && (showModalAgain != 0)) {  //event.data === 2 means Paused
    showModal();
  }
}
//The showModal function above calls a script which calls this script -->
     function showUpdateForm() {
         MktoForms2.loadForm("//app-XXXX.marketo.com", "{{my.Munchkin-Code}}", {{my.update-info-form}},

      function(form) {  //First, prefill the form. I manually prefill embedded forms as it doesn't work if it's just enabled on the form. Make sure you add in any custom fields you use.
      form.vals({
                 "FirstName":"{{lead.First Name}}",
                 "LastName":"{{lead.Last Name}}",
                 "Company":"{{company.Company Name}}",
                 "Email":"{{lead.Email Address}}",
                 "State":"{{lead.State}}",
                 "Title":"{{lead.Job Title}}",
                 "formProgramID":"{{program.name}}",     //Same as Campaign ID in my world
                 "City":"{{lead.City}}",
                 "Address":"{{lead.Address}}",
                 "phone":"{{lead.Phone}}",
                 "PostalCode":"{{lead.Postal Code}}"
                });

           var formEl = form.getFormElem()[0];

      form.onSuccess(function() {  //After the form is submitted, hide the form and resume playing the video
            form.getFormElem().hide();
             $ja("#mainFormWrapper").fadeOut("slow");
             document.getElementById("mainFormWrapper").style.zIndex='0'; //bury the form wrapper under everything else
            $ja("#left-side-copy").fadeOut();
             $ja("#left-side-copy").fadeIn("slow");
             document.getElementById("left-side-copy").innerHTML = '<p>Thank you for your interest.</p>';
             player.playVideo(); // This restarts the video
            showModalAgain = 0;  //Don't show again if the video is paused
             return false;
             formSubmitted = 1;
           }); //Close onSuccess
         }); //Close loadForm
     }  //close showUpdateForm function
</script>

 

 

 

 

 

 

-------EXPLANATION OF THE TOKENS ON THE MODAL-------

 

MODAL EXPLANATION.jpg

This week’s Champion Spotlight is Devraj Grewal. Let’s get to know Devraj a little bit better!

 

Devraj.png

 

Company: Zuman

Title: Marketing Operations Manager

Location: Pleasanton, CA

Hometown: Belmont, CA

 

What was your first job? Courtesy Clerk at a grocery store.

 

How and when did you get started with Marketo? What was your first role and initial reaction to the platform?  I had been hired at a previous employer, a small company, that was just getting started with marketing technology. I would have been the individual managing our first marketing automation platform, so I made sure to research our options. I eventually chose Marketo and have been using the platform since January 2015 at two different companies. My first reaction was that not only was it able to automate many manual processes we had in place, but it then allowed us to automate processes we were not even doing yet. I believed in the product and have been an advocate ever since.

 

What is your favorite thing to do in Marketo and why? I like building in general. When I receive an SLA from any department, I like being able to get all the deadlines I need so then I can set up time to build what is necessary. I enjoy it because I like testing my personal skill to see if I can accomplish the task. I also like being able to provide assistance to multiple departments besides Marketing and Sales.

 

Through out your Marketo career, what are you most proud of? I have had many proud accomplishments with Marketo. The first was in January 2015, when I was able to prove to my team that Marketo was the solution to go with. The next accomplishment was in January 2016 when I became a Marketo Certified Expert. The most recent accomplishment and the greatest to date was in January 2017 when I became a Marketo Champion.  

 

What piece of advice would you give to someone who is just starting a career with Marketo?  Marketo has a steep learning curve, especially when transitioning from another MAP. My advice would be to understand that there is a learning curve because the system is so robust. However, there are many resources available to learn Marketo. I was self-taught mostly from the Community and Product Docs.

 

If someone gave you $5 million tomorrow, what would you do?  Ask for more

 

If you could have an endless supply of any food, what would it be?  Lasagna

 

Have any questions for Devraj? Ask them below!

 

Connect with Brittany:

LinkedIn: https://www.linkedin.com/in/devrajgrewal/

This week’s Champion Spotlight isBrittany Stover. Let’s get to know Brittany a little bit better!

 

Brittany.S.jpg

 

Company: Des-Case Corporation

Title: International Marketing Operations Analyst

Location: Nashville, TN

Hometown: Nashville, TN

 

What was your first job? HRIS Administrator

 

How and when did you get started with Marketo? What was your first role and initial reaction to the platform?  When I started working for Des-Case, we were currently in conversations with Marketo. I was hired to run digital marketing and my sole job was to integrate Marketo into our digital fold. My first reaction was..."this is like the maze from Harry Potter... so many different ways and variations for development".

 

What is your favorite thing to do in Marketo and why? Geek out over analytics.

 

Through out your Marketo career, what are you most proud of?  I am most proud of taking our company from an analog mindset to being emerged into the digital spectrum. Everything we do hinges on Marketo and I helped develop all of our nurturing funnels for the various product channels we support. Once that was complete, we have now started creating international regional driven nurture funnels which is pretty cool!

 

What piece of advice would you give to someone who is just starting a career with Marketo?  Learn, ask questions, make mistakes, and repeat.  There is so much to learn in this space and it's not going away. Also, be hungry! There is something to be said for those who are driven and it's contagious.


What is your guilty pleasure?
Harry Potter, Super Heros, and Star Wars... Not necessarily in that order

 

What is one goal you would like to achieve in your lifetime? Qualify for the Boston Marathon

 

Have any questions for Brittany? Ask them below!

 

Connect with Brittany:

LinkedIn: https://www.linkedin.com/in/brittany-stover-09b62030/

Are your engagement rates worth writing home about?

 

If you answered “no,” then maybe it’s time to take a deeper dive into why your prospects are overlooking the content you worked so hard to create. Personalized emails return 6x more revenue per email than non-personalized emails. Imagine what will happen to your marketing when you take that personalization to the next level!

 

Here at PFL, we like to use our nurture stream audience as guinea pigs for engagement rate testing. Our latest initiative revolves around harnessing behavioral data to deliver relevant content at just the right time. The strategy: Content Binge Tracks. When leads visit our website, watch webinars, and attend tradeshow sessions, they leave valuable behavioral data about their topical interests.

 

Consider John Doe. Last month, John attended our webinar that focused on Demand Generation. A few days later, he read two of our Demand Gen blog posts, and then downloaded the eBook referenced in the second post. Clearly, John is interested in Demand Gen. Why not let him binge on Demand Gen content?

 

Our game plan:

  1. Determine the most common categories our leads are interested in
    1. Account-Based Marketing
    2. Demand Gen
    3. Lead Gen
    4. Social Media Marketing
    5. Etc

If you are in B2C, think along the lines of your product offerings. Are you a kitchen appliance distributor? Maybe your categories include Refrigerators, Ovens, Small Kitchen Appliances, etc. You get the idea.

  1. Create a set of emails, direct mail pieces (and if we’re feeling extra ambitious, RTP) for each of those categories
  2. Create new nurture streams for each of these categories in your Engagement Program
  3. Put those emails and direct mail pieces in the corresponding nurture stream, and VOILA!


Here’s how to set it up:

  1. To determine categories with the highest engagement, we started by talking to our SDR team to see which categories they thought would provide the most value

OPTIONAL: if you have more time, do a website audit (or at least a blog page audit) to see which categories have the highest engagement rates

  1. Go into your Engagement Program you typically use to market new leads. Add a new stream for each category

  1. In your Engagement Program, add your new content to each corresponding stream
  2. Set up your nurture stream transition rules to capture leads who exhibit behavior indicating they are interested in the designated topic. For example, here’s how we do it for our Demand Gen binge track:

  1. But you still want to deliver educational content when they exhaust the binge track, so set up smart campaigns that transition leads back to your generic stream once the binge track content is exhausted. This is our campaign, and it runs weekly (after each cast):

 

 

And that’s it! You’re officially a data-driven marketer.

Filter Blog

By date: By tag: