Knowledgebase

Sort by:
Issue Description Is it possible to add Lead partition/Workspace information in a custom Revenue Explorer reporting?   Issue Resolution RCE does not have the ability to segment reports by Lead Partition or Workspace. One possible workaround for leads is to create a custom field on a lead's record and populate it with the partition name.  There is no such option, however, for assets in different workspaces.     Who This Solution Applies To Customers use RCE/RCA Is this article helpful ? YesNo
View full article
One of the biggest gains to productivity you can employ with Executable Campaigns is the ability to pass the token context of the parent campaign to child campaigns.  This allows you to template your campaigns to use contextual data from the parent and then put it into practice within reusable executable campaigns.  It also allows you to set up My Token values as defaults, and then override them by setting them in the calling campaign.  Let’s take a look at an example: Evaluating activity scores   Evaluate Activity Score   Most Marketo subscriptions use activity or behavioral scoring to some extent, and executable campaigns make it easier than ever to create an effective activity scoring model.  By using the same My Token keys in the parent and child campaigns we can craft an activity scoring campaign that can be used by any triggered activity in a single workspace.  This is what a basic templated scoring flow looks like.  The interesting moment is configured to stamp that activity log with the parent campaign name and ID for debugging purposes, and should be omitted for performance reasons in production.   Note how the Change Score step has a Change value of {{My.Activity Score}}.  This is defined as +0 in the Evaluate Activity Score program, so if executed with overriding the token context, or if the value is not defined in a calling campaign, then that will be the value used:   Calling the Campaign   Suppose you want to score when someone fills out a particular form, but you also want to apply a score when they are created by filling out that same form.  In this case you would need two campaigns, each with their own parent program.  Our New Lead campaign needs to listen to the “Person is Created” activity, needs to execute the Evaluate Activity Score campaign, and needs {{My.Activity Score}} to be defined:       Configured this way, our New Lead campaign will call the child campaign with the parent campaign’s context and increment the score by +15 and then move on to the rest of the flow. For our campaign that’s listening for a form fill, but not creation, we only need to configure the trigger and My Tokens differently:     When a lead qualifies for a run through our Evaluate Activity Score campaign, we see that the Person Score is correctly incremented by +15 when it goes through our campaign:   Working with this pattern   This pattern can be applied and modified to work with many different scoring and lead lifecycles.  There are a few things to keep in mind, though: If you are nesting executable campaigns, I.e., using the Execute Campaign step within an executable campaign, you need to set Use Parent Token Context to true through each layer where you need to use token context in the child campaign.  Using folder-based My Token inheritance can help ensure a value is set in all of your relevant folders.  For example, if all of your scoring listener programs and campaigns live in a single folder tree, you can set a {{My.Activity Score}} at the top level folder, which can then be overridden at the local program level. My Tokens that you want to override in an executable campaign should be set in both the child and the calling campaign, as well as any campaigns between the initial caller and the ultimate child. As designed, each campaign that wants to call the Evaluate Activity Score campaign, needs to be in its own program (or Campaign Folder) in order to have its own specific {{My.Activity Score}} token.  More than one score per program needs either multiple “Change Score” steps in your evaluator campaign, each with a distinct score token, e.g. {{My.New Lead Score}} = +15 vs. {{My.Form Fill Score}} = +5 vs {{My.Unsubscribe Score}} = -10, or a distinct campaign for each score-activity pair that you want to score distinctly Pair this with the suggested categorization model for Executable Campaigns for best results.
View full article
Issue You have workspaces, and want to reference one workspace's program membership (or reference other assets) within another workspace.     Solution The solution to referencing across workspaces is to build a Smart List in the target workspace, share the Smart List to the destination workspace, and then reference that Smart List for cross marketing. For example, let's say that there is particular program membership that you want to access in another workspace. In that workspace, create a Smart List within a folder, and then share that folder to the destination workspace. Sharing the Smart List will allow the List to be targeted within the cross marketing campaign. Who This Solution Applies To Instances with workspaces    
View full article
Issue After updating the Unsubscribe HTML and Text in Admin>Email, newly added tokens may not render as expected. Solution To resolve the behavior, you'll need to do the following after updating the Unsubscribe settings in Admin: 1) Navigate to the various emails within the instance and un-approve them. May require removing references to the email first. 2) Re-approve the emails. 3) Add back any references to the email asset.   Why this needs to be done: When the email asset is approved it goes through a validation process for all the tokens that are used and this includes the global unsubscribe settings. When editing in Admin >Email > Unsubscribe the validity of tokens is not checked upon saving those changes. If a invalid token is added, something like {{lead.nonExistingField}}, no errors are thrown and it'll return that string value. The verification is done when the "approve" email functionality is used on email assets. This steps retrieves valid tokens list used in the email and adds/updates them in a backend table for use/reference. The update to the global unsubscribe settings doesn't cause the stored information to reference the newly changed settings in Admin. To cause that validation process to go through successfully and update the information on the back end, you'll need to un-approve and re-approve the various emails within the instance to use the new global settings.
View full article
Article Text Included in this article   Overview Include Pages Target URL Use Case   Overview Target URL and Include Pages are both RTP terms that sound the same and get confused together, but they have different uses and meanings. This doc will go over what the differences between them are and how each can be used.     Include Pages "Include Pages" is a filter used in Segments that will look for visitors who have been to specific pages. This filter will make the segment match for the visitor when they go to the designated page during the visitor’s session. If the visitor goes to one of the "Included Pages" during their session, then they match for the segment.     Target URL "Target URL" is used in RTP Campaigns. In the campaign editor, the Target URL defines which page(s) the campaign will be displayed on. So, whenever the campaign is called by a segment, it will only be displayed on those pages specified in the Target URL area of the campaign. If the visitor is not viewing one of these specified pages, the campaign will not show.     Use Case By using these together, you can create a campaign that will be displayed on your homepage (the Target URL) only if the visitor first viewed the pricing page (the Included Page). So, let's say your visitor went to the pricing page to look at Product A, then went back to your home page. You can have a campaign display info about Product A on your homepage knowing that the visitor is interested in that product already.    
View full article
Article Text Included in this article   Included in this article Overview Troubleshooting Steps   Overview The Content Recommendation Engine Bar is a great tool to get promoted content to your web visitors. However, there are times when you only want it to show up on certain pages, or you just want to exclude some specific pages where it won't be allowed to show up. You can make these configuration changes with the documentation here: Web Personalization (RTP) - How To Exclude or Include the CRE on Specific Pages. However, what happens if you set it up and it still displays in places where it shouldn't? This doc will show you how to address this trouble.   Troubleshooting Steps 1. In RTP, go to 'Account Settings' 2. Under the 'Domain Configuration', locate the 'Recommendation Engine' section. 3. Select whether  you want to 'Include' or 'Exclude.'     4. Check the 'Display (URL)' configurations to confirm they are correct.          
View full article
Issue There are discrepancies in the leads activity logs within Marketo, where the Email Delivered activity timestamp is sometimes recorded a few seconds before the Email Sent activity. This sequencing issue causes confusion for analytics teams, particularly when using external analytics platforms like Tableau, as the logical sequence would typically show that an email is sent before it is delivered. Solution Understanding email statuses and utilizing Campaign Run ID for analytics: The confusion arises from a misunderstanding of how Marketo logs email activities and the meaning behind the statuses Sent and Delivered.   Email Sent Status: In Marketo, when an email status is logged as Sent, it indicates that the email has been considered for sending or queued for sending. The status does not mean the email has been physically sent through the servers but rather is prepared to be sent. The logging of this event happens shortly after the email is queued, which could be almost instantaneous.   Email Delivered Status: The Delivered status is an acknowledgment from the SMTP (Simple Mail Transfer Protocol) infrastructure, signifying that the recipient's email server has accepted the email. This status is logged after the event has occurred and the email has been accepted by the remote server.   It is important to note that while both statuses are recorded after their respective events, they come from different systems within the email delivery process. This can sometimes result in the Delivered status being logged before the Sent status, although such instances should be rare. To correctly analyze and interpret the email activity logs, users should adhere to the following guidelines: Recognize that the timestamps for Sent and Delivered may not always be in the expected order due to the separate systems involved in logging these events. Focus on the Campaign Run ID for analytics purposes. This ID is unique to each campaign run and can be used to accurately reassemble the sequence of events, regardless of the order in which Sent and Delivered statuses are logged.
View full article
Issue Description You want to create a field that will grab the web page the form was filled out on and add this as a token in an alert that goes to sales when a form is filled out. Issue Resolution This can be achieved either through a Smart Campaign or the JS API code. The code is more efficient because it doesn't mean another trigger is active in your instance. Smart campaign: You'll want to create a smart campaign with Smart List - Fills Out Form and Flow - Change Data Value, [your field name], New Attribute is {{trigger.Web Page}} You would need to reference the trigger token in the alert email so the team knows what product page the end user filled out the form on. Code: (Embedded Form) This can be done with a hidden field. MktoForms2.loadForm("//app-**01.marketo.com", "***-***-***", 148,     function(form)     {         form.addHiddenFields({ LastFormURL : document.location.href })        }); The asterisks represent your company's Marketo data (your Munchkin ID and Marketo instance). Your developer will know what to do if s/he is already using the embed code. Code: (Marketo LP) In a Marketo LP, you will have to edit the template and put this at the end, before the </body> tag : <script> MktoForms2.whenReady(function (form) {     form.addHiddenFields({ LastFormURL : document.location.href }); }); </script>
View full article
Issue You may want to know which Salesforce fields a specific Marketo field is tied to as shown in this document. You will be able to see that the mappings are either not update or a few fields are missing that were created recently. Solution The Field Mapping that you are seeing under Admin -> Salesforce, as well as the mappings included on that export, are a historical log of how the mappings were set when the SFDC integration was originally implemented. Unfortunately, that page does not refresh when new fields are added, or when mappings are changed. We don't have any other tool that would allow us to export all of the field mappings in your instance as they are currently set either, so the best workaround for this is to check each of your fields within Admin -> Field Management. There is an idea in the Marketo Community specifically asking for this feature to be added and we would recommend that you add your vote to that so our product team sees that there is interest in getting this functionality added to Marketo in a future release.    
View full article
Use sample if you want to place a label above a group of form fields. Here's an example of the result: Note: Please ensure that you have access to an experienced JavaScript developer. Marketo Technical Support is not set up to assist with troubleshooting JavaScript. In that example, if you wanted to add the label above the "First Name" and "Company Name" fields, you need to first get the IDs of those fields. After you have the ID(s), change the highlighted code below to those IDs. You can then change the style or text in the label by editing the HTML in the "before()" function. <script type="text/javascript" src="/js/public/jquery-latest.min.js"></script> <script type="text/javascript">   $jQ = jQuery.noConflict();   $jQ(document).ready(function(){     $jQ("#FirstName").parent().parent().before("<div style='padding-bottom:20px;font-weight:bold;'>Personal Info</div>");     $jQ("#Company").parent().parent().before("<div style='padding-bottom:20px;font-weight:bold;'>Company Info</div>");   }); </script> Download Attachments: Label above form fields-JS.txt
View full article
Named Accounts (or Account Based Marketing) module is sold separately.   If you did purchase this module follow these instructions to create a new Named Account list.   Common issues when uploading a new list:   1. Getting the following error message: Total number of records exceeded Is this article helpful ? YesNo   Root cause:  Each account is eligible for up to 10,000 named account records. Contact your account manager to purchased an additional  package of records or remove old lists.     2. Getting the following error message: Your account is not enabled for uploading Named Account Lists. Contact your account manager for more details     Root cause: You didn't purchase the Named Accounts module or your account has misconfigured and this module is disabled - contact support.
View full article
Issue Description A recent email send resulted in a number of leads specifically blocked by Communication Limits, as seen within the Results or Lead Activity Log. What are the re-sending options? Issue Resolution The Marketo Application does not offer any automatic re-sending/rescheduling functions within the campaign. If communication limits are low, and records are blocked from being sent emails, you may need to adjust the limits or set the necessary programs or campaigns to ignore communication limits. Enable/Disable Communication Limits in an Email Program - Marketo Docs - Product Documentation Apply Communication Limits to Smart Campaign - Marketo Docs - Product Documentation - you would need to undo this process in this case. Even if the records were not sent the email because of Communication Limits, they would still be made members of the campaign or program.  If you were going to try to re-send these records that were blocked due to communication limits you could try this Filter combination: Member of Smart Campaign/Member of Program and Not Was Sent Email Those 2 filters will show you the members that were not sent the email, and then you could re-send them at a later time.
View full article
Issue User not able to see the "Global Reporting" feature within our Email Performance reports in Marketing Activities in non-default workspaces, as described in this product doc: - docs.marketo.com/display/public/DOCS/Report+Email%2C+Campaign+Performance+Across+Workspaces Solution The global reporting option is only available for reports in the Analytics tab and in Marketing Activities in the default workspace.  Reports located in other workspaces will not have this option.   Who This Solution Applies To Customers with Workspaces & Partitions
View full article
Issue You need to set up DKIM for deliverability with Marketo, but another system you use already has DKIM set up with the default m1 selector. Solution You can create a Support ticket to request a custom DKIM selector be created (usually m2) for use in the "From Email" field on Email assets. Let support know what selector you want to use, and the domain you're want it to apply to- this is the domain value used in email assets, so for example@company.com, the domain would be "company.com" This will allow your existing integration to utilize the m1 selector, and Marketo can have DKIM under another domain.
View full article
When making an unsubscribe page, there are a few things you should keep in mind: It is illegal to require a login for someone to be able to unsubscribe. You must offer an "unsubscribe from all" option.   Let them unsubscribe! While it's always sad to lose a subscriber, it is far better for someone to unsubscribe than for them to click the spam button or report your message as abusive. Your unsubscribe page should be as clear and easy to navigate as possible. If you offer a preference center, you must still include an unsubscribe from all option.      
View full article
Issue: I have a report subscription in my inbox, when I click on a link to get further information I get a 404 error in my browser.     Solution: Links in report subscription emails are set to expire for security purposes. By default, they expire 3 days after they are sent. You can customize the expiration time. Go to Admin and click on Login Settings.     Click on Edit URL Expiration.     You can change the default value of 3 to anything between 1 and 15.   Is this article helpful ? YesNo
View full article
Issue Description You have developed a Marketo landing page and enabled Personalized URLs (PURLs) for your records, but when people visit the PURL form pre-fill does not take place.   Issue Resolution When a person visits a PURL landing page, the form pre-fill checks their Munchkin tracking cookie to identify what values to populate for the form fields. If that person has a Munchkin tracking cookie associated to a known record in the database, it will pull and populate the information from that record. However, if this is the first time this person has visited a Munchkin tracked page or their browser is tied to an anonymous record, the pre-fill will not populate any information into the form. The customer/prospect will need to fill out a form or click on a tracked link in an email sent from Marketo. This will allow future PURLs that people visit going forward will have pre-fill populate as their cookie will be tied to a known record in the database.       The web page visit will be associated back to the know record for the PURL. Additionally, you can also use Person related tokens on the landing page and those will resolve. For examples having the token in the text that states {{lead.First Name:default=Default}} within the body of the landing page will populate with the expected persons first name for the PURL they visited. This is because the token generation goes through a different path on the back end for PURLs. Is this article helpful ? YesNo
View full article
Issue Issue Description Is there a limit as to how many domains can be added when adding domains to Marketo Admin > Email > SPF/DKIM?     Solution Issue Resolution You are able to add as many domains as you wish to the Admin > Email > SPF/DKIM.  The basic requirement is that you have control over the domain DNS.
View full article
Issue Description Is there any limit to number of engagement programs that can added to a Marketo instance. If yes, is there a way to increase this limit. Issue Resolution An instance is limited to 100 active engagement programs. Inactive engagement programs are not limited. Deactivate the engagement programs that are not in use under Setup tab of the program. Note: There is a finite resource for active engagement programs, as they inherently take more processing power and storage requirements. We reserve increasing the limit of active Engagement Programs for those use cases that have done all possible preventative steps to ensure that the 100 programs that are in use are properly utilized and necessary. Is this article helpful ? YesNo
View full article
Issue When retrieving result sets from the /rest/v1/activities.json end-point using a Paging Token, the result set returned by the API appears to be less data than what is in the Marketo UI. In this scenario, we're going to explore how and why Paging Tokens work when utilizing them in REST API calls. SCENARIO Say we wanted to grab all 'Send Email' activities (activityType = 6) that have occurred since 2024-04-12T12:00:00Z, and we're planning to pull these activities every two hours, and increment our paging token every two hours prior to making the /activities.json call to obtain the latest data. Current Time Apr 12, 2024, 8:00:00 AM (MST) == 2024-04-12T14:00:00Z What We Want 1. Retrieve all Send Email activities SINCE  Apr 12, 2024, 6:00:00 AM (MST) == 2024-04-12T12:00:00Z We would start by retrieving our Paging Token with the sinceDateTime parameter = 2024-04-12T12:00:00Z: /rest/v1/activities/pagingtoken.json?sinceDatetime=2024-04-12T12:00:00Z Our response would contain the nextPageToken representing the sinceDateTime: { "requestId": "1607c#14884f3e74e", "success": true, "nextPageToken": "RW6ZK46LKV36BMJ2QARX3BFZHQNHRVPPEW4IZVEELI45V2OH6RCA====" } We would then pass that nextPageToken into our GET /rest/v1/activities.json end-point, as well as our activityTypeId = 6 to target all 'Send Email' activities that have occurred since 2024-04-12T12:00:00Z. /rest/v1/activities.json?nextPageToken=RW6ZK46LKV36BMJ2QARX3BFZHQNHRVPPEW4IZVEELI45V2OH6RCA====&activityTypeIds=6 After paging through all of the results (now leveraging the returned nextPageToken from the /activities.json end-point to page through all results), we've returned 15,000 Send Email activities.      PROBLEM We know that, from our Marketing team, that we were expecting ~20,000 email sends since 2024-04-12T12:00:00Z. So why does the result set appear to be missing 5,000 records? Let's examine this further. 'Send Email' activities aren't committed to the Marketo database until the message has successfully been sent from our mail servers. Prior to that, the email is queued, awaiting it's launch to it's receiving mail server. This can present a delay from the time the email is sent, to when the activity is recorded to the Marketo database. For example, say there were two campaigns sending 10K emails each: First Campaign Send: 2024-04-12T12:30:00Z (30 minutes after our sinceDateTime token) Second Campaign Send: 2024-04-12T13:45:00Z (110 minutes after our sinceDateTime token, 10 minutes prior to when the call was made) While the first campaign send is most likely accounted for in the database (Send Email activities have been committed), Campaign #2 is still processing and sending out all 10K emails in the background. For this scenario, Marketo has only committed 5K out of 10K email sends to the database at the time the call was made. Without noticing the missing data, you repeat this process two hours from now, incrementing your sinceDateTime token by two hours as well, assuming you'll get all the new Send Email activities for the past two hours. This would now lead to you missing the 5K Send Email activities that were still being processed, but not yet committed to the database. SOLUTION The nextPagingToken returned in the /activities.json end-point is position based, and can only pull data that has been committed to the Marketo database, which inherently changes as records are being processed. If, for instance, you made the original /activities.json call at (Apr 12, 2024, 8:00:00 AM (MST) == 2024-04-12T14:00:00Z), and used the same sinceDateTime token 5-10 minutes later (Apr 12, 2024, 8:10:00 AM (MST)), you would now notice that campaign #2 has fully finished it's processing AND committed the 'Send Email' activities to the Marketo database with dateTime stamps less than Apr 12, 2024, 8:00:00 AM (MST). So, what's the best way to ensure you're retrieving all the data? Solution #1 Increment your sinceDateTime token based on the MAX(created_at) dateTime returned in the latest result set, rather than incrementing it based on an interval (every two hours). This would help ensure you're not missing records that were processing, but not yet committed to the Marketo database. Solution #2 If the data you're retrieving does not need to be live, we would recommend using the Bulk Extract API to pull this data at a lower frequency (such as twice per day 12AM & 12PM). This would greatly decrease the chances of missing records that weren't committed to the database.
View full article