Skip navigation
All Places > Champion Program > Blog
1 2 3 4 5 Previous Next

Champion Program

168 posts

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



Company: Korn Ferry

Title: Digital Marketing Manager

Location: London

Hometown: London


What was your first job? Working in an animal sanctuary.


How and when did you get started with Marketo? What was your first role and initial reaction to the platform? I was hired as a Marketo operations specialist in 2014 before I had ever been into the system. Marketing Automation was just starting in the UK and opportunities to start using the platform were sparse. At first I though, wow, that's a lot of folders, but now it is second nature.


What is your favorite thing to do in Marketo and why?  I like keeping everything neat and tidy, from folder structures, to data cleansing to standardizing templates and colour schemes across the board. It is something that is timely but so worthwhile since it can be the most visible. I also enjoy finding clever ways to do things faster, such as consolidating flows and triggers.


Through out your Marketo career, what are you most proud of? Most proud of having the chance to be flown over to San Francisco from London to the Summit. That was a huge achievement, and renewing my certification there was the cherry on top.


What piece of advice would you give to someone who is just starting a career with Marketo?  Be calm, at all times, and always clone, never start from scratch.


What's the best advice you've ever been given?  If you don't ask, you don't get!


Your house is burning down...what do you grab first?  Captain Salazar of Slytherin, my cat!


Have any questions for Emily? Ask them below!


Connect with Emily


Enough to drive a MOPs person crazy:


A Marketing Automation Architect is perusing the marketing calendar and looking at emails scheduled to go out for the day. She spots an email marked as “operational,” meaning it will send to unsubscribed leads and will not include an unsubscribe footer. Upon further inspection, it seems this email should definitely not be sent as operational as it is definitely not transactional. She approaches the Marketing Manager who created and scheduled this email.

Marketing Operations Architect: Hi, Marketing Manager! How are you today? I noticed that you have an email scheduled to send as operational, but it’s not a webinar confirmation or an asset download delivery. Was that a mistake? I’m happy to fix it for you.

Marketing Manager: No, it wasn’t a mistake. I styled the email to look like it was coming from Outlook. If I sent it from Outlook I wouldn’t have an unsubscribe footer. What’s the difference?

Marketing Operations Architect: *screams internally*


Sound familiar? Contrary to what you might have heard during the sales process, Marketo is complex and running marketing through it requires a particular set of skills. Organizing your marketing team to account for these skill sets will ensure that you are getting everything out of Marketo that you can.


Specialized MOPS Team Structure: The Scalable Solution for Marketing Automation

Companies generally approach creating and launching programs in Marketo with either a generalist team structure or a specialized one.

  • The generalist team structure attempts to have Marketing Managers themselves build programs and architecture in Marketo after having received (at least some) training in Marketo. These Marketing Managers develop the campaign and write the copy, then build and schedule the program and campaigns in Marketo. Sometimes one of these Marketing Managers takes more of an ownership role over Marketo, but as a generalist instead of a full-time responsibility.
  • The specialized team structure introduces dedicated Marketing Operations specialists to the team structure. The Marketing Managers continue to develop campaigns and write copy, then hand off the information to a MOPs Specialist who builds and schedules it in Marketo. The Marketing Operations Architect provides ongoing support for the instance.




Most companies start with the generalist team structure, especially when marketing teams are lean and each person has to wear multiple hats. This team structure doesn't actually scale though, for a few reasons:

  • Gaining expertise in Marketo is time- and effort-intensive and requires a more technical skillset. Marketing Managers might not be impassioned by technical duties. Even if they are, it eats away at the creative time they need to develop campaigns and write copy.
  • You only need a little knowledge to execute campaigns in Marketo, but you need a lot more knowledge to build them right. Extra steps (like progression statuses) weren’t critical for sending communications at the time, but a year later, you find that you have sloppy data, can’t report on campaign successes, and have a Marketo instance (and corresponding CRM data) that is impossible to untangle.


The specialized team structure resolves many of the problems inherent in the generalized one by distributing tasks to the appropriate skill set.


Specialized Marketing Team Structure Roles

A professionally scaled marketing organization setup recognizes the roles that need to be filled on a nearly full-time basis:

  • Marketing Operations Architect: This person is the ultimate power user in Marketo. The person knows it inside and out and is the ultimate end-all of knowledge in the platform. Because of their depth of knowledge, MOPs Architects manage the submission process, marketing campaign templates, and overall governance of Marketo.
  • Marketing Operations Specialist: This is the person who builds the campaigns in Marketo. The Marketing Manager has provided all the copy, images, campaign schedule, and necessary materials. The MOPs Specialist is the one who implements the program and campaigns in Marketo, making sure that the emails and landing pages all function as expected, makes sure that programs are structured properly for reporting, and creates the assets to follow the overall governance structure for Marketo.
  • Marketing Manager: This is your traditional marketer, someone who thrives on creativity, designing resounding marketing programs, campaigns, and emails. The person in this role plans the marketing campaigns, pulls together the marketing copy and the incentives for leads to engage with the business, and gathers all the pieces of the marketing campaign together for handoff to a MOPs Specialist.


The Marketing Operations Architect creates the overall process and ensures that system-wide governance is enforced in Marketo—things like naming conventions, folder and campaign organization, and any time-saving initiatives in process. The Marketing Manager submits all the campaign information to the MOPs Specialist, who then builds the campaign in the platform. In most cases it’s an iterative process: some back-and-forth with the Marketing Manager on length of the copy or changes to images, for example. The MOPs Specialist stages the campaign and hands it over to the Marketing Manager to review for quality assurance (does the copy look right in emails, on landing pages, and so on). Once the Marketing Manager approves it, the MOPs Specialist launches the campaign in Marketo.



Setting Up A Centralized Submission Process to Optimize Project Management

A centralized submission process is a fundamental method of scaling marketing operations and marketing efforts. It establishes QA processes, eliminates errors from the building processes, and solidifies Service Level Agreements (SLAs) between marketing and marketing operations. It is the essential tool for scaling marketing in a complex enterprise organization. In a centralized submission process, Marketing Managers input their copy, images, schedule requirements, and so on, into a worksheet in your project management system, then submit it to the Marketing Ops Team. The worksheet has been developed to align with tokenized program templates. Individual sections, such as titles and headlines and body copy, are mapped to individual program tokens for the marketing programs. Here's how it works:



Why Centralized Submission Process and Not Just Email Back-and-Forths?

A centralized submission process is a great way to combat last-minute requests from Marketing Managers, over-communication to prospects, rogue marketing programs, inadequate QA for marketing communications, and scaling inefficiencies of the marketing operations teams. It standardizes the way Marketing Managers send their requirements to the Marketing Ops Specialists so that all relevant information is gathered before the campaign is implemented. It sets up an iterative relationship between the Manager and the Marketing Ops Specialist, which means errors are more likely to be caught and corrected before they reach your prospects’ eyes. It also provides a level of governance that guards against rogue marketing requests that disrupt other campaigns, and ensures that the method by which you obtain campaign performance metrics is consistent. Building out a centralized submission process is an iterative approach. Marketing Ops Specialists can build significantly faster when they have all of the build requirements consolidated in one place. Marketing Ops Architects can keep a steady eye on the speed that campaigns are being built, how SLAs are hit or missed, and refine program templates (and project management software) to smooth out problems as they come up between Marketing Managers and the Marketing Ops team.


How a Centralized Submission Process Works

The Marketing Manager submits a request that includes all collateral, assets, due dates, and the submitter’s name, through a project management system. There are obviously lots of different project management systems that you can choose, and each has its own pros and cons and general fitness for different team sizes. No matter if you're using LiquidPlanner, SmartSheet, Atlassian's Jira (my personal favorite), or something smaller, you should configure the project management software to be streamlined and the central area for dealing with ticketing for marketing campaigns.


The project management system alerts the Marketing Ops Specialist that a request has been submitted. The Marketing Ops Specialist reviews the information and, if necessary, consults with the Marketing Manager to clarify ambiguities or request additional information. When the program and assets are created, the Marketing Ops Specialist requests final approval from the Marketing Manager. Once the Marketing Manager approves the assets requested, the Marketing Ops Specialist executes the campaign. With this process, you double the number of eyes on the campaign before its execution. If your organization is quite large and brand conscious, you can also include a QA by your brand team in this step.



Setting Up a Centralized Process


For a fluid centralized submission process, do the following:


This makes creating email and landing page assets turnkey. Go one step further by housing your email and landing page assets in a templated program. That way you can simply clone an entire program that contains not only the necessary elements for your marketing initiative, but the tokens used for your email and landing pages. To learn more about program templates, we've compiled a full guide here: “The Marketo Expert’s Guide to Program Templates.”


Create a Request Worksheet for Your Marketing Managers. Now that you have tokenized approved templates, create a submission worksheet for your Marketing Managers. Include all the fields the Marketing Ops Specialists need in order to build the requested asset (copy, images, URL links), as well as options for approved templates. Marketing Managers complete the worksheets and send them via the project management system to your Marketing Ops team. Marketing Ops Specialists replace the token values with the content (copy, images, URL links) sent by the Marketing Manager. For example:



More advanced and scaled organizations, can manage the progress of the program as it is being built between the project management software and Marketo by using a program tag to specify where the program is in the build process—drafting, ready for review, QAing, ready to deploy, and deployed.


Scaling Into the Future


Establishing a Centralized Submission Process is how you get into really scaling your team and your marketing efforts. This approach allows you to add in new business units, new business acquisitions, new regions, and it guards you against turnover because there's a standardized way the whole process is dealt with. You get to have Marketing Operations Specialists do the building and QAing of the campaigns, and that gives the Marketing Operations Architects the chance to see how the process is working, identify problems and gaps, and then manage and tweak the Centralized Submission Process so that those improvements get to be felt throughout the whole organization, not just shoddily applied in silo'ed areas or with silo'ed Marketing Managers.


It'll make everyone's life easier in the medium-term, and your organization will start to see the benefits (measured in less money spent on headache medicine) nearly immediately.


P.S., we're hiring! If you thrive in Marketo excellence, send us a note with your LinkedIn profile: Marketo Consultant - Etumos

There is always a lot of talk related to archiving content/programs and how this affects finding archived content in Marketo. Today I wanted to share a quick tip that I learned during the last Silicon Valley User Group.



Step 1: Get the search bar to render in the middle of your screen. This can be done by either method listed below.

  • When logged into any space in Marketo, press "Alt and F" (Alt-F) and the search bar will appear.
  • Click in a section's search bar and click "Enter". This will also provision the search bar shown below.

Screen Shot 2017-12-13 at 11.12.45 AM.png

Step 2: Search for whatever your heart desires!


This search bar is magical for a few reasons:

  • Allows you to search across all spaces in Marketo (no need to remember what space your content is in)
  • Allows you to search for content that has been archived! (very helpful)
  • Accessible with keyboard shortcuts (for those of us that hate using a mouse)


Example: "!Entry Point V1" appears in this search even though is is nested in an archived folder/program.

Screen Shot 2017-12-13 at 11.16.00 AM.png


Shout out to Jessica Kao Mike Rizzo Megan Heidmiller and Marketo for help their help discovering and sharing this functionality.

This week’s Champion Spotlight is Josh Hill.   Josh just recently hit LEVEL 10 within the Marketing Nation Community!  This is quite an achievement and a true display of his willingness to share his vast knowledge with the members of the Community!  Thanks Josh for all of your time and efforts!


Now, let’s get to know Josh a little bit better!




Company: RingCentral

Title: Director, Lead Lifecycle Management

Location: San Francisco, CA

Hometown: New York, NY


What was your first job? Repairing PCs for neighbors.


How and when did you get started with Marketo? What was your first role and initial reaction to the platform?  I started using Marketo in October 2010 as Sr. Manager of Demand Generation at the Economist Intelligence Unit, a division of The Economist. I purchased Marketo to help us automate the lead lifecycle, improving efficiencies as well as to better automate ROI tracking. In the first few months, I was really excited with Marketo’s ease of use and how I could automate away auto-responses and lead routing with a few hours of work, going from 1860 man-hours of manual data management to full automation of the current processes.


What is your favorite thing to do in Marketo and why? Engagement programs because they are interesting to setup and easy to maintain with drag and drop functionality.


Through out your Marketo career, what are you most proud of? How many people I helped to learn Marketo.


What piece of advice would you give to someone who is just starting a career with Marketo? It's all about process management and logic.


What's the best advice you've ever been given? Leadership is about helping others become leaders.


If someone gave you $5 million tomorrow, what would you do?  Teleportation


What is one goal you would like to achieve in your lifetime?  Reverse global warming


Have any questions for Josh? Ask them below!


Connect with Josh:

LinkedIn: /external-link.jspa?

Because the spam folder is where eBooks go to die.


  1. In the draft of your email, go to Email Settings (top left) and check the “Preheader” box. Put a snippet of the email in the text box. For many email providers, the preheader is the small bit of preview text that shows up next to the subject line. It's your first chance to hook the reader and get them to open your email.


  1. When you insert an image, put something in the "Image Description" box. Marketo defaults to the name of the file you uploaded, like 3-Col_363.png. For people who don’t automatically download images, they'll see image description and notice a lack of finesse.

Screen Shot 2017-11-29 at 9.06.46 AM.png

  1. Give all links their own titles. I usually just copy the CTA, but it's probably best to use a title that actually describes the value of the landing page. Don't use the URL.


How easy is that?

Today, I reached Level 10, 300,000+ points on the forum.


Many of you know me because I have been active on this forum since 2012, sharing ideas and insights on using Marketo effectively to do demand generation and so much more. I am grateful so many of you found my posts helpful, whether I solved it for you or pointed you in the right direction. I've made a lot of friends here as well and learned quite a few tidbits from people like Grégoire Michel, Sanford Whiteman, Jeff Canada, Adam New-Waterson, Edward Unthank (Etumos), and Dory Viscogliosi.


Since becoming a Champion Alumnus (5x!) and now reaching this last milestone on the forums, I've decided to step back a bit from the Nation and focus on other aspects of Marketing Automation & Operations. I'm sure I'll still be around here and there, but much less active.

I'd like to challenge the other Champions and top experts here to step it up and share MORE of the amazing things you are making Marketo do for you. I see only the same few people everyday responding and helping and it would be a tremendous help to your fellow MOPS friends to put out new ideas into the Nation. If you've asked a lot in the past, perhaps it's time to give back. Not every question is a tongue twister for Sanford. I see a lot of new users asking questions I know can be answered by more people.


This is a small world with Marketo and Marketing Automation. Speak up, be heard, and be recognized for your hard work.




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


Andy V.jpg


Company: Optimizely

Title: Senior Marketing Automation Manager

Location: San Francisco, CA

Hometown: Cupertino, CA


What was your first job? Product Marketing Associate


How and when did you get started with Marketo? What was your first role and initial reaction to the platform? My first interaction with Marketo was in my very first role.  At that time, we were only doing very basic email marketing so my understanding of the tool was limited to something similar to MailChimp.


What is your favorite thing to do in Marketo and why?  My favorite thing to do in Marketo is probably segmentation building because it allows everyone from the demand gen team to customer marketing to marketing analysts to all be more data driven and focused in our approach and better understand what's working well and what isn't.


Through out your Marketo career, what are you most proud of? I am proudest of having leveraged Marketo's API to merge Marketo, SFDC, Google Analytics, and product information to develop our own predictive lead scoring. It was very effective and allowed us to save thousands of dollars every year.


What piece of advice would you give to someone who is just starting a career with Marketo?  Invest the time in reading through all the product docs and spend at least an hour a week on the community. There are a lot of great ideas, tips, and answers in there that will not just teach you a lot but also spark new ideas that you hadn't even considered before.


What did you want to be when you grew up?  I was obsessed with flying, so I wanted to either be an Air Force pilot or an astronaut!


What is one goal you would like to achieve in your lifetime?  The one goal that I've been actively working on is to visit all 7 continents before the end of 2019. 4 down, 3 to go!


Have any questions for Andy? Ask them below!


Connect with Andy:


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:


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 or progressive profiling 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("//", "123-ABC-456", 1);</script>


<script>MktoForms2.loadForm("//", "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;  


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="//"></script>
<form id="mktoForm_27"></form>
<script>MktoForms2.loadForm("//", "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>


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


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


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){
      var email = form.vals().Email;
        if(!isEmailGood(email)) {
          var emailElem = form.getFormElem().find("#Email");
          form.showErrorMessage("Must be Business email.", emailElem);
  function isEmailGood(email) {
    for(var i=0; i < invalidDomains.length; i++) {
      var domain = invalidDomains[i];
      if (email.indexOf(domain) != -1) {
        return false;
    return true;




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 = ["", "", "", "", "", "", "","", "", "", "", "", "", "","", "", "", "", "", "", "", "", "", "", "", "","", "" , "", "", "" ,"", "", "", "" , "", "","","","", "", "", "", "","", "", "", "", "","", "", "", "", "", "","", "", "", "", "", "", "", "", "", "", "", "", "", "", "","", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""];

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

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

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() );
return false;


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">
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>.";




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 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 and will be covered by 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( "",);
  letsGo = function() {
    MktoForms2.whenReady(function (form) {
      var v = grecaptcha.getResponse();
      form.vals({"spamCheck" : v});


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


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:


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 {{}} 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>"></script>
     <script type="text/html" id="form-html"><form id="mktoForm_{{my.update-info-form}}"></form></script>
     <script type="text/javascript"  src=""></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 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><!--Middle Div-->
     <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
                             {{my.Modal Text}}       //This is just test you want to appear above the form
                <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
                           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';
                      $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>' );
                       document.getElementById("mainFormDiv").style.display = 'block';
//This is the YouTube API -->
     var tag = document.createElement('script');
     tag.src = "";
     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: '{{}}',
                 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) {;
//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 (( === 1) && (addedToProgram === 0)) {  // === 1 means the video has started playing
             addedToProgram = 1;  //this prevents this script from continuously running at starts and stops
         MktoForms2.loadForm("//", "{{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":"{{}}", //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;
//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 (( === 2) && (showModalAgain != 0)) {  // === 2 means Paused
//The showModal function above calls a script which calls this script -->
     function showUpdateForm() {
         MktoForms2.loadForm("//", "{{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.
                 "FirstName":"{{lead.First Name}}",
                 "LastName":"{{lead.Last Name}}",
                 "Company":"{{company.Company Name}}",
                 "Email":"{{lead.Email Address}}",
                 "Title":"{{lead.Job Title}}",
                 "formProgramID":"{{}}",     //Same as Campaign ID in my world
                 "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
             document.getElementById("mainFormWrapper").style.zIndex='0'; //bury the form wrapper under everything else
             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










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




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:


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




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:


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.

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




Company: St. Edwards University

Title: Assistant Professor

Location: Austin, TX

Hometown: Cardiff, Wales


What was your first job? Electronics Engineer


How and when did you get started with Marketo? What was your first role and initial reaction to the platform? I first found out about Marketing Automation and Marketo when I was studying my PhD as I was looking into innovative technologies for hi-tech companies to use to market successfully.  I didn't actually get hands on with Marketo for another year, but when I did I instantly fell in love with what it could do, all the cool automation things it could do. It seemed pretty complex to start with, but once you get the hang of it you can get more in-depth and complex than you can imagine.


What is your favorite thing to do in Marketo and why? Personally, I love playing around with the program templates.  I love making everyone’s job easier so if I can build out best practice program templates and save time for all users then I will.  I also love playing with the reports and seeing how well programs are performing.


Through our your Marketo career, what are you most proud of? I'm probably most proud of being able to speak at Marketo Summit about my career and how I got to where I am today.  Its been a long windy journey, but I'm happy with where I have got to as a 3x Marketo Champion and Certified Expert.


What piece of advice would you give to someone who is just starting a career with Marketo? Watch as many videos and trainings as possible.  There is some great stuff out there by various experienced users (Josh Hill, Sandford Whiteman and of course The MindHive).

If someone gave you $5 million tomorrow, what would you do?
I would pay off all mine and my families debts and then buy a few houses and cars and probably change to a part-time job so I can travel and enjoy life.


If you could have an endless supply of any food, what would it be? This is an easy one....Cadbury's Dairy Milk Chocolate - but only if it comes from the UK.


Have any questions for Juli? Ask them below!


Connect with Juli:


Sometimes, you need a static list to behave like a smart list. Static lists I think get forgotten. They are fantastic tools that I think more Marketo users should leverage.


In this quick post I'm going to outline how you can use a batch smart campaign, smart list, to make a regular static list update on a regular cadence. This technique is useful when syncing lists to third party advertisers such as MediaMath, AdRoll, or even LinkedIn.


First step is to make a smart list with exact criteria you want. Whatever tickles your fancy.  In this screenshoot I have a smart list that contains all the people in Nurture status, meaning they are at the top of my lead lifecycle.



Second step: I built a static list with the very same name as the smart list. I only did this so I could easily see which items paired up with each other.  This static list becomes the recipient of new additions to the smart list. I ran single flow action to take everyone that was on the smart list and add them over to the list.  That's why we have 204,485 people to start on the static list (your list size will be different than mine ).


Screenshot of the static list:




Step three is to make a SMART CAMPAIGN that links the smart list with the list.  In the smart list of the smart campaign I'm using the advanced logic option to say: IF you are a member of the static list BUT NOT in the smart list, OR, You are a member of the static list BUT NOT on the smart list.  This is a big tricky but the logic is looking for:


#1 people that should be on the static list but are not

#2 people that are on the static list and should now be removed


This is what the smart list logic looks like on the smart campaign:




Then in the flow, we are going to ADD the people that should be there, and REMOVE the people that should no longer be on the list.


The first flow step says to add people to the static list if they are a member of the smart list.


Then I wait 3 minutes (I do this just as a security check on - I think this may be redundant)


Then the second flow step says if you are not on the smart list, remove them from the static list.




Then I set up the cadence to run every single night to keep the static list up to date. This is what our run history looks like.




Make sense? Is this useful to anyone??