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

Certification Study Group

60 posts
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

I found this blog very helpful when I had task in my hand of moving some assets in seperate workspace and I was really confused how to do this.


Marketo chat support team provided me an URL with nice summary of how cloning and sharing works across workspaces and I thought I can add my understanding as well, which might be a useful guide to others.


What Assets Can I Share Across Workspaces?

You can share these items across workspaces:

  • Email Templates (found in Design Studio)
  • Landing Page Templates (found in Design Studio)
  • Models (found in Lead Database)
  • Smart Campaigns (found in Marketing Activities...but we really recommend not having standalone smart campaigns)
  • Smart Lists (found in Lead Database)
  • Segmentations (found in Lead Database)
  • Snippets (found in Design Studio)


How Do I Share Assets from Design Studio?

  • Determine what you want to be shared (e.g. Landing Page Templates)
  • Right click and select New Folder
  • Name the folder you plan to share
  • Move the assets you want to share to the folder
  • Right-click the folder and select Share Folder
  • Select the workspace(s) you want to share the folder with. Click Save.
    • The dialog displays the workspaces you have permissions to view.
    • The originating folder displays in the Lead Database tree with an arrow indicating that it is shared with other workspaces. From within the shared workspace, the folder displays with a lock to indicate that the contents of the folder have been shared from another workspace and are read-only.


How Do I Clone Assets Across Workspaces in Marketing Activities?

For assets that aren't templates, its best to clone them as local assets inside of a program. With the proper access level, you can drag and drop these assets into another workspace:

  • Programs (found in Marketing Activities)
  • Emails (found in Marketing Activities & Design Studio)
  • Landing Pages (found in Marketing Activities & Design Studio)
  • Forms (found in Marketing Activities & Design Studio)


How Do I Move Assets to a New Workspace?

To move assets to a new workspace, put all the assets you want to move into a folder and drag the folder to the destination workspace.

  • Create a folder
  • Clone the asset to the newly created folder NOTE: Form names must be unique.  Append the asset name with the workspace name e.g. Content Form (UK)
  • Drag the folder to the appropriate workspace
  • Move asset to the correct folder within the target workspace


When you will not be able to move the folder from one workspace to another workspace in marketing activities?


  • When your marketo program has members in it
  • When any asset (Landing page, Email, Form, Smart List, Static List or any other assets) is being used somewhere
  • Assets in design studio (such as form, landing page etc). So move them to marketing activities and then to another workspace

Note: if your assets is already in use then you will not be able to drag and drop this folder. You would need to remove the assets from use and then only you will be able to perform this action. I believe if some of your assets are live then you would need to take precaution, try to complete this action in no-business hours and as quickly as possible. 


I hope this will be helpful.



Sant Singh Rathaur

What Is Segmentation?

Segmentation categorizes your audience into different subgroups based on a defined criterion that you establish in a Smart List. Once you create those subgroups, those are called segments. The best way to think about it is that a segmentation is a permanent smart list with the segments being the different targeted audience you define.


Segmentation plays a big role when you are building the content on multiple languages or seperate content for seperate business or based on any other criteria depending on your business uses.


You might have already used the segmentation for known lead (already member of your marketo database) and if not then you must give it a try by following below process:

  • Create segmentation in your database
  • Add segments and define the criteria
  • Approve the segmentation (It might take some time depending on your database size) 
  • Once it's approved you can use this segmentation in your Email/ Landing page/ Snippets to make the editable section dynamic.

But the real question is how to use segmentation for Anonymous Leads?


So there is only one case where your targeting audience will be anonymous leads and that is, when you will doing lead generation campaigns. So now you need to create dynamic content for anonymous leads and in this case you will be using landing page (with or without snippet).  So basically when you will be setting up your campaigns in the facebook/Google Adwords or any other channel, you will be setting up seperate campaigns for each country or region. Which means, your targeting audience is already set on the basis of country or region or any other criteria.


I will explain the further process though an example of one business case.


For example: we have 6 college campus and I want to build one landing page with dynamic content for all six campus. I don't want to create multiple assets. I used below process to achieve this:


Step 1:

  • I have created a segmentation in marketo database with name such as "SAE-Southern-Campuses-(All)"
  • Then I have created seperate segments for all 6 campuses and added the criteria to filter the data
  • And then I approved the segmentation (Note: You can only use an approved segmentation to create dynamic content, if it's not approved then it will not be visible in the dropdown)

Step 2:

  • Create a landing page in marketo and follow the step by step process as suggested in the image

  • In step 1 > Click on setting and then segment by > then select your segmentation from the dropdown or type your segmentation name > then click on SAVE button 
  • Once you have added the segmentation then update the content for each segment (as shown in step 3, there are 7 segments including the default one where you have to put the generic content)

    Note: Generic content or default content will be displayed to the audience who is not falling into any of 6 segments

  • Once content is updated approve the landing page and copy the URL


Now here is the catch. You have to create the query string url by using following method:

Landing page URL + ? + Segmentation Name = Segment Name



Look into the above image. I have created query string URL with Segmentation Name and used segment name as value and it's perfectly working. As you might see, I have used Adelaide in the query string, landing page content is showing the content for Adelaide only. If I use Brisbane then, it would show up different content.


NOTE:  Although we have created the segmentation and used it to create dynamic content section in our landing page but when we created the query string URL, we sidestepped the rules or criteria of segments and it is working on the basis of query string. But still you would need at least segmentation name and segment name accurately as you have defined in the URLs.

This method might save us from creating so many duplicate assets and we can utilize the same time to improve some other processes.


I hope this article will help you. Just in case, you come across any mistake or have any recommendation, it would  really be helpful to make it more better.


Getting regular feedbacks can be very useful.



Sant Singh Rathaur

Sometimes—especially when you’re just starting out with Marketo—determining which type of email program makes the most sense for which type of campaign can be confusing. Your first instinct may be to simply use an email program to send a one-off email, but is that your smartest option? While it will certainly address your short-term need—getting an email out to your customers—it may not help you reach your longer-term objectives, nor may it be your best bet in terms of scalability, reporting or other important elements.

In this post, I’ll take a closer look at the two main types of customer emails, nurturing emails and emails with varying audiences or varying timing, and will explain how to know which type of Marketo email program type to use.

Nurturing Initiatives

If your email’s intent is to nurture, whether it’s leads or customers, there are two types of programs available to use:

  • Engagement Program
  • Default Program

To help determine which nurturing program you should use, simply answer a few questions.

Using Engagement Programs

Engagement programs offer marketers a lot of benefits—among them, the ability to add leads, add content and go. But it also has a few disadvantages you must be aware of before you choose it for all of your email marketing needs.



Ability to add, pause, and remove leads from the program.

Lack of control over message timing because you set a cadence for the stream.

Simple dashboard that includes an Engagement Score for reporting email metrics.

Once content is exhausted, the next email everyone will receive is the next one added to that stream. This means that exclusion statuses should be used from the beginning if you ever need to add new email templates with the same content.

Engagement Stream Performance Report provides performance analytics of all of the email assets within your engagement program in one centralized place.


Easily see how many members of your engagement stream have exhausted content.



Adding a Default Program to an Engagement Program Stream

If you want even more control and flexibility within your Engagement Program, you can nest a Default Program within it. Why would you want to do this from a customer experience perspective? Good question. By nesting a Default Program in an Engagement Program, you’re setting it up so that people have to meet additional criteria to receive the email–being a member of the Engagement Stream isn’t enough. So if you were promoting a piece of content across channels, you could still add this piece of content to your Engagement Program, but people who received the content in the past would be excluded by using an Exclusion Status.

For example: Imagine you’re promoting a case study that’s accessible on your website. By nesting a Default Program with an Exclusion status campaign for all who have downloaded it in the past to your Engagement Program Stream, you can send the email without the worry of sending the case study to people who’ve already seen it.

Default Program Statuses within an Engagement Program

The additional status campaigns within the Default Program provide additional insight about the email and are helpful not only for reporting but for understanding where the customer is in their experience. For example, Exclusion status ensures that people don’t receive the same message twice (as we just discussed above) or receive specific emails if they’ve reached certain lifecycle stages. Engagement status is equally enlightening, as it alerts us to the fact that our customers are paying close attention; now is likely the optimal time to tailor our messaging, creating messages specifically intended to help them move to the next step in the customer journey.  


What it Does

00. Status – Batch Populate Exclusion

Excludes people from receiving the email by updating their Program Status to Nurturing Email > Exclusion based on criteria.

01. Status – Exclusion

Triggered campaign looking for reasons that a person should be excluded from receiving an email. Updates Program Status to Nurturing Email > Exclusion.

02. Status – Sent

Changes Program Status to Nurturing Email > Sent based on email being delivered.

03. Status – Opened

Changes Program Status to Nurturing Email > Opened based on email being opened.

04. Status – Clicked

Changes Program Status to Nurturing Email > Clicked (Success) based on email being clicked.

05. Status – Engaged

Changes Program Status to Nurturing Email > Engaged (Success) based on an action that is deemed a success within that program such as filling out a form.

06. Status – Unsubscribed

Changes Program Status Nurturing Email > Unsubscribed based on person unsubscribing in an email.


Adding a Default Program with an A/B Test to an Engagement Program Stream

As we all know, A/B testing is a can’t-live-without tool in every marketer’s arsenal—after all, knowing what resonates better with your customer will ultimately help you provide them with a better overall experience. To A/B test an email within an Engagement Program, you can use Champion/Challenger functionality in a Default Program.

Default Program with an A/B test to be added to an Engagement Program Stream

Schedule Engagement Programs with Recipient Time Zone

The old cliche “timing is everything” holds true especially in email marketing. Even the most relevant, beautifully designed email with a highly enticing offer will struggle to convert if it’s sent when the prospect is asleep or when their inbox is being bombarded with other messages. To improve the customer experience, take advantage of scheduling your Engagement Program with your Recipient’s Time Zone. Then you set your cadence settings and check the Recipient Time Zone box.

Do note that you MUST schedule the first cast at least 25 hours in the future (24 hours + some time to get the campaign started) because people may qualify for the cast in every time zone across the globe.

Varying Audiences or Varying Timing

If your individual email initiatives have audiences or timing that will vary, as in situations like creating an event invitation, advertising a new product launch or making an occasional company announcement, the two types of programs you’ll use are:

  • Email Program
  • Default Program

Choosing a Program Type for Email Initiatives

Ask yourself the following questions to help you to decide which program type to use for your email initiatives:


Using Email Programs

Similar to using Engagement Programs, using Email Programs comes with its own set of advantages and disadvantages.



Allows for A/B testing functionality including subject line, whole email, from address and date/time

Unable to send in recipient time zone and A/B test at the same time

Easy to read dashboard with metrics including Engagement Score, opens, clicks, click to open, unsubscribes

Email programs cannot be resent

You can nest an email program within a default program or event program

Email programs can only run one test at a time


Thoughtful Email Programs are a Win-Win

Putting some thought behind the type of email program you should use to send a specific type of email campaign will help ensure your success. By following the flowcharts outlined here, you’ll be able to quickly and easily determine the most appropriate program type for nurturing and other types of emails, and your customers will benefit from receiving emails that show that you value their preferences and needs.

Hi all,


I have a question concerning GoToWebinar and Marketo.


Is it possible to Automate data import (concerning people who watch our webinar) to Marketo ?


I need to automate this import of data (mail, name, society etc...)  But i found nothing who was clearly explaining how can I make that on Marketo.


I know that I can manually import these DATA on marketo, but is it possible to automate this processus ?


If you dont clearly understand my question, I can explain with other words. Sorry about my mistakes, I'm not native english. I hope you understood what I mean.


Thank you very much,



This post does NOT include technical details or lesson on Marketo or CRM. From my personal experience, I am sharing how I improved my Marketo skills over the last 5 years. This post will help marketers who have recently started using Marketo or have a basic understanding and are looking for ways to learn more.


1. Learn from the Marketo Community

The Marketo Community is the best thing ever happened to the Marketing Nation. The community is not just to seek answers when you are stuck. The new discussions help you learn issues which other marketers are facing, and what are the best ways to solve them. You may feel that some discussions are very technical and not related to your marketing processes. But, in future, they may be useful in your current role or a new role. You can easily filter out the discussions which have been solved or unsolved and identify new tactics or tweaks which you can implement in your current marketing process.


Just login to Marketo and start reading Product Discussions, Marketing Discussions and my favorite Marketo Whisperer: Implementation Tips

2. Follow the Champions

Marketo Champions are the smartest Marketo users you will ever meet. No offense to all other exceptionally smart Marketo users who are not a champion yet. We have a separate section in the community, Champions Blog, which has some amazing posts to help you improve Marketo operations. You should also follow them from their profile to get updates in your inbox. I love to follow Josh Hill, Grégoire Michel, and Sanford Whiteman among others.

To get additional feeds, subscribe to the web posts of Josh Hill(, Sanford Whiteman ( and Jeff Shearer (

3. Stay Updated

Did you see the new product announcements at the Marketo Summit this year? There is a lot that is going to change in Marketo this year (better UI, new reporting, improved backend architecture, user experience). I am sure you would receive email notification from Cheryl Chavez with all the details. However, it is always good to know what’s coming in the future.

You should see the following session recordings from the Marketo Summit 2017:

4. Become a Tester

All Marketo campaigns are incorrect unless proven otherwise. I get it. You have done something in Marketo many times in the past and are confident of what you have built. BUT you can not skip testing. Testing is not just ensuring that your campaigns are running properly or your assets are rendering across devices. Testing has to include the impact of your new campaigns on your existing processes in Marketo and CRM.

5. Learn to Document - Prototype - Deploy

I have always loved using a Salesforce sandbox for new projects. Sadly, not every Marketo user has access to Marketo Sandbox. For every new project in Marketo, you should start by documentation (preferably with Lucidcharts). Document what needs to be done, how it will be tested (test cases and dummy data for testing), and the impact it will have on the existing processing. Once your document has been reviewed by different stakeholders, build a prototype in the sandbox and test it. If all looks good, develop the complete program and deploy. If you are testing in production, ensure you handle the data carefully and do not disrupt any active program.


If you feel I missed anything, feel free to add in the comments. Happy Learning

P.S. If you want to learn about Marketo Concepts, you should read this post by Josh Hill.


Reference URL for previous topic: Program Fundamentals!

Here are the next
5 questions from Targeting & Personalization section. This section is completely focussed on correct and incorrect usage of tokens, folder tree structure and how tokens will be inherited, purpose of default value in token, difference between smart list and segmentation, requirement of dynamic contents etc.


As promised here are your 5 questions:


Q. 1.  What is a prerequisite for using dynamic content?
a. Emails are active
b. An approved snippet
c. An approved segmentation
d. Activity log tracking is active


Q. 2. Which three steps should a marketer use to make an unsubscribe page appear in the reader's local language?

a. Update the individual languages and set your default
b. Create a smart list for each preferred language
c. Create a segmentation for language with a segment for each preferred language
d. Create the content block on the landing page as dynamic, selecting the preferred language segmentation
e. Create the content block on the landing page as dynamic, selecting the preferred language smart list for each language

Q. 3. 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



Q. 4. What always precedes the name of a program token?

a. my.

b. lead.
c. company.

d. system.

Q. 5. Which of the following is not a commonly used segmentation?
a. Industry
b. Language
c. Product Interests
d. Region

Submit your answers below in the comment and then we can have further conversation. I will get you the correct answer after receiving your comment.


With best,

Sant Singh Rathaur