Why are my field mappings not updating Campaign Monitor?
Subscriber rules and field mappings are great features, but they are triggered based and, as such, can run into two fundamental problems.
Although we use standard Salesforce triggers, they can conflict with other code. A trigger fires when a Salesforce record is changed; this might happen by a user or an automated process. If there is a conflict, it could stop our code from executing as expected. It is tough to diagnose this type of problem.
When a trigger fires, it needs specific permissions. So if the user editing the Salesforce record (which fires our trigger) does not have one of our permission sets, the trigger will fail. If this is the problem, it is straightforward to correct by assigning a permission set; this article explains how.
You can conduct one of these two tests to rule out the problems above.
1. Go to a Salesforce contact or lead record that is not updating in Campaign Monitor. Click edit and then click save without making any changes. This should fire our trigger, adding or updating the record in Campaign Monitor.
2. Retrospective run
a. Field Mappings - Go to the subscriber list in Salesforce and then the field mappings section, click on the retrospective sync.
b. Subscriber Rules - Go to the subscriber list in Salesforce and then click on the retrospective run in the subscriber rules section.
These actions will start updating the records contained in Campaign Monitor for that subscriber list.
Long term solution
Although subscriber rules and field mappings have their place, you might want to consider switching to our import wizard. Or you could use the import wizard as a safety net to run alongside your field mappings. The import wizard runs as scheduled APEX batch code, making it far less likely to encounter conflicts. Permissions are not a factor as you can only set up the wizard if you have permission. The code then executes under your Salesforce user.
If you'd like to use the import wizard as a safety net or as a replacement, I do have a few suggestions:
1. Create a Salesforce report that contains the fields you are using with field mappings.
2. Filter the report only to include last modified records today.
3. When you set up the import wizard's scheduling, it runs at least once every day.
Using this approach, the import wizard will keep Salesforce and Campaign Monitor in sync should the field mapping not work. Filtering on records only modified today makes the import very efficient, better for your overall Salesforce org performance. You can learn more about the import wizard here as either a replacement or a safety net.