Sunday, May 12, 2013

Implicit selections when choosing country in CRM Online

My last posting was regarding some important aspects of the email address that is entered when setting up a new CRM Online organization, you can read it here. In this posting I will be discussing some of the issues regarding the country field.

When registering for a new CRM Online Organization, you are shown a form and the top most field is a drop down allowing you to select which country you want. This might seem innocent enough, but do note the small text saying that this cannot be changed later and let me describe what you are actually setting in you future CRM and you might think a bit harder about this. The Picture below shows you the form in Swedish.

Swedish form for setting up a 30 day trial for CRM Online - the Country/Region field highlighted
So what does this selection actually imply?
1. Which data center will be used (as indicated)
2. Which base language will be used
3. Which collation/sort order will be used
4. Which services can be used (as indicated)
5. Which tax regulations that are to be applied. (as indicated)

Let me describe each of these if further detail.

Data center
There are several data centers for Dynamics CRM around the World. Two in EMEA, two in North America, and two in South East Asia. If you select a country in EMEA, your organization will be hosted in one of the two data centers in EMEA. Exactly how this allocation is done is for me unclear and I do not think that Microsoft want to reveal this. What I have heard is that there is one data center in on the US east coast and one the the west coast and that there is no easy way to control which of these you will be getting, less than just setting up a couple of different trials until you happen to get one in the datacenter that you would like. I have also heard rumours that there might be some logic in Place that moves orgs from one data center to another to optimize usage. But I have not had any confirmation, denials or comments from Microsoft on this, so I do not think it is true until it is confirmed. I do know that orgs might temporarily be move between the data centers within a region for maintenance reasons or due to fail-overs. Ex. Choosing Swedish will make the org be hosted in EMEA, choosing USA will make the org be hosted in North America.

Language
Which base language will be used, is based on the country selected. For most countries this is simple as there is one dominant main language. If Sweden is chosen, Swedish is the base language. However, there are some other countries where this is a bit more complex, for Switzerland, it will simply be English, and I have not check other countries like Belgium.

Collation/Sort order
Related to the language is also the sort order or in more technical terms, collation. This is important as in many countries with special characters, the sort order is different than in normal English (iso-latin). For instance, in Swedish we have the characters "ÅÄÖ" at the end of the alphabet, these are not just accented A and O but fully qualified characters. The problem is that in the collation iso-latin, these are sorted as A and O (with accents) so a separate collation is used called Finnish-Swedish. There are lots of different collations for many different languages. When choosing the country "Sweden" the collation "Finnish-Swedish AS-CI" is also selected (AS-IS stands for Accent Sensitive, Case Insensitive).

Services
In some countries there are some additional services available to CRM that are not available in other countries. For instance, there are or have been some portal available for CRM Online available in North America that have not been made available in the rest of the World.

Tax and legal
Tax regulations are as many of you know, who have been around, very different between countries. Hence Microsoft need to know how billing is to be handled. There might also be other legal aspects of cloud systems. Some countries might require the cloud system supplier to inform the government of all the customers they have, hence the country selector might be very important from this aspect.

Conclusion
As you can see this one drop down has some quite wide implications. We have to be careful in this case. If a Swedish Company which has US-English as corporate language and hence want this as base language, but all users are based in Sweden and the sort order must be able to handle Swedish names correctly, how is this to be handled? Today, it can't the solution would probably be to choose the Country "Great Britain", but that would not give the right collation/sort order still. In that case, only partner hosted on on-premise solutions can currently handle this or this CRM Online organization has to be provisioned manually behind the doors by Microsoft Technicians some how. Let's hope that Microsoft will soon add a function that will allow for advanced settings for the country selector, allowing for manual selection of each of these five parameters. Until then I hope this posting will guide you a bit and help you make and informed decision on which country to choose.

Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se

Saturday, May 11, 2013

Considerations of email address in registering CRM Online

When setting up CRM Online, especially when doing it on an already existing Office 365 Environment, there are some things that you need to know that might not be that evident, so I thought I might elaborate a bit on it.

First of all, the email address that is entered when setting up the Office 365 organization or the Trial organisation for CRM Online is very important as emails regarding the CRM service (and other services provisioned through the Office 365 portal) will be notified via this email address.
Swedish version of the Trial registration - Email field marked. It says "We will be sending important information to this email address"


Other users set up as administrators will also be receiving notifications on the email addresses set up as Alternate email address under Settings.


So is this a problem? If you are just using CRM Online, and the alternate email address you input is you main work email, no, this is probably not a problem. There are however other scenarios where this might be a problem;
- The Company is using Office 365 as their main work email address and the alternate email addresses are gmail/Yahoo/Hotmail addresses that are seldom checked. For some reason, the CRM service is not payed properly and warnings about the fact that it is to be shut down are sent out to these seldom check email address. Then the CRM system is deactivated for all users and nobody understand why until the users flagged as administrators in O365 (usually very few) finally check their alternate email inboxes and find the warning. Until this is fixed, several Days or weeks may pass with the system down severely damaging user acceptance and profits.
- The original admins setting up the system are no longer with the Company and their alternate email addresses were not directed to "impersonal" email addresses but to their own. When the billing is missed, the effects are similar to the case above.

So, my general recommendations in this case is to make sure that the alternate email addresses used are set with great care and to impersonal email aliases that will remain independent of people leaving the Company. They are to be aliases that are monitored at least once every second day. If using Office 365, the general recommendation is to not use Office 365 email boxes to monitor itself, but perhaps looping it to a Group alias outside which also include addresses within the O365 might be an idea as long as there are people outside the O365 in the alias as well.

Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se

Friday, April 26, 2013

Twitter

As some of you might have noticed, that have been with this blog for a while, I am somewhat verbose, or in other words, I am not always very concise. This one of the reasons I have not joined Twitter as I have thought it a bit unfitting for my way of communication but I guess there comes a day when all sinners must confess to their sins and just adapt. So when my MVP colleague Jamie Miley sent me a Twitter invite, I finally subimitted to the inevitable fact that I just had to learn to Twitter, verbosity or not.

So, I have done this and you can now find me on @gustafcrm or https://twitter.com/crmgustaf if you would like to follow me. As usual, I will keep it strictly professional and CRMy so you won't have to read any tweets about my kids and their soccer matches.

Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se

Thursday, April 25, 2013

Privileges for price list

Privileges regarding the price list entity has some interesting quirks to it as I found out working with it recently.

Yesterday I was working together with Christian Högman at Midpoint trying to help out a common customer of ours who it turned out had an interesting issue. Their typical users had a role that did not allow them to set a price list on an opportunity. So, just add "Read" privilege to the Price list entity, you might think, well, not so easy, as this entity does not exist in the security role matrix.

Well, after some trial and error we found that what was actually required was "Read" and "Append To" privilege Product.



So if you facing the same or similar issues, with price lists, try working with privileges on the product entity as this seems to be the entity that also controls price list.

If you havn't read my colleague Rickards latest blog posting on some really interesting bugs we (mostly he) have found in how queues work and in some cases don't work, at least as expected. http://rickardnorstrom.blogspot.se/2013/04/the-crm-email-router-routing-emails.html

Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se

Tuesday, April 09, 2013

Switching on and off appointment synchronization in CRM for Outlook


When using the mobile solutions, it is quite common to use a server-based CRM-Exchange synchronization software. There are several different products out there and the one I have the best experiences from is Riva Exchange integrator (http://www.rivacrmintegration.com) although a bit more expensive than other on the market, a very stable and high quality product.

If the Outlook addon for CRM is used at the same time, there is a substantial risk that appointments created in CRM are integrated twice to the Exchange server, once through the server based integration and once using the Outlook integration. As the server based integration is to be the main method of integration the Outlook integration needs to be modified to stop appointments from being integrated from CRM to Outlook.
Setting which entities are to be synchronized from CRM to Outlook
 

This is a bit problematic however, as there is no way of doing this for a group of users, but is done in the personal settings once the outlook addon has been installed. This means doing it manually is practically impossible.

The data is actually stored in CRM in the UserQuery entity. This is a rather special entity however, for instance, you need to impersonate each user to be able to edit each users UserQuery’s. This will take some extra consideration in coding. Thanks to David Jennaway for pointing out some of the details regarding this.

If you are running a CRM On-Premise, writing to the SQL database in not supported, but in certain cases, and I would generally advise against it as it can damage you CRM system, it might be ok. In this case, what is needed is to change the statecode and status code of some UserQuery:s. As this is unsupported I give no guarantees but I have used it myself, so I thought I’d share it with you if you’d like to use it.

The following SQL Update script, will deactivate all appointment synchronization in the CRM Outlook addon for all users. Run it in the context of the CRM database.
Again, USE AT OWN RISK, it is unsupported!

UPDATE [UserQueryBase]   SET [StatusCode] = 2      ,[StateCode] = 1 WHERE QueryType = 256 AND (ReturnedTypeCode = 4201 OR ReturnedTypeCode = 4214 OR ReturnedTypeCode = 4251)

The following script will reactivate them.

UPDATE [UserQueryBase]   SET [StatusCode] = null      ,[StateCode] = 0 WHERE QueryType = 256 AND (ReturnedTypeCode = 4201 OR ReturnedTypeCode = 4214 OR ReturnedTypeCode = 4251)
Another interesting fact that you might not be aware of is that if you switch off the synchronization of appointments between CRM and Outlook, the next time you run the synchronization, the CRM Outlook Addon will remove all the corresponding appointments from Outlook, and hence from Exchange (if Outlook is connected to Exchange).


Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se

Monday, April 08, 2013

Errors in Swedish translation

As many of you have been aware, working with the Swedish translation of Dynamics CRM, there are some annoying bugs. One of these has been around for quite some time, I think at least since CRM 3.0 and maybe as long as 1.2, a cannot remember, even though I worked with that version.

The bug I am referring to is the translation of both Subject and Regarding to "Ämne" in Activities. This looks really strange in CRM as this is one of the most common entities. An annoyance for many partners has also been that both these fields are system fields which makes their labels quite hard to change. You cannot just go into the normal field settings and change the display name. There are some workarounds out there, of which I think the best one is to use the translation file to change the display name (which I think has worked for me a couple of times any how).

The other one faced in CRM 2011 and is the translation of the two buttons "Delete" and "Remove" in a solution. These have both been named "Ta bort". Again this is not very thoughtful and has obviously not been done by anyone who works with CRM.

In this case the effects can be rather drastic, as the difference is huge. If you plan to remove a custom entity from you solution containing 3 million rows of data, and press the wrong "Ta bort"-button, you will accidentally remove all 3 million rows of data. With CRM Online currently lacking any manual backup functionality, this means that you have lost these 3 million rows. Thankfully there is a confirm dialog, and the users working inside solutions are usually rather savvy so they know what they are doing.

Still, the fixes are simple, just fix the labels in the default translations. I hereby volunteer to Review the translation for the Swedish MUI if asked at no cost, just to make sure we can remove these kinds of errors.

I have submitted these as feedback to Microsoft Connect, if you agree with me that Microsoft should fix this, do sign up and vote for them.

This is the link for the Ämne-issue:
https://connect.microsoft.com/dynamicssuggestions/feedback/details/783135/error-in-swedish-translation-same-word-used-twice-mne

And this is the link for "Ta Bort":
https://connect.microsoft.com/dynamicssuggestions/feedback/details/783226/delete-and-remove-in-solutions-translated-to-same-word-in-swedish


Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se

Wednesday, March 20, 2013

Email Router WebDAV problems

A couple of days ago I was setting up the email router for a customer running CRM Online. I must say that I really look forward to the day when Microsoft retire this very strange product that in no way fits the cloud story of CRM Online and Office 365. On what server is it to be deployed?

However, this customer is running CRM Online (at the time of this article, Polaris) and Exchange 2007 On-premise. They had been trying to get the email router to work for several days and had been advised by Microsoft Support to use the WebDAV protocol to connect to the Exchange server. This has worked fine at the beginning but after a while, one of the two queues stopped receiving emails for no apparent reason.
After a lot of trying and look at logs, I removed all settings and recreated everything based on the Exchange protocol from WebDAV to Exchange Webservices, which after some finetuning of the URL:s actually started to work. During this time I discussed this issue with some of my MVP friends, especially Joel LindstromDavid Jennaway and Donna Edwards who were very helpful and they pointed me in the right direction of what was probably the root cause of the error, not that I have actually have had it confirmed but it seems very plausible.

What seems to be the error, that they mentioned, is that some of the emails contain some “special” characters which caused the WebDAV to crash for one of the two queues, while the other one did not contain any emails with any “special” characters. When I changed to the Exchange webservices protocol, which does not have this bug, the mail got imported to CRM as it should.

This is a very tricky error as it is very hard to find and also rather hard to confirm. I still do not not if this is a fact, it is just a hunch, but it fits the symptoms.

My general recommendation based on this is hence the following:

1. Do not use WebDAV when connecting the CRM Email router to Exchange. It is buggy and does not support special characters, some searching the net show these to be characters like !#$%^&. It might work at first but after a while, you might receive an email that contains a special character and it will break down without saying why.
2. Microsoft Support are very good to have when things to not work but do not put your life completely in their hands, sometimes you need to trust your own judgment and try stuff yourself.

3. Isolate errors as far as you can. It helps when trying to find the root cause.

4. Listen to your friends, they are the best!
And let’s all together ask Microsoft to can the email router and build it into the CRM application, especially CRM Online.
Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se

Monday, March 18, 2013

Techie AW Again!

Yet again we are holding Techie After Work here in Stockholm!

I am afraid I am blogging about it a bit late this time as it is already this wednesday, the 20:th of march at Hotel Anglais in Stockholm (close to Stureplan).

This time we will be trying out a different setup with round table discussions in the subjects of:
- Information modelling
- Security
- Performance

All from a CRM perspective of course. The goal is to get more of a dialog than the previous presentation type of event that we have been.

As usual, Allan Varcoe, Peter Björkmarker and myself will be hosting the event together with Microsoft.

If you are or want to be a real CRM geek, this is the place to be, so try to buy a Kinect for your Kids and wife or buy a gift card to H&M for you girlfrind so that you can get a endulge yourself in the wonderful discussions we are going to have about our favorite product!

Please note your attendance on this facebook site: http://www.facebook.com/home.php#!/events/351100611667866/?fref=ts

Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se

Tuesday, March 05, 2013

Nice licensing overview

Licensing issues are often complex when designing CRM solutions and I have strange attempted workarounds with proxy users and simlar and often the issue has been that the sales people have not had the technical insights enough to know the inplications of the licensing setup.

I recently saw I nice blog entry with a summary of CRM licensing. Do check it out. http://markmargolis.wordpress.com/2013/03/04/microsoft-dynamics-crm-licencing-simplified/

Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se

Monday, March 04, 2013

Nice book about CRM Customization and Configuration

There are quite a lot of books out there about customizing and configuring Dynamics CRM, a quite recent one is written by a MVP colleague of mine Neil Benson, a nice British guy now days living in California.

The book's title, Microsoft Dynamics CRM 2011 Customization & Configuration (MB2-866) Certification Guide, really tells what it is all about, trying to get you ready for the certification, which is a something of task as these are not at all easy. A good book is a good guide, so running questions is if it is a good book or not, and in general it is a very good book. Benson is, and I know this personally, very skilled, and this shows, and the book is concise and to the point. There are just a two things I would like to see fixed in future editions of the book and that is that the final two chapters (charts and solutions) are made to the same level of excellence as the rest of the book. I recommend this book to all people trying to nail the certificate!

Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se

Thursday, February 21, 2013

Sending emails from a Queue with the email router


Using queues to receive emails is rather common and can be great for receiving emails from generic address like support@contoso.com. However, queues in Dynamics CRM can also be used for sending emails, allowing you to send emails from generic addresses like support@contoso.com. This is, however, not as known so I thought I’d write about it a bit to let you know how it is done.
First of all, go into the Settings, and create a new Queue.


An important aspect here is that the “Queue Name” is important as this is the name that the recipients of the emails will see in as the sender. Like “Westerlund Support ”, so try to set a good name.

You do not need to check the “Allow credentials for the E-mail Router” as this is only used for incoming emails.

The email address must be an email address to which the email credentials have access to send as. If this is virgin ground for you, there is a lot that you need to know about how email servers work in the area of relaying emails. In short, they usually are quite grumpy in order to block any spammers from using the email server to send their spam. The typical limitation is that you need to authenticate with a user to be allowed to send email, however, there are also other ways that are sometimes used, like allowing emails to be sent from user registered on the mailservers. For example, emails that have a from address support@contoso.com are allowed to be sent from the contoso mailserver but it will not allow mails from support@microsoft.com or sup@contoso.com (a non-existant email address). There are also setups that limit relaying based on the originating IP address. In essence, allowing email from any sender to be uploaded to the email server, as long as they are sent from a server with a registered specific IP-address. You need to know how this works for the email server and address that you are using. I would also suggest trying to send emails using a simple SMTP sender or simple mail program to make sure the credentials etc. are set up correctly as handling these kinds of errors in the email router is not optimal.

Press save

After pressing save, you will get a warning that the email address has not been approved, so press the button in the action bar to approve it.

Now, open the email router. If you can’t find it, it is either on the installation DVD:s for Dyn On-Premise or can be downloaded from here: http://www.microsoft.com/en-us/download/details.aspx?id=27818

Do note that it is language specific and that it has special Update Rollup bit so you will need to upgrade it to match you installation. On a CRM-Online your system will be continually updated and the router needs to be installed on a server or other permanently connected machine, which needs to be updated manually, so make sure to put that on your todo-list.



Set up your organization in the next tab (omitted in this article) test it and publish your settings.

Now, go back to CRM. Create a new Email and set the queue as the From address (it is defaulted to your user).
 

And then write the rest of the email.



And press send.

Do note that the email created will have the status “Sending” until it the router picks it up and sends it. This logic is based on the fact that the router will periodically check in CRM for emails to send. This is defaulted to 60 seconds.

After a while, the mail should be sent and received. This is how it looked for me:



It is in Swedish, but note the field “Från” (meaning From) which says: “Westerlund Support ", being the name of the Queue.

That’s it! Hope you get it working and do drop me a note if you have some issues.


Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se

Friday, February 15, 2013

Syncronizing with address books

One of our customers migrated from a custom made CRM system and their users were used to be able to select entire lists of user directly in Outlook and send emails to. As there is no good way of doing this in Dynamics CRM we thought about it a bit and have now released the solution to the problem as a product.

As you may have noticed, when installing the CRM Outlook client, you get several new address books. The address books are what you see when you press the "To" button in an email and then select Address books in the top righthand drop down.
Outlook 2013 without the CRM Outlook Client installed




















These new address books are mainly based on entities and are for instance "Account", "Lead" and a few others. Exactly which filters are to be used for these address books can be partly configured in CRM.

However, the most obvious lists that you would like as address books are your marketing lists. However these are not available. This can for instance be useful if you have a list for all your contacts in Stockholm and you just want to send them a quick email about an event you are having or similar. Then you would like to just press the "Bcc" button, select the address book that corresponds to the marketing list for contacts in Stockholm and press Ctrl-A and then press the "Bcc" button.

To enable this, we have developed a product that is now available, that does this. It also adds a check box to the marketing lists so that you can decide if you want the marketing list to be available as an address book.

We like this product, as it really puts you closer to your marketing lists or customer segments, if this is what you are using it for. We hope you do to. I have a special blog-reader-discount, so if you just mention that you read this on my blog, we will give you a 20% discount. http://www.crmkonsulterna.se/Pages/Addressbooksync.aspx




Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se

Tuesday, January 29, 2013

Polaris/UR12 fully out

The new Microsoft CRM semiversion, called Polaris has now been released and has for online been in the processo of upgrades during the last couple of weeks.

Today the server bits for UR12 which is the corresponding upgrades for CRM On-premise has also been released. You can download them here: http://www.microsoft.com/en-us/download/details.aspx?id=36229. Do note that not all features of CRM-Online are available yet in on-premise, for example, the new UI called process driven UI.

There are lots of nice things, the most notable the cross-browser support that we have all been waiting for so long.

And if you hadn't noticed, the CRM-Online upgrade was done without any downtime. The only thing that was noticed was that the system was a little bit slower than normal.

Next major release is called Orion so far and is planned to be released this summer.

Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se

More on the insecurity of cloud data

As I previously discussed in a guest posting at Software Advice, the legal aspects of cloud computing are interesting and an article recently in "Computer Sweden" (Swedish) again raised this issue with references to the law at hand in the US.

The article references the law Foreign Intelligence Amendments Act, FISAAA, and describes how it can be used without any court order or by-case permits required. According to the interpretation of the law it has some limitations but can rather freely be used to gather non-american data. It does not have to be political data, but can just be data from a forign region affecting US foreign affairs.

As it does not require case-by-case permissions, the interpretation of the law is probably handled quite far down the ranks were this is deemed necessary. The interpretation could hence also be quite wide and I would not be surprised if data such as defence industry business opportunities fall within this area and probably other related areas. Foreign affairs is a wide definition, automobile export, telecomunication equipment and software export is defintley within the boundaries.

I would hence, strongly advice against putting data in countries with legislation similar to this (USA is definetly not the only country). When using the Microsoft Dynamics CRM Online service in Europe, the case is a bit better as the data is stored in countries within the EU:s juristiction. The US law is, however, interesting in this part as it focuses on the companies being american and not where the data is actually stored. Hence, the fact might be that the US government might be able to push Microsoft/SalesForce/Google or any other american cloud systems supplier into handing over data backed up by this law even if the data is stored in other countries.

To be on the safe side, from the legal aspect, storing the data in your own servers run by your own people, is always the safest. Their loyalty lies with your company and you have control over the physical storage of the data. Do not that this, however, is no safeguard agains hackers.


Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se

Wednesday, January 09, 2013

How to become a Dynamics CRM Professional

Being an MVP for Dynamics CRM has many perks, one of the perks I appreciate the most is the very close relationsship that the Dynamics CRM MVP:s have with daily conversations on our favorite subject, Dynamics CRM.

Gus Gonzalez is one of these MVP:s and took the initiative to ask 19 of these MVP:s 20 questions on how they started working professionally with Dynamics CRM and he has now assembled this into a very interesting blog post. I had the opportunity to be one of the participants of this survey.

An interesting note is the difference of background for all of these people, so if you have your sights set on being a CRM professional, there is nothing stopping you!

Read the blog post

Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se

Saturday, December 29, 2012

Address management

As I have been around to a couple of different companies using CRM, some of which have been implemented before I started working with them and some I have been with from the start there are some things that can be said of the address management in CRM 2011. My general recommendation being to not use it as it is but to do some minor changes to make it work for you.

To start off, I would like to go into some detail of how the address handling is actually done in CRM.

There is, as you probably have seen, a field with the default display name "Address Name". This can be hard for normal users to understand without instructive training. What it should be used for is to specify what the name of the address or that customer is as an internal name for that address, like "Main office in Berlin". Due to the ambiguity of the field, I have seen different ways of putting data into it, one is repeating the company name, where the notion is that it is to be the first row of the address when mailing, in essence being the "name to which the address is going". This field is also a requirement for some logic in CRM, in particular the different address lookups you can find for instance in the Order or Contract. For an address to show up in this lookup it has to have an "Address name". This is also the main selection data in this lookup (by default anyway), why a descriptive name is useful, for instance "Main office in Berlin" and "Postal address".

So, why this requirement on address name, you might wonder? Well, behind the scenes this logic is a bit more complicated. When entering an address into address1 or address2 in an account or contact, it will actually sync this to a replicated instance of the customeraddress entity in the background (created when the account/contact is created, with addressnumber 1 and 2). This is the same entity that you are looking at when looking at the "More addresses" in the contextual navigation menu within account or contact. CRM then maintains sync between the data in the account/contact and the customeraddress. These two customeraddresses are, however, filtered out from the list shown in "More addresses" but you will find them if you check the SDK or the database.

Hence there is need for some good data in the field "Address Names" so that it can be used in the lookups but it is also hard to intuitivly understand what to put into this field with the current caption.

Hence my general recommendaton for this field would be to either change its caption so that it is more instructive or have some automated logic set it by default.

An interesting fact is that the no address names field have been set by in the sample data provided by Microsoft that can be installed from within CRM. So if you want to demo the address lookups, make sure to set some fitting address names first, otherwise the address lookups will be glaringly empty. Let's hope this changes soon.

The second field that is interesting is the drop down with the default display name of "Address Type". It contains several values indicating which type of address this is. I have not seen any built in logic that uses this data. As there is some very significant correlation between this drop-down field and the "address name" I would recommend either linking these with logic or removing the "Address Type" field from the form.

Which fields are used for the specific address is usually country dependent. For instance the field address1_line3 and address1_region is almost never used in Sweden but is more commonly used in countries like Germany or USA. I will not go into which field are to be used for the address due to this reason. My general recommendation being to keep it as simple as possible. For multi-country implementations, try finding the lowest common denominator.

An additional interesting point is the Outlook syncronization of contacts. This syncronization will use the first address and as the address in Outlook for a contact, is syncronzed to the back-end mail server (usually Exchange) and then on to the Windows Phone (or similar inferior device). From the phone, the most usable address is the visiting address, as that is usually what you are looking for when you are checking the contact in you phone. There is also a default mapping of address1 in account to address1 in contact for contacts created from the account. Based on this, I generally recommend defining address1 as the Visiting address for both account and contact as this will harmonize best with the mobile way of using this data.

As for different ways of implementing the logic, I have seen a couple of different ways.

The first version that you will encounter is the standard way of handling addresses based on the logic of the field described above. This will in general confuse the users with the two fields with correlated information without logic to tie them together, the other is what I mentioned above, that the ambiguity of the caption "Address name" makes things confusion. The fact that the address type field also exists on both addresses, especially on address one, means that contacts created from an account will with the default mapping have different address types showing up in Outlook and in the mobile devices. And I for one, do not believe that the invoice address is all that interesting to have in the mobile device. I would not recommend using it without some customizations.

There is also a problem with using the "Address Type" field as this will mean that there is no simple way of knowing which address is the postal address, the address type always has to be checked. This really complicates things when doing integrations to other systems as well, as they usually don't work this way. It also makes analysis based on this data more complex, and in particular makes it too complex for normal users trying to do some ad-hoc reporting with charts, advanced find and excel.

Another way of using addresses that I have seen is to change the caption of address1_line1 to be "Postal Address" and then address1_line2 to be "Visiting Address". Some of the people I have discussed this with like it because it makes life easier for them (they don't have to enter two addresses). This means that the other fields will be shared between the two addresses like the field "address1_city". They also argue that for most customers these are the same. However, for group of customers, usually larger, that have different visiting and postal addresses also on a city level, this makes things problematic as it is very useful to have the City also on the visiting address, for instance when navigating to the customer with a GPS, and you don't want to be stuck at a PO-box.

This way of sharing data for different addresses with an address in CRM will also break the logic described above with the address lookups in for instance Order and Contract. The address name has to be set to "Postal Address" and there will be no way of for instance setting the delivery address of an order to the "Visiting Address". As for the argument of it being easier, that can be solved with a couple of lines of javascript code that default the data from address1 to address2 if it is empty.

The way I like to set the address management up in CRM starts of by defining the two addresses to usually Visting address for address1 and Postal address for address2 for both account and contact.

I trim the address fields and remove the address type field.

Next I create a javascript that sets the "Address name" fields to "Visiting Address" and "Postal Address" and then disables and force submits the fields.

In some cases I also create an additional script that will copy the address from address1 to address2 if the latter is empty.

I try to make sure that the address fields in Account, Contact, Customer Address, Quote, Order, Invoice, Contract and related entities are similar.

As an extra note, for the Swedish market, we, at CRM-Konsulterna, have created a small ISV-solution available on the marketplace that does this. Please read more about it here (Swedish): http://www.crmkonsulterna.se/Pages/SvenskStandardanpassning.aspx

As there are no rights or wrongs in this subject, please feel free to leave a comment. I would encourage a discussion on the subject.

Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se

Monday, November 19, 2012

Konrad, my new colleague!

My company, CRM-Konsulterna, recently got a new addition in a great web developer by the name of Konrad Viltersten. He has many years experience of web programming using a large variety of techniques but he is learning Dynamics CRM of which he has no previous experience. He has started a blog where he describes how he is learning the different parts requried to become a good Dynamics CRM developer. Have a look at it! http://konradviltersten.wordpress.com/ he has some fun and interesting postings! You will also find him at Stack Overflow where he is very active.

Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se

Monday, November 12, 2012

Presentation at Mircosoft Partner Day

A few days ago, I was part of the key note at the Microsoft Partner Day in Sweden. Together with Malin Dandenell at Learning Point, my colleague Rickard Norström and Atefeh Sebdani at Microsoft we demoed a realistic business scenario with all the new great technology (and some more common). The scenario was that I was a salesperson and got the oppotunity to get a business if I managed to get the proposal to the customer within 5 hours. The only problem was that I was out of office my self, only with a tablet, the tech-presale (Rickard) was at the Gran Canaria, without his computer on a vacation and my boss  (Malin) was home taking care of sick children.

We showed that this was totally doable with the use of modern tablets that are more than just large Angry-Birds-play-machines, but actually very slim and fully fletched windows computers than with the use of a blue-tooth keyboad and mouse are turned into a normal computer. I used a Samsung Windows 8 Pro and the only thing holding me back is that I really would want a Surface Pro but the release plan for that in Sweden has not been set yet (it can be ordered from France or the UK though).

Rickard used a Win2Go and and old Vista computer to quickl get his Windows 8 machine with built in Direct Access and all the modern applicatons he needed to quickly get up and running to be able to help me with the quote. The amazing thing was that the Win2Go actually booted quicker than Vista was to shut down.

We also used Lync for Video conferencing, word co-authoring and the Lync feature of letting someone control a program in your computer. Finally I presented the quote to the customer using Word Present Online.

We actually did use CRM aswell :), I started off with doing the meeting in tablet mode using the great Resco Mobile CRM client. I got a lot of great feedback from that, seems that many people don't know about it. I had originally planned to use Dynamics CRM a bit more than that but the demo was really tight at <20 big="big" darlings="darlings" favor="favor" for="for" have="have" in="in" kill="kill" minutes="minutes" nbsp="nbsp" p="p" picture.="picture." so="so" the="the" to="to" you="you" your="your">
My overall impression is that the new stack of products from Microsoft are not only cool but can give you a real edge on the competition by shortingen the OODA-loop. So try not to be left behind!

Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se

Sunday, November 11, 2012

SharePoint as document management storage for Dynamics CRM


As many of you know Microsoft Dynamics CRM 2011 has a built in integration with SharePoint. As a former SharePoint consultant I have reviewed it to see how it looks, not only from a CRM perspective but also from a SharePoint perspective and there are some major issues from this perspective that one needs to take into consideration. For those of you who attended my presentaton at SharePoint Exchange Forum 2012 22-23 of october this year this is more or less what I presented.

First of all, to make it work properly, you are recommended to install a special addon to SharePoint called the CRM List Webpart. This makes the document lists in SharePoint get a more CRM-y look. I found a very good blog with detailed instructions on how to install it which, at least for me, worked perfectly; http://mossdevsharepoint.blogspot.se/2011/07/integrating-crm-2011-with-sharepoint.html

When this is done, you simply go into Settings-Document Management and click on the "Settings for Document Management"-button. This will start a wizard that will let you configure the integration.

It will default which entities are to be used for the integration and you are also asked for the base site URL. This site will contain all CRM documents unless you do some manual configuring (as described below) so I generally recommend that you create an empty site. It will also create one document library per entity that you have selected in this site.

The result will look something like the following:
Document libraries created in SharePoint (left) will match the entities selected in the document management settings in CRM (right)
For now, let's refrain from the ranting and just note that this is how it will look.

If further entities requrie document management, these can be added later by re-running the wizard.

After you have selected which entities you would like to use document management for, the wizad will show you the following query:
Folder Structure selection
This query is very important to the structure of documents in SharePoint. If you chose to use a folder structure based on an account or contact (my recommendation is generally to use Account here if this is your primary customer entity and only use contact for strict B2C).

If you choose the structure based on account, a folder structure will be created in the SharePoint Document Library as follows:

Folder structure if based on account for an account with sub-opportunities and quotes
 
Do note the folders called Opportunity and Quote that have been created. Rant below.

If, instead the structure is selected that is not based on an entity, a flatter structure will be created.

Folder structure created if not based on an entity
The folder structure is a lot flatter, but note the difficulty of trying to identify the quote folders for the opportunity "CRM Online for A Store". As no hierarchy is used, the only way of distinguisishing sub-objects is to use descriptive names as I have done with the opportunities in this case to indicated that all your bases are belong to us.

To be total just, no object specific document folders are actually created in this step. This is something that is done the first time you open the documents tab for the object (ex. the account "A Store").

So to give a quick review, the following can be concluded:
- Hierarchical structure is to be selected if documents are to be navigated to with SharePoint as the flat structure makes it very hard to understand which folder belongs to which place.
- When you reparent something in CRM, for instance if the opportunity was created towards the wrong company in a corporate hierachy and you reparent the opportunity. This will not trigger any changes in SharePoint which is ok if the flat structure is used but not so good if the hierarchical structure is used as the opportunity documents will be stored under the wrong account.
- The flat structure gives a clearer division of document types. For instance all Quote documents will be stored in a separate document library and all documents related directly to accounts in another.
- With the hierarchical structure, most documents will be stored in the account document library which for larger installations would incurr large amounts of documents. This will make it more diffucult to use.

You can also connect your CRM objects manually to a specific folder/document library, this enables you to create a more logical structure in SharePoin, like one site per customer, and then manually connect each of these site's document libraries to the corresponding account in CRM. The problem with this is that you have to follow the following steps to do it (example for a customer setup)
  1. Create the account in CRM
  2. Create the customer site in SharePoint
  3. Copy the right part of the URL from the document library in SharePoint.
  4. Add a new document connecion in CRM and past the document library from (3) into the field.
This will not work in normal CRM implementations as the tasks are too complicated for normal users, and especially salespeople to do.

Another perspective that is important to remember that the security (privilages) for the document libraries are not replicated from CRM to SharePoint. SharePoint has a more traditional top-to-bottom security architecture and the security architecture of CRM is a lot more complicated and it is very complicated to try to replicate the privilages for a specific object in CRM to the corresponding folder in SharePoint. This is due to the fact that the CRM security architeture is dependent on both owner (user or team) and sharing that have been made. For instance adding or removing a person from a team would requrie you to check all ownerships and sharings for that team in order to mimic the security settings. The recommended way of handling this is to allow all people in a group to have access to all documents in SharePoint and then remove access (inheritance) for the folders that require special permissions. It requires special handling and would be very cumbersome for large organizations.

My final conclusions are hence that the use of SharePoint as a document storage tool for CRM greatly enhances the document management funtionality of Dynamics CRM but it has not been designed to enable logical use of the documents from a SharePoint perspective. The security aspect is also somethnig that will reduce the way it can be used. I would also recommend that the documents are to be accessed mainly from CRM and only in very special cases from SharePoint.

I am not aware of any third party addon that increases this functionality, if you do, please leave a comment!

Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se

Thursday, November 01, 2012

CRM Gamified

Getting users, especially salespeople, to really use the CRM system is one of the most important parts of implementing a CRM system for an organization. There are numerous examples of CRM systems with lots of great features that just have not been used by sales people which causes the data in the CRM system to be incomplete and hence not very usable.

I am a big fan of computer games, currently Battlefield 3, and one thing many computer games excel in are that they are really good at user adoption, it is really the basis of it all. Without it, they just wouldn't sell. There are ongoing trends in the business to "gameify" business applications to make them more fun to use and hence makes user adoption a lot better since you are makeing users really want to use the CRM-system.

One of my fellow MVP:s, Pablo Peralta, has been part of bringing forth a great new product, called CRM Gamified which brings some of the principles used in computer gaming to Microsoft Dynamics CRM. Let your sales people compete in getting point for different task in the CRM system and have dashboards showing the leaderboard. So, do have a long a deep look at this addon. It could litteraly change the way you do CRM.

http://crmgamified.com/

Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se