Tip #456: Smart contact filtering

One of the challenges of using Dynamics CRM in small businesses is that business owner tends to own everything. What did it mean for one of our customers who had Microsoft Dynamics CRM for Outlook installed? The default filter, as you know, is “My Contacts”, i.e. contacts “owned by me”, and she owned all CRM contacts, all 15,000 of them. Long story short, we had to kill the initial sync and clean up her contact list by hand.

It is possible to select the records to synchronize, of course. But what would be the filter for the owner of thousands of contacts?

On this occasion, it was the business owner who came to the rescue.

In my Outlook I want to see only the contacts I’m dealing with right now.

Solution? Add a new field “Last contact date” to the contact entity, populate this field using the workflow, when relevant activity in CRM is created (e.g. email, task, appointment, etc) and then use that field in the synchronization filter to only synchronize contacts that had any activity, in the past, say, 90 days.

Since Outlook never deletes the contacts “on behalf” of CRM, the challenge still remains, of course, is how to “clean up” the contact list in Outlook to get rid of stale contacts that no longer satisfy the filter condition. Luckily, in this case, “drop out” rate was negligible enough for the business owner not to worry about it.

2 thoughts on “Tip #456: Smart contact filtering

  1. Ben says:

    Wouldn’t this require multiple workflows? One for each type of activity (email, task, phone call, appt.). Is there a way to do this with a single workflow? Also if you wanted the same type of field on the Lead entity wouldn’t you need to create each of the workflows again for that entity?

    • Yes, it would require multiple workflows. The only way to consolidate is to write a plugin. Lead is not applicable here as we’re trying to filter contacts for Outlook synchronization and leads are not synchronized. But if you’re simply after a “last contact” field then you probably can manage that inside the same workflow by branching out execution depending on Regarding field.

Leave a Reply

Your email address will not be published. Required fields are marked *