Included in this article
- Effects Inside of Salesforce
- Visibility Rules
- Areas Affected
- Examples of the Behaviors and Solutions
- Preventing These Issues
- API Access
- Where to Go for More Information
The configuration changes between Marketo and Salesforce will stop the sync to the 16 affected fields. If you recreate those fields in SFDC, the backfill process will update those newly created fields with the current values housed in Marketo. With these existing values being backfilled into the newly recreated fields, Salesforce will see it as a regular data value change, which can cause other actions to occur from things like Apex Triggers, Workflows and 3rd Party Apps from the AppExchange. While the backfill process is still running, you could also see inaccurate data in SFDC reports. This doc will show you what to look for and how to prevent issues they could cause.
Effects Inside of Salesforce
Marketo is entering the existing field values into the newly recreated fields inside of SFDC. While Marketo views this as just “catching up” the values between Marketo and SFDC, Salesforce will view it differently.
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.
SFDC has the ability to restrict access to Leads and Contacts for specific users and roles. Some customers will use this ability to restrict the Marketo Sync User from being able to access certain groups of Leads and Contacts in order to keep them from being able to sync to Marketo.
Restricting visibility to Leads and Contacts prevents the backfill
The backfill process uses the Marketo sync user ID to connect with SFDC. If the SFDC sync user has no visibility to a group of Leads and Contacts, there is no way for the backfill process to update those leads.
Evaluate your business need first.
- If you need to keep these Leads and Contacts from syncing with Marketo even when considering this configuration change, don't open up the visibility to them for the sync user. Neither the backfill process or normal sync cycle will see them and no data will be synced with those leads.
- If you want all fields to be updated for these Leads and Contacts, allow the sync user visibility to access them before creating the new fields and starting the backfill process. That will allow the backfill to run and push the Marketo field values into the newly recreated fields in SFDC. You can still remove visibility to the Leads and Contacts later if you want.
- If you have already recreated the new fields in SFDC and initiated the backfill process without allowing visibility to the Leads and Contacts for the sync user, the data is not lost. If you decide to allow the sync user access to the Leads and Contacts later on, then any resync of the record will also update these affected fields.
Anything in your SFDC instance that references these fields will be affected. For most customers, this won’t be anything to worry about, but for some, it can be a much bigger issue where actions are performed when they shouldn’t be. There are some key places where you will notice the trouble if it does happen.
Salesforce Workflows allow you automate actions within SFDC and can be set to run based on any number of criteria.
- If your workflow rules reference the older original fields, when the sync to these fields is stopped, these workflows will be based off of field values that are not updating any more.
- If your workflow rules have already been updated to be based on the new fields, the data value change to the fields from the backfill process can cause the workflow to react differently than it should. Existing values already accounted for will be seen as new values and could re-trigger your workflow.
More information on SFDC Workflows can be found here: Workflow Rules - developer.force.com
Apex Triggers let you take specific actions before or after record changes and can be used to perform a wide variety of tasks the same way that workflows can.
- If your apex trigger is set to trigger off of value changes in the original fields, since the sync to these fields is stopped, none of these triggers will fire.
- If your apex trigger is triggering off of the newly recreated fields, the data value change to the fields from the backfill process can cause the apex trigger to fire when it shouldn’t since existing values will appear to be new values.
More information on Apex Triggers can be found here: Salesforce Developers - Triggers
- If your AppExchange app references the older original fields, then when the data stops syncing to them, that app will be working off of out of date values.
- If your AppExchange app references the newly recreated fields, the entry of new values from the backfill process can initiate actions when they aren’t supposed to be performed or had already been performed previously.
More information on AppExchange apps can be found here: https://appexchange.salesforce.com/
Salesforce reporting can pull data from multiple locations. If your reports are referencing these affected fields, the reports could show incorrect data.
- If your reports reference the original fields, then when the sync to those fields is stopped, your reports will no longer display current data.
- If your reports pull values from the newly recreated fields, there are two variations of what you will see. First, if the backfill process is still going on, not all records will have updated yet, so the reports aren’t yet up to date (but will be soon). Second, if the backfill process has completed, then your field values in these new fields will be up to date and your reports will all be accurate, so there is no longer any issue.
When the backfill process has completed, an instance notification will be posted in Marketo to let you know that it has finished.
More information on Salesforce reports can be found here: Getting Started with Reports and Dashboards Unit | Salesforce
Salesforce formula fields work the same way that Marketo's formula fields do -- they take two (or more) other fields and combine them together to derive a new third value for the formula field's own value. Since the formula field has to reference other different fields, if one of the other fields referenced is one of these affected fields, your resulting formula field value could have incorrect data.
- If your formula field references the original fields, then when the mapping to those fields is changed, the values your formula field is calculating from will be out of date, resulting in an out of date formula field value as well.
- If your formula field is referencing the newly recreated fields, then it's possible that they are pulling data from fields that haven't fully been backfilled yet. As with the other places where the fields are in use, as soon as the backfill process is completed, there is no more issue and all data will be up to date.
Examples of the Behaviors and Solutions
Let’s say you have something in place (a workflow, apex trigger or AppExchange package) that will assign leads to specific sales reps when a lead’s score reaches a threshold of 35.
- Scenario 1: Not changed yet to reference the newly recreated fields, but backfill process is running. Lead records could reach a lead score of 35 while the backfill is still in process, but since the mapping of the Marketo lead score field has already been switched to the newly recreated field, that data value change activity won’t be recorded against the original existing field. Therefore, your process to assign the lead reaching a score of 35 would not be initiated.
- Solution: Take note of when you first recreated your fields in SFDC and kicked off the backfill process. Then take note of when the backfill process completes (you’ll get an instance notification in Marketo when it finishes). Set your workflow to compare the values between the old lead score field and the newly recreated lead score field to identify leads whose scores are different between the two fields (so you’ll find the ones who had a score change during the backfill process that wasn’t seen) and also search for leads whose score in the newly created lead score field is over 35. This will identify all leads who had a score change during the backfill process and hit the threshold but weren’t seen. Then have the workflow assign the leads to your sales rep.
- Scenario 2: After having changed to reference the newly recreated fields. The values being backfilled into the new fields will be seen as new values. So if a lead already has a score of 40 (already met the threshold of 35 sometime in the past), that existing score of 40 will be misinterpreted as a lead reaching the lead score threshold for the first time, resulting in the lead being reassigned in error.
- Solution: Create a workflow that compares the value in the original lead score field to the value in the newly recreated lead score field. If the scores are equal, then you know the lead had already hit the threshold in the past and this new time was in error, so your workflow can undo the action taken before. If the scores are different and the score in the newly recreated field is over 35, then you know the lead hit the threshold for the first time and was a valid candidate for the change in lead owner.
- Reporting Changes: The backfill process pushes data at the rate of 10,000 records per hour. Take the number of know leads in your database and divide it by 10,000 to get the approximate number of hours the backfill will take. This is the length of time when your reports could be off. Reporting from the original fields will only have data that is current up to the time when the fields were recreated and the mapping was changed over to those new fields. Reporting from the newly recreated fields won’t give a complete picture until the backfill process is completed.
- Solution: Run your reports from within Marketo while the backfill process is still running. There will be no discrepancies from any data within Marketo and Marketo is the source for all of this data anyway. Report Subscriptions can be set up to send the info to anyone who needs it.
Preventing These Issues
There are a couple of ways to approach this.
- The quickest way to avoid the issue is to not update workflows, apex triggers or AppExchange apps to point to the newly recreated fields until after the backfill process is complete. Also keep in mind that your formula fields could be getting used within these other places as well. This solution may or may not work for your company and your situation. You'll need to take a close look at your processes to see whether this solution works for you.
- After setting them to reference the newly recreated fields, disable or turn off the workflows, apex triggers and AppExchange apps so they can’t take any action. If you have formula fields using these new fields, you can also evaluate where your formula fields are used to check what needs to be updated or switched off that uses those. Then, when the backfill process is completed, re-enable them to turn them back on again. As with the previous solution, you'll need to take a close look at your processes to see whether this solution works for you.
All editions of Salesforce require API access for any integration to work. Professional Edition API calls were previously included as part of the integration while Enterprise and Unlimited editions required API access purchased by the customer from Salesforce. As part of this configuration change, Professional edition customers will now be required to purchase API access from Salesforce in order to continue syncing between Marketo and Salesforce. This includes the newly recreated fields as well as the rest of the integration.
Salesforce Professional Edition
Salesforce Professional Edition will require API access to be purchased from Salesforce to continue syncing after January 31st. This includes all components of the Marketo > Salesforce sync. MSI utilizes API calls to communicate with Marketo, so even if you are only using MSI, it will still require API access with Salesforce.
Salesforce Enterprise & Unlimited Editions
Enterprise and Unlimited Editions of Salesforce have already required API access to be purchased. The requirement to get API access will not have any new impact for Enterprise and Unlimited Editions of Salesforce.
Where to Go for More Information
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
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
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
Under the Hood Documentation
This doc will give you all of the nitty gritty details of exactly what is happening. If you're looking for in depth technical details, this is the go-to doc to check out!
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
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