Using CRM workflow to detect company email addresses within contacts


In case you didn’t know, it is a very bad practice to allow users to create contacts for employees of your company, using their company email address.

It causes resolution issues when CRM attempts to automatically associate an inbound email with a person within CRM.

If you have a CRM User with and a contact with, which one should it assign email ownership to?

The answer is: neither.

It also doesn’t inform you that an issue exists unless you happen to open, where you will find something that looks like this:


The “big red question mark” as I call it, indicates that CRM can’t determine what record to associate the email with.

So, to prevent this process, we’re going to create a workflow within CRM to notify the owner of the Contact as well as the system administrator that such a record has been created.

Here’s how:


Step by Step

1) Select Settings, Processes.

2) Click the New button.

3) Enter the Process name, Entity, and Category, as shown below:


Tip: I always preface the names of my workflows with the subject or process area that the workflows fit into. When the process list is sorted by Process Name, it groups similar processes together.

4) Click the OK button.

5) Change your Scope to Organization.

6) Set the Start when to Record is created and Record fields change.

7) Click the Select button to select the fields you wish to monitor for changes.

8) Select the E-mail field:


9) Click the Add Step button, then select Check Condition


10) Click the link: <condition> (click to configure)

11) Enter the following criteria:


In the edit box, enter the domain name you wish to check against.

12) Click the Save and Close button to return to the main workflow dialog.

13) Click the rows that states: select this row and click Add Step.

14) Click the Add Step button.

15) Click the Send Email step

16) Click the Set Properties button

17) Complete the email properties so that the email looks something like this:


Note: The fields in yellow are dynamic values which will be replaced with values from the Contact entity when the workflow is actually executed.

18) Press the Save and Close button.

19) Assuming no further changes need to be made, we can now activate our workflow process by clicking the Activate button.

Note: CRM 4.0 uses the term Publish for exactly the same procedure.

20)  Click OK when prompted with the following dialog:


Your workflow is now active.


Test the Workflow

To test the workflow, you will need to do the following:


1) Create a new Contact and insert a real or fake email address that ends with your company’s domain name.  Like this:


2) You may monitor the progress of your workflow by clicking the Workflows navigation link:


3) Wait for the workflow displays a status of completed:


Tip: If you didn’t know, at the top-right-corner of every CRM view is a small icon with two green arrows:


Clicking this icon will cause the view to refresh.


4) Once the Status Reason field changes to Succeeded, we can go and check our work.

5) Click on the Closed Activities navigation link and you should see our email:


6) Open the email and you will see our Dynamic Data fields have been replaced by values associated with the Contact in question:




So that is about it. Today I’ve shown you one method that can be implemented to prevent company email addresses from being entered as contacts.

Ideally, you would want a process that would prompt the user when they are creating or updating the record, but that would require creating a “plugin” that is installed to watch the Contact email addresses. That is really a lot of work and something that requires a developer.

Leave a Reply 2 comments