Knowledgebase

Sort by:
Traditional Bounce Codes When you add the Email Invalid Cause to display as a Column to any of your Deliverability Smartlists, you will see a code value, and potentially a suffix as well, to help you understand the reason for the Bounce.   Codes in the 400 range are generally Soft Bounces Codes in the 500 range are generally Hard Bounces Mail server administrators can create custom messages that accompany bounce codes Code Explanation 250 Mail accepted by receiving network 421 <domain> Service not available, closing transmission channel 450 Requested mail action not taken: mailbox unavailable (e.g., mailbox busy) 451 Requested action aborted: error in processing 452 Requested action not taken: insufficient system storage 500 The server could not recognize the command due to a syntax error. 501 A syntax error was encountered in command arguments. 502 This command is not implemented. 503 The server has encountered a bad sequence of commands. 504 A command parameter is not implemented. 550 User’s mailbox was unavailable (such as not found) 551 The recipient is not local to the server. 552 The action was aborted due to exceeded storage allocation. 553 The command was aborted because the mailbox name is invalid. 554 The transaction failed for some unstated reason.     Enhanced Bounce Codes If a suffix appears after one of the codes above, it is an enhanced Bounce code Mail server administrators can crate custom messages that accompany bounce codes   Code Explanation 5.0.0 Address does not exist 5.1.0 Other address status 5.1.1 Bad destination mailbox address 5.1.2 Bad destination system address 5.1.3 Bad destination mailbox address syntax 5.1.4 Destination mailbox address ambiguous 5.1.5 Destination mailbox address valid 5.1.6 Mailbox has moved 5.1.7 Bad sender’s mailbox address syntax 5.1.8 Bad sender’s system address 5.2.0 Other or undefined mailbox status 5.2.1 Mailbox disabled, not accepting messages 5.2.2 Mailbox full 5.2.3 Message length exceeds administrative limit. 5.2.4 Mailing list expansion problem 5.3.0 Other or undefined mail system status 5.3.1 Mail system full 5.3.2 System not accepting network messages 5.3.3 System not capable of selected features 5.3.4 Message too big for system 5.4.0 Other or undefined network or routing status 5.4.1 No answer from host 5.4.2 Bad connection 5.4.3 Routing server failure 5.4.4 Unable to route 5.4.5 Network congestion 5.4.6 Routing loop detected 5.4.7 Delivery time expired 5.5.0 Other or undefined protocol status 5.5.1 Invalid command 5.5.2 Syntax error 5.5.3 Too many recipients 5.5.4 Invalid command arguments 5.5.5 Wrong protocol version 5.6.0 Other or undefined media error 5.6.1 Media not supported 5.6.2 Conversion required and prohibited 5.6.3 Conversion required but not supported 5.6.4 Conversion with loss performed 5.6.5 Conversion failed 5.7.0 Other or undefined security status 5.7.1 Delivery not authorized, message refused 5.7.2 Mailing list expansion prohibited 5.7.3 Security conversion required but not possible 5.7.4 Security features not supported 5.7.5 Cryptographic failure 5.7.6 Cryptographic algorithm not supported 5.7.7 Message integrity failure   Not all mail servers adhere to these standards.
View full article
Marketo calls to the Salesforce API During a single sync session, Marketo makes 25 API calls to check if your Salesforce objects need updating.  Because your Salesforce sync happens in 5 minute intervals (default setting), each day Marketo makes 7200 API calls to your account to see if any updates are needed. If there are updates, more API calls are used to sync the information.  Leads, Contacts, Accounts, Opportunities, Campaigns, and Activities are synced in batches of 200 per API call. If you use a Sync Lead to SFDC or Add to Campaign flow step in trigger campaigns, each one uses at least one API call per lead; the API call happens when the lead hits that flow step (instead of waiting for the next sync). Batch campaigns can send up to 200 leads to Salesforce with 1 API call for these flow steps. Any activities you've synced from Marketo to Salesforce (like "Filled Out Form" or "Opened Email") use an extra API call per event. You can use these to estimate the number of API calls Marketo makes per day.  For example, if you have 1,000 Lead and Contact updates a day and 100 Account, Opportunity, and Campaign updates, you'll use: 7200 (check for updates) + (1000 Lead updates / 200 per API call) + (1000 Contact updates / 200 per API call) + (100 Account updates / 200 per API call) + (100 Opportunity updates / 200 per API call) + (100 Campaign updates / 200 per API call) + 7200 + 5 + 5 + 1 + 1 + 1 = 7213 API calls When you first sync your Salesforce account to Marketo, you'll use significantly more API calls until Marketo is up to date with your Salesforce instance.  After that, you can expect the API calls to be much lower unless you make large updates to your leads (in Marketo or Salesforce) API Calls and your Salesforce edition Salesforce determines your API call limit based on the edition and licenses you have. This document from Salesforce has information on how they calculate that limit. For many Salesforce users, particularly Enterprise Edition users, the number of API calls made by Marketo is usually not a problem. If you're using a more limited edition of Salesforce or don't have many Salesforce licenses, you may hit the daily limit on your API calls.  In that case, please contact Marketo Support and ask us to decrease your sync interval.  At a 30 minute sync interval, Marketo uses around 1000 API calls per day, well under the limit for nearly every Salesforce edition. To see your API limit (per 24 hour period) and your current usage (for past 24 hours) in SFDC,  navigate to: Setup -> Administration Setup -> Company Profile -> Company Information Look for the field called "API Requests, Last 24 Hours", which will display API usage for the past 24-hour period as well as your current 24-hour limit (in parenthesis). Order of Events during SFDC Sync Marketo will sync your SFDC and Marketo objects in the following order: Lead: synch schema Account: synch schema Contact: synch schema User: synch schema Task: synch schema Opportunity: synch schema Opportunity Contact Role: synch schema Campaign: synch schema Campaign Member: synch schema Campaign Member Status: synch schema Lead: pull conversions Account: pull deletes Account: pull updates User: pull updates Lead Queue: pull updates Lead Status: pull updates Account Type: pull updates Lead: pull deletes Contact: pull deletes Lead: pull updates Contact: pull updates Lead: push updates Contact: push updates Campaign: pull deletes Campaign Member: pull deletes Campaign Member Status: pull deletes Campaign: pull updates Campaign Member: pull updates Campaign Member Status: pull updates Opportunity: pull deletes Opportunity Contact Role: pull deletes Opportunity: pull updates Opportunity Contact Role: pull updates Event: pull updates Task: pull updates Email Template: push new Email Template: push updates Task: push new Task: push updates
View full article
Want to gauge how many leads clicked through a link you have in your social media or other outlets? This can be done using URL Parameters at the end of the URLs you use. Basically, you just add a little bit of code to the end of the hyperlinked URL. When leads click through and arrive at your Landing Page, that code can be captured into a hidden Form field. Here’s how to do it.   Quick Overview of URL Parameters In the structure of a URL, there are two main parts. The first part is used for navigation, and the second part is used to pass data along. The two parts are separated by a question mark. For example, let’s look at this URL:   www.myawesomewebsite.com?URLParameter=ThisIsAParameter   The first part of the URL, “www.myawesomewebsite.com” is the main part of the URL used for navigation. The whole rest of the URL from the question mark on, “?URLParameter=ThisIsAParameter” is referred to as a querystring. It isn’t needed for navigation to the page specified, but can be used to pass the extra data you want to include.     The querystring contains the URL Parameters, which are used to push data into the hidden Form fields. In the querystring “?URLParameter=ThisIsAParameter” used here, “URLParameter” corresponds to the name of the parameter you use when designating the value for the hidden Form field, and “ThisIsAParameter” will be the value that is actually entered into that field. You can add additional values into additional other fields by adding those into the format of the URL separated by an ampersand like this:   www.myawesomewebsite.com?URLParameter=ThisIsAParameter&URLParameter2=ThisIsValue2&URLParameter3=ThisIsValue3   In this example, you’ve got the same initial value being pushed into the first hidden field, but now two more hidden fields will store the next two values as well. The name of the parameter for the second hidden field would be “URLParameter2” and the value put into it would be “ThisIsValue2”. The third hidden field parameter name would be “URLParameter3” and the value put into this field would be “ThisIsValue3”.   Applying This to Social Media Use So, how does this let you track leads coming from each of your social media sources? Well, in setting up your different promotional channels, when adding the hyperlink, you can customize the URL parameter for each channel so that the values passed will input the information specific to where they came from. The parameter values will change from one social media outlet to the next, but the structure and format will stay the same.   Let’s use the social media sources of Twitter, LinkedIn and Facebook as examples. Since you’re looking to identify the source of these leads, you’d likely want to name your parameter as “Source” so that it’s easily identifiable. Using the same base URL, let’s see how you’d structure the URLs. For hyperlinks placed on Twitter: www.myawesomewebsite.com?Source=twitter For hyperlinks placed on LinkedIn: www.myawesomewebsite.com?Source=linkedin For hyperlinks placed on Facebook: www.myawesomewebsite.com?Source=facebook   When leads fill out the form on your landing page, the Source field will then tell you exactly where they came from! The best part, this is completely customizable and scalable. You can add more parameters and hidden fields to capture additional information like what campaign it is for.   Documentation How to make form fields hidden: https://docs.marketo.com/display/public/DOCS/Set+a+Form+Field+as+Hidden How to define hidden form field value: https://docs.marketo.com/display/public/DOCS/Set+a+Hidden+Form+Field+Value (Look for the section on URL Parameters in particular) Using the URL builder to generate the URLs you’ll be using: https://docs.marketo.com/display/public/DOCS/Using+the+URL+Builder    
View full article
With the evolving best practices and awareness around data privacy, Marketo will be upgrading how we handle form pre-fill. What change is being made? Starting April 24, 2019, Marketo will only pre-fill form fields if the URL used to navigate to the Marketo landing page contains a valid mkt_tok URL parameter value (which occurs when users click tracked links in Marketo emails). What that means is, any time a person is viewing a Marketo landing page with a form, the URL being used must contain the mkt_tok token in the query string, otherwise the form on that landing page will not be pre-filled. If the URL in the browser window does have a valid mkt_tok tracking token, then the form within the page will pre-fill as expected with data corresponding to the person record associated with that mkt_tok. Also note that if you are embedding Marketo Landing Pages within other web pages using an <iframe>, the mkt_tok would need to be passed from the parent page to the <iframe> URL if you intend for form prefill to work within the <iframe> ​How did it work before? Previously, Marketo landing pages would rely on Munchkin tracking cookies to identify known person records, and forms would pre-fill based on that cookie. Form pre-fill did not require being linked to a Marketo landing page from a tracked email link. Why is this changing? This upgrade is being made to provide a more consistent and more secure experience with Marketo’s forms. We have identified that, in the past, people have experienced scenarios where data pre-filled into a form didn’t always correspond with the actual person viewing the page. For example, people using a shared computer or those who may have been cookied incorrectly by clicking through a forwarded email, could end up viewing incorrect data associated with a different person. To provide a more consistent customer experience, and as a security enhancement, Marketo is upgrading the conditions under which the form pre-fill will display known customer information. In short, pre-fill will only work when users clickthrough links in Marketo emails, demonstrating that they have ownership of the email address associated with the known person record. Below is a list of different scenarios and how form pre-fill will work moving forward. Please note, these changes to form pre-fill will not affect any other functionality of Marketo Forms, including the progressive profiling feature. Scenario Will the form pre-fill? Notes Clicking a tracked link in a Marketo email to a Marketo landing page with a form which has pre-fill enabled Yes The email link must have mkt_tok enabled. Links that are not tracked or that have mkt_tok disabled will not work. Navigating directly to a Marketo landing page with a form which has pre-fill enabled No A direct link to the landing page will not have the mkt_tok present in the HTTP request. Refreshing a Marketo landing page with a form which has pre-fill enabled No The mkt_tok is stripped from the URL after Marketo Landing Pages load so refreshing the page will not include the mkt_tok in the URL. As a result, pre-fill will not work. Clicking a link in a sample email to a Marketo landing page with a form which has pre-fill enabled No The sample email will not have a valid mkt_tok attached to the link and so will not pre-fill the form. If you wish to test form pre-fill you will need to use a real email from a Marketo campaign. Navigating to a non-Marketo page that includes an embedded Marketo form which has pre-fill enabled No This behavior does not change with the upgrade. Pre-fill has never been supported for Marketo forms that are embedded on non-Marketo pages. Navigating to a non-Marketo page that includes an <iframe> pointing to a Marketo Landing Page that includes a form with pre-fill enabled With custom implementation The form within the Marketo Landing Page that is being loaded in the <iframe> will pre-fill if the mkt_tok value from the original HTTP request is passed along to the <iframe> URL Visiting a Marketo page with a mkt_tok that is not associated with the same person record as an existing Marketo Munchkin cookie currently stored on the browser No This will prevent the wrong person’s information from being displayed in cases where a computer is shared, or an email with a mkt_tok tracked link is forwarded to another person that may already be cookied as a known person in your database. Copying a Marketo tracked link from an email and sharing/pasting it externally (email, blog, chat, social media post, etc.) that enables another individual to click the tracked link Yes The tracked link in a Marketo email will redirect to a URL with the mkt_tok included, so anyone clicking this link will reach a page and see pre-fill data associated with the known person record from the “to” line of the email.
View full article
Marketo campaign queues work like a mall parking lot.  We accommodate average and even above average loads.  But if it's Christmas, you may have to wait a while for a spot.   The campaign execution queue When a flow is launched, Marketo assigns it a priority then queues it for execution.  This priority is based on how the campaign was launched (batch, trigger, resume from Wait) and what's in the flow: Priority level Priority criteria High Send email (triggered) Send alert Medium Request Campaign Interesting Moment Create Task Convert / Delete Lead Add to / Remove from List Change Sales Owner / Progression Status / Revenue Stage / Field in Program Change Member of / Add to / Remove from Sync to SFDC Change Status in SFDC Campaign Low Change data value Change score Wait steps with a wait time > 5 minutes Web hooks Marketo then executes campaigns based on priorities.  High priority campaigns run first in the order they were added to the queue.  Once those are finished, the next highest priority campaigns are executed in time order and so on down until all have completed.  If the queue contains only low priority campaigns and a new high priority campaign comes in, the high priority campaign will jump to the head of the line and run next. Batch campaigns and trigger campaigns are run and processed in separate queues.   "Why is my campaign running slow?" Several factors determine how fast and when your campaign will run.  In general, campaign execution time depends on: The campaign's priority The complexity of the smart list filters being used - See Best Practices for Smart Lists The number of records that qualify for the campaign The number of flow steps used in the campaign The c omplexity of Choices in the flow steps   Even though Marketo can execute many campaigns simultaneously, there are only so many resources available to process smart campaigns.  Also, certain campaign flow steps take longer to process, than others.  The flow steps below take longer than most, and you may notice that difference when executing your campaigns: Send Email Delete Lead Sync Lead to Sales Add Lead to SFDC Campaign Call Webhook   Speeding up your campaigns Here are some tips to speed up how and when your campaigns are executed: Do essential flow steps first If this is an auto-response or notification campaign, put the Send Email or Send Alert flow step first.  Absolutely do this if you're using two slow steps in a row (Send Email followed by Sync Lead to Sales) so that the email goes out with the highest priority. Don't start with a "Wait" step If you need to delay the launch of your batch campaign, use the batch campaign scheduler.  Re-think any triggered campaigns that start with a "Wait" step because it will be prioritized lower; you probably don't need to include it anyway. If you have a wait step of longer then 5 minutes this will cause all flows below it have a low priority.
View full article
  Full Details of all Marketo Support Offerings:   Support Levels Offered   Service Level Response Targets   Global Contact   https://support.marketo.com :             Online Support Portal for Case management and Knowledgebase search support@marketo.com :                     Email to Case Submission supportescalations@marketo.com :   Contact Support management regarding Support services marketocares@marketo.com :            Questions regarding Support or Community access   Regional Contact Information Americas: Hours: M-F, 6am to 6pm Pacific Toll Free US: +1 877 270 6586 Direct: +1 650 376 2303   Languages Supported: English, Spanish Observed Holidays: New Year's Day Independence Day Thanksgiving Day and the Day After Christmas Day New Year's Eve Europe, Middle East, & Africa: Hours: M-F, 8am to 5pm GMT Europe: +353 (0)1 511 9556 UK: 0800 151 3030   Languages Supported: English, French, German, Portuguese Observed Holidays: New Year's Day Easter Monday Christmas Day St. Stephen's Day Australia Hours: M-F, 9am to 6pm AET ANZ: +61 2 8031 8188   Languages Supported: English Observed Holidays: New Year's Day                            ANZAC Day Christmas Day                             Good Friday Easter Monday                             Boxing Day Japan: Hours: M-F, 9am to 6pm JST JP: +81.03.4233.9014   Languages Supported: Japanese Observed Holidays: New Year's Holiday                      Marine Day Coming of Age Day                      Respect for Senior Citizens Day National Founding Day                National Holiday Spring Equinox Day                     Autumnal Equinox Day Day of Showa                              Sports Day Constitution Memorial Day          Culture Day Green Day                                   Labor Thanksgiving Day Children's Day                             Emperor's Birthday Substitute Public Holiday             Year End After-hours Support for Production Down Issues: Online: Enter a Support Portal Case with Priority=P1 Phone: Call Support Line and follow the P1 prompts   Initial Response SLT We ask that you use the following priority definitions when setting your case priority: Priority Description P1 Critical Business Impact:  ​ Customer's production business functions are down  or have significant data loss or service degradation  and immediate attention is required to restore  functionality and usability. P2 Major Business Impact : ​ Customer's business functions  have major service degradation or potential data  loss, or a major feature is impacted. P3 Minimal Business Impact :  ​ Customer's business functions  have minor service degradation but  there exists a solution/workaround allowing  business functions to continue normally.   P4 No business impact : ​ General question regarding current product  functionality or an enhancement request.
View full article
Setting an email to "operational" does the following No unsubscribe link automatically added Email will be sent to leads set to Unsubscribed Email will be sent to leads set to Marketing Suspended   Note - when sending an operational message, Unsubscribed and Marketing Suspended leads will still be included in the "blocked from email" count on the schedule tab of the campaign.   When is it OK to use the operational setting?   Sending marketing email to unsubscribed addresses is illegal. For this reason, you should be extremely careful to only use this setting in extremely limited circumstances. Using this setting incorrectly violates Marketo's Terms of Service, and most antispam laws. There may be legal consequences for using this setting incorrectly. Good uses of the operational setting fall into two categories: Transactional messages Relationship messages   What's a transactional message? A transactional message is part of a transaction that a lead has initiated and you are responding to. Here's some examples of transactional messages: Receipts for purchases Registration confirmations Download links in response to form fill-outs Requested assets (whitepapers, spec sheets, etc.)   What's a relationship message? A relationship message describes something that affects your business relationship with the lead. Here's some examples of relationship messages: Downtime notifications Changes to terms of service Recall notices End of service notifications   Operational messages should not contain any marketing content at all. In other words, do not use the operational setting to send a message that contains a receipt and a promotion, only a receipt.
View full article
Please ensure that you have access to an experienced JavaScript developer. Marketo Technical Support is not set up to assist with troubleshooting JavaScript. Here's our recommendation for how you can collect keyword, search engine, and PPC info in Marketo.  It takes a bit of work, and you'll definitely need to know your Javascript. 1. Create custom fields You'll need to create some new fields to store the additional data. If you want these fields to be visible in Salesforce, create them on both Lead and Contact records. All of these should be of type String: Search String -- to store the query that drove the lead to your web page Search Engine -- the search engine or URL which provided the lead your web page Pay Per Click Keyword -- if the link was a PPC (ex. AdWords), the PPC keyword for that link 2. Add the fields to your forms Go to the Design Studio and edit any forms where you want to capture this information.  Add the fields you created as hidden fields set to a default value (as opposed to set from a cookie or URL parameter). You'll probably want to leave the default value as blank -- that is, the lead did not come from a PPC -- but feel free to put in another value if appropriate (Making a Field Hidden on a Form) This solution will not update the Lead Source for leads who come to your site via PPC.  If you want the lead source updated for PPC leads, you'll need to do that via a Smart Campaign or by adding it as a hidden field to your forms. 3. Put Javascript on your landing pages You MUST edit the Javascript below or it will not work!The code below sets cookies with the search engine, search term, and PPC info as long as it came from a domain outside your website. The script then populates the form fields using the cookie values. The reason for using cookies is because your leads may not fill out your form when they first hit your landing page; they may click your AdWords ad, browse around, and then go to your form.  Cookies retain those values for when they're needed -- when the leads complete your form.Using cookies also lets you capture this info on non-Marketo pages too.  See step 4 if you're interested in that.If you want this on a single landing page, add it as a Custom HTML block.  If you want this on several or all your landing pages, add it to your Landing Page Template.You'll need to change the following variables/strings, highlighted in the Javascript below: Variable Description excludedReferrers All domains where you don't want to check referrers as in "company.com" -- typically these are your own website domains. If you need to exclude multiple domains, separate them with commas. cookieDomain The base domain of your landing pages without any subdomians (like "www." or "pages.").  This will be used to store cookie values.  If your landing pages are on "pages.yourcompany.com" then this should be "yourcompany.com". payPerClickParameter The URL Parameter with the keyword depending on how you set up your your pay per click URLs. Typically "keyword" or "kw". searchStringField searchEngineField payPerClickKeywordField IDs of the hidden form fields where the cookie values should be inserted. Find them by following the instructions in this article: Setting or Getting a Form Field Value via Javascript on a Landing Page <script src="/js/public/jquery-latest.min.js" type="text/javascript"></script> <script src="/js/public/jquery.cookie.js" type="text/javascript"></script> <script src="/js/public/jQueryString-2.0.2-Min.js" type="text/javascript"></script><script type="text/javascript"> var $jQ = jQuery.noConflict();$jQ(document).ready(function(){   //    //--- CHANGE THESE!!! ---    //    // Change this to match domains of referrers you want to ignore.     // You'll want to ignore referrers from your own domains.     // Use only the base domain name without subdomains (ex. "company.com")     // Separate multiple domains with commas (leave the brackets).   var excludedReferrers = [ "yourcompany.com", "yourcompany2.com" ];    // Change this to match the base domain of your company's landing pages.     // Cookies will be created with this domain.     // Ex. If your landing page domain is "pages.yourcompany.com" then use     //     "yourcompany.com"   var cookieDomain = "yourcompany.com";    // The URL parameter that has your pay-per-click info.     // Typically "kw" or "keyword" (depends on how you set up your PPC URLs)   var payPerClickParameter = "keyword";    // IDs for the fields to be updated.   var searchStringField = "#Search_String__c";   var searchEngineField = "#Search_Engine__c";   var payPerClickKeywordField = "#Pay_Per_Click_Keyword__c";   //    //-- you probably shouldn't change anything after this --    //  var refer = document.referrer;   var searchString;   var searchEngine;      // if there's no referrer, do nothing   if ( (refer == undefined) || (refer == "") ) { ; }   else {      // get the domain of the referring website -- http://[[this-thing.com]]/     var referrerDomain =       refer.substr(refer.indexOf("\/\/") + 2,         refer.indexOf("\/",8) - refer.indexOf("\/\/") - 2).toLowerCase();    var excludedDomainFound = false;     var i = 0;      // search the excluded domain list to see if the referrer domain is on it     while ( (i < excludedReferrers.length) && !excludedDomainFound) {       var thisExcludedDomain = excludedReferrers[i].toLowerCase();        // weird semantics here -- indexOf returns "-1" if the search string isnt found.         // thus excludedDomainFound is true only when indexOf matches an excluded domain (!= -1)       excludedDomainFound = (referrerDomain.indexOf(thisExcludedDomain) != -1);       i++;     }     // only if the referrer isn't in our excluded domain list...     if( !excludedDomainFound ) {         // extract the URL parameters from common search engines         // To add your own, each engine needs:         //  name: how the search engine will appear on your Marketo leads         //  url: REGEX for matching the engine's referrer.  ex.  /\.google\./i         //  query: URL parameter that contains the search query - usually "p" or "q"      var searchEngines = [        { name: "Yahoo", url: /\.yahoo\.co/i, query: "p" },        { name: "Google", url: /\.google\./i, query: "q" },        { name: "Microsoft Live", url: /\.live\.com/i, query: "q" },        { name: "MSN Search", url: /search\.msn\./i, query: "q" },        { name: "AOL", url: /\.aol\./i, query: "query" },        { name: "Bing", url: /\.bing\.com/i, query: "q" },        { name: "Ask", url: /\.ask\.com/i, query: "q" }       ];        // find the referring search engine (if any)       i = 0;       while (i < searchEngines.length) {         if (refer.match(searchEngines[i].url)) {           searchEngine = searchEngines[i].name;           searchString = $jQ.getQueryString({ ID: searchEngines[i].query,             URL: refer, DefaultValue: "" });           break;         }         i++;       }          // If no search engine is found, this person probably used a less          // popular one.  Use the referring doman, then guess the query parameter       if (i == searchEngines.length) {         searchEngine = referrerDomain;         var queries = ["q","p","query"];          var i = 0;          while ((i < queries.length) && (searchString == undefined)) {            searchString = $jQ.getQueryString({ ID: queries[i], URL: refer });            i++;          }           // no search strings found -- use this text instead.          if (searchString == undefined) {            searchString = "None";          }       }         // Use the provided URL parameter to get the PPC keyword.       var payPerClickWord = $jQ.getQueryString({ID: payPerClickParameter,         URL: refer, DefaultValue: "" });         // Put the info into cookies.  These values will be extracted          // and put into a Marketo form later.  Expires in 2 years.       $jQ.cookie('mktoPPCKeyword', payPerClickWord,          {expires: 730, path: '\/', domain: cookieDomain});       $jQ.cookie('mktoSearchEngine', searchEngine,          {expires: 730, path: '\/', domain: cookieDomain});       $jQ.cookie('mktoSearchString', searchString,          {expires: 730, path: '\/', domain: cookieDomain});     }   }     // Get the values from the cookies and put them into the hidden fields   $jQ(searchStringField).attr("value",$jQ.cookie('mktoSearchString'));   $jQ(searchEngineField).attr("value",$jQ.cookie('mktoSearchEngine'));   $jQ(payPerClickKeywordField).attr("value",$jQ.cookie('mktoPPCKeyword'));});</script> 4. Add cookie code on your website (Optional) To close the loop on capturing the keyword, search engine, and PPC, you need to add Javascript to your website similar to that above.  This code will store that informaiton in cookies, then those cookies will be read when the user submits the form (with the javascript above on your landing pages).This Javascript uses the jQuery, jQuery Cookies plugin, and jQueryString plugin scripts.  Deploy them on your site and note the URL where they're hosted.You'll also need to edit all of your web pages, similar to when you installed Munchkin tracking.  You can put the Javascript in the same spot of the webpage.In the code below, change the Javascript src URLs to match where you installed jQuery and the plugins excludedReferrers variable as you did in the Javascript above cookieDomain variable to be "yourcompany.com" as you did above payPerClickParamater variable as you did above <script src="/js/jquery-latest.min.js" type="text/javascript"></script> <script src="/js/jquery.cookie.js" type="text/javascript"></script> <script src="/js/jQueryString-2.0.2-Min.js" type="text/javascript"></script> <script type="text/javascript"> var $jQ = jQuery.noConflict(); $jQ(document).ready(function(){    // CHANGE THESE Change this to match domains of referrers you want to ignore. You'll want to ignore referrers from your own domains. Use only the base domain name without subdomains (ex. "company.com") Separate multiple domains with commas (leave the brackets).   var excludedReferrers = [ "yourcompany.com", "yourcompany2.com" ];     // Change this to match the base domain of your company's landing pages.     // Cookies will be created with this domain.     // Ex. If your landing page domain is "pages.yourcompany.com" then use     //     "yourcompany.com"   var cookieDomain = "yourcompany.com";     // The URL parameter that has your pay-per-click info.     // Typically "kw" or "keyword" (depends on how you set up your PPC URLs)   var payPerClickParameter = "keyword";    // You probably shouldn't change anything after this    //   var refer = document.referrer;   var searchString;   var searchEngine;       // if there's no referrer, do nothing   if ( (refer == undefined) || (refer == "") ) {       ;   } else {        // get the domain of the referring website -- http://[[this-thing.com]]/     var referrerDomain =         refer.substr(refer.indexOf("\/\/") + 2,           refer.indexOf("\/",8) - refer.indexOf("\/\/") - 2).toLowerCase();     var excludedDomainFound = false;     var i = 0;       // search the excluded domain list to see if the referrer domain is on it     while ( (i < excludedReferrers.length) && !excludedDomainFound) {       var thisExcludedDomain = excludedReferrers[i].toLowerCase();          // weird semantics here -- indexOf returns "-1" if the search string isnt found.          // thus excludedDomainFound is true only when indexOf matches an excluded domain (!= -1)       excludedDomainFound = (referrerDomain.indexOf(thisExcludedDomain) != -1);       i++;     }      // only if the referrer isn't in our excluded domain list...     if( !excludedDomainFound ) {        // extract the URL parameters from common search engines        // To add your own, each engine needs a:        //  name: how the search engine will appear on your Marketo leads        //  url: REGEX for matching the engine's referrer.  ex.  /\.google\./i        //  query: URL parameter that contains the search query - usually "p" or "q"       var searchEngines = [        { name: "Yahoo", url: /\.yahoo\.co/i, query: "p" },        { name: "Google", url: /\.google\./i, query: "q" },        { name: "Microsoft Live", url: /\.live\.com/i, query: "q" },        { name: "MSN Search", url: /search\.msn\./i, query: "q" },        { name: "AOL", url: /\.aol\./i, query: "query" },        { name: "Bing", url: /\.bing\.com/i, query: "q" },        { name: "Ask", url: /\.ask\.com/i, query: "q" }       ];         // find the referring search engine (if any)       i = 0;       while (i < searchEngines.length) {         if (refer.match(searchEngines[i].url)) {           searchEngine = searchEngines[i].name;           searchString = $jQ.getQueryString({ ID: searchEngines[i].query,             URL: refer, DefaultValue: "" });           break;         }         i++;       }         // If no search engine is found, this person probably used a less         // popular one.  Use the referring doman, then guess the query parameter       if (i == searchEngines.length) {          searchEngine = referrerDomain;          var queries = ["q","p","query"];          var i = 0;          while ((i < queries.length) && (searchString == undefined)) {            searchString = $jQ.getQueryString({ ID: queries[i], URL: refer });            i++;          }           // no search strings found -- use this text instead.          if (searchString == undefined) {            searchString = "None";          }       }         // Use the provided URL parameter to get the PPC keyword.       var payPerClickWord =         $jQ.getQueryString({ID: payPerClickParameter,            URL: refer, DefaultValue: "" });          // Put the info into cookies.  These values will be extracted          // and put into a Marketo form later. Expires in 2 years.       $jQ.cookie('mktoPPCKeyword', payPerClickWord,          {expires: 730, path: '\/', domain: cookieDomain});       $jQ.cookie('mktoSearchEngine', searchEngine,          {expires: 730, path: '\/', domain: cookieDomain});       $jQ.cookie('mktoSearchString', searchString,          {expires: 730, path: '\/', domain: cookieDomain});     }   } }); </script>
View full article
Here are some details about how Marketo emails are sent and tracked. Before sending your email Marketo makes a couple of additions to your email before sending it: Replace all the email tokens (ex. "{{First Name}}") with their database or default values Wrap all links with Marketo tracking information Add an invisible image to track opens   With those changes complete, Marketo will attempt to deliver your email to the recipient. Email sends and deliver events Once the email is sent from Marketo's servers, a Send Email event is added to the lead's activity log. If the mail was successfully delivered, Marketo logs an Email Delivered event. Email bounces Sometimes an email can't be delivered. Marketo will place these email bounces into two categories: Soft bounce Sometimes an email isn't deliverable immediately, but might be okay later - for example, if a recipient's mailbox is full. This is a soft bounce and is logged as an Email Bounced Soft event. Marketo attempts to deliver the message up to 3 times, trying each Mail Exchange (MX) server. With each attempt, the timeout value is increased. Hard bounce Sometimes an email cannot be delivered no matter what, for example. the email address is incorrect.  This is a hard bounce and is logged as an Email Bounced event.  Marketo sets the lead's Email Invalid field to true so that the lead will not be emailed again.  The Email Invalid Cause is populated with a reason returned by the mail server. Email blocked Emails may be blocked for a number of reasons, including, spam complaints, blacklisting, or because some aspect of the email content has triggered a spam filter.  When an email is blocked it is logged as an Email Hard Bounced event. Marketo sets the lead's Email Suspended flag for 24 hours during which they cannot receive email. When an email is marked as spam Sometimes leads will mark your emails as spam or junk mail.  When that happens, Marketo is notified of this event by the lead's email provider, and Marketo will automatically unsubscribe the lead from the emails by setting the Unsubscribed flag to true. Email opens When a recipient views an email, their email client retrieves the invisible image from Marketo's servers.  This triggers an Open Email event, no matter how long or short the view was.  An Open Email event also occurs when a lead clicks the "View as web page" link in an email. Only one email open event is tracked regardless of the number of times a lead views the email.  This happens because email clients make the open event unreliable.  For example, a lead could open the email multiple times just by browsing through their inbox via the preview pane reading the entire message content without clicking/opening the actual email, or the lead's email browser may block images which prevents Marketo from tracking the open events. Due to Marketo's distributed architecture, email open events may be delayed a couple of minutes between when the event occurs and when they appear in the lead's activity log. Email link clicks The links in an email are wrapped by Marketo with special tracking code.  When a recipient clicks on one of those links, the Marketo servers are informed about the click, and a Click Email event is logged to the recipient's activity log. A person who clicks one of these links also gets cookied by Marketo; this makes them a known lead and causes subsequent web activity (on Munchkin-enabled pages) to appear in their activity log. "View as Web Page" events When the "View as web page" option is used for email, the views and clicks on those pages work just like views and clicks on the actual email in the lead's inbox.  For example, any click on a link on the email web page registers in the lead's activity log just like the lead clicked it in an email client.    
View full article
Included in this article   Overview Data you’ll get from Email Bounces Bounce Categories Hard Bounces Soft Bounces Bounce Details Building the Directory 1. Create 6 custom fields 2. Create a Program to house everything 3. Create a Static List 4. Create two Smart Campaigns Smart Campaign One - Logging Email Bounces with Bounce Details Smart Campaign Two - Remove Leads From the List After Successful Deliveries 5. Create Custom List View Showing Bounce Details   Overview Bounce activities carry details for why the email was bounced, but it’s housed within the activity log entry, not in a field on the lead record, so it’s difficult to export that data. This article will show you how to extract that information to create a directory of leads bouncing emails and how to make the list automatically update. This will also create counters for bounces and successful re-deliveries after bounces happen .   Data you’ll get from Email Bounces Bounce Categories Email bounces come in different types depending on why the email was bounced; Hard Bounces or Soft Bounces.   Hard Bounces Hard Bounces come in two types, Category 1 and Category 2. Category 1 bounces are emails that have been marked as spam by the recipient mail server. Many email servers monitor blacklists or spam traps, so after de-listing with them, leads that have had a Category 1 bounce previously may be able to receive emails again. Category 2 bounces occur due to an email address that is invalid or doesn’t exist.   Soft Bounces Soft Bounces come in three different types, Categories 3, 4 or 9. Category 3 bounces are usually temporary, caused by full mailboxes, timeouts, or throttling. Any email with this designation has been retried for up to 24 hours (36 for AOL). Category 4 bounces are caused by technical problems, Transient Failures, Admin Failures, DNS Failures. Any email with this designation has been retried for up to 24 hours (36 for AOL). Category 9 bounces are unknown, undetermined or gibberish details. Any email with this designation has been retried for up to 24 hours (36 for AOL).   Bounce Details When an email is bounced, the recipient mail server includes details of why it was bounced. These are created by the admin of the recipient mail server and vary greatly, but most will give some explanation that can give valuable information. Email Bounce Codes   Building the Directory   1. Create 6 custom fields You’ll need 6 custom fields, two DateTime fields, two Score fields, and two String fields Name the DateTime fields “Bounce Date” and “Email Delivered After Bounce”. Name the Score fields “Email Bounces” and “Deliveries After Bounces” Name the String fields “Email Bounce Details” and “Email Bounce Category” Directions for creating Custom Fields can be found here: Create a Custom Field in Marketo   2. Create a Program to house everything Use a default program type and name it "Directory of Leads Bouncing Emails". Info on creating programs can be found here: Create a Program   3. Create a Static List This static list will be your actual directory that contains all of the leads that are currently bouncing emails. Name it "Active Bounce List". Info on creating a static list can be found here: Create a Static List   4. Create two Smart Campaigns These two Smart Campaigns are what will be used to add and remove leads from your active bounce list. Info on creating Smart Campaigns can be found here: Create a New Smart Campaign     Smart Campaign One - Logging Email Bounces with Bounce Details Your first Smart Campaign will be used to listen for any email bounces that occur. The campaign will populate the “Bounce Date”, “Email Bounce Category” and “Email Bounce Details” fields. It will then add one point to the “Email Bounces” score field which can be used to count how many bounces have occurred per lead. Lastly, the campaign will add the lead to the static list which will be an active directory of leads who are bouncing emails.   Campaign Smart List Use the two triggers of “Email Bounces” and “Email Bounces Soft” in the Smart List. Set both triggers to “is any” so that they will fire whenever any email bounces for any reason.   Campaign Flow The Flow of the campaign will have 5 flow steps. The flow will use a System Token and some Trigger Tokens, which can be used to pull details out of the action that activated the trigger. In this case, the Trigger Tokens will be pulling out the details on why the emails were bounced. That info is in the bounce message and is logged in the lead's activity log. Normally you'd have to comb through the activity log one at a time to find these details for each individual lead. This method, however, will pull the details out automatically for all leads.   Flow Step 1: Change Data Value Attribute: “Bounce Date” New Value: {{system.dateTime}}   Flow Step 2: Change Data Value. Attribute: “Email Bounce Category” New Value: {{trigger.category}}   Flow Step 3: Change Data Value Attribute: “Email Bounce Details” New Value: {{trigger.details}}   Flow Step 4: Change Score Score Name: “Email Bounces” Change: +1   Flow Step 5: Add to List List Name: “Active Bounce List”   Smart Campaign Two - Remove Leads From the List After Successful Deliveries   Campaign Smart List The Smart List of the campaign will need a trigger for “Email is Delivered” set to “is any” and also a filter of “Member of List” looking just for leads that belong to your Static List. This way, the campaign will only apply to leads who have had an email bounce but have then had an email successfully delivered afterwards.     Campaign Flow The Flow of the campaign will have 3 flow steps to do the following; log when the email was delivered, add a point to the "Deliveries After Bounce" Score Field, and remove the lead from the "Active Bounce List".   Flow Step 1: Change Data Value Attribute: “Email Delivered After Bounce” New Value: {{system.dateTime}}   Flow Step 2: Change Score Score Name: “Deliveries After Bounces” Change: +1   Flow Step 3: Remove from List List Name: Operational.Active Bounce List   5. Create Custom List View Showing Bounce Details The custom fields you’ve created for email bounce information won’t show automatically in the view of your list. You can create a new view of the list to show just this information so that when it is exported it will give you only the email bounce information you need. Once the list has the necessary details, it can be exported with those columns included so that you can work with it. You can identify emerging trends and issues with your deliverability by looking for common themes among the bounce details. Directions for creating Custom Views can be found here  
View full article
Included in this article Highlights The MLM package in SFDC’s AppExchange is being retired. The MLM package itself doesn’t do much, but was responsible for installing 16 custom fields (16 on the Lead object and 16 on the Contact object) that sync data from Marketo to SFDC like Lead Score and Acquisition program. The configuration update will shut off the sync of data to the MLM package and these fields, so the data in those fields in SFDC will become stale and won’t update. You can keep syncing this data to SFDC but it requires creating new custom fields. When the fields are re-created, a drip process will be triggered to backfill existing data from Marketo into the new fields in SFDC. No Data Will Be Lost Marketo is the source of this data, and the data inside of Marketo will not be touched. The data in Marketo will continue to stay current as it always has. The change being made is in how it is passed into SFDC. No matter what, the data will be preserved inside of Marketo. What is the MLM Package? The MLM package doesn’t actually do a lot on its own. It has been a prerequisite that had to be installed during the Marketo > SFDC integration setup before the MSI package could be installed but it’s a pretty safe bet that hardly anyone actually uses it. It’s the fields that were installed during its installation that get the most usage.  The fields that the MLM package created are frequently used by sales teams inside of SFDC. Data from the Marketo fields passes into these fields in SFDC where it can be viewed on Lead and Contact records (if you’ve added it into the page layout). Telling the Difference Between MLM and MSI in SFDC MLM and MSI are two different tabs inside of SFDC. It’s important to know which is which. The Sales Insight tab is the tab labeled “Marketo”. The MLM tab is labeled as “Marketo Lead Management” Fields Affected When the configuration change happens, no data will be synced from these 16 fields in Marketo to the 32 corresponding SFDC fields (16 on the Lead object, 16 on the Contact object). Lead Score Acquisition Program Acquisition Program Id Acquisition Date Original Search Phrase Original Source Info Original Source Type Original Referrer Original Search Engine Inferred Company Inferred Metropolitan Area Inferred Phone Area Code Inferred State Region Inferred City Inferred Postal Code Inferred Country The Changes Being Made For most customers, the only fields commonly used are Lead Score and Acquisition Program. While these fields will stop updating in the Lead detail pages, it’s important to remember that the Lead Score data will still be available through Sales Insight without any changes being made. Effects on Sales Insight MSI will have very little change made. The Stars and Flames will still function the same way, and lead scores will still update and display current information. Only one change will affect MSI, and it will have a very limited scope. Scoring Still Displays in MSI The Sales Insight Score tab on Lead records in SFDC will continue to show up to date score information. This view will not be impacted in any way. Stars and Flames Still Function the Same Way MSI’s Stars and Flames will still update with data the same way that they did before, even if you have set them up to work with custom score fields on the Marketo side. For more information about Sales Insight’s Stars and Flames, please check out the documentation here: Priority, Urgency, Relative Score, and Best Bets - Marketo Docs - Product Docs Customize Stars and Flames - Marketo Docs - Product Docs Set Score Fields to be used for Stars and Flames in Sales Insight - Marketo Docs - Product Docs The Only Change Inside of MSI There is only one small change to the MSI package. If you have "Debug Mode" enabled in Sales Insight Config (pretty rare), then inside of Sales Insight, if you mouse-over the Stars, you’ll see a label that gives the score. This functionality relied on a dependency between MSI and MLM that has been patched and removed now. As a result of that change, the score can’t be displayed in the hover-over label. Again, this score only ever appeared if you had debug mode enabled, which is very uncommon. Exceptions to MSI Patch The MSI patch wasn’t able to upgrade every version of MSI. A very small number of customers who have an older version of MSI currently can’t be updated by the patch and will need to manually upgrade their MSI installation. If your company uses Marketo Sales Insight version 1.38 or below, you will be required to manually upgrade to the newest MSI package version. Identifying Your MSI Version To check what version of MSI you’re currently using, navigate to Admin > Sales Insight, then look for the Version info in the Status box in the middle of the page. Manually Upgrading Your MSI Package If you find that you are using MSI Version 1.38, you’ll need to manually upgrade your Sales Insight package. The directions on how to upgrade MSI can be found here: Upgrade Marketo Sales Insight for Salesforce1 - Marketo Docs - Product Docs If you’d like help with this installation, please feel free to reach out to Marketo Support with the directions found here: Contact Marketo Support Effect on Fields in Lead Layout Page The change that will be noticed will be to the fields shown in the Lead detail pages in SFDC. If you have any of these fields like Lead Score added to the layout of your Lead detail page, these are the fields that will no longer update and will begin displaying stale data. If your sales teams utilize any of this data, you’ll want to recreate the fields in SFDC to pull in the updated data from Marketo. Keeping Field Data in SFDC The sync of data into these 32 fields (16 on the Lead object, 16 on the Contact object) will be shut off. If you want to keep syncing data from these fields to use it in SFDC, that can be done. You’ll need to create new custom fields in SFDC for the Marketo data to sync into, using specific API names to match up to the original Marketo fields. There are different versions of Salesforce, but don't worry, all of the details on how to recreate the affected fields as well as a video tutorial can all be found in the documentation here: Adding Marketo Fields to Salesforce Cut Off Date The MLM package will be officially deprecated as of January 31st, 2017. The data will stop syncing to the fields created by the MLM package after this date. Backfilling Data Creating the new custom fields will kick off a drip process to backfill the data from Marketo to SFDC. That takes all existing data for these fields from Marketo and pushes it back to SFDC into the new custom fields you’ve created. There are some important details to how this process works, so here they all are! The data backfill process will only initiate if you recreate the old fields using the proper API names as specified. The backfill process goes through a separate communication “pipeline” outside of the standard sync cycle. The backfill process will push data at roughly the same rate as the “Push Updates” rate we get now in the regular sync—somewhere between 7k to 12k records per hour. The total time it takes to update all records will vary depending on sync rate in the separate “pipeline” and the number of records being updated. Once the backfill process is complete, an instance notification will be posted in the Marketo notification center. The backfill process updates the new fields in SFDC records with the data that is in the 16 Marketo fields. When this update happens, it will create a SysModStamp on the record in SFDC. Any new SysModStamp will queue the record to resync back to Marketo. If a lead record is in line waiting for the backfill process to pass updates to SFDC and that record gets resynced through the standard SFDC sync cycle before the backfill is done for that lead, that record will be taken out of the queue of records waiting for the backfill process. This is done intentionally to prevent race conditions where old data could potentially overwrite more current data. SFDC Sync Backlog Any time a large number of records are queued to resync between Marketo and SFDC, it could cause a sync backlog. A sync backlog is only a possibility, not a certainty . Most customers will not have any problems. The rollout schedule has been staggered out over time specifically to address this issue and to prevent sync backlogs. The backfill process passes data through a different channel, outside of the standard sync cycle, so it won’t cause a backlog in that process. It’s the resyncing of the records after the backfill that puts stress on the sync cycle. That standard sync cycle is where you may experience slowness if a backlog develops. The resulting resync of leads will increase volume and put a heavier load on the sync. However, whether or not it actually creates a backlog in the sync cycle depends on many factors like your existing sync volume and if you have any other large number of updates being made. If you think your sync cycle is experiencing a backlog, please reach out to Marketo Support. We can check the existing volume for both the standard sync cycle and the backfill process. Cleaning Up SFDC The MLM package and the 32 fields created by it (16 on the Lead object, 16 on the Contact object) will be orphaned and no data will continue to be synced to them, making them obsolete. Since they’ll be unusable, you may want to remove the MLM package and delete the fields. This process is optional, but can be done if you choose. Uninstalling the MLM package deletes fields, data and workflows created by the package . Any dependencies like for reports or workflows inside of SFDC that you have created based off of these fields will need to be removed manually. If these other custom dependencies exist, they’ll need to be removed before uninstalling the MLM package. For information on how to uninstall AppExchange packages from SFDC, please see their documentation here: Uninstalling a Package For detailed information on how to avoid problems elsewhere in SFDC, please see our documentation here: Changes to Marketo Salesforce Sync – Preventative Troubleshooting Preventing Problems in SFDC Since the fields in SFDC are brand new fields that have just been created, everything in SFDC that references the original fields will need to be updated to point to the new fields instead. This includes all Workflows, Apex Triggers, AppExchange packages for 3rd party software and Reports. As soon as the new fields are recreated in SFDC, the Marketo fields are remapped to those new fields. The backfill process begins and the sync is cut off to the older existing fields, so they immediately stop updating. This results in two important things to be aware of: Everything in SFDC referencing the older original fields will be referencing old data that is no longer updating . The backfilled values entered into the newly recreated fields will be seen by SFDC as brand new values , not the existing values that they are in Marketo. This can cause your Workflows, Apex Triggers, AppExchange packages for 3rd party software and Reports to all behave differently. For full details on this, please see Changes to Marketo Salesforce Sync – Preventative Troubleshooting Where to Go for More Information Recap Summary Now that the changes have been completed, and the deprecation date has passed, this doc will give you the overview of what has happened: Changes to Marketo Salesforce Sync - Recap Summary Frequently Asked Questions Check out our FAQ for the answers to the most commonly asked questions. Changes to Marketo Salesforce Sync – Frequently Asked Questions Discussion thread We've created this discussion thread in the community to address any questions you may have. This discussion thread will be monitored by the Marketo team to ensure you get answers to your questions. Changes to Marketo Salesforce Sync – Questions and Discussion Overview Documentation This doc will give you a high level overview of what the configuration changes are and what to expect moving forward: Changes to Marketo Salesforce Sync - Overview Release Schedule The release is being staggered over the course of 6 months. This doc will give you exact details so you can know precisely when your Marketo instance will be updated. Changes to Marketo Salesforce Sync – Release Schedule Recreating Affected Fields There are different versions of Salesforce, but don't worry, all of the details on how to recreate the affected fields as well as a video tutorial can all be found in the documentation here: Adding Marketo Fields to Salesforce Preventing Problems In Salesforce Recreating the new fields in Salesforce can cause your Workflows, Apex Triggers, Reports and AppExchange apps behave differently. They'll need to be updated and this doc will show you what to watch out for: Changes to Marketo Salesforce Sync – Preventative Troubleshooting Contact Marketo Support If you would prefer to talk to someone live, please contact Marketo Support over any of the channel listed here: Contact Marketo Support
View full article
Here it is: Your guide to understanding merges in Marketo, in Salesforce, and how the two interact. Merging Two Leads We begin with two records in Marketo which have been synced to Salesforce. Both are leads in Salesforce, not contacts. Lead A, Marky Marky, has a Marketo ID of 1001446 and an SFDC ID of 00Qi000000vJ0hK. Lead B, Markee Marquee, has a Marketo ID of 1001447 and an SFDC ID of 00Qi000000vJ0hU. We wish to merge these leads in Marketo. In this example, I first select Lead B, and then hold SHIFT to select Lead A as well. Then right-click in the highlighted area to bring up the Lead Actions drop-down (or click Lead Actions at the top of the screen), and select Merge Leads from the choices. Now I see the Merge Leads dialog box, where we decide which conflicting field values we want to win. We could click the box next to "Lead 1" if I want all of Markee Marquee's values to win. Instead we check the box next to "Marky" because we want that to be their first name, rather than "Markee". Then we click merge. Note: whichever record was most recently updated will be pre-checked to win field conflicts. Here's the result. Note how the remaining single lead has the ID 1001447, that of Lead B, the first one we selected. The first record you select is the target record - this records remains while the other record is deleted, it's field values, activities, and program memberships merged into this winning record. The leads are also merged in Salesforce, and the remaining record there has the ID 00Qi000000vJ0hU (Lead B) as we would expect. Merging Leads and Contacts Here we begin with a lead and a contact. We have a lead, Marky Marquee (Marketo ID1001447, SFDC ID 00Qi000000vJ0hU) , and a contact, Joe Hill (Marketo ID 1001448, SFDC ID 003i000002KAFGa). We first select Marky Marquee (the lead) and then select Joe Hill (the contact), and conduct the merge as we did above. This time, however, the second record we clicked, Joe Hill, shows up as "Lead 1". This seems to contradict what we said earlier, but it's happening because the second record is the contact, and the contact is always going to be the target record. I want Marky's name to win out, so I check their First and Last Name and then click Merge. Note: this will cause an error if the Marketo sync user in SFDC doesn't have the Convert Leads permission. Note that the remaining record has the ID 1001448, the ID of the contact, even though that wasn't the first record we selected in Marketo. The contact is always the one which remains. Program Memberships Here we have two leads: Dexter Science (ID 1001451) and James Frankough (ID 1001452). We add James to two programs, Program Example 1 and Program Example 2. We can see this in their activity log: Now we merge the records, selecting Dexter first (so they'll be the winning record), but we check James's values for the First and Last Name. Below is their activity log after the merge. Notice that there are new Change Program Status activities - because the target record in the merge was 1001451, but the programs were associated with 1001452, the system has to copy their program statuses over during the merge. If you double-click one of those activities, it gives "Lead merge transferring program membership (transfer)" as the activity's Reason. Activities caused by merges can trigger campaigns. For example, suppose there is a smart campaign with the trigger Program Status Changes, for an old program with no activity in months. Activities caused by a merge like this could trigger such a campaign. To prevent this from triggering campaigns, we can add Reason as a constraint: Campaign Memberships Next, we have two leads: John Doe (ID 247) and Johnathon Doe (ID 248). We've associated John Doe with two SFDC Campaigns: Campaign Example 1 and Campaign Example 2. When we merge John Doe into Johnathon Doe, since the target lead is ID 248 and the campaigns are associated with ID 247, it has to copy them over - just like it did with campaign memberships. However, unlike with program memberships, it does not provide a Reason in the Add to SFDC Campaign activity following the merge, meaning there's no easy way to prevent this from triggering campaigns which use the Added to SFDC Campaign trigger.
View full article
Just joined the Marketo family? Want to learn more about how to use Marketo? Drop by one of our Office Hours!   Group Office Hours are one-hour sessions for you to virtually connect with a marketing automation expert when you need personalized guidance and insightful advice. Office Hours are available weekdays at different hours to meet our customers' needs around the globe.   Please note these open sessions are open to Launch Pack customers only. If you have not signed up for the service and would like to, please send an email to services@marketo.com.   Prerequisites: You must be within 90 days of your Marketo subscription start date or have signed up for the service You must have taken the Marketo Core Concepts class What to expect: Marketo Expert facilitating the open group session Types of questions: How to/Best Practices/Strategy/On-boarding   Upcoming Sessions:   EMEA EMEA Office Hours: Monday, 2 PM GMT
View full article
Issue Description Link(s) placed into Email(s) by a Token is not tracked and does not show successful click activity in the lead/person record. Issue Resolution Sometimes there are situations in which URLs, and other content, are placed in emails by using {{tokens}}. When Marketo sends emails, you can think of building the email in 2 steps: Marketo searches the email code for "http" or "https" and wraps the tracking code around the URL Marketo inserts the values of {{tokens}} into the email. If the {{token}} value is http://www.domain.com , that would be expected to not track because of the above 2 steps. After the {{token}} value is inserted, Marketo does not go back to wrap tracking code around http/https. The {{token}} doesn't look like a URL when the system applies the tracking code because the tokens don't pull the values in until the next step after. The solution to tracking tokens is to place http:// or https:// on the outside of the token, like such: http:// {{token}} That way, when Marketo builds the email, in step #1, the system recognizes the http and knows it's a URL. Then the tracking is wrapped around the http and the {{token}} as well. Then in step #2, the {{token}} value is inserted into an already-wrapped link. A unique caveat to keep in mind is that if the {{token}} value contains http, but http is on the outside of the {{token}}. Let's say the URL you want to insert is http://www.domain.com . You have to move the http:// out in front of the {{token}}, but you don't want to also have it inside the {{token}} as well. If your link ends up being http://http://www.domain.com it will break. To get around this, you'll need to remember to take the http:// out of the {{token}} value. {{http://www.domain.com}} would instead be http://{{www.domain.com}}
View full article
On August 24, 2017, Marketo and Google Cloud made an exciting announcement about a broader collaboration to transform engagement solutions for the enterprise. We understand you may have questions, and we’ve prepared the following FAQ that provides additional details. 1)  What did Marketo and Google Cloud announce? Today, Marketo and Google Cloud, two technology thought leaders announced a multi-year alliance that will drive innovation and deliver next generation global marketing solutions on the Google Cloud Platform.  2)  Why is this great for Marketo customers and partners? The MarTech and AdTech worlds have remained silo-ed for far too long. This alliance will simplify the technology landscape for the marketer and enable them to more effectively listen, learn, and engage with buyers across all digital channels, including digital ads. In addition, it will provide the scale, reliability, and security required for enterprises to conduct business in today’s digital world. 3)  What does the alliance entail? The alliance between Marketo and Google Cloud includes the following: Marketo and Google Cloud will invest resources in co-innovation in a number of areas. Beginning in 2018, Marketo will run its marketing automation products and data centers entirely on Google Cloud Platform for all customers worldwide. Google will expand its usage of Marketo’s Engagement Platform across its businesses. 4)  Why did Marketo select Google for its public cloud?  We’ve been planning a move to a public cloud infrastructure for some time as we believe it’s necessary to deliver the scale, reliability, and security that our customers and partners demand to succeed in today’s hyper-digital world. We selected Google for a number of reasons, including its industry-leading knowledge and expertise building secure cloud infrastructure and applications at scale as well as the significant strategic and technology advantages we saw versus other clouds. 5)  Will Marketo continue to build and support its own data centers? Until the migration to Google Cloud infrastructure, Marketo will continue to operate, manage, and support its own data centers. 6)  Will this change impact my Marketo subscription or agreement? Moving Marketo’s marketing automation products and data centers to Google Cloud Platform will not change or impact your Marketo subscription. We will update our End User Service Agreement as appropriate to reference any relevant changes.
View full article
  What is the Email API? What is the Email API used for? What is Email 2.0? Does the Email API Work on Email 2.0 Assets? Will the Email API Break when Enabling Email Experience 2.0? How Are 1.0 Assets Upgraded to 2.0 Assets? What to Do When an Email Was Accidentally Converted to Email 2.0 format?     What is the Email API? API stands for Application Programming Interface and the Email API allows an automated process to create and edit emails in Marketo. There are also other API calls that involve emails, such as Approve Snippet (assuming the Snippet is used in an Email) and Clone Program (assuming the Program contains Emails). There are also API calls to create and update Email Templates. Essentially, the API can do many things that you can also do through the Marketo user interface, but then in an automated fashion.     What is the Email API used for? There are many scenarios: an external system could create Emails in Marketo using data that lives outside of Marketo. A translation service provider could clone a master Email, translate it to many languages, then save them back into Marketo as localized Emails. A reporting system could extract Emails from Marketo to use in reports that are generated outside of Marketo. An external system could Clone a Program that contains Emails, then populate the Program Tokens and schedule the Email to be sent out at a specific time. There could be an external email template creation system that creates new Email templates in Marketo through the API.     What is Email 2.0? “Email Experience 2.0” is the new Marketo product feature with the enhanced email editor, documented here: https://docs.marketo.com/display/public/DOCS/Email+Editor+v2.0+Overview. It can be switched on in Admin > Email > Edit Email Editor Settings. All Emails and Email Templates also have a version number, either 1.0 (the old version) or 2.0 (the new version). If we refer to “Email 2.0 asset” we mean an email or email template in the new upgraded 2.0 format.     Does the Email API Work on Email 2.0 Assets? Yes.     Will the Email API Break when Enabling Email Experience 2.0? No. Enabling Email 2.0 will not automatically upgrade Emails or Email Templates to the new 2.0 format. The Email API can still create new Emails and Email Templates in the 1.0 format.  However – after enabling Email 2.0 – any Email or Email Template that is created or edited and approved through the Marketo User Interface will automatically be upgraded to the 2.0 format.     How Are 1.0 Assets Upgraded to 2.0 Assets? If you edit an “Approved" or “Approved with Draft” 1.0 Email with Email 2.0 enabled, the draft is converted to the 2.0 format. You can still discard the draft to go back to the approved 1.0 format. Once you approve the email and it becomes 2.0, the Email cannot be converted back to 1.0. If you edit a “Draft” 1.0 Email (never been approved), this will automatically be converted to 2.0 with no option to revert back to the 1.0 format. The same applies to Email Templates.     What to Do When an Email Was Accidentally Converted to Email 2.0 format? If an Email or Email Template was accidentally converted to the 2.0 format, you’d have to copy the asset contents to a text editor, disable Email 2.0, then create a new 1.0 asset using the content that you copied.
View full article
You’ve seen the article on how to Add Tokens to an Email Link, but now you want to use a My Token with a URL value, and add that token to a tracked link in an email. This solution will help you accomplish your goal.   When an email is compiled, Marketo wraps lead-specific tracking information around all links, so when a lead clicks the link, we capture that activity for smart lists and reporting. There are times when simply adding the explicit link using the hyperlink option in the WYSIWYG editor isn’t enough, and instead you wish to put the URL value into a program’s My Token, so you can swap out the link in one place if needed. To make sure your resulting link is wrapped in the lead’s tracking information, you will first need to create your My Token at the program level, without including http:// or https:// .     Next, you will edit your email, and open the WYSIWYG editor for the section containing the text or image to which you wish to add your token link. Select the text or image, then click the hyperlink option and use the following format to reference your token in the URL field: http://{{my.LinkToBeClicked}}. If your link is secure, you can use https://{{my.LinkToBeClicked}} instead.     Click Apply, then save the section, and approve your email. That’s it! Now, when your email is compiled and sent to leads, the system will know to wrap your token-in-link with tracking information, to gather Clicked Link in Email activities. Congratulations!
View full article
The Form Library lets you style your forms with an up-to-date look and feel just by dragging and dropping the CSS into your Marketo landing pages or template.  As a side note, the Form Library ONLY styles input, textarea, and select (drop-downs) fields and NOT your radio buttons or check-box selections.     Here's how it works: 1. Choose a form from the table below by clicking on the image. 2. Download the zipped file to your desktop. 3. Open the file and upload the provided images into your Marketo image library. 4. Open the provided code and replace "mktoWeb" with your directory name.   Example:   <style> .mktInput input, .mktInput select, .mktInput textarea  { background: url(rs/ mktoWeb /images/input_bg.png) repeat-x scroll 0 0; border: 1px solid #D4D2D2 !important; font-size:20px; padding: 8px 10px; cursor:pointer; }   .mktInput input:focus, .mktInput select:focus, .mktInput textarea:focus  { background: url(rs/ mktoWeb /images/input_bgHover.png) repeat-x scroll 0 0; } </style>   5. Copy the code and paste in on your landing page by  choosing the Custom HTML option within the design studio.   Note: Some forms use CSS3 for styling. The style is supported in all major browsers except Internet Explorer. You will need to be using IE9 or higher for any form using CSS3. Is this article helpful ? YesNo Download code for this form Download code for this form Download code for this form Download code for this form Download code for this form Download code for this form Download code for this form Download code for this form Download code for this form Download code for this form Download code for this form Download code for this form
View full article
DMARC can be supported through DKIM alignment OR SPF alignment.   For DMARC verified by DKIM alignment Set up DKIM for the domain used in the From Address. OR For DMARC verified by SPF alignment This requires that the SMTP Mail From or bounce addresses used by Marketo's servers when sending the email be aligned with the From Address the recipient sees in the email envelope.  To put this alignment in place: Set up a branded SMTP Mail From (also known as bounce domain, envelope_from, Return Path).  To put this in place there are the following options: Send from a dedicated IP through Marketo, contact your salesperson or CSM to set this up. Send from a Trusted Marketo IP by applying here.  Branding is offered for free to customers sending from Marketo's Trusted IPs.  Once approved for this program reach out to Support to ask for the additional domain branding. Trusted IPs: A shared pool of IPs reserved for lower volume customers who can not qualify for a dedicated IP.  These customers must also meet best practice requirements as well. Purchase one-off domain branding if sending from a Shared Marketo IP, contact your salesperson or CSM to set this up.     Do you wonder what DMARC is? Review this What is DMARC?.
View full article
Overview A triggered campaign launches automatically when a specific action occurs. For example, you can use a triggered campaign to automatically send an email to a lead after she completes a form. Triggered campaigns have at least one trigger in their Smart List. When the lead activates a trigger and passes through the other filters in the Smart List (if you have any), the lead will immediately proceed through the campaign's Flow. In a Smart Campaign, the Smart List palette contains a separate folder with Triggers. These are the events you can use to activate your triggered campaigns. Be careful when using multiple triggers.  If you use two or more in a campaign, any single trigger can activate the campaign. Email Triggers Trigger Name Description Clicks Link in Email If someone clicks on a link in an email. This can be a specific link(s) or any link. Email Bounces If an email bounces from an address. Email Bounces Soft If an email bounces due to an auto‐reply, full mailbox, etc. Email is Delivered If an email is delivered to someone. Opens Email If someone opens an email. Unsubscribes from Email If someone opts out of email. Salesforce Specific Triggers Trigger Name Description Activity is Logged If an activity is logged in salesforce.This can include a logged call or task created. Activity is Updated If an activity that is already created is updated. Added to Opportunity If a contact is added to an opportunity. Added to SFDC Campaign If a lead/contact is added to a Salesforce campaign. Clicks Link in Sales Email If someone clicks a link in a sales email (an email sent through Sales Insight). This can be a specific link(s) or any link. Is Sent Sales Email If someone is sent a sales email (an email sent through Sales Insight). Lead is Converted If a lead is converted into a contact in Salesforce. Lead is Deleted from SFDC If a lead is deleted from Salesforce. Lead is Synced to SFDC If a lead is synced to Salesforce from Marketo. Opens Sales Email If someone opens a sales email (an email sent through Sales Insight). Opportunity is Updated If an opportunity is updated. Owner Changes If the owner of a record in Salesforce changes.This can be to a specific user or to any user. Removed from Opportunity If a contact is removed from an opportunity. Removed from SFDC Campaign If a lead/contact is removed from a Salesforce campaign. Sales Email Bounces If an email bounces from an address. Sales Email is Received If an email sent via Sales Insight was delivered. Status is Changed in SFDC Campaign If a lead/contact status changes within a Salesforce campaign. General Triggers Trigger Name Description Added to List If a lead/contact is added to a Marketo static list. Campaign is Requested If a contact/lead is sent into a Marketo campaign. Clicks Link If someone clicks on a link. This can be a specific link(s)or any link that is tracked. Data Value Changes If any data value on a record, includes all fields available for edit/update in Marketo and Salesforce is changed. Fills Out Form If someone fills out a form. Has Interesting Moment If someone has an interesting moment. Lead is Created If a Marketo lead is created. Removed from List If a lead/contact is removed from a Marketo static list. Revenue Stage is Changed If a revenue stage within a revenue cycle model is changed. Score is Changed If a lead score is changed. Send Alert If someone does something, send an email alert. Visits Web Page If someone clicks and visits a web page.This can be a specific page(s) or any web page.
View full article