Skip navigation
All Places > Marketo Whisperer: Implementation Tips

This is somewhat of an odd example to post, since there's a Gravity forms integration with Marketo. But, since it's SOAP API-based, I'm pushing my clients to move away from those integrations and use some of the newer APIs. I thought this would be helpful to show you because there's surprisingly few actual examples of doing the Forms 2.0 Javascript API post method that Kenny Elkington recommends. You can probably use this to extrapolate to some other form systems.


So, our goal was to do a hidden form submission from a Gravity form to a Marketo form using the Forms 2.0 Javascript API. This allows you to use your existing forms on your website, but still get a copy of that form submission into Marketo, allowing you to not only have the data in the system but also trigger off the Fills Out Form activity. (A primary benefit of not using the SOAP API method.)


The yellow highlighted section in the code below should be replaced with the Embed code for the form you have built in Marketo as directed in Kenny's post. It is not necessary for this form to have any fields on it, as you will be coding the desired fields.


The green highlighted section should be replaced with the Gravity form ID. To identify the form ID, go to the page with the Gravity form on it, and right click to View Page Source.


In the code, search for the section that begins with <form method=’post’...> The area with id=’... is where you will find the ID for your form. The form id for this form is gform_2.


The blue highlighted sections should contain the SOAP API names of the fields you wish to capture information in on the Marketo lead record. The SOAP API names of the fields can be found by exporting field names in Admin > Field Management.


The red highlighted sections should contain the Gravity form field ids that correspond to the fields that capture the information you wish to store in the corresponding Marketo form field. You can locate these by right clicking on the form field label on the Gravity form and going to Inspect Element.

This will take you to the label section of the code. Underneath that, you should see a section beginning with <input id=”...> This is where you will find the ID that corresponds to that field. In the example below, the input_2_3 refers to the field for Email.


<script src="//"></script>

<form id="mktoForm_0000"></form>

<script>MktoForms2.loadForm("//", "000-XXX-000", 0000);</script>

<script type="text/javascript">

$(document).ready(function () {

   $("#gform_2").submit(function(event) {

      var marketoForm = MktoForms2.allForms()[0];


  //These are the values which will be submitted to Marketo

  "Email": $('#input_2_3').val(),

  "FirstName": $('#input_2_1_3').val(),

    "LastName": $('#input_2_1_6').val(),

"Address": $('#input_2_6_1').val(),

"City": $('#input_2_6_3').val(),

"State": $('#input_2_6_4').val(),

"PostalCode": $('#input_2_6_5').val(),

"Phone": $('#input_2_2').val()



     return false;





And that's that. (No doubt here comes Sanford Whiteman to come tell you how to do this better. Always cleaning up after me !)

When I first started using Marketo as a client, the ability to easily create forms that could capture prospect and customer data and get it directly to my sales team via our CRM was heady stuff. We were suddenly going from a situation where users bounced around our website gathering all of our information while we gathered none from them, to one where we could gate EVERYTHING and ask EVERYTHING.


So, naturally, we did.


You can guess how that went! At Marketo, we recommend that you be strategic about your content and when you gate it. Top of Funnel (TOFU) content that builds general awareness of your brand and demonstrates your thought leadership/expertise in an area should be open to all potential prospects. In the Middle of the Funnel (MOFU), more useful content that may be proprietary to you (think RFPs, buying guides, calculators, industry reports) should be gated. And finally, at the Bottom of Funnel (BOFU), we recommend opening the content up again - this content (product comparisons, etc.) is generally most valuable to prospects who are already engaged with you and your sales team and is affirming their decisions.


But when it's the appropriate time and place to gate content, clients often struggle with how much prospect data to request on the form. I always boil it down to this: What's In It for Me? And I don't just mean me the prospect, but also me the marketer.


What's the value for the prospect? This one is fairly obvious, but hard for marketers because we can be pretty biased about the awesomeness of that tool/guide/calculator/report we're offering. Put yourself in the prospect's shoes instead and be brutally honest:


  • Can the prospect get this information elsewhere?

  • Are my competitors or anyone else offering something like it (and if so, are they gating it)?

  • Does this content answer a question my prospect needs to help solve their problem?


The more exclusive and useful the content is, the greater its value to the prospect and the more likely they are to a) fill out the form in the first place and b) fill in more fields to get it. Even subconsciously, prospects are looking at the form between them and your content and evaluating "do I think this will be worth the time to fill out and/or the release of my personal information to get?" So if the value is lower, per the above, consider either not gating it until you can make that content more valuable OR make sure your form is short and sweet.


But also think "What's In It for Me?" as a marketer - what's the utility and value of the data you're requesting on the form? If it's a contact request form, it makes sense to ask for a phone number. But for a buying guide or a report? You don't need that data to deliver the content the prospect is asking for, so why are you asking for it? If this is the first form your currently anonymous prospect is visiting, will they find a "phone number required" field off-putting for a guide? Probably. Do you need to know what their job title / role is in order to provide them the right version of the guide/tool etc.? Definitely ask, but consider explaining to them that's why you're asking. Transparency goes a long way with prospects when asking for data.


Now, eventually, as you take your prospect along your customer journey and get them to engage with more and more of your un-gated and then gated content, you will need more and more information from them in order to fully qualify them for your sales team. That's what progressive profiling is for! From form to form, you'll ask them more and more qualifying information and it will a) be easy for them because it's only a couple of questions at a time and b) make sense to them because what your'e asking should also be tracking to their customer journey (region of the world, buying timeframe, buying role, etc.) It won't feel invasive, intrusive or unnecessary to the value of the content you're offering.

Many new customers are confused as to how Marketo’s munchkin code works when it is applied on different, separate domains. They often expect to be able to automatically track behavior on multiple domains just by using the munchkin code and cooking someone once.


Unfortunately, (and fortunately) it doesn’t work this way. If you could set a cookie for any domain, well, you could inject your munchkin javascript to any site and set a cookie for any domain. Think of the privacy laws and security havoc this would wreak.


Marketo’s munchkin uses what is called first party cookies. Put simply for non-technical folks, this means that each record in your database must be cookied in each domain first before we can track their behavior.  The good news is once a record is cookied in more than one domain all their web activity is combined into the activity log of their record in Marketo.


As a reminder, these are the primary out of the box ways a marketer can set cookies on a domain with very little, if any, technical resources involved:


  • Marketo Forms – embed Marketo form(s) on the domain so that once someone fills out a form they are cookied
  • Click links in an Marketo email - send an email to your database with links that when clicked will have the record land on a page on the domain where the munchkin code has been applied. When the person clicks the link, they are cookied


If you have a technical resource available to you, there are other ways you can set cookies using our APIs and no Marketo forms or emails. While the two methods above require very little technical resources, you do need a lot of creativity in creating your call to actions – which is exactly what marketers do best.

In my last blog I discussed the importance of defining the scope and vision of your Marketo implementation, this installment focuses on the significance of getting attention and buy-in from executive leadership.


Why is executive-level support key for success?  Besides being able to break down any potential roadblocks between and within departments tasked with the Marketo implementation (e.g. IT, Marketing and Sales), executives can set the tone for the entire organization. As the proverbial captains of the ship, having top-level support can help all departments sail in the same direction. Recruit these “skippers” to champion the vision and strategy for the Marketo implementation and beyond.


In the article, 10 Change Management Keys to Effective Software Implementation, Samantha E. Velez writes, “When there is consistent, managerial backing at every level, the entire workforce is being driven toward the common goal of accepting and adapting to the new system. Effective leadership can sharply reduce the behavioral resistance to change, especially when dealing with new technologies.”


Part of your change management strategy should incorporate an Executive Leadership Plan. When formulating the plan, here are some things to consider matched to typical implementation phases:

  • Kick-off: Get the executive team together and have them describe how Marketo fits into the overarching goals, direction and strategy of your company –  then get them to communicate this company wide.  This not only gives the implementation the visibility it needs; it also helps bring clarity to the entire organization around why the changes are being made.
  • Design: Consider providing Marketo overview training to familiarize executives with Marketo features and functionality.  This forum can also facilitate conversations around scope and time frame related questions, as well as expose this group to available metrics, report types and provide a look at user roles.  When it comes to analytics, some executives like to have system access to run their own reports, while others want things delivered to them.  And, the discussion around user roles might surface new business processes that will need to be adopted. Figuring all this out early in the process helps set expectations.
  • Implementation – and beyond: Focus on providing project updates and strive for on-going organizational alignment. Consider hosting executive briefings, or providing weekly reports to keep executives apprised of project successes and challenges.  During the implementation and early project phases, more frequent meetings and reporting might be necessary, while post implementation you might scale back to quarterly updates. Whatever the meeting or reporting cadence, continue to enlist executive support when needed – be it for issue escalation, or to broadcast your awesome achievements.
  • All Phases: Create a cycle of positive reinforcement. Consider having executives single-out key adopters (both marketing and sales) and program successes. Include these updates in your internal newsletters, company intranet and social network.  Who doesn’t like to be recognized for good work? And we all know that a ‘shout out’ can go a long way when it comes to motivating a team.


Much of what I’ve been discussing emphasizes communication.  In an upcoming blog I’ll dig deeper into the importance of formulating an overarching project communication plan.  If scheduling quarterly meetings makes sense for your business, consider including your Marketo or partner team.  Your Account Manager, Engagement Manager, or partner will keep you abreast of the product road map. This will give needed visibility and runway, allowing you to continually evaluate your strategy and to plan for adding or shifting resources as new features, like Account Based Marketing, change or amplify your existing strategy.


Set your organization up for smooth sailing! Getting executive buy-in from the start puts your investment in Marketo on a long-term course for success.

Recently someone on my team asked me for a bit of help in writing some JavaScript to check and uncheck the boxes on a subscription center when someone selects the Unsubscribe from All checkbox. You would think this code would be easy to find just floating around because so many people need it, but I actually couldn't find it all that easily. Since I'm probably not the only one who needs this code, why not share it?


Code to Check All Subscription Boxes

Make sure you update the field names in the quotes to match the field names in your instance, beginning with 'selectAll', which is the checkbox that, when selected, should populate all of the other checkboxes. Obviously, you should also remove any rows you don't need because you have less options than this example.



MktoForms2.whenReady(function (form) {

document.getElementById('selectAll').onclick = function() {

  if ( this.checked ) {

document.getElementById('mktosupplychainmanagement').checked = true;

document.getElementById('mktosmallmolecules').checked = true;

document.getElementById('mktobiologics').checked = true;

document.getElementById('mktoevents').checked = true;

document.getElementById('mktocommercialproductsupply').checked = true;

document.getElementById('mktoproductdevelopment').checked = true;

document.getElementById('mktogeneralmarketingcommunications').checked = true;

document.getElementById('Unsubscribed').checked = false;

  } else {

  // Did not Globally Subscribe






Code to Uncheck All Subscription Boxes



MktoForms2.whenReady(function (form) {

document.getElementById('Unsubscribed').onclick = function() {

  if ( this.checked ) {

document.getElementById('mktosupplychainmanagement').checked = false;

document.getElementById('mktosmallmolecules').checked = false;

document.getElementById('mktobiologics').checked = false;

document.getElementById('mktoevents').checked = false;

document.getElementById('mktocommercialproductsupply').checked = false;

document.getElementById('mktoproductdevelopment').checked = false;

document.getElementById('mktogeneralmarketingcommunications').checked = false;

document.getElementById('selectAll').checked = false;

  } else {

  // Did not Globally Unsubscribe





There's no place in Marketo where you can easily see a list or report of all of your static lists. This is somewhat important when you're doing a migration from one instance to another, because you need to decide which static lists you want to reimport the members to when you move to the new instance. Here is the fastest way I've found to quickly generate a master list of all of your static lists:


  1. Create a smart campaign and drag Member of List filter into the smart list. Click on the + sign.
  2. Go to Add New values and select each list to move it over to the right side (You may at the bottom see "Add All" if you are lucky, but it doesn't always show up). Then copy and paste the list from the right side into your document. You’ll need to do this once per workspace.

My recent switch from the Enterprise Consulting team to the Education team has given me greater exposure to clients who are either brand new to Marketing Automation (MA), or switching from another MA, like Eloqua or Hubspot. Typically, I’m training a core group of people that have been charged with the responsibility of driving a successful new implementation; oftentimes training takes place before any type of discovery or kick-off with the professional services teams (either Enterprise or SMB) has occurred.  What I've come to realize is that, while clients are in different places along their respective MA journeys, there are some best practice topics that any organization should consider to help manage a successful implementation - as well as the ongoing successful adoption - of Marketo. These topics include:


  • Defining an overall scope and vision
  • Garnering executive leadership
  • Outlining ownership and internal support path
  • Devising an internal communications plan
  • Discussing users and roles
  • Managing technical system requirements
  • Ensuring data quality
  • Creating internal processes to support the platform and people
  • Motivating Users and Non-Users
  • Creating training plans


I’ll be dedicating the next few blogs going over these topics individually, and in this first installment let’s look at some things to consider when defining an overall scope and vision for your Marketo implementation.


Typically, when clients get started with a solution as robust as Marketo they are super excited and want to get up and running quickly – oftentimes with a goal of utilizing as many new feature as possible.  Lots of teams are either drawn to proving they are getting the most out of their investment quickly, or they have upper management pressuring them to show ROI as fast as possible.



This is where you have to be realistic about how much change your organization can handle at once.  Biting off more than you can chew can lead to frustration, confusion and failure. This is why Marketo suggests a “Crawl, Walk, Run” phased approach.  By initially focusing on the core team and essential ‘must haves’ you’ll ensure success and build confidence – not only among the core implementation group, but with other departments, like sales or IT – as they see a focused and organized team executing on a realistic plan.


As Antoine de Saint-Exupéry said, “A goal without a plan is just a wish.” So ask yourself the following:


  • What people need to start using Marketo now?
    • Can you take advantage of Quick Wins to give insight into people who are just curious about the solution, but may not need to be trained straight away - if ever? This suggestion works great if you have a sandbox, but even if you don’t, pointing people to Marketo Product docs or Marketo Resources is a low cost way to give people visibility into all Marketo can do and makes sure no one feels left out.
  • What are some quick wins that can have the biggest impact?
    • This is highly subjective and depends a lot on your company’s MA maturity and experience. For MA ‘newbies’ this might include adding A/B testing and scoring, for more experience teams it might include setting up best practice program templates to enable scaling (via cloning) and extending access/insight to sales via smart lists and report subscriptions and/or Sales Insights.
  • What are my key KPIs and how am I going to report on them?
    • In addition to setting some basics reporting goals, like a lift in sign-ups, or growth of lead quantity and quality, set tactical metrics around content performance for emails including opens, clicks, unsubscribes and include web engagement metrics.
    • Ask yourself who should see reports and at what frequency.  As previously mentioned, you can set up subscriptions, but you might not want to socialize reports until meaningful data is available.
  • Do I have a defined scope for each phase of the implementation?
    • Make sure the scope matches your organizations overarching marketing strategy and goals.  Don't start rolling out Social, for instance, just because you can - ask yourself if it is part of the greater plan.
    • Set goals at 3 month intervals – for at least the first year – so you can stay focused on the present, while keeping an eye on the future.


Finally, plan on an enhancement life-cycle, for when you are ready to use additional features – whether purchased or those that become available in Marketo’s quarterly releases.  You can also include in this life-cycle additional requests that will inevitably come up during an implementation as more people learn all that Marketo can do. Knowing upfront that you've entered a marathon, not a sprint, may keep people more focused and patient during this key time of your implementation.

I had a Marketo client ask me recently if there was a "best practice" on whether or not to use Marketo for internal (employee) communications.  Here's what I told her: There's no best practice on whether or not you should have employees in your database other than for seed list testing but I do believe there is a best practice for how to manage them if and when they get in there.


There are Marketo users who strongly believe that the only people in your database should be customers and prospective customers. I know some who will go so far as to ONLY include prospects, not existing customers, viewing it very much as a MARKETING database only (customers remain in the CRM only). I also know Marketo users who proactively use our platform for internal communications as well as communicating with prospects and customers.  Depending on your organization, your markets, your data requirements and your business needs, ALL of these can be the right choices in my view.


But what I do encourage Marketo users to do is to plan for employees in the Marketo database and build accordingly:

  1. First, create a custom field in Marketo - something like "Is Employee"

  2. Then create a basic data management smart campaign that marks everyone with your company's email domain as "Is Employee" (for example: If email address contains "" change data value "Is Employee" to TRUE. You can schedule it as a recurring batch (with an "only go through the campaign once" constraint) to catch any new employees who might come in through form fillouts, imports, etc. over time


By taking these two steps, you now can easily filter out - or in - your employees as part of your smart lists and smart campaigns as you desire. Some clients will even use this criterion to do periodic, batch automations to delete employees from the Marketo database. It depends on your data concerns and your business use.


For nearly all clients, I will recommend that "Is Employee" is smart list criteria you use to remove employees from lead scoring and lead lifecycle programs and from various analytics reports. Except in a few cases, most organizations would not view employees as people they want to track for revenue modeling data and certainly don't want employees handed off to sales for followup as prospects. You can also use the "Is Employee" criteria to separate out their email performance and web page performance.


How about the rest of you? How do you feel about employees in the database and do you have different ways of dealing with them?

I recently worked with a B2C client on a campaign where they were targeting leads when they reached a specific mid-stage of the sales cycle with some SMS and email messaging. In their smart list,  they were triggering on Opportunity is Updated  with additional constraints around opportunity stage and the brand.


In reviewing their leads, they found that some leads at the appropriate opportunity stage didn't qualify for the campaign after it was turned on. As it happens, these leads had been converted to opportunities and immediately placed in the qualifying stage versus earlier stages.  Therefore, their opportunities were not UPDATED; they were in fact, Added to Opportunity. By bringing in an additional trigger (Added to Opportunity) with the appropriate constraints on stage and brand,  the two triggers - which, remember, work as "OR" statements - captured all leads once reaching the right opportunity stage.


I wanted to do a quick blog post on this for two reasons:


This is not an uncommon issue: Users sometimes forget that Opportunity is Updated excludes leads whose opportunities are first created (Added). You similarly see this with Data Value Changes - when a lead is created and their field values are populated, this first writing of data to fields doesn't count in Marketo as a "change." So I thought it useful to call this out as a reminder.


Perhaps more importantly, this situation highlighted how important it is to understand your sales teams' processes.  When salespeople create opportunities, do they "skip" stages (i.e., bring someone in "midway" through) and if so, why? Is this something that makes sense for your sales process and therefore should be accommodated in your Marketo build, or is this an opportunity to help sales improve their processes?


So when you see something like this occur in Marketo, focus not just on correcting your smart lists but also using it as an opportunity to examine your related sales and marketing processes and make sure they are working as planned.

It's true. Here at Marketo we use Slack, and our Slackbot HATES server side post.. so much so that when you mention it, it chastises you. It's really pretty amusing.



Fine! Jeez.

Really though, Slackbot is completely right. Server side post has effectively been replaced by the following REST endpoint, which is great and scalable.


This, along with my other most recent blog, provide a good blueprint for associating leads in a non marketo form with only one REST call. No fewer than 3 customers have had this very question for me this week alone, so it seems like a hot topic.

A common question we see in consulting relates to how a customer can use a non Marketo form, but still associate that lead with a known lead in Marketo. With Marketo forms, of course, it's simple, you jhust submit the form. With Non Marketo forms, its a bit tricker, but still possible.


One reason you might do this is because you're submitting a login form, and obviously that doesnt really make sense as a Marketo Form. Not to worry!


First, lets talk about some confusing names of important items related to the Marketo Munchkin Cookie and this process

What is it?
_mrk_trkThe name of the hidden form field (more on that in a moment)
_mkto_trkThe name of the Marketo Munchkin Tracking Cookie. The cookie contains the Munchkin ID of the instance along with a unique identifier for this lead (known or anonymous.


The details on the tracking cooke are shown below. I use a plugin called "Awesome Cookie Manager" to view cookies. You can see yours by going to any site that leverages munchin


Tracking Cookie



Marketo Munchkin Cookie Value


Armed with this knowledge, we can look at the solution here. the process is straightforward and we're helped by Munchkin. When you create a form field called "_mkt_trk" within a non marketo form on a page where Munchkin code is running, Munchkin knows enough to populate the value of that form with the Munchkin Cooke value.


Cool right?


So, what does that mean? That means that in the following really simple non marketo form, youll not only receive the regular form fields.. youll also have the lead's cookie ID as well... and with THAT, you can use REST from your back end process to associate the lead.


That brings us to the second step which is associating the lead. for this youll need the marketo ID and the cookie ID. you've now got the cookie ID, and getting the Marketo ID is a simple matter of getting it from Marketo.


You'll need to call the following two REST endpoints.


first you'll use GetMultipleLeadsByFilterType, passing in the Email address to get the Marketo ID (!/Leads/getLeadsByFilterUsin… )

then, you'll use AssociateLead (!/Leads/associateLeadUsingPO… ), passing in that ID, and the cookie Id.


Alternatively, you can use a amazing new REST endpoint which I describe here! Slackbot Hates Server Side Post

If you are using  tokens in emails you have probably noticed that if you do not define a default value when inserting the token, Marketo populates language of "edit me" automatically as a default. This is to still give you the option in the email editor to define a default value for whenever the data field of the token is empty without having to re-insert the token.


So what happens if you leave 'edit me' as the default value, will people see this when they get the email and there is no data in the token field? 


Nope.  The system sees it as a null value. Even if you use Send Sample it will not appear, unless you have accidentally deleted one of the brackets around the token. Remember to be extra careful when you are editing {{tokens}} to not remove the brackets, otherwise the whole thing will appear in your email and that would be {lead.token:default=super embarrassing}}.

If you are one of many companies that allows leads to manage email preferences via a Preference Center or Subscription Center page, then you have probably wondered why it's not possible for a lead to update their email address on the form.


If you display the email field on the form, and a lead overwrites their email address in this field, a NEW LEAD will be created in Marketo; that's because email address is the unique identifier for Marketo records.


I'm often asked by customers if it's possible for a lead to update their email address via a form.  Well, the short answer is yes...with a simple data management campaign and a custom field.


Before proceeding, you must first ask yourself if there are any ramifications to allowing a person to update their email address.  For example, is email address also used in other systems as a username?  Consider all scenarios before building the following solution.


Here's How to Do It


  1. Create a custom field with the field type of Email.  I named mine:  'Custom_New Email Address'.  You can do this by going to the Admin area, and selecting 'Field Management'.  Note that you must have an Administrative role to create custom fields.
  2. Create one additional custom field with the field type of Boolean.  I named mine 'Custom_General Checkbox'.  This field will be used to toggle the New Email Address field on/off on the form using visibility rules.
  3. Create a Smart Campaign, and name it 'Update Email Address'.
  4. On the Smart List tab, drag in the 'Data Value Changes' trigger, and select your new custom field as the attribute.

  5. On the flow tab, drag in the 'Change Data Value' flow step, and select 'Email Address' as the attribute.
  6. For the 'New Value' field, type in {{lead.MY CUSTOM FIELD NAME}}, replacing MY CUSTOM FIELD NAME with the name of the email field you created.

  7. Next, visit the Schedule tab, and edit the Smart Campaign Settings.
  8. Under 'Run each lead through the campaign flow', choose 'Every time'.

  9. Next, edit the draft of your Preference Center form.
  10. Add your new General Checkbox field to the form.
  11. Delete the label for the General Checkbox field, and change the label width to 0.
  12. Click the + symbol, and add a Rich Text box.
  13. In the Rich Text box, add 'Check here to update your email address'. Save to continue.
  14. Drag the text to the right of the checkbox.
  15. Add your New Email Address field below the checkbox field.
  16. Click on the New Email Address field, and select Enable next to Visibility Rules.

  17. Use these visibility rules:  IF General Checkbox IS YES, Field Label: New Email Address.

  18. Save these rules.
  19. Approve and close your form.
  20. Don't forget to activate your Smart Campaign on the Schedule tab when you are ready.

In case you missed it, Marketo just introduced with the Summer 16 Release our new integration with Vibes, a terrific new way to leverage SMS within Marketo. Isn't it great? But many of you have been using, and may continue to use, the services of Twilio, one of our other wonderful Launchpoint partners.


I've previously posted about using Twilio for SMS and wanted to share a few quick thoughts on some additional lessons learned:


I recently received a request to include fairly long URLs with querystring parameters within some SMS messages my client was sending out. Obviously, SMS messages with a long URL could cause an issue - though Twilio does offer messages over 160 characters with its Messages Resource UI. However, Twilio also offers automatically URL shortening, which is probably advised as a very long link with querystrings is not particularly attractive in an SMS message. We did test this functionality and it does work as expected, with query string parameters being preserved with URL shortening.


One thing that is important to understand, though, is that with regard to being able to measure/report on link clicks, this is not something that is out-of-the-box supported with Marketo's analytics tools. There is no "clicks link in SMS" filter to use for smart lists. If you've used a unique querystring for the message, you can create a web page performance report to show known or anonymous leads that visited the page with that querystring. (And of course, if you have Google Analytics or similar, you would see the traffic there as well.)


Keep in mind, people may be cookied on their computer but not necessarily on their phone - it depends on if they've previously engaged with your emails on their phone, going to a munchkined page on that device. So using a "Visited Web Page" smart list to look for that querystring will only show you known leads who visited that page with their cookied mobile device - and that may be a lower number.  (I know for myself, I will typically read emails on my phone but if there's a link to a website, I may wait to do so when I'm back on my laptop, as many pages are, sadly, still not as mobile-optimized as they could be.)

Reduce Workload, Maximize Consistency (and Get Your Marketing Automation Geek On While You're Doing It!)


I think most of us are leveraging system-level tokens and lead-level tokens to personalize content for their prospects, and many are even using program-level tokens (aka "my.tokens") to further customize and make dynamic the content inside of their programs. But some of you are taking it to the next level, placing tokens into folders into "waterfalls" of local and then inherited tokens that cascade into each program. See an excellent blog post on this approach here.


Why take this kind of token folder structure approach? There are a lot of advantages - just to name a few:

  • Reduce the amount of time spent editing or updating programs when shared information changes
  • Help "hold brand" for programs, ensuring that headers, footers, brand messaging and images stay consistent
    • Added bonus: by not having this inside your templates directly as text/imagery, you can make updates without having to re-approve templates (and all of their related assets)
  • Guided landing pages and email 2.0 templates make it deliciously possible to have just a few templates support multiple brands (with different imagery, colors, etc.) but without tokens, it can still require the user to know hex code or image URLs to swap out for their brand. Turn those into tokens inside the template, place the tokens in your brand's top folder, and your user doesn't even need to edit those!


Sounds awesome, right? But a little intimidating? It doesn't have to be - it just takes some time and planning.


Plan for your tokening


Grab a variety of the emails and landing pages you are leveraging today. Compare them and mark up what elements, if any, are shared across the assets - or could be with edits to layout and/or content. What is shared at say, the corporate level v. the brand level or channel level v. specific programs? (I find color coding useful for this.)


You'll almost certainly find that your highest-level headers and footers have commonalities across the board. But you'll probably find that content associated with certain brands and/or channel types also tend to leverage identical or nearly identical content - imagery, calls to action, brand messages. This is, in essence, your token plan.


  • What do all of your brands/products/services and/or program types have in common? Place these at the top level - things like corporate-level messaging, imagery, corporate-level color schemes.
  • How do you organize your brands/products/services in terms of how they face the customer; or does your face-to-the-customer take a more regional approach
    • Does a brand or region have a specific color scheme, imagery or even content (product A has standard copy always referenced). This may be your second level folding and tokening
    • TIP: Evaluate your tokening and folding from a customer-facing perspective, not necessarily how you are internally organized; tokening will be easier to "cascade" down through folders and programs in terms of how, where and why content is presented to the customer - you'll see more opportunity for commonalities and where the differences are
  • Within a brand/product/service, do you have programs that always tend to utilize the same type of content, flow, etc.
    • You can consider folder-level tokening at this level too but this is also a great opportunity to create shell programs (i.e. program templates) that leverage the above tokens wherever possible to make things even easier
  • Bring in your designers and think about what you can token at the top level across templates - build in tokening for page/email imagery, color, footer boiler plate information - remember, by leveraging tokens built into the template, you can make updates to the token rather than the template.


If I can get a program down to two or three local or overridden tokens, with the rest cascading down from the folders above it, then a) I feel a real sense of accomplishment because I'm a total Marketo geek like that but b) I know that I've just drastically reduced the number of touches a Marketo user has to make to a program to get it out the door - that's a huge win.


I have seen Marketo programs go from taking 60 minutes to clone and edit to literally 10 minutes (including testing!) with use of tokens and shell programs that leverage folder-level tokening. That's a metric any marketing organization can feel good about!


In what other ways are you using tokens and how have tokens helped you optimize your marketing operations?