Monday, October 18, 2010

Why won’t they [Contacts] go away?


An interesting question came to me recently regarding how CRM synchronizes its Contacts with Outlook and when those contacts do and don’t get removed from Outlook based on what happens to them in in CRM.

Hmm, that’s an interesting question.  At first thought, one would think that any re-assign, delete, or deactivate done on the CRM side would result in the corresponding Contact within Outlook to be removed from Outlook.

Well, this is not the case.  Here is what happens:

CRM Action Outlook Result
Re-assign the Contact to another user. Removed from Outlook.
Deactivated in CRM. Orphaned in Outlook.
Re-Activated in CRM. Orphaned Contact Re-linked in Outlook.
Deleted in CRM. Orphaned in Outlook.

Think of the behavior this way: 

Re-assigned Contacts Since the contact was re-assigned, you probably don’t care about it anymore, so we’ll remove it from your Outlook contacts.
Deactivated and Deleted Contacts Hmm, someone wacked the contact in CRM, but you likely still care about them, so I’ll leave it in your Outlook contacts just in case you still need it.


The follow-on question from the requestor ran along these lines:  Hmm, ok. Well, while that explains why all my users still have THOUSANDS of CRM Contacts in their Outlook Contacts, HOW DO I CLEAN EM UP? (Yes, there was a definite tone of desperation in their voice.)

Here were some brainstorm thoughts:

1) If you restored all of the contacts back into CRM EXACTLY like there used to be, they should auto-link back up with the Outlook contacts and you could then to a re-assign to some system account and they would be gone.  the problem here is that they would have to be EXACT, including the primary key ID, and all the Outlook attributes and extra IDs.  If you have a good backup, this could possibly be an option.  Without a backup, keep reading…

2) Write a .NET application to spin through all of a user’s Outlook Contacts looking for the orphaned CRM Contacts and delete them.  This obviously would require a programmer’s time to write, debug and test such an application.  Then the users would all have to install the application.  Execute it, and then uninstall it.  Additionally, there are some strict security rules around manipulating Outlook from an external problem (We don’t want to be seen as a virus now, do we?!)  If this sounds too expensive and complicated to you, keep reading…

3) Have the user manually delete the CRM Contacts. Ok. but there are some things to consider here.

  • How do identify all the orphaned CRM contacts from among all my real contacts?
  • There ain’t no way any user has time to look at each contact one-by-one (we are talking THOUSANDS of contacts in this case)

What about a filter for just the CRM Contacts and then bulk delete?

Yea, I like that idea also!

Let’s work out a solution for option #3.

To start, how do we identify the Orphaned CRM Contacts?

To our benefit, every Outlook Contact that has ever been linked to a CRM Contact will have a bunch of user-defined attributes added to the Outlook Contact as shown here:


Note: You can see this list by opening a Contact and selecting the “All Fields” button in the Show section on the Ribbon:


So, now that we know there are some super cool user-defined fields we could filter on, let’s go create an Outlook filter for them…

But, if you try to create a standard CRM filter, you will be surprisingly disappointed.  When you look at the “User-Defined Fields”, you will find that the list is likely empty.


Note: To get to the Filter dialog, from your Contacts listing, Go to the View ribbon, Select View Settings from the Current View section.  In the Setting Dialog, select the Filter button.  (Or, just right-click any white space in the Contacts listing and select Filter.)

This is because the User-defined fields are only on the individual Contacts and are not defined on the Folder itself.  While it is possible to go and add those fields to the folder manually such that they will show up (an opportunity for another blog), we will take a simpler approach here to make this easier for the end users.

The answer?

Use a SQL filter condition.

In the same Outlook Filter dialog, select the SQL tab, check the “Edit these criteria directly…” checkbox, and input the following filter condition exactly as shown:


Now click Ok and the only Outlook Contacts that will be shown are Contacts that have at any time been linked to CRM.  YEA!

You can now do a simple Ctrl-A (for Select All), and hit the Delete key and they are all gone.

To remove the filter, re-open the Filter dialog and select the Clear All button on the bottom.  Select Ok one last time and you’re now back to your original Contact list without any orphaned CRM Contacts!

To summarize, CRM Contacts will only be removed from your Outlook Contacts if they are re-assigned to another user in CRM.  If they are Deactivated or Deleted, they will be orphaned in your Outlook Contacts so you don’t “lose them”.  If you need to delete all those orphaned CRM Contacts out of your Outlook Contacts, you can apply a simple “SQL” filter condition, do a Select All, and hit the Delete key.  And presto, they are now all gone.


- One is pleased to be of service


Technorati Tags: ,,

Thursday, October 14, 2010

Google invests in trying to “Save the News” industry…


One of my current clients is a news media conglomerate of smaller [formerly independent] news and media organizations. We are working on addressing numerous challenges that they face throughout their organization and how we can both create new opportunities to increase income while simultaneously helping them manage expenses and increase both their customer’s and employee’s satisfaction ratings.

As part of my own personal research, I recently read an absolutely outstanding article from The Atlantic discussing many of the very critical issues that the news industry is facing and how Google has been working hand-in-hand with many of the leading news agencies, as well as several local and regionalized news providers.

While this article may be “news” focused, I would highly recommend  you invest in reading it if you do anything with trying to solve complex, real life, business problems and need to think about new, creative, and very-out-of-the-box perspectives to your challenges.

Thanks to James Fallows and The Atlantic for an outstanding article.

- One is pleased to be of service


Thursday, October 7, 2010

Data versus Information and Empowering your People


I work primarily in helping businesses solve business problems so they can do better business.  Better business might be lower expenses, increase income, enhance customer and employee satisfaction [and thus retention], increase value for investors, and much more.

Since I focus primarily on xRM “Anything Relationship Management” solutions, I am very frequently asked questions that basically boil down to: “What’s the primary goal of a good CRM/xRM system?”

Let’s set that aside for a quick side trip…

Data, data everywhere…

Additionally, as I’m working with these exact same customers, one of the primary problems I encounter just about everywhere is that everyone has many, many disparate, disjointed, disconnected silos of data EVERYWHERE in their enterprise. Thus, a huge portion of the work we do is in applicably integrating these systems into our xRM solutions and turning all of that systems data into business information.

What’s the difference?

Well, data is for machines and databases.  Information is for PEOPLE.  And the problem is, the machines have the data, but the people do not have the information. So, somehow, we must turn all that data into business information.

In this discussion, I’m not talking about Data Warehouses (which are still just more data in more machines) nor about huge Business Intelligence projects (which start to perform the data-to-information transformation).  What I’m talking about is at a much more manageable scale that can have immediate benefits with a much smaller investment.

I’m talking about leveraging Dynamics CRM as the vehicle for getting the data out of the enterprise systems and getting it directly into the hands of the business users.

I call this:  Get business information into the hands of the people who need it, when they need it, where they need it.

There are four basic ways we can do this:

  • Direct Presentation (UI Mashup of external UIs within Dynamics CRM)
  • Direct Data Extraction (Real-time data extraction [like from a web service call] and display within Dynamics CRM)
  • One-way data integration (copying data or rollups into Dynamics CRM)
  • Two-way data integration (copying data both into and out of Dynamics CRM from/to external systems)

I’ll drill down more in depth on these in another blog.

When you combine turning all of that raw data into business information, and then using all of Dynamics CRM’s interfaces, especially the native Microsoft Outlook integration and Mobile Device presentation, you have an incredible vehicle for empowering your key business people to do their jobs faster and smarter; which will almost always have a positive effect on your bottom line.

So, to answer our first question: What do I see as one of the primary goals of any CRM or xRM solution?

Get business information into the hands of the people who need it, when they need it, where they need it.

At the very least, it’s a wonderful place to start…

- One is pleased to be of service


CIBER offers 'Ready For Dynamics CRM 2011' Assessment


To help our extensive global customer network, and anyone else currently running any version of Dynamics CRM, we (CIBER) are offering a formalized assessment to assess customers’ readiness for implementing or upgrading to Microsoft’s Dynamics CRM 2011. The two-week assessment provides new and existing customers with a GAP Analysis, As-Is Inventory, Migration Strategy and Findings & Recommendations, and evaluates a number of areas that are critical to determining the customer’s Dynamics CRM functional and deployment needs.

You can learn more about this offering from our announcement.


Technorati Tags: ,

Vote for my CRM 2011 WebResource feature request


I absolutely love the new Dynamics CRM 2011!  But, like any product and project, things are never perfect, no matter how great they may be.

I was recently drilling deeper into Solutions and WebResources around a LinkedIn addon that I am playing with, and came upon a limitation that somewhat surprised me.

I created a formal feature request on the Microsoft Connect site which captures the details.  Below is a copy of that suggestion.

Please log into the Connect site and vote for my suggestion.  Microsoft really does care about peoples’ feedback and items with lots of votes will get sooner attention!

Suggestion content follows:

Currently, a .js WebResource requires that you browse to and upload the .js file that you want included.

Sometimes, we want to reference a live http URL and not have a static .js.

In building a LinkedIn solution, we would want to have a WebResource for LinkedIn's widgets which is located here:

While I can certainly browse to that and have it uploaded, it becomes a static file within the solution and we would not automatically pick up any bug fixes or enhancements that LinkedIn might include in the future.

But, if we could create a WebResource that was like "Dynamic .js (JavaScript)" that took a URL instead of uploading a .js file, that would be fantastic.

Note that this scenario is applicable for many situations where other websites provide integration libraries via JavaScript that must be included into a web page.

Thus, I would strongly encourage the addition of a new WebResource that could point to a URL (for at least JavaScript resources anyways).