Six Tips for managing the Marketo/Salesforce Revenue Machine.

Level 8 - Champion Level 8 - Champion
Level 8 - Champion

One of the first things you will discover when you start working In Marketo Engage is how much your success in delivering on your revenue goals depends on your shared processes with your CRM.  If you’re like me, and many other Marketo Engage experts, that CRM (Customer Relationship Management) system is Salesforce.  This is for good reason.  Marketo Engage was originally developed with Salesforce Sales Cloud integration at the core of its operations and this is an incredible advantage over other marketing automation tools.  



Salesforce and Marketo may be considered rival solutions in your organization.  Marketo Engage is mostly owned and managed by Marketing and Salesforce is owned and managed by IT or Sales Operations.  Salesforce is based on a relational database structure (Leads, Accounts, Contacts, and Opportunities as the core “objects” as they are called in Salesforce-speak) and Marketo Engage uses a more denormalized “Person” record for consolidating Person and Company data.   


To be successful, however, Marketo Engage and Salesforce should be considered one revenue engine if Revenue Operations teams (however they are structured in your organization) are to be successful.  If you think about the Revenue Machine as a car, then Marketo and Salesforce are key components of the car’s engine.  They are both critical to making the car function, and the car can’t function well without both systems working in harmony at their peak performance. 


This is why it’s important for Marketing Operations professionals to have a basic working knowledge of your CRM because so much of your impact depends on leveraging this relationship and following some basic rules of the road.  

Let’s talk about some of these rules.  These are six things to consider in the management of the complete Marketo/Salesforce revenue machine.  


  1. Sync Schedule.  

When Marketo and Salesforce are connected and the sync is enabled, Marketo will check for updates from Salesforce and will send updates from the Marketo database to Salesforce every 5 minutes.  As Salesforce syncs leverage the API as all other RevTech integrations do, leveraging this regular sync is the most efficient use of API calls, as API requests during the sync are executed in bulk.  The “Sync to Salesforce” and “Sync to SFDC campaign” flow steps, conversely, are less efficient as each flow step consumes a single API call.  


  1. Database Flow

Persons (Marketo core records) that are synched from Marketo and created in the Salesforce database are always created as a Lead record in the CRM.  A “Lead” record essentially represents a pre-qualified Account, Contact, and/or Opportunity that gets qualified through a Salesforce lead process.  Leads are assigned by Salesforce out-of-the-box using Lead Assignment Rules defined by your Sales Operations team that assign leads to either Users (ex: sales development reps) or Queues (buckets where multiple sellers can “fish” for Leads).  


User information can be used to personalize assets and send alerts from within Marketo Engage.  Queues are unusable by these workflows and are treated as “Owner is blank” from within the Marketo Engage database. 


When a Lead has been qualified by a member of the sales organization, they will “convert” this Lead, which will create/update one of three downstream records in Salesforce and relink any activities, campaign influence, and/or custom object connections to the downstream objects (tables if you’re using database-speak).  These include:

  • Accounts:  Company-level data. 
  • Contacts:  Person-level data. 
  • Opportunities:  Deal and forecast-level data.  

A Lead is not deleted by Salesforce in the conversion process but is instead hidden from the User Interface and continues to be used for reporting (for example, the standard “Leads with Converted Lead Information” standard report).  However, the record reference for the lead will always redirect someone to the contact that the Lead was converted into.  


When the Marketo Sync receives these updates during the next sync, the SFDC ID (representing the 18-character API-friendly ID value for the record) and the SFDC Type [Person] field will update to reference the Contact record.  You will see these updates in the person’s activity log during the sync when these changes are recorded.  


As a result, it is important for you to understand that any Person or Company data you sync from the Marketo database should be created in at least two places in Salesforce when you make a new field request.  The first location is on the Lead record itself, and the second location is the converted object record (Account for company data and Contact for person-level data).  



  1. Database governance. 

Always consider, for any data that you are synching to/from your CRM, that the CRM is the source of truth for data definitions, field types, and governance rules for who/what has the ability to create and update records.  Fields that Marketo and Salesforce share (which are any fields that are not Marketo-Only) should always be created by your Salesforce administrator.  


Salesforce governs visibility (will the field be synched) and “CRED” (Create, Read, Edit, Delete) access to fields through Field-Level Security (“FLS” for short) that is assigned to the profile that your Salesforce administrator gives to the Marketo Sync User.  You will need to work with your Salesforce administrator to understand and communicate what FLS access to fields that Marketo requires.


It is not advisable for Marketo to have full “System Administrator” access to Salesforce (this was an early practice, but is problematic).  There are several reasons, including: 

  • First, as Salesforce has become more of an enterprise system governed more and more by Information Technology teams, many of the fields contained on Salesforce records are irrelevant to the Marketing database.  You want to ensure that fields exposed to the Marketing users in Marketo are relevant for building Smart Lists and triggers.  More fields = More confusion for people building Smart Lists. Chris_Willis1_3-1684016825505.png
  • Second, each field and custom object that Marketo syncs from Salesforce presents an administrative load on the system which impacts both system and API performance.  The more synched fields that Marketo has to manage will translate into slower performance, which will impact core operations and can impact your speed-to-lead.  

A common rule of thumb is to not have more than 300 fields synched between Marketo and Salesforce to optimize performance.  If you are encountering performance issues, working with your Salesforce administrator to pare down these fields via FLS will be a useful exercise.  


Lastly, on this topic, the Salesforce validation rules that exist for record creation and updates will be enforced by Salesforce upon your Marketo-synched records as they are enforced on a user making updates on the Salesforce interface (or “page layouts" in Salesforce-speak).  Error messages when these validations are not met and Salesforce disallows a record create/update will appear in the activity log for the offending Marketo person record.  


  1. What is synched

Understanding what is synched between Marketo and Salesforce and when they are synched is critical to tuning your programs and your operations.  


The decision to sync a record is based on whether a record/field is created or updated in the time between the previous sync and the current sync.  This “modified” check is conducted on each field within the synched objects in both Marketo (for person records and program members for synched campaigns) and Salesforce (updates to Lead, Contact, Account, Opportunity, and synched Custom Objects).  There are a couple of caveats that should be considered with this knowledge:


First:  If Marketo is synching unnecessary fields that are getting updated frequently within the Salesforce database, these updates can impact performance as irrelevant record updates can get synched as a result of back-end Salesforce operations.  If you are encountering performance issues from your Marketo/Salesforce sync, you can request a report from Marketo Support for the top Salesforce field updates that are triggering record syncs.  This report can then be leveraged by you and your Salesforce Admin to hide Salesforce fields from the Marketo Sync via Field Level Security, which will reduce these performance bottlenecks.  



Second:  If you are synching Custom Object data to your Marketo database, it is important to note that for the Marketo Sync to see the relational linkage between the person (who will be a Lead or a Contact in the Salesforce database) and the Custom Object data (for example, a product entitlement), a modification event has to occur on the custom object record that’s being synched.  


If a Salesforce object relationship to a Marketo person, for example, relies on two levels of joins (for example: a custom object relationship for an Account relating to the Contact) and the custom object data is not updated, the relationship cannot be reflected in Marketo.  This can happen when product entitlement data lives as an Account relationship and a Lead who is identified by sales as a customer contact is converted.  If the creation of the new contact does not enact an update on the custom object data in question, then the sync will not recognize the custom object relationship and it won’t be added.  


  1. Order of Operations.  

It’s important to note the order of operations for Salesforce records that are synched during the 5-minute sync, as this can impact your operations if you aren’t accounting for this data order.  The Salesforce sync will sync on an object-level basis and sync data one Salesforce object at a time. 


The object order that sync updates are made is as follows:

  • Lead
  • Contact
  • Account
  • Users (if user data is synched)
  • Opportunities
  • Campaigns/Programs
  • Synched Salesforce Custom Objects
  • Activities 

It is important to note that if you are evaluating a data value change coming from a record change in Salesforce, you must understand when that record change gets recorded in the Marketo database and its relation to other data value changes that you are tracking based on the Salesforce object the data resides on.  You can run into issues if you aren’t accounting for this precedence in data sync operations when you are managing your operations in Marketo.  


  1. Field Syncs:  

If a new field has been added by your Salesforce Administrator and made visible to the Marketo Sync User via FLS, then Marketo will create those fields in the Marketo Database and link them to the person based on the API names for the fields in the Salesforce database (Note:  all Salesforce custom fields are suffixed with __c for standard record fields and with _pc for contact fields on Person Accounts if they are enabled in your Salesforce system).


If, when synching a new Salesforce field to the Marketo database with the same display value and a different API field name, Marketo will not recognize the field as being a match and will create a duplicate Salesforce-synched field in the database with the suffix of "(L)" for Salesforce Lead fields, "(C)"  for Salesforce Contact fields, and "(A)" for Salesforce Account fields.  


If you intend for these fields to be merged, this action will require a Marketo support case.    


If we follow these guidelines and work with our Sales Ops teams and Salesforce Administrators as partners, we will realize that these key pieces of the revenue machine are more complementary than competing and foster a smooth-running revenue machine for our organizations.  I’m sure that I can add more information to this blog, but these basics will go a long way in helping you to succeed.