Back when I was dating, I had a list of ideal features and qualities that I hoped to find in a spouse someday. Personality traits, family values, life experience…those sorts of things. This list helped me think more intentionally about who I wanted to end up with and gave me an ideal to pursue.
When you were window-shopping marketing automation platforms, you probably had a similar list. Instead of personality traits, you considered price point, and instead of family values, you more likely thought of technical capabilities.
If you’re like many modern marketers, the ability of your marketing automation platform to talk to your CRM was probably (hopefully!) high on that list – and maybe even one of the reasons you ended up with Marketo.
The Marketo-Salesforce integration is one of the most attractive and useful qualities of the Marketo platform tool. Built as a native integration, the bidirectional and controllable sync of the two platforms equips marketing, sales and others that play a role in the customer journey to work from a shared set of information.
Marketo and Salesforce together help you understand the digital body language of a lead and how it relates to demographic and firmographic data. Together, they can help you take action on the analytics that result from the marriage of the two systems. The integration is key in marketing and sales alignment, in transforming marketing into a profit center, and in empowering marketing to do smarter initiatives.
So, let’s dive into some important topics to know about your Marketo-Salesforce integration!
Click to jump to a section:
Related: Our MarTech consulting tackles every challenge you have!
Understanding the sync
There are a few things that you should understand about the sync and how it works between these two platforms:
- Marketo connects to Salesforce via the API
- Marketo downloads all new and updated Salesforce records based on SystemModstamp (meaning, it “grabs” anything that has been created or updated since the previous sync based on the Last Modified DateTime)
- Marketo updates existing Salesforce records with information updated in Marketo
- Conflict resolution: changes in Salesforce take precedence
- The interval between syncs is ~5 minutes (by default)
- New records in Marketo will NOT be sent to Salesforce unless explicitly told to via Smart Campaigns or Program-Campaign Sync
- The standard sync speed is approximately 10-20k records per object per hour
- Changes to records after the sync has started will have to wait until the next sync cycle
Two Key Things To Know
This integration is a vital part of your marketing ecosystem! But here’s two crucial (and often overlooked) things to know.
The setup is easy, but underlying processes are not
Before we get too deep and dirty into the steps of the setup, I always like to start the conversation with a brief overview and comparison of the two platforms and their data models, as well as what is possible in the integration.
Salesforce is a CRM (Customer Relationship Management) platform that allows you to understand who your clients and potential customers are. It can send emails, but it’s not a marketing automation platform like Marketo.
On the other hand, Marketo is a terrible CRM. This is why you need both systems. Together, they make an excellent couple.
You want Sales and Marketing to align and work together. To do this, their systems need to integrate. Integrating Salesforce and Marketo unlocks their potential.
But, for the integration to work best, you also need effective lead management in place and an agreed-upon, enforceable process to best utilize all the data flowing between systems. The data itself is only a small part – it’s what your teams do with it that matters most!
One vs. Two
Some data “objects” from Salesforce can be read and edited (bi-directional) from Marketo, while others can only be read (one-directional).
An object is kind of like a tab on a spreadsheet – a bucket that holds data (examples include Accounts, Leads, etc.). Some of these can be written to and read, while others Marketo can only “read” or see the data.
This integration is NOT a set-it-and-forget-it item
While it doesn’t need a lot of ongoing maintenance, your integration is definitely something that you’ll need to tend to over time.
Sync errors occur, but both tools also continue to improve in their functionality, and your marketing maturity will hopefully only increase, so you’ll want to keep a good pulse on the state of the systems. There’s also a lot of neat “bonus”-type features you can leverage your integration to assist with, like advanced lead lifecycle reporting and triggering off different Salesforce data points.
How does Marketo integrate with Salesforce?
Marketo provides step-by-step instructions that are very upfront and clear!
However, there are a few key items to focus on while you go through setup: Database Alignment, Salesforce Hierarchy, Lead Routing, and Data, so let’s touch one each now:
The first decision you have to make is how your Marketo and Salesforce databases are going to align. There are two possibilities:
- Full database sync: Both databases will have all of the same data. This is best practice and our recommendation. It eliminates the risk of duplication and ensures transparency in the funnel. It also allows you to easily campaign sync.
- Partial sync: This utilizes a lead lifecycle approach and the lead sync flow step. With this sync, you only put Sales-ready leads from the Marketo database into the Salesforce database, meaning that Sales only sees leads they should be working. This sync option has the potential to create duplicates.
A few things to note when planning your sync:
- People created in Marketo have to be explicitly synced to Salesforce
- Leads/Contacts created in Salesforce will be automatically synced to Marketo if Marketo can access them
- Once synced, records are regularly updated by the sync (bidirectional)
- Marketo will not create duplicates as long as an email address exists on the record.
Next, consider the impact of your Salesforce setup in terms of profiles and hierarchy – thinking in terms of what Marketo can interact with. Marketo should be set up with close to System Admin rights and at the highest level of your Salesforce role hierarchy to ensure that it can see everything in Salesforce.
Marketo can only write to the Lead, Contact and Campaign objects, but it can read from the Account and the Opportunity objects. Pay attention to the integration documentation from Marketo to ensure that your Marketo sync user is configured properly to eliminate risk of sync errors.
Related: Our Salesforce CRM consulting services!
Lead Assignment & Ownership
Now, think about the way you are using lead assignment roles and ownership in Salesforce. How you’ve decided to sync your databases will impact this.
If you’ve decided to go with a complete sync, Marketo will use your system defaults, so you’ll want to make sure that the Default Lead Assignment Rules have Marketo baked into them.
You might consider queue ownership if you are sending over leads that are not Sales-ready.
Additionally, ensure that lead/contact ownership is fully understood by Marketing so that when they’re using lead owner tokens, they make sense and are accurate. For example, if the “system admin” owns every lead, emails might end up being signed “Thanks, System Admin.”
Related: Our Marketo Engage consulting services!
Consider the source of truth when it comes to data points. Which system is going to house the data that you trust? Which values are you going to preserve as accurate? Essentially, which system are you going to regard as the source of truth?
Typically, that’s the CRM (Salesforce). This means you’ll want to put measures into place in Marketo to protect your data. We don’t recommend not letting Marketo write to fields … instead, we want to make sure Marketo can write to fields but only in the right circumstances.
We control it from the Marketo side – not the Salesforce side.
We do this by setting up field blocking in Marketo. This prevents Marketo from overwriting good fields. We can also do this by thinking about our form strategy – utilizing more picklists or setting up normalization campaigns.
One other thing to consider is the format of your data points. As you prepare your data for the integration, you’ll want to make sure Marketo is passing values that are acceptable for Salesforce. One of the most frequent offenders? Misaligned States or Countries – especially if you have State & Country Picklists enabled in Salesforce. (More on how to approach this issue in the Troubleshooting section)
Make sure your data in Marketo is properly formatted and pay special attention to any picklist values. In the same line, make sure you know what format Salesforce is expecting!
Optimizing Your Integration
If you have your Marketo-Salesforce integration in place, let’s make sure it stays working at its best! Remember that after the initial sync, an ongoing sync re-starts every 5 minutes.
If you are not using the program-to-campaign sync, I want to reiterate that it’s one of those things you get a lot of bang for your buck. I highly recommend it! In order to use the program-to-campaign sync, you must be syncing your whole database. The program-to-campaign sync:
- is bi-directional
- will create leads in Salesforce when they become a member of a program
- uses the periodic sync for updates, but new leads do show up immediately in Salesforce
- can create new Salesforce campaigns from within Marketo
The program-to-campaign sync is a fantastic tool because it eliminates the need to build extra smart campaigns and gives you the ability to keep Salesforce up-to-date regarding both campaigns and the people involved with them.
You will be able to see all marketing initiatives that a person has been a part of and what sort of activity occurred with specific individuals within each marketing initiative.
When you use the program-to-campaign sync, we recommend creating the Salesforce campaign from the Marketo interface. When you do this, your Marketo program statuses will become your Salesforce campaign statuses – which is great!
Then, you can start doing campaign reporting in Salesforce. Your salespeople will be able to see how people are progressing and which marketing initiatives are touching them.
On the Salesforce side, you can further optimize this by creating automation that says, “If a Campaign is created by the Marketo sync user, mark as Active.” The benefit of this is that it will make it more easily searchable in Salesforce. Otherwise, it’s a manual process.
A little bit of automation (by making sure that it’s active) goes a long way.
The second way you can optimize your sync is by customizing the activities you’re logging on the records. In Marketo, you can create an activity in Salesforce as a Flow Step. To do this, you’ll want to take the triggers that are particularly valuable and meaningful to Sales and use those as opportunities to create these activities.
When creating, you can use tokens to define the activity. Obviously, you can use tokens for things like first/last name. But you can also use trigger tokens to call out the name of the form the customer filled out, for example, or the email they clicked in or the webpage they visited and so on.
You can start thinking about these activities at a global level instead of having to remember to embed them in every single program that you’re building. It also means that you don’t have to spend time handwriting every single activity. By using tokens, you can make your activities more flexible and robust.
Salesforce reporting based on Marketo activity
Once you’re utilizing program/campaign, you can set up a whole new level of reporting in Salesforce. If you’re syncing all your programs and using things like email programs with customized statuses for things like Sent, Open, Click, Unsubscribe and Bounce, you can start to do some of your email reporting in Salesforce.
One thing we recommend our clients do is sync their lifecycle program into Marketo with their Salesforce campaign. To do this, set your lifecycle program up in Marketo as a custom channel with custom progression statuses. The progression statuses should align to your lifecycle stages, so, for example, Raw, Aware, Engaged, MQL, SAL, SQL, Opportunity, Recycled and Nurture.
Now, think back to Salesforce. When you make those stages your campaign statuses, you will have the ability (by using Campaign Member Reports in Salesforce) to report on your lifecycle! You won’t have to create two sets of reports to look at leads and contacts because the campaign member looks across the objects.
Marketo Sales Insight (MSI)
Marketo Sales Insight is a great add-on feature that many customers have. It’s helpful for the Sales team because it helps them understand and act on information from Marketing. MSI adds a widget (VisualForce) on your page that shows “interesting moments,” such as form submissions, clicks on links in email, web activity and so on.
This added feature is worthwhile because the only way to access this functionality is scattered throughout Marketo. MSI makes it cohesive. It allows the salesperson to engage in a very personal way!
How to constrain your database sync after setup
Let’s say you’ve hit your Marketo database limit or you’re making changes in Salesforce and you don’t want the names to come into Marketo. There are ways to restrict data from the Salesforce side (even if you’re using the full sync capability).
To do so, you’ll want to build a custom field in Salesforce and call it “Do Not Sync.” You want this to be a Boolean field so that you can set up the criteria, via workflow rules, to check that this field is true.
Important: Do NOT make this a Formula field!
It’s essential that this is a Boolean field that you are updating via criteria in a workflow rule. Also, ensure that you create it on the Lead and the Contact, and that you map it in the Lead Field Mappings. You should have at least 4 workflow rules to control this:
- Lead Set Value to True
- Lead Set Value to False
- Contact Set Value to True
- Set Value to False.
After you’ve created your field, go through and check it for the people you no longer want to send to Marketo from Salesforce. Then, reach out to Marketo Support and let them know that you’d like to honor your Do Not Sync field in your sync.
Marketo Support will make it so that Marketo can still see those leads, but they won’t sync them into the Marketo Database.
Later, if you want to uncheck the box on any person in the Do Not Sync field, you can do so in Salesforce, or you can adjust your logic. Those leads will then flow back into the sync.
Troubleshooting Your Integration
In a perfect world, nothing would ever go wrong. Your system would function exactly as you want it to without ever breaking down. The fact is, error messages do happen.
So, let’s talk about troubleshooting your Marketo-Salesforce integration.
State and Country Picklists
One of the most common errors we see happens when you enable state and country picklists on the Salesforce side and start getting sync errors because you haven’t cleaned this data on the Marketo side.
State and country picklists are a cool piece of functionality in Salesforce. They allow a Salesforce administrator to say, “These are the exact values for countries I want to accept, and these are the exact values for specific areas in specific countries that I want to accept.”
Let’s say, for example, you decide to use two-letter abbreviations for states in the United States (Georgia becomes GA). In Marketo, if your data comes from a form where you captured the full state name, it will break the sync because “Georgia” is not the exact picklist value of “GA.”
Similarly, if you’re capturing states for other countries (for example, states for Brazil, Canada, Norway or Germany) in Marketo forms but Salesforce isn’t set up to accept states for those countries, that value coming from Marketo into Salesforce will not be an acceptable value and will break the sync.
You can fix this error by doing two things:
First, work with your Salesforce administrator to make sure you have the list of values they’re using for states and countries. You want to make sure you know which countries they’re accepting states for and what those values look like.
Second, you’ll want to update your database. Here’s how:
Make sure all forms are configured with picklists for state and country and that the picklists are storing the values that Salesforce is expecting.
Clean your database! Pull a list of everyone that has a state and/or country and make sure the values match the list from your Salesforce administrator. When you come across a mismatch, you want to go ahead and make the data align, even if that means removing data.
For example, if Salesforce doesn’t want Brazilian states, you’ll need to remove them to make sure the sync is maintained. As you do this, it’s a great time to look for other common issues. A great example is the United States – abbreviations vs. full name. Make notes of anything you see as you clean it up.
Set up some automation rules. Setting up some smart campaigns that allow you to continue to clean your data as it comes into your database will make it easier to maintain your lists. For example, if you’re going to get a list from someone and you know they’re going to give you abbreviations but you need full names, go ahead and have it convert.
Keep an eye on this error. Check in on anyone who continues to get a sync error and investigate why the error is occurring. Sometimes, restricted picklist values do not allow for extra spaces, so including an additional space will break the sync.
Going forward, you’ll want to make sure that everything is aligned for this common error!
The Dreaded ‘Bad Picklist’ Error
Now, all of what you just read above also applies to problems with other picklists.
For example: You have picklists in Salesforce for things like job title, industry or favorite color – it could be any field. If you have a picklist and your Salesforce administrator has made it restricted (meaning only the values defined in Salesforce are acceptable), you could experience sync errors.
Anywhere you have a picklist in place, you want to make sure that Marketo is standardizing the data into the format that is acceptable by Salesforce.
This is probably the second most-common issue that we see – Marketo (marketing) doesn’t know the picklist values that Salesforce has defined for a given field.
If we are not passing along the right data, the sync is going to continue to break.
Other Sync Errors
Occasionally, you will get an error that tells you the value isn’t right even though the value looks right. Sometimes this error will happen if the Salesforce administrator puts restricted values into place at a later time (after they created the field). And sometimes the only way to fix it is to clear out the values and rewrite it.
This error doesn’t happen often, but we do see it happen when there’s been a change to the field. Typically, what you’ll find is that the data is not an exact match. There’s something that’s making it look different from what Salesforce is expecting.
How To Investigate A Sync Error
Here are the steps we recommend you take to investigate a sync error:
- Ask for examples. It’s important to look at the examples that aren’t syncing. Don’t try to clean them up or change them. That would defeat the purpose of discovering why they’re not syncing.
- Look at the activity log. Find out what activity was occurring right before the sync error. Is this a new lead? Someone already in the database? Did they fill out a form? Did you load a new list?
- Look at the sync error itself. Salesforce will usually give a reason for the sync error. It’s up to us to decipher it.
- Dig into the details. Once you’ve gathered information from the previous steps, you can look at the fields and values you think might be causing the problem.
Specific Error Messages
Take note of specific error messages. Most often, what’s happening is a custom validation rule for custom Apex in Salesforce has been broken.
Whatever you’re trying to do from the Marketo side isn’t honoring that rule or isn’t accomplishing what is expected to be accomplished. Validation rules are a great example of this.
For example, let’s say you have a “reason” field that should be populated when someone gets disqualified and you have a validation rule to require it. If you’re trying to disqualify people from Marketo and you’re not also populating that Reason field, it’s going to break the sync because that validation rule is going to fire. You’ll see this in the activity log.
Until you satisfy the validation rule criteria, your sync will keep breaking!
Related: Troubleshoot many other common Marketo errors
Troubleshooting New Profiles / Sharing Hierarchy
If your Salesforce team ever does work on profiles or your sharing hierarchy that affects Marketo, it could impact your sync. For example, if they suddenly take away access from Marketo, or they change Marketo’s place in a sharing hierarchy, it could affect how Marketo can interact with the people that it saw before the change occurred.
Make sure you and your Salesforce administrator are communicating closely so that you know the changes are happening and you can watch for those changes in Marketo.
So, What Next?
My hope is that you’ll fall in love with your integration and get more out of both Marketo and Salesforce with an optimal integration where both help each other. After all, they’re married now … it’s time to make it work for long-lasting success!
However, you may need more help or want to continue building up your knowledge of one or both systems. Here’s a few options to help you!