Marketo is our marketing automation platform used for email marketing, lead management, and program management.
Visit the Marketo Tech Stack Guide for more information around provisioning, integrations and system diagrams.
When any lead/contact is created in SFDC, it will automatically sync and create in Marketo - nothing is held back. Likewise, when a lead/contact is deleted in SFDC, it will delete in Marketo as well.
Alternatively, Marketo does not automatically push all records to SFDC and a deleted record in Marketo will not delete in SFDC unless specifically told to.
A lead will sync from Marketo to SFDC in these scenarios:
Inquiry
statusMQL
status and reach 100 pointsSync to SFDC
Data is shared between the two via the Marketo User Permission Set with either Read
or Read/Write
permissons. Accounts fields by default are Read Only
. Here are quick links to review them:
Marketo also can create and edit SFDC campaigns. The Active
checkbox must be checked in order for Marketo to be able to map to that campaign. Go here for campaign set up directions.
When large updates are made to an SFDC field value, they could cause a sync backlog back to Marketo. To check the backlog, go to this page and select the object you want to review and click Get Stats
. Marketo>SFDC is a push count, while SFDC>Marketo is considered Pull. You must be logged in to Marketo to view this information. Backlogs clear automatically, they are slower during working hours due to system usage (Marketo's user base, not just GitLab), but the sync speeds up off-hours and on weekends.
Because certain processes create records with a blank email address in SFDC we want to avoid having those records flowing into Marketo since they are not actionable and the database has increasing costs per the number of records.
Together with Sales Systems, we implemented a custom formula field called Block_Marketo_Sync__c
. When the field is checked, records will be blocked from syncing by the custom sync rule. Likewise, when the field is unchecked, it will flow to Marketo.
For the sandbox, we have a different set of syncing rules.
To avoid or clear SFDC backlogs, multi-thread sync is availible to use in Marketo. It enables the use of multiple lanes of data flowing from SFDC to Marketo, greatly increasing the sync rate depending on the resources availible on the Marketo servers. Each record in Marketo is marked with a value between 1-9
on the field Marketo Thread ID
based on the first letter of the email address. Records will be synced and distributed on threads based on the value of Marketo Thread ID
.
Letter | Value |
---|---|
A B | 1 |
D E F | 2 |
G H I | 3 |
J K L | 4 |
M N O | 5 |
P Q R | 6 |
S T U | 7 |
V W X | 8 |
Y Z C | 9 |
NB: This feature is not always-on and only Marketo Support can enable it. A support ticket must be opened with 7 days before planning any massive updates from SFDC or at any time there is a significant backlog
To enable, you must create an issue 7 days in advance with the Marketing Operations team and include the following, so that we can open the ticket with Marketo.
We do have a sandbox to work in for Marketo. The sandbox is used for training, creation of API links and overall testing before we move to production. There is not a way to promote
a program from the sandbox to Prod, so building programs in the sandbox first is not always required. Guidelines for when to build in the sandbox is TBD, but for custom API and webhook integrations, it is highly recommended.
If you'd like access to the sandbox, please fill out an AR.
To limit the number of leads that pass from SFDC staging to Marketo Sandbox, we have instituted a custom rule that will only allow leads to sync from SFDC Staging to Marketo Sandbox IF Marketo Sync
= TRUE. This is opposite logic than what we have for production.
Sales Systems refreshes the SFDC staging environment periodically. When this occurs, there are several steps to take to reconnect it to the Marketo sandbox outlined on that page.
Nearly all the forms on our website (about.gitlab.com
) are Marketo embedded forms. Marketing Operations is responsible for maintaining existing forms and creating any new forms. If you need a new form created, please open a form creation issue.
Form documentation can be found here. It contains all of our current forms, as well as standardized country and state picklists.
Translated Forms Available: Spanish, French, Italian, Korean, German, Portuguese, and Japanese. These are global forms, go to the Design Studio > Forms > Translated Forms. It is important to use these (and not clone) as they influence the localization segmentation of Language Preference
.
If you require a new language or need a new form, please gather the translations and then create an issue. Due to resource constraints, we are only creating new forms for P0 countries.
All forms should follow these guidelines:
Country
field label should be Country/Region
State/Province
only visible when Country
= United States
or Canada
or Australia
; the visibility rule dynamically displays Province
when Canada
is selected or State
when United States
or Australia
is selectedCity
is only visible when Country
= Ukraine
opting in
to communications via emailCountry
= Ukraine
there is an additional checkbox for the submitter to confirm they do not belong to the Crimean region of the UkraineIf you are collecting home addresses for direct mail campaigns, you must include the following language on the landing page or form. Additionally, you must set up a deletion campaign in Marketo to remove their address information once you have sent the item. Please also ensure the vendor we are using to ship the items also deletes this from their records. By giving us your home address, you are giving us permission to mail items to your home. We will not use this data for any other purposes.
The forms on about.gitlab are embedded Marketo forms. Any changes to the fields, layout, labels and CSS occur within Marketo and can be pushed live without having to make any changes to the source file on GitLab. When needing to change or embed a whole new form, please open an issue using the form_request
template.
If you are having trouble seeing a Marketo form, please reference this page.
Each Marketo form should push an event after successful submission to trigger events in Google Analytics. We use the following event labels to specify which events to fire.
demo
for static demos on /demo/
and /demo-leader/
webcasts
for forms on any page in /webcast/
trial
for the form on /free-trial/
resources
for forms on any page in /resources/
events
for forms on any page in /events/
services
for form on /services/
sales
for form on /sales/
public-sector
for forms on /solutions/public-sector/
mktoLead
legacy custom event label used on Newsletter subscription form submission events. Currently used for primary, security, and all-remote newsletter form submissions.We add the following line above return false
in the form embed code. Please update the event label from demo
to reflect the appropriate form completion.
dataLayer.push(
{
'event' : 'demo',
'mktoFormId' : form.getId(),
'eventCallback' : function()
{}, 'eventTimeout' : 3000
});
Starting in November 2022, teams within Marketo will transition to utilizing the asset expiration feature added to the product in early 2022 as a way to declutter our expired landing pages and no longer relevant smart campaigns. Detailed instructions on this process can be found in our handbook on the Campaigns and Programs page.
Data and engineering teams have developed integrations to bring data related to in-product customer and trial usage to Marketo.
[CDB]
[PQL]
There is a set limit of 250,000 records that can be processed through a given smart or email campaign. If the smart campaign smart list is set to update or email over 250,000 records, it will not run and will be aborted
. This is in place to prevent accidental mass updates and emails. If you need to run a campaign over that limit, reach out to MarOps.
There are several workflows that clean the Country
&/or State
fields to ensure the value meets required Salesforce format. States should be spelled out, not using abbreviations (ex. CA should be California). If a Country
&/or State/Province
standardization does not match SFDC exactly, the lead will not sync. If a new standardization is needed, please open an issue in the Marketing Operations project. If a country/state is updated in SFDC, the customersDOT YML file will also need to be updated to prevent sync issues.
All of the standardization smart campaigns are contained in:
Marketing Activities
-> Operational - Do not edit
-> Data Management
-> 01 Data Management
-> 04-Normalize Data
A Marketing Qualified Lead is a lead that has reached a threshold of 100
points, based on demographic/firmographic and/or behavioral information. The MQL Scoring is detailed below and is comprised of various actions and/or profile data that are weighted with positive or negative point values.
For additional information, visit the lead lifecycle page](/handbook/marketing/marketing-operations/lead-lifecycle/#lead-lifecycle).
A Lead/Contact will be allowed to re-MQL if they are in a Recycle
status and reach the MQL threshold again.
The number of times they MQL
will be counted with the MQL Counter
field. The Initial MQL DateTime
contains the very first time a prospect reached the MQL threshold. MQL Date
will be overwritten to be the most recent date that a lead has reached the MQL threshold.
When a lead is set to Recycle
, their Behavior Score
is reset to 0. Their Person Score
is reset to the value of the Demographic Score
. Additionally, a person who has reached MQL
in the past, is given an additional score of +20
when they are reset to Recycle
and take an action to increase their behaviour score. If a lead was Accepted
before it reached the MQL threshold, and is then set to Recycle
within 30 days, the lead's Behavior Score
will reset to the value it was while in Inquiry
when they take an action, the Demographic Score
will be re-run and their overall Person Score
will be the sum of those two values.
When a lead Re-MQLs
from Recycle
to MQL
, their Recycle Reason
field is set to Null
, but that Recycle Reason
value is preserved in the field Previous Recycle Value
on the lead or contact. That field is set by Marketo only. The Recycle DateTime
only updates the first time. When a lead re-reaches an MQL
status, they are not re-routed by LeanData for round-robin, they stay in their original owners name.
Follow the workflow mural to see the lead lifecycle. Notice you cannot go backwards in status to Raw
or Inquiry
from a later step.
The lead scoring model is a 100 point system in order to MQL. Positive and negative points are assigned to a record based on their demographic and/or firmographic information, and their behavior and/or engagement with GitLab marketing. Their Person Score
is the sum of their Behavior Score
and their Demographic Score
. The Person Score
must reach 100
in order to MQL, and their Behavior Score
cannot be 0
.
For account scoring, visit the DemandBase page.
There is a flow that runs everynight to reset leads that have gone negative back to 0
.
Some leads are exluded from scoring if they:
@gitlab.com
email addressDisqualified
or Bad Data
student
, personal
, test
and similarProspect Share Status
= Sending to Partner
, Accepted
, or Pending
)Based on certain criteria, a lead may auto-MQL. The scenarios are listed below:
Setup for Company/Use = TRUE
Contact Us
, Professional Services
or Renewal
formsFollow Up Requested
Behavior scoring is based on the actions that person has taken. The cadence of how often they can be scored is listed below. For campaign scoring, there must be a success in order to capture the score, those below are marked with a *. Refer to the programs page and progression statuses to see what constitues a success
.
Action | Campaign Type | Points | Token | Type | Schedule/Flow Limit |
---|---|---|---|---|---|
Registered | Registered, Conference > Meeting Requested |
+10 | {{my.Registered}} | Trigger | Everytime |
Follow Up Requested | Follow Up Requested Conference > Meeting Attended |
+100 | {{my.Follow Up Requested}} | Trigger | Everytime |
* Program High | Workshop, Self-Service Virtual Event, Webcast, Executive Roundtables |
+30 | {{my.Online - High}} | Trigger | Everytime |
* Program Med | Sponsored Webcast, Speaking Session, Owned Event, Conference > Visited Booth |
+20 | {{my.Online - Med}} | Trigger | Everytime |
* Program Low | Vendor Arranged Meetings, Conference > Attended |
+10 | {{my.Online - Low}} | Trigger | Everytime |
* Content - High | Analyst Reports | +45 | {{my.Content - High}} | Trigger | Everytime |
* Content - Med | Gated Content | +15 | {{my.Content - Med}} | Trigger | Everytime |
* Content - Low | Content Syndication | +5 | {{my.Content - Low}} | Trigger | Everytime |
* Survey - High | Simply Direct | +45 | {{my.Survey - High}} | Trigger | 1/day |
* Survey - Med | (None Defined) | +30 | {{my.Survey - Med}} | Trigger | Everytime |
* Survey - Low | Googleforms, Default |
+15 | {{my.Survey - Low}} | Trigger | Everytime |
* PathFactory | Consumes PF content | +10 | {{my.Content - High}} | Trigger | Everytime |
* Inbound - High | Contact Request, Renewals, Hand Raise PQL In-app Health Check |
+100 | {{my.Inbound - High}} | Trigger | 1/day |
* Inbound - Med | Inbound form, not above | +60 | {{my.Inbound - Med}} | Trigger | 1/day |
Drift - High | Drift Interactions with Meeting Scheduled | +100 | {{my.Drift - High}} | Trigger | 1/day |
Drift - Low | All other Drift Interactions | +10 | {{my.Drift - Low}} | Trigger | 1/day |
* Trial | SaaS, Self-Managed, Subscription Portal |
+65 | {{my.Trial}} | Trigger | 1/day |
Subscription | Fills out Subscription Form | +5 | {{my.Subscription}} | Trigger | 1/week |
Visits Key Webpage | /pricing, /get-started , /install , /free-trial , /livestream |
+5 | {{my.Visits Key Webpage}} | Trigger | 1/day |
Visits Mult Webpages | 7 pages in 1 day | +5 | {{my.Visits Mult. Webpages}} | Trigger | 1/ 3 days |
Web: No activity in 30 days | No web activity, not created in last 30 | -10 | {{my.No Web Activity}} | Trigger | 1/month |
Web: Visits Low Value | /jobs |
-10 | {{my.Visits Low Value Webpage}} | Trigger | 1/day |
Email: Unsubscribed | Unsubscribed from Email | Score Reset | {{my.Unsubscribed}} | Trigger | 1/month |
Email: Bounce | Email Hard Bounces | -20 | {{my.Bounce}} | Trigger | 1/month |
These are boosters to scores that occur when a special action takes place above the traditional action above.
Action | Description | Points | Token | Type | Schedule/Flow Limit |
---|---|---|---|---|---|
E-Book Booster | Lead is created with Initial Source of Gated Content - Ebook |
+15 | {{my.Booster}} | Trigger | Once |
Demo Webcast Booster | Attends (or On-Demand) demo webcast | +15 | {{my.Booster}} | Trigger | 1/day |
PF Demo Booster | Consumes PF content that is a demo | +35 | {{my.Demo PF Booster}} | Trigger | 1/day |
PF Engagement Booster 1 | Engagement Time > 2 minutes < 4 minutes | +10 | {{my.Content Boost 1}} | Trigger | Everytime |
PF Engagement Booster 2 | Engagement Time > 4 minutes | +15 | {{my.Content Boost 2}} | Trigger | Everytime |
BrightTalk Engagement Booster 2 | Total Minutes Viewed > 4 minutes | +15 | {{my.Content Boost 2}} | Trigger | 1/day |
PF Fast Moving Buyer | Becomes fast moving buyer | +10 | {{my.FMB Booster}} | Trigger | 1/month |
LinkedIn Form Fill Booster | Fills out LinkedIn Lead Gen Form | +30 | {{my.LinkedIn Booster}} | Trigger | Everytime |
Re-MQL Score | Status is Nurture,user takes an activity that increases behaviour score MQL Counter >0 |
+20 | {{my.ReMQL}} | Requested | 1/month |
Trial + Action | Success in program within 40 days of starting a trial | +20 | {{my.Trial plus Action Booster}} | Trigger | 1/month |
For Job role/function and seniority descriptions can be found here. As of February 2023, there is a 70 pt limit on demographic scoring that applies to both demographic and person score.
Action | Campaign Type | Points | Token | Type | Schedule/Flow Limit |
---|---|---|---|---|---|
Setup for Company/Team Use | Self-Identified as using for company or team in the product | +40 | {{my.Setup for Company}} | Trigger | Once |
Business Email Domain | Has a valid business email address | +20 | {{my.Business Domain}} | Trigger | Once |
Generic Domain | Contains generic email domain | -10 | {{my.Generic Domain}} | Triggered | Once |
Technology - High (Not Live) | See tech here | +20 | {{my.Tech - High}} | Batch / Nightly | Once |
Technology - Low (Not Live) | See tech here | +10 | {{my.Tech - Low}} | Batch / Nightly | Once |
Seniority - High | Find descriptions here | +20 | {{my.Seniority - High}} | Trigger on creation or Update to Title | Once |
Seniority - Med | Find descriptions here | +15 | {{my.Seniority - Med}} | Trigger on creation or Update to Title | Once |
Seniority - Low | Find descriptions here | +15 | {{my.Seniority - Low}} | Trigger on creation or Update to Title | Once |
Seniority - Negative | Find descriptions here | -10 | {{my.Seniority - Negative}} | Trigger on creation or Update to Title | Once |
Function - High | Find descriptions here | +20 | {my.Function - High}} | Trigger on creation or Update to Title | Once |
Function - Med | Find descriptions here | +15 | {{my.Function - Med}} | Trigger on creation or Update to Title | Once |
Function - Low | Find descriptions here | +10 | {{my.Function - Low}} | Trigger on creation or Update to Title | Once |
Function - Negative | Find descriptions here | -20 | {{my.Function - Negative}} | Trigger on creation or Update to Title | Once |
Country - Tier 1, Tier 2 | Country = Tier 1, Tier 2 | +5 | {{my.Country - P0, P1}} | Trigger on creation or Update | Once |
Key Account | Key Account = True | +20 | {{my.Focus Account}} | Trigger on creation or Update | Once |
Marketo segmentations are used similar to a smartlist, but they are permanent and can only be changed by marketing ops. They are used to create dynamic content (emails and landing pages) and are used for faster processing of lists. Segmentations are constantly running in the background in Marketo, so they never need to be refreshed for current numbers. We can only have 20 total segmentations in Marketo. Segmentation criteria waterfalls down based on the order of the segment lists that make up the segmentation. You can only be in one segment of a segmentation.
The following segmentations that are approved and live.
Based off of guidance on Buyer Persona page.
Status = NULL, Inquiry or Raw
OR (Status = Recycle
AND Person Score < 75
)Status = MQL, Accepted or Qualifying
OR (Status = Recucle
AND Person Score > 74
)Status = Qualified
OR 1 Open Opportunity
OR Has an Open Opportunity
Current Customer = TRUE
OR Status = Web Portal Purchase
OR Is Paid Tier = True
Disqualified or Bad Data
Complete list of priority countries as found here.
Localized email footer - This snippet can be applied to localized emails to automatically include the translated unsusbcribe language. The unsubscribe language will be localized if the recipient has a known Preferred Language
. If they do not have a preferred language on file, the footer will be in English.
To use the Localized email footer snippet in an email:
Replace with Snippet
, then select Localized email footer
and click Save.Delete
. You should only see the unsubscribe language once now.To test the snippet, click Preview
, then select View by: Segmentation
. Select "Language Preference", then the language you would like to preview. You will see that the unsubscribe language changes based on the language you select.
Trust Logo snippet - This snippet is used to display approved customer logos. It is typically used on thank you pages, but can be used on landing pages as well. The snippet will display when the Trust Logos
section of the landing page is toggled on. Only Marketing Operations should edit this snippet based on direction from the customer advocacy team.
The instructions below are for MOps Admin users.
All images must be black or grayscale and sized to 50px high x no more than 110px wide. You can use this template in Canva to size the image. Marketo rejects .svg files downloaded from Canva, so it will be easiest to save the file as a .png.
The template has space for 14 logos. If you add logos, you should remove an equal amount. The customer advocacy team should provide guidance on which logos to update.
Add the sized images to the Design Studio. The image will look distorted in the preview because the preview shows larger than the size of the image. It will be fine on the page. Copy the link for each logo onto a separate document to make it easier for yourself when editing the html.
We have a TEST trust logo snippet available. It is advised that you should make your changes on the test snippet first to view them and gain approval from the customer advocacy team before making changes to the live snippet. Changes on the live snippet will be applied to all live landing pages. You can view how the changes look on this test thank you page. The editing instructions below are for both the test snippet and the live snippet.
Create a draft of the Trust Logo snippet (or the test snippet if you are just getting started on the updates). Click on HTML to edit the snippet. The formatting for the snippet is controlled by the landing page template, so the snippet itself doesn't look good.
Click on "HTML" to make your edits. Copy this code:
<a href="INSERT LINK TO CUSTOMER CASE STUDY" target="_blank"> <img src="INSERT LINK FROM DESIGN STUDIO" alt="ENTER NAME OF COMPANY logo" /></a>
Place it just before the </div>
at the bottom of the html and replace the text in caps as instructed. The alt text should not be all caps. This will add the new logo to the end of the list. If you would like it in another location, place the code where you would like the logo to appear.
After you have updated the code, click Apply. Once auto-save completes, you can close the snippet. Then, Approve the draft and select "Update all". "Update All" will add the snippet to all approved assets and all draft assets. It will not auto-approve draft assets. Details about the No-Draft Snippet updates can be found in the Marketo documentation.
Field Name | Definition | OK to send? |
---|---|---|
Valid | Verified as real address | Yes |
Invalid | Verified as not valid | No |
Disposable | A temporary, disposable address | No |
Accept all (Unverifiable) | A domain-wide setting (learn more) | Yes/No |
Unknown | The server cannot be reached | No |
ABM lists are built by request for the Field Marketing and Marketing Program team to target & send emails/invitations to accounts deemed to be high priority by Sales. You can find these lists in the DMA folder in the Marketo Database. The MktgOps team is responsible for creating & maintaining these lists.
If a new ABM list is needed, please open an issue using the Target list issue template and tag marketing ops.
The Geographic DMA (direct marketing area) were built for the Field Marketing and Marketing Campaigns team to target & send emails/invitations related to Field &/or Corporate marketing events. The MktgOps team is responsible for creating & maintaining these lists. You can find these lists in the Database
of Marketo in the Geographic DMA List
Folder.
If a new DMA list is needed, please open an issue in the Marketing Operations project & utilize the DMA_request issue template.
The Field Marketing and Marketing Campaigns teams use targeted email lists as a tool when pursuing specific regions, sectors or companies. Email list requests must be submitted using this template. From there, the campaign managers or marketing ops will build or review the list
If you need a list export, please fill out an export request issue.
A few users have permissions to export, they should follow proper data management procedures and avoid downloading PII for data analysis.
Marketo Sales Insight (MSI) is used to help give SFDC users visibility into the different actions Marketo is taking, and user actions through Marketo. Users can use this intelligence to have more meaningful conversations with prospects and also priority their leads based on score. You can read more on Marketo's docs page.
The MSI tab can be placed on Leads, Contacts and Accounts page layouts. If you do not see it, or want access to it, create a sales systems issue.
You can also find MSI in a tab in your SFDC instance - click the +
icon on your main SFDC banner and find Marketo
. On that tab you will see an aggregate view of MSI.
There are a few main components to MSI:
This tab shows a timeline of the most recent activity of a person. It shows ALL
upcoming email campaigns and events (NOTE: This contains ALL upcoming emails/events, not just the ones sent to that prospect). In the timeline you can see web activity, email opens/clicks, and intersting moments. You can click into the lead timeline to see the specifics of each action. You will also see their overall score and a graph of the changes in the last 30 days. See screenshot below:
Interesting moments are captured when a milestone is reached, usually when a person attends an event, program status changes or they fill out a form. SDRs use the Last Interesting Moments
field in their lead views to quickly see what the last action the prospect took before becoming an Inquiry or MQL. If you would like an intersting moment added for a certain activity, reach out to Mops to have them build it for you.
For additional information, visit this page
This tab shows all of the web activity of a cookied user in this view and includes the referring page. For lead/contacts it shows the activity for that particular person, for Accounts it shows activity for all contacts related to that account.
Use this tab to see what the most recent score changes are. This is helpful to see all the different activities the person took to achieve the score they have. The campaign that caused the scoring can be cross referenced to the scoring rubric above.
This tab shows all the emails sent to that specific person, the date and check boxes for if they opened or clicked.
You can add people to your watch list to keep a closer eye on them. You can access that watchlist by clicking the glasses next to email
. Quick actions currently are not configured, but in the future may be used to add prospects to campaigns or to send an email via marketo.