Are you planning to migrate from an old-fashioned marketing platform to CRM? Are you facing the difficulty of updating communication preferences for existing contacts in CRM? Do you need to update thousands of records? This blog will cover several ways to update your communication preferences in CRM.



  • You have a list of contacts with valid communication preferences outside of CRM (in the Microsoft Excel spreadsheet). Most systems have the export feature which you can utilize for exporting you current subscribers and opt-outs into Microsoft Excel file.
  • You need to update communication preferences for more than 1000 records
  • Your limit for number of exported records must be greater than the number of contacts you would like to validate. For example, if you need to validate communication preferences for 27,000 records, your CRM Export Limit should be set to 30,000. See the instructions on setting the export limit.

Making the updates in Excel and reimporting

The first option you have is to export your CRM contacts, use vLookup formulas in Excel to combine the communications preferences from your marketing system, and then reimport your CRM contacts. This scenario is suitable if you are comfortable working with Microsoft Excel formulas. This approach does not require any coding or development knowledge.

Since you have a spreadsheet of subscribers and opt-outs with the most current communication preferences from your Marketing platform, you then need to export your existing contacts from CRM. To achieve this, please complete the following steps:

  1. Navigate to Contacts
  2. Select the View you want to export (eg. All Active Contacts)

Note: It is helpful if your view contains the columns for the communication preferences you need to update. In general, you would include “Do not Allow Emails”, “Do not Allow Bulk Emails”, ”Do not Allow Phone Calls”, “Do not Allow Faxes” and “Do not Allow Mails”. Do not forget to include additional communication preferences which are custom for your organization. The screenshot of general communication preferences is provided below.

  1. Click on Export to Excel button to begin the export process. CRM pops up a dialog box.
  2. Select a Static Worksheet option
  3. Enable the checkbox for “Making this data available for re-importing by including required column heading”
  4. Click Export.

Once you have the CRM data exported, you will use Vlookup formulas to update the communication preferences. In order to do this, you would also need to define matching criteria between two spreadsheets. In the example below we are using three email addresses as a matching criteria for opt-outs with an email address and Full name for opt-outs without email addresses.

Note: You may need to “Unprotect” the spreadsheet to insert new columns before applying the formula.

Add the necessary vLookups to the spreadsheet with the columns needed. A good way to structure the spreadsheet is to add the following columns:

  • Match Email 1 is checking whether Opt-out spreadsheet has this Email Address or Full name
    Ex. =CONCATENATE(IFNA(VLOOKUP([Email Address1 Cell],[a matching Email Address 1 column from Subscribers and Opt-outs Spreadsheet],1,FALSE),””),” “,IFNA(VLOOKUP([Full Name Cell], [a matching Full Name column from Subscribers and Opt-outs Spreadsheet],1,FALSE),””))Note: replace items in square brackets with you data.
  • Match Email 2 is the same validation as #1 but for the second email address field
  • Match Email 3 s the same validation as #1 but for the third email address field
  • Concatenate Column represents a concatenation of three previous fields. If this value is blank, then formula marks the Contact as “Subscriber/ No need to update”. If the value is not blank and contains an email address or Full name from the opt-outs spreadsheet, then it marks the contacts as “Opt-out”.
    Ex. =IF(CONCATENATE([Match Email 1 Cell], [Match Email 2 Cell], [Match Email 3 Cell])=” “, “subscriber”, “opt-out”)

After opt-outs are defined, you can remove rows that do not require Communication Preferences Updates via filtering. Select Subscribers only and then remove filtered rows keeping opt-outs in the file. Please note that you should remove complete rows, not just values in these rows.

After this is complete, simply update Communication preferences in the spreadsheet for all opt-outs, remove extra columns (Match Email1, Match Email2, Match Email3 and Concatenate column)

Updates via Custom Entity

Another way to update communication preferences is to create a custom Update entity with Communication preferences fields and develop a custom workflow to apply its values for Communication preferences updates.

This method is very helpful for anyone preferring working with CRM Customizations and workflows instead of using Microsoft Excel formulas. It was described in details here:

The summary steps are provided below:

  1. Import data from your subscribers and opt-outs spreadsheet as CRM Contacts making sure duplicate detection is set on email
  2. Records that fail during data import would be the ones that match existing contacts and require an update in Communication preferences.
  3. Export the failures in Microsoft Excel
  4. Manually set the preferences for each exported contact and import them back in a custom entity. When importing data, you will need to link updates to existing contacts in CRM via Data Import Mapping Rules. Once data are imported, the workflow should trigger and update communication preferences of associated contacts.

The only limitation is that you need to properly link an update record with a contact record via Data Import Mapping rules. If Contact entity contains duplicates, you may need to reimport records failing on data import and manually link them.

Updates via PowerShell Scripts

The PowerShell approach is very convenient for anyone comfortable with development expertise.

Sample code is provided below:

If you want more information about how CRM can be used as a marketing platform, please visit our Marketing Solutions page.

Happy CRM’ing!

Avatar for Joe D365

Joe D365

Joe D365 is a Microsoft Dynamics 365 superhero who runs on pure Dynamics adrenaline. As the face of PowerObjects, Joe D365’s mission is to reveal innovative ways to use Dynamics 365 and bring the application to more businesses and organizations around the world.

Leave a reply Required fields are marked *