Skip navigation
All Places > Certification Study Group > Blog
1 2 3 Previous Next

Certification Study Group

66 posts

If you are a Marketo geek, you know how tricky it can become managing fields in Marketo. This post is a consolidation of my experience in Marketo field management in the past and includes tips and tricks to get over these issues.


Before we deep dive into the merging/remapping of the fields, check out this blog to know your Marketo fields:

Knowing your Marketo Fields 


Hiding a Field:

I have seen several Marketo systems over the years and found that people have lots of unused or one-time used fields. These additional unused fields can become a huge problem for you as these will appear every where, for example in smart list filers, when you add fields in the form, data value change action, view etc etc. And this causes a lot of confusion.


Luckily, Marketo has a functionality to hide the fields. Once you hide the field, it will not longer be visible except the Admin->field Management. To hide a field, go to Admin->Field management->Search for the field->select Hide field from the field action.



Pre-requisite: To hide a field, you have to first remove all the dependencies of the field from all the assets. There is no automated way to do it even there is no API, you have to do it manually one by one.


Field Merging:

At times, you will find that you have multiple fields for the same data point and the data is scattered over these fields. There could be several reasons why this could happen including:

  1. You created a field in Marketo first and then added that later in SFDC. Due to the SFDC auto sync, Marketo will create a new field in the database.
  2. You have field on the Lead and Contact object with different APIs names in SFDC. This will also create duplicate fields in Marketo
  3. Sometimes fields were created without using best practices and keeping in mind that we have other field that can be used instead of creating a new one.


Well, with all these reasons, you have two or more fields in DB and since the data is scattered at multiple places, it is not only impacting your data integrity but also preventing you to create accurate segments, reports and personalized content.


If you have similar case, you can ask Marketo support to merge the fields for you. You have to provide following information to the Marketo support team:

  • Names of the fields to be merged.
  • Confirm the two merged fields are of the same field type
  • Confirm all the fields to be merged are not being used in any asset
  • Determine which value will win for each merge


Note: Before you start the merging process, I would suggest to take the backup of the fields you are willing to merge. Just in case anything goes wrong, you can update the data back in Marketo later.

Field Re-mapping:

Sometimes, field merging can be tricky. Suppose, you have a field in Marketo only and this field has been used in hundreds of assets over time. Now you want this field to be available in SFDC as well.


To make this field available in SFDC, you have to create anew field on Lead and/or contact object. As a result of auto sync, this new field will be created in Marketo. Before you ask Marketo support to merge these fields, you have to remove the field from all the assets it is being used.


Removing the fields from the assets and adding them back is looks impossible in such cases. But no worries, there is a solution. You can ask Marketo support to re-map the field with CRM instead of merging. So with this re-mapping your old fields will be in sync with SFDC and the new once will become orphan. You can hide these orphan fields to avoid any confusion in future.


Pro tip: Before you initial the re-mapping, take the backup of the fields and upload the data in SFDC after re-mapping.

Why is it important to update the data in SFDC after re-mapping?

Well, if you do not update the data in SFDC, in the next sync cycle, Marketo will update the data value in the field with a blank value. The reason is that the field is newly created in SFDC and during the conflict resolution, SFDC data wins, whcih is a null value. So to make sure you are not losing any data, you have to update the Marketo data for these fields manually in SFDC (you can do that with the help of data loader to upload a csv file).

Vinay Kumar

MCE Practice Test - I

Posted by Vinay Kumar Dec 3, 2019
  1. Which of the following are valid type of tokens? (Choose all that apply)
    a. Calendar file
    b. Date
    c. Text
    d. Score
  2. If you set up tokens at the folder level, what type of token will you see on any program within that folder?
    a. Local Token
    b. Inherited Token
    c. Overridden Token
    d. Lead Token
  3. In which of the following situations would you use dynamic content instead of a token? (Choose all that apply)
    a. Multiple languages in an email
    b. Adding the person's first name in the email
    c. Using a regional unsubscribe footer
    d. Display different images for each person's industry
    e. Including the person's account manager's contact information
  4. You have a segmentation for Industry with three segments (priority 1: Healthcare, priority 2: Government, priority 3: Education). One person you are emailing does not have an Industry populated. Which content version will they see?
    a. Healthcare
    b. Government
    c. Education
    d. Default
  5. Snippets can be used in which of the following assets? (Choose all that apply)
    a. Forms
    b. Landing Pages
    c. Emails
    d. Images
  6. Which of the following is a good use of a static snippet?
    a. Regional address footer
    b. Business unit-specific unsubscribe information
    c. Privacy policy language
    d. Regional social media links
  7. You wish to track the activity of people who visit your website. Which of the following technical setup steps helps you do this?
    a. DKIM
    b. SPF
    c. Landing page CNAME
    d. Branded tracking links (Email CNAME)
    e. Munchkin code
  8. A company operates in Multiple regions. They have hired 2 different VP of sales for 2 different regions. They both differ on a particular scoring criteria that needs to implemented. What would be the appropriate action to take.
    a. Disregard the opinions of both the VP’s and follow the global method of lead scoring that is currently in place
    b. Give equal weightage to both the VP’s irrespective of their regions
    c. Give weightages to both the VP’s according to their respective region
    d. None of the above
  9. Which of the following is not a good use case for a data management campaign?
    a. Standardizing country values
    b. Prevent duplicates from being created
    c. Blacklisting competitors from getting emails
    d. Stop emailing people who bounce multiple times
  10. Which of the following bounces are categorized as hard bounces? (Choose all that apply)
    a. Full mailbox
    b. Server unavailable
    c. Spam block
    d. Invalid email
  11. Which of the following is not an option that you can choose for a follow up page after someone fills out a form?
    a. Stay on page
    b. External URL
    c. Landing page
    d. Close window
  12. Which of the following is not a way you can populate a hidden field?
    a. Inferred data
    b. URL parameter
    c. Cookie
    d. Referrer parameter
  13. If you intended to ensure that leads always used the same format when entering phone numbers on your form, which functionality would you use?
    a. Input masking
    b. Hint text
    c. Form validation
    d. Tooltip instructions
  14. What information can you edit within your landing page to improve SEO? (Choose all that apply)
    a. Title
    b. Keywords
    c. Description
    d. URL
  15. Which of the following cannot be edited in a form?
    a. Submit button text
    b. Error and validation text
    c. Social button text
    d. Label text

Hello Nation 


my team is preparing to take the MCA soon and I have prepared a set of questions to help them get used to the examination.


I wanted to share the test with everyone in case you want to practice. You can find 50+ multiple questions about the tool, email marketing, and automation


Link to my 54 Marketo Questions 


Feel free to share it and comment with any feedback you might have.

In my previous blog post Program Template, I provided information about how to structure the folders and how a basic program template can be created in Marketo. Taking the same template to advance, in this post I am sharing:

  • How we can include email and landing page template in program template
  • How to use tokens to create the emails and landing pages without going into edit draft


One of the best practices, is to include email and landing page templates in the program template, but to achieve that one has to do proper planning. Step one in the planning will be defining the email templates, how many email templates are there to use, if there are many templates then it is advisable to have limited number of templates so that all the emails are consistent in look and feel, same goes for the landing pages.


Next step is to define the tokens required for these assets, once defined, one has to create these tokens in the instance.

Step three is to decide which token will be created at folder level and which token will be created at program level. If too many tokens are created at folder level then all the programs in the folder will have those tokens as inherited tokens, so a careful planning is required to understand which token will be at folder level and which token will be at program level.


Once the email and landing page templates are defined as per the requirement then the activity of embedding tokens in respective templates will start, to embed tokens in email or landing page template, my blog post Embed Tokens in Landing Page Template can be referred. 


After the process of embedding tokens in the respective templates is completed, these assets can be included in program templates. As shown in the below example, a program template includes the emails, landing pages, seed list, campaigns and progression status folders. As soon as this template is cloned, all the folders along with tokens will be cloned and ready to use.


In the below screen shot, there are 13 inherited tokens, it means all these tokens are created at folder level, which can be multiple folders as per the structure.


The below screen shot shows the tokens created at folder level





For program template folder there are 7 local tokens and 6 inherited tokens, it means 6 tokens are created at the folder where program templates folder resides.


Also, in the above screen shot we can see that the inherited tokens are the generic one, that is email footer, landing page footer, social links etc which will be required in all the emails and landing pages, so as a best practice it is advisable to include only generic tokens at the highest folder in structure and other tokens can be created as per the requirement in respective folders.


Once, the assets are defined and tokens are embedded and the same is included in program template, building and executing a program can be done in minutes, all one has to do is to clone the template and update the token values. for example in the below screen shot, by updating just 13 tokens, two emails and landing page can be created and ready to go



The only aspect remained is to launch and activate respective campaigns.


So by including assets' templates in program templates and embedding tokens in templates, save a lot of time in executing the programs, easy to manage the programs, look and feel remains consistent and it also helps in modifying any asset

CCPA vs GDPR. It’s different but similar.


There are certain principles on which GDPR is based, and those overlap with the intentions of CCPA as well. Still, both are different. You may be in compliance with GDPR, and still require steps to take for being CCPA compliant. Personal information has different definitions in CCPA, versus GDPR. The tactics (and the reasons) of verification, are different for CCPA versus GDPR. For example, Double Opt-In is a strong way to demonstrate GDPR compliance, but we're not sure if the same shall cover CCPA for all scenarios.


To explore and find areas which can speed up CCPA compliance, I had a discussion with my colleague, Saurabh Tyagi to share his perspective and summarize the key items below (though CCPA in itself, is much larger)


Areas CCPA revolves around


There's still time before we see a CCPA requirements checklist, however CCPA primarily revolves around rights to know, delete, opt-out (from selling information) and non-discrimination. We try to list a few steps below which can help to prepare for being CCPA compliant. 


Access to Consumers to know their data 


If you have defined how you collect information, how you use it, share or sell it, you should be good. There are certain time-frames required to be respected for requests regarding right to know and delete.


Besides, the information needs to be granular - e.g. if you say that you collected “Geographical Information” via a Form Fill - the fields you collect must be recorded as well. Although this is obvious, this is explicitly mentioned as of now. This is similar to "Right to Access" in GDPR and can be demonstrated by having procedures to follow up on such requests. For example, having a Form on Website or a Toll Free Number and having follow-up process.


Processing a request to delete data


Consumers need to be able to request you to delete their data from your records. GDPR has a similar requirement, with a process to respond to such requests within a Month.


GDPR Delete Data Right to Erase Forgotten


Though the the CCPA process is similar, the verification of Consumer is a mandatory requirement. In addition, the request to know or delete, needs to be acknowledged within 10 days, and information regarding how it shall process the request needs to be communicated. In this case, we need to make sure to follow up within 45 days.


CCPA Delete Data Verification Tactics

3rd party can provide a security process to verify the identity of the consumer who makes a request to business. However it's subject to more CCPA rules!


Deny, but comply as much as you can - In case the Consumer is not verified, but had made a request to Delete their Data, at least mark them as Marketing Suspended, or Opt-Out from other procedures to demonstrate compliance.


A consumer should be able to opt-out from you selling their information


Place a link on your website saying “Don’t sell my data”.  Develop procedures to follow up on such requests. (This is not applicable if you do not sell* data)


“One method which can help digital-verify the Consumer can be highlighted by the following - if the "Don't Sell My Data" link takes the consumer to a form, a simple email address should be fine, and the consumer can be verified by double opt-in via a single click in the confirmation email. However, it would be even better if we can take the consumer to a new form from the confirmation email, with a stress on the message, that their data shall be deleted - this could be a bit more affirmative online verification of the Consumer” - Saurabh Tyagi


CCPA doesn't yet clearly mentions if this is a suitable case to verify - per the current draft, the verification just needs to be reasonable. This is similar to Marketo asking a second time if we're okay to delete some # of records.


Provide notice to consumers


Before, or at the time you collect their data, similar to the check-box method below the form where you collect data, provide notices. Ensure that language used at such notices is plain, straightforward and avoids technical, or legal jargons! In addition to being straightforward, the notice must draw attention of a consumer.


CCPA Demonstrate Compliance Requirements Right to Know


Maintain record for “how you responded” 


This needs to be maintained for 24 Months - starting with whenever a request is made. One way to achieve this is by alerting a staff member, and then having an internal ticket log system to manage maintenance. This rule requires the business to make someone accountable.


Maintain record for 24 months CCPA


We need to log the way we responded, whenever such requests are made*. These could mean different ways, but a ticket log by an accountable member seems most simple. Or just having a spreadsheet updated based on the type of activities -  E.g. Received Request, Received Request Data, Acknowledged Request, Categorized Request, Processed Request and so on, with details attached.


CCPA Maintain Records for How You Responded for 24 Months


*A business’s maintenance of the information required by this section, where that information is not used for any other purpose, does not taken alone violate the CCPA or these regulations


Twitter took the approach to dedicate a Privacy Center as mentioned in one of the Tweets, hence exemplifying the evolving arena of privacy and more.


It’s so common to hear tech companies say: “Privacy is not a privilege; it is a fundamental right” that those words have become a cliche. People have become desensitized to hearing companies say, “we value your privacy,” and are worn out from being asked to accept privacy policies that they rarely, if ever, even read. Many companies make these declarations without even showing people what actions they are taking to protect their privacy. And let's be honest, we have room for improvement too - Twitter


Have you attempted some of the above work? What are your Anticipations for the regulation being applied for Privacy of world's 5th largest economy? CCPA is much more comprehensive than we can cover in one post, however looking for thoughts and ideas!

A typical lead scoring model usually means either of the following two approaches


  • A list/combination of triggered campaigns
  • A sequence of demographic/firmographic campaigns, and a group of behavior scoring campaigns

Scoring, as one of the prominent tactics of modern marketing, keeps evolving, forever. So does the database size. When leads start to accumulate, the pressure on these sequence campaigns increase. We don’t need to wait long enough to start seeing campaign queues and delays.



Multiple triggers, redundant processing, and more evolving factors, compliment the challenge. Certain steps can help address the limitations of this climate, and we try to list a few below -


Split campaign-sequence dimension-wise

Instead of requesting all campaigns one after another, design the campaign sequence to only react to people, who it requires to react for.


Use Fields (instead of smart lists (and nested smart lists(and very nested smart lists)))



A combination of multiple filters is not incorrect, however when we use too many filters (e.g. 9 filters in the snapshot above) - with addition of heavy nested smart lists and a fairly complicated criteria, the processing takes time.

If we can tag a field with a value, whenever the criteria data points change to make the records qualified, we can reference one field, instead of complicated combinations of filters.


Centralize triggers


A single trigger (say, person is created) may be used in multiple campaigns. We often see that it’s used to trigger scoring in one program, update lifecycle stages in other, and trigger governance in another. This is also one of the reasons of processing issues. The same trigger used multiple times, maybe causing some redundancy.

It's better to centralize these into one entry-campaign.

Simplify smart campaign settings


A lot of behavior scoring campaigns are usually set to run every time. Even "visits webpage" runs every time in many instances today. We could also have this run once every hour, and set a minimum limit for the activity. A thumb rule some of us use is to avoid "run every time" as much as possible.


Consider Segmentation


If there's a criteria you need to apply to a significant count of records in database and would be used very frequently, do not use a smart list for the same. Consider segmentations - these are faster for processing versus smart lists with the same filters. E.g. Marketing Eligible Segmentation, or say, to accommodate privacy compliance, e.g. GDPR, CASL etc


A smart list with the following rule-set is slower to process, versus the same rule-set within a segmentation.



Measurement mechanism ideas


  • Append a field with date-time when processing of a program starts, and another when it ends
  • A while later, an export of records which have gone through the model, would have these two stamps, and we can calculate the average time taken, per XXX records.
  • Post implementing the changes, we can compare the time duration of processing for the same # of records.


The following report let’s you monitor for how your smart campaigns are performing

Campaign Activity Report - Marketo Docs - Product Documentation 


If there are any good approaches you have tried which helped in processing speed, please share! Also, do refer Load Balancing in Marketo and Marketing Automation - Marketing Rockstar Guides  if you have've yet.

Abhishek Chandra

Program Template

Posted by Abhishek Chandra Nov 5, 2019

As we know Marketo programs are very powerful tool to manage the marketing assets and track the campaign performance. To get most out of the Marketo programs, we need to make sure that it should be set up properly along with all the components like Period cost, Channels, Program status etc.


While including all the components in a program is necessary, it is also equally important that we must organize the programs in Marketo instance optimally.


One of the best practices to organize it is to define a program template, which helps how we organize the assets used in program and campaigns and progressions associated with program.


Here is how the program template can be defined and it includes:

• Asset folder – includes all the assets like email, landing pages, lists etc. required in the program

• Campaigns – includes all the campaigns

   o Email campaigns - batch or triggered build in the program

   o Progressions – for each program we include a channel to define the member status, progression folder will include       all the trigger campaigns build to update the member statuses

• Reports – though reports are part of assets but to optimize the program for quicker audit, we kept it as different folder


This is one of the best practice and it helps in managing the consistent structure across the instance and it also helps in saving a lot of time.


Everytime you need to create a program, just clone the template and start customizing. I would like to suggest that based on your requirements create a template for each type of program so that it becomes even more easier to create new programs

Amit Jain

Optimize the Marketo Program

Posted by Amit Jain Oct 22, 2019

***Originally posted on "The Marketing Automation blog". For latest updates, follow this LinkedIn Page


For all day to day marketing activities in #Marketo, you start with creating a program. Marketo programs are very powerful tool to manage your marketing assets and track the campaign performance. To get most out of your Marketo programs you need to make sure you have set it up properly.


Programs represent a single marketing initiative. You can think of it as a container with all the stuff that you need to make the program work – these are called local assets and include landing pages, email, smart campaigns, and more.


Throughout my experience, I have seen ~20 Marketo instances and everyone had something good and bad. Based on my experience, there are a few thing that needs to be setup before even you click on create a new program button. In this blog post, I’m going to reveal some best practices and things you should know:


Program Channel

Whenever you create a new program, you have to select a channel. Channel here represent the way you are going to target your audience/prospects.


A program is one specific marketing initiative. The channel is intended to be the delivery mechanism, like Webinar or Sponsorship or Online Ad.


I have seen many Marketo instances where people had a long list of channels which included duplicate entries like Email, Email Blast, Email Campaign etc. and a number of channels that they don’t even use. I mean seriously!! If you do not have proper channels setup, it will ruin all your marketing efforts. At end of the quarter and year, when you start looking at the marketing performance by channel, you will not be able to analyze it. If you want your life to be easy, make sure you have a clean list of channels available.

Program Status and Progression

Along with channels you have to make sure to have meaningful and unambiguous program status defined for each channel. The best way to define statuses for a channel is to look at the user journey on that channel and what is the expected out come. The different stages of the user experience will be your program statuses and the outcome/ final status can be defined as the success of your program.


Before defining the status, define the customer journey for that particular channel. Once you know how your prospect will transits through your campaign, you will know what stages you wanted to track.


In addition to defining the statuses, you have to assign a weightage to every status. By assigning the weightage, you make sure that any user can’t go backwards the user journey by accident. This weightage in Marketo is called “Step”.


The Step number is used for sorting of program statuses. Keep in mind that people cannot go backwards in these progression steps. They can only change status to a higher or equal value status. Use the equal values when statuses are intended to switch back and forth as opposed to a progression.


Program Tags


The other vital thing to be considered while planning the program setup are the “Tags”. Tags are necessary for reporting purpose. You can assign multiple tags to a program. You can tag a program by country, region, segment, financial year, Marketing team etc.


Tags will help you organize your programs while channels will assist in gathering data for reporting purposes.


Period Cost


Period cost is necessary to calculate the ROI of your marketing campaign. You can define different cost for different time period for the same program in Marketo. This allows you to measure the ROI of your program over time.


A period cost is the amount you spend on a program. It can be for one or more months and is used for reporting ROI.


With program cost defined, you will be able to measure following by program, by channel and/or by custom tag:


Cost per MemberAverage cost per member of the program
Cost per New NameAverage cost per lead acquired by the program
Cost per SuccessAverage cost per lead who achieved success in the progression of a program
Cost per Success (New Names)Average cost per lead acquired by the program AND achieved success in the progression of the program
Program CostTotal period cost of the program


Tip: At the beginning of a Program, enter forecasted costs. Once the period in the Program completes, you can edit the Period Cost and enter in the actual cost. This will provide you with accurate reporting results.


Analytical Behavior


Analytics behavior defines which type of program will be available for the RCA reporting. Your Marketo Admin can define the Analytics behavior on the channel level and if needed you can override the same on program level. There are 3 type of Analytical Behavior:

  1. Default: With the default behavior, the program would be included in Analytics ONLY if there is at least one period cost, even one with zero dollars assigned.
  2. Inclusive: This option will ensure that the program is available for reporting in revenue explorer and analyzers regardless of whether or not you’ve included a period cost.
  3. Operational: This option results in the program not showing up in either revenue explorer or analyzers.


The Program Analyzer buckets Program Success by period cost. If there is no period cost available, Program Success will not be displayed, regardless of the analytics behavior of the program. If the analytics behavior is set up, data will display for opportunity metrics (pipeline opportunities, revenue won, etc.).



Program tokens (My Tokens)


If used effectively, my tokens on Program can be very useful and effective. These tokens help improving efficiency of the team and quick development of the program assets including Emails, Landing Pages, Forms, Smart Campaigns etc.


My Tokens are defined within a program and begin with ‘{{my.’ followed by the name you created for the token.


Marketo allows following type of tokens to be created as {{my. token:

  • Calendar File
  • Date
  • Email Script
  • Number
  • Rich Text
  • Score
  • SFDC Campaign
  • Text


Tip: You can define the my token on the campaign folder level and all the programs will inherit those token automatically. If needed, you can override those token on program level as well by creating a token with the same name and type on the program.

Acquisition Program


Every business would like to understand where they are spending money and how that money is helping acquiring more customers. When working with Marketo Programs, it’s absolutely necessary to associate the new leads with the appropriate program as acquired leads.


Acquisition Program tells you which program actually generated a particular lead. This is very important if you are using RCE or if you rely on the Program Analyzer or Program Performance reports to measure your program success. Based on Acquisition program, Marketo


When a new name enters the system as a program member, Marketo automatically sets that program as “acquisition.” This establishes credit for First-Touch attribution.


The next question you might have in your mind is how to ensure every lead has acquisition program assigned? Well, marketo has an in-build smart list in database named “No Acquisition Program”. Check this list today and see how many records are there.


Tip: If you are seeing a lot of records in “No Acquisition Program” smart list, You have to fix it immediately. Check out my other post on how to fix acquisition program in Marketo?


As mentioned earlier, Marketo programs are very powerful tool and will help you prove how marketing is generating revenue. If you follow the above steps, you will see improved program organization, improved reporting capabilities, improved team’s efficiency, and improved relationship between Sales and Marketing.

Web-forms are being used widely to collect information of potential customers. Everyday people visit tens of websites and have fill out their information to access certain marketing content. Though it is necessary for a business to capture the information of their prospects but it can be a tedious task for your audience to fill their information again and again.


In this blog post, we are going to cover:

  • How to reduce the number of times someone has to fill the form?
  • How to limit the number of fields on the form?
  • How to ensure best user experience during the form submission?

How to reduce the number of times someone has to fill the form?

  • Add form only where it’s absolutely necessary: No one would be happy to provide their information to you until they are confident and there is a trust. First try to engage the visitors on your website with your content and in the next phase of user engagement ask for their information. If you ask their information on their first visit to your website, there are high chances that they will provide invalid/junk information.

    Follow 80%-20% rule. 80% of times, engage user with your content. Provide them information that could be useful for them. And 20% of times, ask for their information and what they are looking for.

  • Hide form from the know users: I receive may emails throughout my day with some CTA. When I click on that CTA, they ask me to fill my information again? Most of the modern marketing automation systems have this functionality to hide form from known visitors. Instead of showing completed form, only show a custom message with a CTA. There will be no impact on the activity tracking. Utilities it.

    How to hide form for Know user in Marketo?

  • Prefill the form: If you still want to show the whole form to your known audience as well, try form prefill. This way, your prospects will be able to see what information you have on them and can correct if needed. This way your prospects do not have to fill their information again.

    How to enable/disable prefill Marketo form?

    Marketo has recently made some changes in form pre-filling but you can use  Sanford Whiteman  technique to prefill the from anywhere.

How to reduce the number of fields on the form?

  • Minimize number of fields on the form: Fewer the fields, lesser the effort required resulting in more conversion rates.
  • Remove the fields that you can infer from other data set: You purpose is to know who is interested in your product or services. If you are asking for the company, avoid asking for the industry/company size/Annual revenue etc. Use data append services to append additional data set based on the company/email address domain provided by the user. You can user services like Discover Org, etc.
  • Use progressive profiling: This a technique that help to capture the additional data points over time. Instead of showing 10-15 at once, you can decide to show only 5 fields for the first time and then how another 5 fields next time the user visit your web-site. There is no sense to keep showing the same fields again and again to the same user.
  • Use conditional visibility for the form fields: You should only show relevant fields and option values the user on the form. For example: If user select United states as country, only show US states in state drop down.

How to enable progressive profiling on Marketo forms?
How to enable Conditional field visibility on Marketo forms?

How to ensure best user experience during the form submission?

If you’re following the above two things, you are already halfway through. To make sure the optimum user experience, we have to take care of a few other additional things:

  • Make sure there is no scripting error
  • Post submission user experience: Make sure your thank you page is embedded properly with the form and have proper messaging. In addition to this, you can offer some more relevant content to the user on the thank you page itself.
  • Mobile first design approach: The mobile device usage is increasing day by day. Your form should be designed with mobile first approach.
  • Use input masking: Input masking is a great way telling user in what format we need a particular information. Input masking really works for phone number field.
  • Use field tool tip: The tool tip will show up when a visitor hovers over the field.
  • Use field set: It allows to group logically relevant fields together. With field set, it’s easier for your leads to understand what it’s about and improve the user experience.
  • Local language: Use local language on the form field. This reflects that you really care for your customers and also reflect their local culture and value.

Yes you heard it right! You can use segmentation for Anonymous lead as well as known leads. I hope you must be interested to know how if you haven't done it yet.


I will start with what is segmentation and how it works. 


Image source: Marketo product doc



Segmentations are special database tools that allow you to identify your database groups for various purposes, including Dynamic Content. Segmentations are pre-set list divisions that run in the background automatically and are much faster than smart lists.

To create segmentation, follow the method/steps below:


Step 1: Go to the Lead Database

Step 2: New > New Segmentation

Step 3: Add Segments

Step 4: Adjust Segment Priority Order - Why this step is important? This is to ensure that the right lead end up in the right segment because there is a possibility for a lead to be in the multiple segments.

Step 5: Press Create.

Step 6: Define Each Segment

Step 7: Approve the Segmentation


Once you have established the rules for each Segment, you can go to Segmentation Actions > Approve to make it available throughout the process.


Approval triggers a process to move through lead into one or the Default Segment or one of the three segments. It may take some time to complete this. Marketo will alert you or you can watch the updates to the green checkmarks with the little icons.


Read more about segments here: Understanding Dynamic Content - Marketo Docs - Product Documentation 


Now your segmentation is created and ready to use. Now, by using the same segmentation we have to create a landing page. Read here how to you use dynamic content in your Marketo landing page - Use Dynamic Content in a Landing Page - Marketo Docs - Product Documentation 


Once this landing page is ready then follow the below process:


For example, we have below details:


Landing page URL:

Segmentation Name: Area-of-interest

Segment in the segmentation: Marketing, Sales, Default


Important Note: I believe you have already updated the content for the above segments in the landing page. If not then please go back to your landing page and add dynamic content.


Now you just need to create a query string URL to call your segments to populate the content for the respective segment.


Syntax will be:


Landing Page URL + ? + Segmentation name + = + Segment name




So, if we will use the above URL then it will populate the content based on marketing and at the same time if we will use the sales segment then sales content will appear on the page. If no condition is met then default content will appear.

I hope you're going to enjoy reading this. Keep reading!


You can read the same blog on my website at as well.


Read the blog here: Use segmentation for Anonymous lead...



Sant Singh Rathaur


Connect me on LinkedIn

When we say what all type of tokens you can create in Marketo?, It means that these tokens are not predefined. In Marketo's language, you can call my tokens.


If you are studying for the Marketo certification exam then you must know about what all type of tokens are available in Marketo that you can create. You might be aware that Marketo has added more type of tokens recently. In this blog, I will try to explain each of them one by one and with their usage...


1. Calendar File - First in the list when you go to my token section under any program or root folder. This is token is widely used for webinar and onsite event to to create .ICS file. Now what this .ICS file does? 


This .ICS file also called as calendar file, It helps the business to share calendar information via landing page or email and once user will download the .ICS file, he/she can save the event information in his/her personal calendar as a gentle reminder.


Important Note: This is the only token type where you can use nested token. You might interact with a question where it is asked that in which token type you can use another token? You now know the answer and see the explanation in the screenshot below:


Read More: 


2. Date - This token can store a date value and date format will be dd/mm/yyyy. For example: (e.g., 12-10-2019).


3. Email script - This token is used to execute velocity script in your emails. 
Read More: 

Example Here: 


4. Image (New) - This token can store image URL only and it has been recently added to the token list.


5. Number - This token can store any integer value. It can be even negative value as well.


6. Rich Text - In this type of token, you can html/css.


7. Score - This token is used to assign/update value of lead score in the change score flow step. Now your question might be, why we are using only score type of token to update lead score? why not any other token?


Important Note: Answer is, this is the only token where you can perform arithmetic operation.


8. SFDC Campaign - Use this token to allow leads that become part of a Marketo Program to also be added to whatever SFDC Campaign is added.

You can use the token in the "Add to SFDC Campaign" flow step. So if you clone Programs, you would only update the tokens and not have to go into the Smart Campaign to change the SFDC Campaign. 


9. Text - It stores only text value. The size limit for Text tokens is 524,288 characters or 2 MB.


Apart form these token types, do you understand the difference between Local, Inherited & Overridden token?


If you have been a science student then you can easily relate it with DNA inheritance in Genomics and you will find it difficult. 


1. Local Token Token which are locally created inside a Marketo program or parent folder are called Local tokens. 


For Example, You have created a program named Marketo-Token-Testing and then you created some token inside this program itself. So for this program, these tokens will be called local tokens.

2. Inherited Tokens - 
Inherited tokens are not created locally, they are inherited from a tree somewhere in a higher-level program or folder.

For Example: In the Program "Marketo-Token-Testing", you have created another program inside called  "Marketo-Inherited-Token-Testing. So all the token you have created in "Marketo-Token-Testing" will be available to use in this program as well and they will be called inherited token because they are not created in this program hence they are inherited from parent program.



3. Overridden Tokens - This token was also inherited from a tree somewhere in a higher-level program or folder and then someone made an exception in this program or folder by making some changes in the token value.


For Example: In the Program "Marketo-Token-Testing", you have created another program inside called  "Marketo-Overridden-Token-Testing. So all the token you have created in "Marketo-Token-Testing" will be available to use in this program as well and they will be called inherited token until you will not update the value of those inherited tokens. So once you will update the value of inherited tokens, mean you have overwritten the value then it's called overridden token.


Read more about the token here: Understanding My Tokens in a Program - Marketo Docs - Product Documentation 



I hope you're going to enjoy reading this. Keep reading!


You can read the same blog on my website at as well.


Read the blog here:  



Sant Singh Rathaur


Connect me on LinkedIn

What do you do when your stakeholder demands a solution and particularly when it is not possible to do so directly? 

I'm sure you want to come up with the answer. So here's one of my answers that could benefit you as well, or it could be your own answer too.


It's easy to personalize Marketo landing pages, but it's a tricky one to do for non-Marketo pages. Our use case was to personalize thank you page with the lead first name when he/she submitted his/her details through Marketo form.


That's how we got it...


Step 1: The following script can be placed either in your Marketo form or on the landing page where the Marketo form is located.


MktoForms2.whenReady(function(form) { 
//Add an onSuccess handler 
form.onSuccess(function(values, followUpUrl) { 
var vals=form.vals();
// Take the lead to a different page on successful submit, ignoring the form's configured followUpUrl 
location.href = followUpUrl+"?fname="+vals.FirstName.replace(/ /g, "-"); 
// Return false to prevent the submission handler continuing with its own processing 
return false; 



Why did we add this script to our form/page? Ok, let me explain that before I come up with another script that has to be placed on the thank you page. So, on submission of Marketo form, this script will pick the value of the first name and add it to the thank you page URL.

Step 2: Now you need to add the next script to the thank you page that will capture first name value from the URL, store it in a variable, and show it on the page.



function getParameterByName(name, url) {

if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace("", " "));

var studentName=getParameterByName("fname");

if (studentName =='NULL') {

$('.Thankyou span').text(function(i, oldText) {
return oldText === 'NAME' ? studentName : oldText;



Step 3: This is the most important step and if you miss a single thing then it's not going to work. I spent almost the whole day fixing this when just one parameter was missing in the third step...


Now when you are placing this thank you page content, don't forget this line of your second script where you have defined a class and added a HTML tag. 


<h1 class="Thankyou"> <span>NAME</span> Thankyou for submitting your enquiry</h1>


You have to define this message in the same structure. You can change the h1 tag and thank you message but can't change the variable added under span tag "NAME" or class "Thankyou" unless you have changed it in the javascript itself.


I hope you're going to enjoy reading this or maybe this will answer your problem. Keep reading and I'd also encourage you to continue sharing your methods and new solutions that may benefit your buddies.


You can read the same blog on my website at as well.


Read the blog here: 



Sant Singh Rathaur


Connect me on LinkedIn

What is the benefit of having various parameters with the Marketo form when you can simply capture the data with visible fields? Are you using hidden fields in your Marketo form? If yes then which one you are using? Do you understand the difference between various parameters?


If you have used or already aware then you can skip this read and if you haven't then no worries, I will provide my understanding for each one of them one by one and will also provide some examples, how you can use them with your business case. Also, if you find any mistake then your feedback is most welcome.


In our business case, we have used all of them to overcome some or other challenges and they are actually helpful with additional attribution which is necessary for reporting at the end of our campaigns. These parameters are really helpful even when something seems impossible.

Let's begin...

1. Use Default Value: By using default value you can hardcode or pre-define the specific value for that field. So, every time when forms will be submitted, this default value will be tagged with the lead. For example: In the below screenshot I have added main area of interest as hidden field in the form and added the default value as Animation.



2. URL Parameter: By using the URL parameter (website/landing page URL with query string) we can capture necessary information from the website/landing pages URL when a person is submitting the form and we can populate that information in the hidden field.



Note: I would always recommend to use this parameter defining default value as well so that at the end of your marketing initiatives, you are able to identify how many people have removed the query string during filling out the form. And by doing this, you are also helping your database to be normalized.


Example: In this URL ( I have used discipline query string with Learning-marketing-automation as value. When someone will submit the form here, in the main area of interest hidden field this value will be captured and if that person will remove the query-string then the default value will be tagged.


3. Referrer Parameter: There is a slight difference between the URL parameter and the referrer parameter. In the referrer parameter, you are still capturing the query string parameter value but not from the current page. You are capturing the value from referrer page (the page which redirected you to the current page).


Note: One of the use cases of referrer parameter is when you are actually promoting your website home page but your visitor might visit some other page (like contact us) and fill out the form there itself. In that case, you will miss the query string value or default value will be added. So if you have used the referrer parameter then it will pick the value from the referrer page.

Example: In the same URL ( after visiting this link, the visitor jumped to contact us page (unfortunately I don't have separate contact us page in my website but they might go to blog page.. ) then query string parameter will go blank. In that case, the method will pick the value from the referrer page.






4. Cookie Value: Capturing the data from cookies parameter is little tricky and you might need to take the assistance from your developer friend if you are not the one.

Do you know as server can store the information about an individual user, the browser, too, can store the information. One way to do this is with the use of 
cookiesCookies are a great way to store data about a user on their machine, which you can fetch to your CRM on a particular event such as form submit, page load, etc. and Marketo form are very intelligent to grab the information from cookie.

Example: In one of our use cases, we were using a two-step form, where in the first step we asked an email address but in the second step we haven't. So we had to pass this email address in the second form so that we don't endup creating invalid lead in Marketo database. To achieve this, we used the cookie parameter:

Script on first page:

jQuery(document).ready(function($) {
$(document).on("click", ".mktoButton" , function() {
var form_email = document.getElementById('Email').value;
document.cookie = "email=" + form_email + ";;path=/"; });

So this piece of code had stored the email address in your machine and next piece of code will help to Marketo parameter to grab the value from cookie parameter.


document.addEventListener('DOMContentLoaded', function() {
var email = getCookie("email");
if (email) { document.getElementById('Email').value = email; }


Hope you will enjoy reading this and I would love to hear your feedback/suggestions/improvements.


You can also read the same blog in my website . Website page linkhere.


Sant Singh Rathaur


Connect me on LinkedIn 

Marketing is all about trying new techniques and implementing new ideas to impress your prospects. There are things you can implement with tool functionality and there are other things you need to find out of the box solution.


This time we required to create an expandable form for our landing page. For example, we have 8 fields in the form but I don't want to show all the fields when the page loads. I want to show only 4 fields and when someone goes to enter his/her details, all the 8 fields will be visible.


This is not the native functionality of Marketo form but Marketo form allows you to add custom API to achieve this. I am sharing here the code and steps to follow to achieve this:


Snippet 1: 



form div:nth-child(5), form div:nth-child(6), form div:nth-child(7), form div:nth-child(8)

 display: none; 





Snippet 2:




Note: nth-child(n) selector is a CSS property that matches every element that is the nth child, regardless of type, of its parent. 


In this case, we wanted to show 4 fields initially that's why we haven't mentioned nth-child(1), nth-child(2), nth-child(3), nth-child(4) and added rest of the fields. We set the property display: none;  for the last 4 fields.


In the snippet 2, we have added show function on Marketo form's click event. So, when someone clicks on the Marketo form all the fields will show up.


Note: Place both snippet one and two in the head section of your page.



Hope this article will help and yes don't meek to send your feedback.



With Best regards,


Sant Singh Rathaur

Connect me on LinkedIn

It's not native option in marketo form setting but yes, you can achieve it by adding a single line css on your marketo form. I wanted to make one of my "text area"  field expandable because here I am giving the option to enter 1000 word statement and this statement will not fit into 2-4 lines. Person will not have visibility on the complete statement at one glance and which creates bad customer experience as per my understanding.


So basically, there is css property called "resize" and by default value of this property is set to Resize: none; which makes the marketo text area non-expandable. If you have to make it expandable again then you would need to overwrite the property to Resize: Auto !important;


Screenshot below:



Note: While adding this css, please make sure you want to add this css for all text area fields or any specific one. If you have to add this css for any specific text area field then you would need to add the css in field ID level. Example below:




Resize: Auto !important;



In this case, only AUS_F_C_Specifics__c text area will become expandable and rest of them will be same with default property. Once you have added the css, text area will look like below image:



I hope this article will help you.



Sant Singh Rathaur