No More Whoops: Preventing Accidental CRM Emails in a Non-production Environment

Picture this scenario: It's Tuesday morning. Jim, a UAT tester, logs into the Microsoft Dynamics CRM testing environment to make sure that his Contacts have migrated properly from the legacy CRM system. Jim navigates over to his "My Contacts" view and sees his Contacts in the system. Seeing that they are there, he decides to execute the next test script, which is adding some Contacts to a Marketing List for a PowerMailChimp campaign. Jim adds 507 of his Contacts to the "Test Campaign Please Ignore" Marketing List, not thinking anything of it. The test scripts pass with flying colors, and Jim is happy.

Later that day, Larry (another UAT tester) is tasked with ensuring that PowerMailChimp is up and running and is accessible to the marketing team. Larry logs in and performs the test script for PowerMailChimp, synchronizing users and ensuring the Campaign setup works. Larry accidentally forgets the step to check and ensure that only fake Contacts are on the associated Marketing List.

That night, Rich (a third UAT tester) executes a PowerMailChimp test sent against the "Test Campaign Please Ignore" campaign, under the assumption that only test users are on it. The following email is sent out:

Subject: Test Campaign Please Ignore

"Dear ,

This is a test. This is only a test. Testing 123. Test. Woo Hoo! It Works!



The next morning, Jane, the customer service manager, starts noticing a larger than usual volume of unsubscribe notifications arriving, and her team notices a heavier than normal call volume asking about some email that was sent. Under her breath, Jane mutters, "oh great."

Don't let this happen to you!

One drawback to using a CRM sandbox/development/testing/training environment is that sometimes an accidental email gets sent to one or more Contacts with real email addresses. In the scenario above, the CRM Administrators should have taken the following steps to prevent the email from going out:

1. Ensure that the CRM email router and/or Server Side Sync are disabled.

2. Configure "Process Emails Only for Approved Users" to be checked in System Settings.

3. Reject all user emails in the sandbox, development, test and training orgs.

In our example, the issue was that the emails were not scrubbed, so they were still available for use in Outlook Address Book Sync, Outlook Contact Sync, Mobile Devices, CRM form email hyperlinks, and Marketing Campaigns.

Ok, great. You've scared me. Now, what can I do?

Scrub your email addresses! In a test environment, best practice is to build functionality that will replace emails that are migrated/integrated with dummy email addresses. That way, in the event that the scenario above plays out, emails will not be sent to customer-facing email addresses.

This can be accomplished in a number of ways. Here are a few suggestions of things to do in parallel:

1. Prevent data migrations and integrations from sending email addresses to the non-production environments. This can be done by removing the mapping from the fields or replacing everything after the "@" sign with some arbitrary domain (like

2. Use CRM Business Rules on the email address forms to clear out or modify email addresses (as mentioned above) if they are modified in CRM by an end user.

3. Write a simple ETL (SSIS/Scribe/BizTalk/etc.) package that runs periodically throughout the day to remove or modify email addresses from non-production environments.

Here's an example of parsing an email and then concatenating to email if email is not already scrubbed:

Accidental CRM Emails

Accidental CRM Emails

One question: How will I test data accuracy if I remove or modify email addresses?

Excellent question! One suggestion is to enable Audit so you can see what the email address was without any custom development.

If that is not sufficient or you need to interact with the data, you can create a custom entity in CRM to store the email address. Instead of a business rule to perform this action, you can write a plugin to perform the above action on the email address fields:

1. Create an "Email Scrub Log" entity in CRM and build a relationship to the entities you wish to scrub.

2. Write a plugin which triggers a pre-image to grab a snapshot of what the email address was before it was modified.

3. Have the plugin check that the email is not already scrubbed (e.g. it doesn't already have in the email address).

4. Create a new "Email Scrub Log" record and associate it to the record you are scrubbing.

5. Store the email address on the new record.

Here's an example of an email scrub log entity in action:

Accidental CRM Emails

Email Scrub Log associated with Rita Book:

Accidental CRM Emails

Scrubbing emails in CRM doesn't have to be a massive project, nor does it have to be time-consuming. The benefits far outweigh the time to build the solution, so don't get caught off guard with thousands of unsubscribe notifications because you accidentally sent a test email in a non-production environment. Haven't tried PowerMailChimp yet? Go ahead and try out the free 30-day trial today! You might feel like this after you try it for yourself!

Happy CRM'ing!

Creating Marketing Lists from External Data Sources

Using Advanced Find to filter and find the right audience when you're creating Marketing Lists in Dynamics CRM works great if the data you need exists in your CRM system (contacts, leads, accounts, etc.). But, sometimes the segmentation data you need isn't in CRM, it exists in another system. Well, you don't have to wait until these other systems are integrated with CRM to use CRM's marketing features. Simply using the import feature does the trick!

Today's blog will focus on how to create marketing lists with external data sources. So let's get started!

This process works best if you have a unique ID (UID) for the external data that you also maintain in CRM. The UID allows you to simply query your other system for the desired marketing list records based on the matching UID's from CRM. Other possible unique IDs such as email address, phone number, full name, and street address 1 are also valuable.

Using the Microsoft Dynamics CRM out of the box Import Wizard, you can find the contacts in CRM that match the unique ID in the external data source. And since the Import Wizard is used to create records in CRM, you can import notes regarding the contact as well.

Let's take a look at an example.

The list below represents a list in Excel (.csv) that was exported from another system.

UID Title
1002356 New Mailer
1002357 New Mailer
1002358 New Mailer
1002359 New Mailer
1002360 New Mailer
1002361 New Mailer
1002362 New Mailer
1002363 New Mailer

1. Using the Import Data Wizard, find your .csv file.

Creating Marketing Lists from External Data Sources


2. Next, select Default (Automatic Mapping) from the list of options.

Creating Marketing Lists from External Data Sources

3. Then select Note under the Microsoft Dynamics CRM Record Types field.

Creating Marketing Lists from External Data Sources

4. Next, you will need to map the UID column to the Regarding (lookup) field on the Note record.

Creating Marketing Lists from External Data Sources

5. Select which entity you want to market to (Contact, Account, or Lead).

Creating Marketing Lists from External Data Sources

6. After selecting the entity you want to market to, click on the Looking Glass icon next to the entity.

From here you can select which field on a record will be used to find the records you need. You can select any field and it does not need to be configured as a quick find field. You can also select multiple fields if the column has different UIDs per record.

Creating Marketing Lists from External Data Sources

7. After the import, you can easily create a marketing list and use Advanced Find to add the desired contacts.

Creating Marketing Lists from External Data Sources

A simple Advanced Find allows you to locate the records related to the Note that was imported.

Creating Marketing Lists from External Data Sources

Another option for finding records from an external list in CRM is to add a semi colon after the UID and paste a single text string into the record's lookup field in Advanced Find. For this option, the field that is being searched does need to be configured as a quick find field.

In order to get the data into a single string, you will need to

1. Copy the data with semi-colons from Excel

Creating Marketing Lists from External Data Sources

2. Then Paste it into Microsoft Word using the Keep Text Only option to remove the Excel source formatting.

Creating Marketing Lists from External Data Sources

3. Then use the Replace feature in Word to remove the paragraph formatting that remains.

Creating Marketing Lists from External Data Sources

4. Resulting test string can be pasted into the CRM Look up field!

Creating Marketing Lists from External Data Sources

Creating Marketing Lists from External Data Sources

After pasting the data into the lookup field it will find the records that match the UIDs. This approach works well for finding records 250 or less. How long it takes will depend on how many records you are looking for.

Marketing lists are only the tip of the iceberg when it comes to utilizing CRM's marketing features for your business. Whether you're managing your brand, running lead nurturing campaigns for demand generation or tapping into advanced digital marketing strategies, PowerObjects Marketing Solutions can help you take your organization to the next level of marketing!

Thanks for stopping by our blog today! Happy CRM'ing!

Synchronizing Marketing Lists from Dynamics CRM to MDM

When creating a Marketing List from Microsoft Dynamics Marketing (MDM), there is an out-of-box (OOB) option to synchronize with CRM. However, synchronizing from CRM to MDM functions slightly differently.

To synchronize from MDM to CRM, navigate to the Marketing List and check Synchronize with CRM. The list will now automatically update when contacts meeting the established criteria are added.

Synchronizing a Marketing List from Dynamics CRM to MDM

To synchronize a marketing list created in CRM to MDM, verify the CRM Connector solution is added to your CRM instance. (Additional information: Configure CRM online Connector)

Synchronizing a Marketing List from Dynamics CRM to MDM

Then navigate to the Marketing List form in your solution.

Synchronizing a Marketing List from Dynamics CRM to MDM

A new field is added to the Marketing Lists fields when the solution is imported. Simply select the Sync Enabled field and add it to your Marketing List form. Toggle to Yes on Sync Enabled synchronize the list from CRM to MDM.

Synchronizing a Marketing List from Dynamics CRM to MDM

Synchronizing a Marketing List from Dynamics CRM to MDM

For more information on how Microsoft Dynamics can help your business' marketing, read our blogs on What's New for Marketing in Microsoft Dynamics CRM Fall 2014 Part 1 and Part 2. Or check out our other Dynamics CRM educational materials here!

Adding Columns to Marketing List Members Sub-Grid in Dynamics CRM 2013

When you are working with Marketing Lists in Dynamics CRM 2013 you may want think about additional functionalities such as adding columns to a marketing list members sub-grid, as opposed to simply out of the box Members sub-grid. This could be information like email, company name and more. Full Name and Business Phone are the only fields exposed out of the box.

It's simple to do; here's how!

Here you see the out of the box Marketing List form view. Let's go through the steps to add those columns!

Add Columns to the Marketing List Members Sub-grid in Dynamics CRM 2013

1. Navigate to Settings > Customization.

Add Columns to the Marketing List Members Sub-grid in Dynamics CRM 2013

2. Find the Contact Entity and click on Views > Contact List Members View.

Add Columns to the Marketing List Members Sub-grid in Dynamics CRM 2013

3. Click on Add Columns to add any additional columns you want to surface. In this example email was added.

Add Columns to the Marketing List Members Sub-grid in Dynamics CRM 2013


Adding or Removing Columns

  1. To move the columns from left to right, select the column then use the arrows (circled in green in the above image) to move the column left or right.
  2. To add columns, select the columns you want to add.
  3. To configure the sorting, choose ascending or descending.
  4. Change Properties allows you to make columns wider or narrower.
  5. Select a column to remove it.
  6. Click Save and Close.
  7. Publish your changes.

Viola! You have now surfaced additional information for your Marketing Members sub-grid.

Add Columns to the Marketing List Members Sub-grid in Dynamics CRM 2013


Interested in learning more?  Check out an overview of Marketing Lists in the PowerObjects CRM Book – hands down the best online Dynamics resource out there. Happy CRM'ing!



Dynamic Marketing Lists in CRM 2011 – No Results in Advanced Find?

Hello intrepid CRM adventurers! Today we'll talk a little bit about Dynamic Marketing Lists. They are one of the most useful features of Microsoft Dynamics CRM 2011.

One of the hassles in the 'old days' of CRM was that your only option was to have a Static marketing list. This meant that you had to re-run your marketing list query to pull new data each time you want to use the marketing list.

Unlike their static cousin, Dynamic marketing lists continuously update. So, as an example, if you have a dynamic marketing list that has all your contacts in Minnesota, any new contact you add that is in Minnesota will automatically be added onto the list! Pretty handy, eh?

However, an issue arises when you want to do an advanced find that returns all the contacts that are on a specific dynamic marketing list. The search seems very straight-forward; we just want to look for contacts where the related marketing list = Test List.

Here is the advanced find query we would use. Looks fine right?

Dynamic Marketing Lists in CRM 2011

When you look at the results of this search, we do not have any data retrieved.

The reason? Dynamic marketing lists in CRM 2011 do not store the 'membership' of the list like the static marketing lists do. Dynamic marketing lists are essentially saved Advanced Find Views, and the 'list membership' is created when the marketing list is used in a campaign, not before. This makes it impossible to see dynamic marketing list membership in an advanced find or report.

One of the solutions to this issue is quite simple: Rather than creating the advanced find based on membership of the marketing list, use the same query that we used when we set up the dynamic marketing list. Since the dynamic list is using the same search, the information it returns should be the same!

That's it!

Let the CRM experts at PowerObjects know if you have some reporting question that you cannot get solved. As always, happy CRM'ing!

PowerMailChimp 101: Starting the CRM 2011 and MailChimp Integration If You Already Have a Mailchimp Account

If you are already a MailChimp user and you want to use the PowerMailChimp add-on for Microsoft Dynamics CRM 2011 to send bulk emails out from within CRM, you may be wondering how you'll be managing your lists. With PowerMailChimp, a CRM 2011 and MailChimp integration, you'll use your CRM marketing lists to manage your list segments. Since you're already using MailChimp, all of your subscriber information is stored there. You'll need to export that data and import it into CRM to get started using PowerMailChimp. Once the initial import is done, you will use your CRM marketing lists to manage your subscribers going forward.

The first step in this process is to log into your MailChimp account and navigate to your list. Choose to view subscribers of that list, download that list and save it somewhere on your computer.

crm 2011 and mailchimp integration

Once you have your list downloaded, open it and delete any columns that contain information that you do not need to import into your Dynamics CRM.

The next thing you will need is a way to identify that these contacts were imported from MailChimp. We will use this information later to pull these people into a marketing list. In the example below, I've chosen to add a column called "imported on" and populated the field with a date. You could also choose to use a check box, dropdown or some other field to identify that there records have been imported from MailChimp. Once you've finished your changes, save the spreadsheet.

crm 2011 and mailchimp integration marketing lists

To ensure you're not creating duplicates in your CRM when importing this list, you'll want to double-check your duplicate detection settings and rules to make sure they're set up the way you want them. To do this, log into CRM and navigate to Settings > Data Management, then choose Duplicate Detections Settings.

Make sure the checkbox that says "Detect duplicates during data import" is checked. Then click ok.

Next, slide over to duplicate detections rules in the same screen as duplicate detections settings, and double check that duplicates are being detected the way you'd like them to be. These duplicate detections rules will be used during our data import, so it's important to make sure that they are sufficient.

After your list looks organized and your duplicate detection rules have been set, the next step is to import your MailChimp subscribers into CRM. To do this, navigate to Workplace > Imports and choose "import data."

crm 2011 and mailchimp integration - import data

You will now be walked through an Import Wizard that will assist you in importing your data. First, browse to the spreadsheet containing your MailChimp subscribers. Click Next.

Make sure that the file you've chosen to import is indeed the correct file. Click Next.

Choose your data mapping preference. For simplicity's sake, we've chosen to let CRM do the default mapping. Click Next.

Next, choose what entity you would like to import your subscribers as. In order to pull your MailChimp subscribers into a marketing list, you will need to import them as contacts, leads or accounts.

Next, CRM will ask you to map the data in the spreadsheet to a CRM field so that it knows where to put the data once it's imported. For the column in our spreadsheet that we're using to identify that these are imported subscribers (in our case "Imported on"), we will need to either create a field (if we don't already have a field in CRM to map this to), or map it to a pre-existing CRM field. Once you're finished mapping these fields, click Next.

You will see a screen stating that the data has been successfully mapped, or receive an error notification. Once your data has been successfully mapped, click Next.

You can then decide if you'd like to allow duplicates (our suggestion would be not to allow duplicates), and who the owner of the records is going to be once they're imported. Click Submit. Your import will now be submitted for processing.

You can keep track of your import in the Imports area of CRM. You can review the successes, errors, and partial failures of the import on this screen. Once the import has completed, the status will be updated to "Completed".

Once you have finished importing your list, it's time to create your marketing list. Navigate to CRM > Marketing > Marketing List and choose New.

Give the marketing list a name, choose the type of record you would like to include (contact, lead or account), choose type: static, and Save.

Next, choose marketing list members in the left navigation. Click manage members, and choose to add members using an advanced find.

Set up your query to pull in all of the subscribers that you just imported from MailChimp. You will use the field that they all have in common to pull them into this list. Click Find, and make sure you have the number of marketing list members that you expect to have.

If you are satisfied with the result, choose Add all members returned by the search to the marketing list and click Add to Marketing List.

The final step in this process is to sync this marketing list with your MailChimp account. To do this go to the general area of the marketing list and click "Select MailChimp List".

Now you can use this marketing list, along with other CRM marketing lists, to send bulk emails from your Microsoft Dynamics CRM. If you'd like to give PowerMailChimp a try, there is a free 30 day trial available on the PowerMailChimp web page.

Happy CRM'ing!

Searching for Accounts or Contacts Without Opportunities in CRM 2011

In Microsoft Dynamics CRM, searching for records that meet specific criteria is really straightforward. However, people often want to search or report on records where data does not exist. The most common example is prospects without Opportunities. There isn't a direct way to search for the absence of the Opportunity record, but with a few extra steps and the use of a marketing list, users can easily create this list. Without further ado, here is how you can search for accounts or contacts without Opportunities in CRM 2011!

  1. Create a static marketing list for the correct entity for your prospects. This could be Accounts or Contacts depending on how your organization works.

    Static is the default setting for marketing lists. What this means is that this list will not reference changes to your search criteria. (Opportunities added after this list is created will not be reflected. This is a snapshot in time.)

    In my example, the prospects exist in the Account table.

    Searching for accounts or contacts without opportunities in CRM 2011

  2. Manage the list's members by clicking on "Marketing List Members" and then the "Manage Members" button on the ribbon.

  3. Use Advanced Find to add all the possible prospects to the list. In my example, I'm looking for all active Accounts. If you are looking for specific criteria like Customers in Texas without Opportunities, then this is where you would specific Texas as part of your possible prospects.

    (Note: If you selected "Contact" as the member type is Step 1, this search should be against Contacts instead of Accounts.)

  4. Select all the returned values to add to the list.

    And the values are added to the list.

  5. Remove the Accounts with Opportunities.

    As mentioned previously, it's easy to search for criteria where the data is present, so in this case, users can search for the values with Opportunities and subtract them from the list.

    1. Press the Manage Members button on the ribbon again

    2. Select Use Advanced Find to remove members.

    3. When selecting the entity, the related Opportunity will be at the bottom of the entity list under the "Related" heading.

  6. Select the values to remove from the list.

  7. The selected values are removed.

Congratulations! The list that remains is the list of prospects without Opportunities. It looks like this super sales team has open Opportunities for about half their customers.

Happy CRM'ing!