Skip navigation
All Places > Marketo Whisperer: Implementation Tips > 2015 > August

Understanding Status and Status Reason

Unlike Salesforce (SFDC), which has only a Status field, Microsoft Dynamics has the concept of Status and an associated field named Status Reason.  Status refers to the state of the record, in other words, on a Contact we can tell if the record is Active or Inactive, and on a Lead we can tell if the record is Open, Qualified, or Disqualified.  Status Reason - primarily on the Lead record - provides additional information about the reason the record is in a given state. For example, on a Lead record that is Open the user can indicate that the lead has been contacted.  In Dynamics, the Status Reason pick list can be edited by anyone with a System Customizer role, making it easy to change existing or add additional values.


Let's review the out-of-the-box Contact and Lead entities and their associated Status and Status Reason values:


A closer look at Status

In Marketo Lead Status is mapped to the Status field in both Dynamics and SFDC, but there are some differences to point out.


Below are examples of Dynamics out-of-the-box mapping for the Status field as compared to the same in field in SFDC:

  • Open = Lead
  • Active = Contact


In SFDC there are multiple Lead Statuses, yet there is no differentiation between the Lead and Contact Lead Status


Dynamics Lead Status Values








SFDC Lead Status Values


Status Field information in Dynamics

In Dynamics, the Status schema name is statecode.  Status shows whether the lead is open, qualified or disqualified.  Qualified and disqualified leads are read-only in Dynamics and can’t be edited unless they are reactivated.

Status Field information in Marketo

The Status field is a string field in Marketo and is mapped to both the Lead and Contact field in Dynamics.


A closer look at Status Reason

In Marketo, Status Reason is mapped to the Status Reason field only in Dynamics; out-of-the-box, SFDC does not have the concept of Status Reason.


Below is an example of Dynamics OOB mapping for the Status Reason:

  • New = Lead
  • Active = Contact


Dynamics Status Reason Values


Status Field information in Dynamics

In Dynamics, the Status Reason schema name is statuscode. Status Reason shows the lead’s status for each statecode (e.g. Open, Qualified, or Disqualified); it is associated information to the Status of the record.


Open Status:


Qualified Status:

Disqualified Status:

Status Reason Field information in Marketo

The Status Reason field is a string field in Marketo and is mapped to both the Lead and Contact field in Dynamics.


There you have it – a quick look at Lead Status related fields in Microsoft Dynamics and SFDC!

For those lucky customers who have Revenue Cycle Analytics (RCA), you may ask, "Where is the Engagement Stream field?" Currently Marketo does not have a field exposed to an Analytics report which can show the number of leads by stream (please don't be confused with the Engagement Stream Performance report which focuses on email performance).


Here's the ask: How can I tell the number of leads in each of streams across all my engagement programs?


There is one key exception in this scenario that may not apply to all customers. That exception is many of our enterprise customers use the same Nurture template across multiple different products. Thus, their streams, cadence, transitions rules, etc are very similar. Therefore a suggested design was for them to change their Channel to be like so:


Now, I know what you may be thinking, "It looks like they are confusing lifecycle reporting with their engagement programs." There is some validity in that but keep in mind most Nurture statuses are not heavily leveraged because they are member and engaged. To add additional statuses is going to give you more granularity in reporting than ever before.


We created smart campaigns which listen for a stream change and update the status accordingly. Here you see the general structure of the idea:

In Marketo, you will need to list each Nurture as a separate trigger since the New Stream constraint will not work across multiple Nurtures:

The key dependency on the flow is referencing the smart campaign(s) which load the leads into the Nurture. Here we update each of the Program Statuses:

And voilà! Now you have visibility to stream membership across all Nurtures in one report. You can also run an even more granular report in RCE (Program Membership).

Again, this may not apply to you or your company; however, the general idea is to show you how statuses can be leveraged in reporting. However, if you have thousands of programs or dozens of Nurtures and looking for one report to rule them all, this may be right up your alley.

I see a lot of scoring models in Marketo that seem to have been set up once, when the system was first implemented, and never revisited. Often times, these are not working as expected. A scoring model, like almost any operational program in Marketo, needs to be reviewed on a semi-regular basis.


In optimizing scoring, ideally you would have two stages of review:

  • Phase I: Review to discover if the scoring model you already have is working as you originally intended and adjust as needed.
  • Phase II: Review to discover if the scoring model designed is actually the best scoring model for your business and adjust as needed.


Since most of us are not yet doing Phase I, I want to start there and share some of the most common issues I see in scoring models. This is my personal list of “don’ts”:

  • Scoring on Email Opens: It’s an unreliable metric and is not always even a sign of engagement, as subject lines or from names may mislead uninterested individuals into opening the email. It can very easily inflate your behavior score unnecessarily.
  • Scoring on Tradeshow Attendance: Individuals attend tradeshows for so many varied reasons that it is not a reliable indication of buying intent in most cases. Instead we should focus on scoring individuals who show some meaningful engagement at the tradeshow.
  • Scoring Every Web Page Visit: This accumulates too quickly and tends to be overweighted when used. It is not always a sign of buying intent because many pages on your website might attract non-sales traffic (support pages, career pages, etc). Instead, you might want to score on specific key web pages or multiple web page visits.
  • Accidentally Double Scoring an Activity: Imagine you are giving out points for clicking a link on a webpage and for visiting a page. If I click a link on your home page to go to a resource page, I get 5 points for clicking the link to the resource page and another 5 points for landing on the page once it loads. This is basically double scoring someone for that same activity. I also see this happen a lot with form fills for event registrations.
  • Not Limiting Frequency: So many people leave the qualification rules on their scoring campaigns set to allow leads to run through every time. This causes scores to accumulate really quickly. Even something like Fills Out Form and Program Status Was Changed triggers can be set to only allow people to run through once an hour, which can help minimize double scoring due to errors like someone spam-clicking on a submit button that’s slow to load or an admin needing to delete and reupload attendee lists into the database.
  • Scoring Every Lead in the Database: Don’t waste database resources and your team’s time by scoring records that will never be prospects for your company. Exclude employees, competitors, partners, existing customers, etc. as appropriate for your business. Consider separate scoring models if you want to track behavior of other audiences.
  • Overweighting Demographic Scores: Marketo is all about reacting based on people’s engagement with your brand. If your scoring model treats demographics as equal to behavior, you may be missing the point. Obviously there are some business models that are exceptions but I think generally demographics work best when they are weighted to be about 1/3 of the total lead score, not 1/2.


Those are the main mistakes that I see. Feel free to add other suggestions in the comments!


This blog is the fourth in a multi-part series on monitoring your email deliverability. The first part on managing bounces can be found here. The second part on unengaged users can be found here. The third part on troubleshooting high bounce rates can be found here.


Next up on troubleshooting deliverability problems: spam blocks.


The first thing you should do is evaluate the seriousness of the problem. Not all spam blocks are of major concern. If the spam block is from a major company, our deliverability team will have already been notified and will be working on the issue. Spamhaus is the one to be most concerned about, as they have the biggest footprint. Spamcop may be an issue for B2B but is not likely a huge concern for high volume B2C senders.


Second, take a look at the automated email that you received from the Marketo deliverability team to understand what information is known about the spam block. In some cases, this tells you the specific email subject line, date, and time of the email that triggered the spam trap.


Next, create a smart list to search for the email addresses that bounced, either from the specific email send (if that was included in the email) or within a certain date of activity. Add constraints to the smart list for each bounce category (as shown in Part III) to show you the results specifically for Category 1 bounces. When viewing the smart list, add a new view for Deliverability that includes the Email, Email Invalid, Email Invalid Cause, Email Suspended, Email Suspended At, and Email Suspended Cause fields. (If you aren’t sure how to create a new view or edit your view, read this.)


Export the list to Excel to investigate the Email Suspended Causes. Remember that the Email Suspended fields are never cleared out, so only look for those with an Email Suspended At date and time within 24 hours of the send in question.


Identify the appropriate tactics to isolate the leads likely to be hitting the spam traps. If you know which email caused the spam trap, this can help you narrow down the list to the most likely offenders. Once you have the right list, make sure you delete or unsubscribe the most likely offenders. You may also want to consider:

  • Removing chronically unresponsive or inactive leads.
  • Removing leads acquired through purchased lists or appended data.
  • Reviewing your opt-in practices and notices.
  • Reviewing your content for potential spam triggers.


Cloning is one of the biggest time savers in Marketo, but I've noticed that a lot of people can get very lazy when they clone. You still need to be careful and thorough when you clone a program to make sure that you updated everything and removed all references to the program template you cloned from.


You may remember all of those studies showing how much better doctors do at routine things when they follow a checklist. I think the same is true for most of us. When we are doing simple tasks over and over, we go into auto-pilot mode and that's when embarrassing mistakes can happen. To make things easier on myself, I put together a simple cloning checklist that I'm going to share with you.


  1. In the Setup tab, update your tags and period costs.
  2. Change the program name to reflect the new program ID.
  3. Update any tokens on the program level.
  4. Update any lists, emails, landing pages, forms, or other assets.
  5. In all of your Smart Campaigns, validate (and if necessary update) references to any assets in the smart lists and flow actions.
  6. Check all Advanced, ALL, or ANY filters to ensure they are still valid.
  7. Confirm that all Change Program Status flows are referring to the new program and not the old one that you cloned from.
  8. Check qualification rules in the Schedule tab.
  9. Unapprove and delete old unused assets.
  10. Update the URLs of your landing pages.
  11. Activate trigger campaigns.
  12. Schedule batch campaigns.


I would also recommend that you develop a 'pre-flight checklist' of things you test and double check before you go live with a program. I like to have separate mini checklists for each type of program - one for landing pages/forms, one for emails, one for nurtures, etc. - but you can also put it in one giant checklist too. If you have a playbook about your Marketo instance setup that you use for new users, this is a great thing to walk them through when they are getting up to speed on how to use the tool also.

A big part of having an Engagement Platform is that you can target leads very precisely and dynamically based on a host of data coming into the platform. Despite this many clients still have not utilized the full potential this targeting can offer. Nurture Programs are a great place to take advantage of this targeting (Nurture is automated communication streams).

We recently designed a Nurture Program for a client that looked like this:

Lead Nurture Summary 2015 05 22

There would be 12 nurture streams based on persona and lifecycle stage - so for example a CIO in the late stage of their buying cycle would get a certain type of communication. There would be 6 industry nurtures - if we know someone's industry, would get industry related communication. And 4 of the planned communication streams were based on product interest (Mobility, data center, management and security and application analytics).

The challenge for the client was how to know the interest for leads in their Engagement Platform. The client was asking interest on forms on their website, but many of the leads in their platform did not have an interest identified because they had not filled out a form:

table image

The client wanted to identify interest based on web pages visited by a lead. The challenge with deriving interest from web pages visited is that someone might visit many pages on their website representing many different interests. In this case how could we say the person had a particular interest?

“Interest Scoring” provides a solution to this challenge.

The general idea with Interest Scoring is to create a scoring model that scores interest for the purpose of identifying the leading interest for a lead (no pun intended). As an example say the company is Apple (completely made-up example). I may visit various web pages but I visit the Apple Watch pages far more than the other pages. If Apple was scoring interest by product interest my Apple Watch score would be very high – higher than the scores for all the other Apple products. So Apple might decide to focus communications with me more on the Apple Watch.

How to setup interest based scoring

Here is the 1-2-3-4-5 on how to create interest scoring:

  1. Select interests
  2. Organize pages by visits
  3. Assign points
  4. Build interest scoring model
  5. Reap the results

Let’s explore each of these steps in a bit of detail.

Select Interests

How you might organize interest usually varies by company. In the Apple example  above interest was organized by product. So in this example interest could be Mac, iPad, Apple Watch, etc. Another example could be a business-to-business Healthcare company that organizes interest by types of customer such as Hospital, Clinic, Individual Doctor. How you categorize interest will vary by client and much thought needs to go into how this should be for your company.

Organize pages by visits

Once you have selected your categories of interest, you will want to organize your web pages into these categories. Back to the Apple example all the Apple Watch web pages would indicate interest in the Apple Watch. If I look at the Apple website all the Apple Watch pages seem to contain the word “watch” so in this example it would be as simple as saying any visit to a web page that contains “watch” means we should score for Apple Watch. By the same token all the iPad page visits would be score for iPad interest. Etc. If the web pages are not named like this you can still collect all the web pages for each interest – page-by-page.

Assign Points

Then you will need to assign points for visiting the various interest pages. You can keep it simple and assign the same point value for all the web pages or you can get more granular if you want.

Build interest scoring model

Finally you will need to build your interest scoring model in your Engagement Platform. Once it is built and activated you will start to see leads in your database scoring up for various interests.

Reap the results

There are many ways to reap the results. Targeting is the use case we have already focused on. But you can use this interest information in many ways:

  • To target your nurture or other communications
  • To help assign to the correct team if you have a sales process
  • To give sales better visibility into interest for a lead
  • To get a better idea of relative interest in your current database and over time to spot trends

Interest changes

The point I want to make here is that interest can change rapidly. So say we follow the Apple example and three months later John visits several Macbook pages, Macbook interest might score up to the top and I would move John from the Apple Watch nurture to the Macbook nurture. You don’t have to do it exactly that way. It is a business decision for each client to decide how to act on this powerful information.

Other activity

This example focused on looking at web activity. I also want to point out that you can look at any activity and expand your interest scoring model accordingly. You can look at email activity, event attendance or anything else you want to add to your interest scoring model.

This blog is the third in a multi-part series on monitoring your email deliverability. The first part on managing bounces can be found here. The second part on unengaged users can be found here.


We’ve covered setting up some campaigns and programs to manage bounced or unengaged users on an ongoing basis. Now I want to cover troubleshooting some common email deliverability problems, starting with high bounce rates.


The first thing you should do is figure out if there’s a problem with just one email or if the problem is more widespread. Pull an email performance report and look at bounce activity over the last 30 or 60 days.

  • If you see a hard bounce rate of about 2%, that’s normal.
  • If you see a hard bounce rate of 5-10% on one particular email, but there’s not a problem across all emails, then you do not need to be overly concerned, but you might want to do a little more investigation on the list for that one email.
  • If you see a hard bounce rate of more than 10% or you see 5-10% hard bounce rates on many emails, then you should certainly do some investigation.


How do you investigate? Build a smart list to look for the email addresses that bounced, with a filter down to either the specific email send or for emails sent within a certain date of activity. When you build your smart list, you can add a constraint to the bounced filter for each specific bounce category so you can identify the number of leads impacted by each. For example:

Use the results from the smart list to populate a table like this:

Bounce Type

Bounce Category

Bounce Category Name

Bounce Count

Bounce Percent






Invalid Email Address











Based on the category of the bounce, this will impact the action you take to resolve it. Here are some of the things to think about:

  • How old is the list?
  • Where were the records acquired from?
  • Have the leads opted-in?


Some of the actions that clients commonly take to address bounced emails include:

  • Reconfirming old leads by sending a communication asking them to opt back in.
  • Using a list validation service to test email addresses.
  • Setting up a welcome communication to new leads that come in from less trusted sources to help clean out the emails.
  • Removing forms from in front of assets that generate a lot of bad email addresses.
  • Adding validation to forms to check email syntax.

If you have other suggestions, please share them in the comments!

08-10-2015 Disclaimer! I've been told by the amazing and responsive product team that this was indeed deemed a flaw and was corrected recently. I will test this and update the blog accordingly.


You know that all of the REST API Errors are listed on the documentation site, right? One of the questions I get a lot is around the REST API's 603 Error, and its often in the context of NEW APIs that are released.


When a new REST API is released, you can't simply change the role and add the new API.. you need to..

  1. Create a new role which includes all of the access you'll need including the new APIs
  2. (Optional) Create a new API Only User - Only if the old API user is in use
  3. Create a new Launchpoint Service
  4. Use the new Client ID and Client Secret


Basically, you're repeating the original steps when you first setup your Launchpoint Service. Note all of your existing REST clients will continue to work fine with existing launchpoint services,  This is only when you want to leverage NEW APIs.


Screen Shot 2015-08-04 at 9.28.30 AM.png

Step 1


Screen Shot 2015-08-04 at 9.30.50 AM.png

Step 2


Screen Shot 2015-08-04 at 9.31.40 AM.png

Step 3


skitch.pngStep 4

Many customers ask how Enterprise consulting recommends that they stay in complicate with the European Privacy Directive. Of course its important to consult your company's legal team before implementing anything, but this blog discusses one possible approach to the problem




Of course from a Marketo perspective, this all centers around the Marketo Munchkin Tracking cookie, which allows us to track anonymous activity of various types, and then link that activity to a Lead in Marketo once they fill out a Marketo Form, allowing a full picture of their actions on your site.


The goals of the initiative were


1. Determine the location of a visitor (and if that location is in the EU)

2. Determine if that user has already opted in or opted out of activity tracking via Munchkin tracking

3. If a user has no preference set, display an overlay informing them of the relevant legalities, and opting them in (note that you should consult your legal team on this one) and also providing a link to the privacy policy where they may opt out of tracking

4. If a user is opted in to tracking, proceed, initializing munchkin as normal

5. If a user is opted out of tracking, do NOT initialize munchkin and delete the Marketo Munchkin Tracking Cookie

6. If a user changes his or her selection to opted out, delete the Marketo Munchkin Tracking Cookie


We recommend thinking through not only the happy path for a user that accepts tracking, but every possible path to ensure that no tracking occurs without a user's consent.


For determining the location of the visitor, we've used the MaxMind Javascript reverse IP lookup product, and could maintain a list of what countries are in the EU (you never know when the list will change). MaxMind easily determines location at a country level (and much more precisely if needed) and lets you process based on the user's location. Its important to keep in mind that it's the user's current location that counts,  so its a good idea to keep checking it. Laws are much more lax on tracking in the US than they are in Germany, and you don't want to inadvertently violate the directive simply because someone who was originally in the US is visiting Germany.


We'd recommend tracking not one but two items using cookies (with NON PII so as not to cause further privacy problems). These cookies track "EU or NON EU" and then "Marketo Preference", which tracks the user's opt out preference.



- Are you concerned with the whole site... or just the Marketo Landing Pages?

- Are you going to implicitly track people if they do nothing? What re the legalities around this for your locale?



- Make a flow chart! Fully understand your happy and all exception flows before you start

- Modularize your code. Where possible write code you can put into marketo landing pages AND standard pages. This will insulate you from changes too.

- Test Test Test! By maintaining a list of EU countries in an array (or whatever you like) you can easily add "United States" to the list temporarily to see what users in the EU will see

Screen Shot 2015-07-31 at 4.29.04 PM.png


Further Reading

- Stay In Compliance! What Marketers need to know about ePrivacy Laws

- US Marketers Should Not Ignore EU Privacy Laws—Even If They Don’t Market in the EU