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 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

Wednesday, October 24, 2012

Techie AW #2 in Stockholm

As I mentioned earlier, we had a CRM Techie AW at an hotel in Stockholm. It is now time again, so if you are a programmer, application consultant, architect or in some other manner work with Dynamics CRM from a technical perspective, do attend.
Last time we had some very interesting discussions regarding managed and unmanaged solutions. This time we are going to discuss supported and unsupported customizations and solutions. Which is a subject that I feel is very interersting and that there are many aspects of it that can be discussed. I previously this year wrote a posting on the subject, which you can find here: http://gustafwesterlund.blogspot.se/2012/06/unsupported-customizations.html

It will be located at the same hotel as last time, in other words Hotel Anglais next to Stureplan in Central Stockholm.

Further reading (in Swedish) and attendance submission can be found here: http://bit.ly/TechieAfterWork

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

Monday, October 22, 2012

Creating quotes in word

I really love CRM but as with all things you love, there are also areas where there are areas of improvement. One of these areas concerning Dynamics CRM is the functionality to create quotes by sending CRM data to a word document by using the mail merge functionality of word. Until Microsoft have fixed this, there are a few good options.

The basic functionality really consists of two parts. The first part is being able to create a document without being a programmer. The built in functionality of Dynamics CRM requires you to open the document press Alt-F9 to see the "backend" of the document and then be really savvy with Word template programming to make it work for you. The basic problem with it is handling subtables, like quote rows in a quote. As the data being sent from CRM to word is a large table with one row for each of the detail rows. The problems with this are:
- You cannot have two sub-tables
- As the word for-each functionality works in such a way that it loops through all the rows and when the cursor points to the row after the last, it will leave the for-each-loop. The header data is copies as fields to all rows. This means that you cannot, using the normal logic of a template, have a template that first shows all quote rows and then the total after the table, as the latter comes from the quote header. Microsoft have solved this by some rather intricate programming of the template that makes it almost unmodifiable for normal user and programmers not used to advanced word template programming.

I have tried one product and know of another that I have not had the chance to try yet, that try to rectify this.

The first one is DocuementCorePack from MSCRM-Addons in Austria. It has a very CRM-like addon to Word where you easily can insert the fields you like from the entities and related entities. It also has special logic for handling sub-tables and to save the document back to CRM or SharePoint. The installation program is also exemplary! It is very easy to install. They also have some additional tools that jack into to this program like the AutoMerge. The company behind it is a very stable company that has been making addons to Dynamics CRM since version 1 and they have even helped me make special adaptations to the program when I have had customers requesting this.

The second one is QuickBix Document Suite from the Swedish company QuickBix. I havn't had the chance to try it yet but they have shown it to me and it has some very good features. They also have some impressive customer references. I have tried once to install it which I was sad to say was unsuccessful. This might however have been fixed or I might just have been unlucky. The people behind the company are very friendly and are always eager to help.





The prices vary for these products and I suggest going to their web sites or send them an email to find out the details.

In conclusion I never demo the built in functionality for generating quotes to word in CRM and I really hope Microsoft will fix this as it is rather fundamental to sales force automation (SFA). Until that time, and maybe also after, there are some very good alternatives at reasonable prices so do check them out!

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

Wednesday, October 17, 2012

MVP Book here + syndication of blog

Today I received my two copies of the CRM Field Guide! A real monster book written by no less than 19 of my fellow CRM MVP:s. It is truly a great book with indepth chapters regarding many of the areas you touch when working as a consultant with Dynamics CRM. It is also very personal with lot of tips and tricks by some people who really know what they are talking about. If you havn't already gotten a copy, hardcopy or e-book, head over to their site and buy one right now. http://crmfieldguide.com/. The e-book is a real help in the field, when the brick-sized hardcopy might be a bit cumbersome, but nothing meets the feel of a real book. (yes, I was once a publishing editor and have a real fetish for real books :)

Today this blog was also officially syndicated by Microsoft Dynamics Community blogs, as you can see here: https://community.dynamics.com/product/crm/crmtechnical/b/gustafscrmblog/default.aspx or you might actually be reading it at this new location.

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

Friday, September 28, 2012

CRM Techie AW

Creating a CRM community in Sweden has long been a goal of mine why I am very happy to report that we the first community meeting finally has taken place. In hotel Anglais next to Stureplan in Stockholm, we had a CRM Techie After Work.

I was, together with Peter Björkmarker and Allan Varcoe responsible for the content of this first meeting. Peter and Allan took opposing sides in the use of managed solutions in customer projects (not ISV-solutions) and after the inital walkthrough there was a general discussion on the subject which I had the privilage of moderating. Microsoft backed up the event by the presence of Fredrik Wolbe.

I found the discussions very interesting and most of all liked the open attitude of sharing the experience and knowledge that we all have.

We also had some discussions on what to discuss next time we meet, and Fredrik Wolbe mentioned that he might get some product specialists to show us the new HTML5 GUI that most of us have only seen in screen shots. This was liked by most so Fredrik promised to try to make it happen.

The event was attended by about 20 people from different companies. Let's hope there is even more people attending next time! I will be sure to post some info as soon as it has been decided.


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

Tip! There are rumours out of an extraordinary book coming out very soon! Keep you eyes and ears open!

Tuesday, September 25, 2012

Content thieves

There are many bloggers in the CRM community and in just the latest few months, several new CRM blogs have been started here in Sweden. I think this is great as experience sharing will make us all wealthier in knowledge and increase our edge on the competition from other inferior CRM-systems (none mentioned, especially not SF).

However, there are also several shady companies around that instead of creating their own content, blatently steal content from others. Probably because they do not have the competence themselves to write anything original. I think this is sad and it makes me angry as many of the bloggers around share their knowledge in their free time without any profit interest. This kind of behavior does risk some of these people to stop sharing which would be bad for us all, but great for the competition.

Some of these content theives, are not only lazy, they are also rather dim why a fellow blogger Jukka Niiranen, who was victim of one of these leeches, decided to play them a little prank. Do read about it and laugh!

http://niiranen.eu/crm/2012/09/getting-back-at-blog-content-thieves/

By the way, I write all my content my self, and if I am copy-pasting anything I always try to be very strict with the original source. If you have any comments on this, or feel that I have not given you enough credit for your work, please contact me.

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

Thursday, September 13, 2012

Performance analysis of Dynamics CRM

Today I was helping a customer out that have experienced rather bad performance of the CRM system.

They described the performance as being bad in Europe (the server being hosted in Sweden), it was quite obvious that the problems do not originate from network latency, which can be an issue if performacne problems are experienced from the other side of the world (ex. from New Zealand with servers in Europe).

One of the most common problems with performance in CRM systems is bad SQL performance. In large installations, this is usually due to bad SAN (Storage Area Network) configurations from a SQL perspective. As CRM is meta-data driven, it is quite database heavy since it cannot be fully database optimized like custom made ASP.NET applications. Hence good database performance is vital to a rapid CRM.

This is also evident in the large scale performance test that Microsoft have done with 150 000 concurrent users, where the setup was based on High-performance SSD:s in RAID configuration to enable the scale of the test. Read more about it here: http://www.consultcrm.co.uk/sites/default/files/microsoft_dynamics_crm_2011_performance_and_scalability_with_intel.pdf

A very good tool to use for benchmarking the disk performance on a server is SQLIO which can be downloaded for free at Microsofts site.

The two parameters to look for are IO and throughput. Do bare in mind that many SAN:s have caching which can make results strange, so it can be a good idea to try to increase the test file size. Also make sure to put the file on the drive which you wish to test.

I did some test on some of my environments which you can use to benchmark your system setups:
GW VPC - Microsoft Dynamics CRM Demo environment run with 6 GB Memory on my E:
GW LAB - Our development environment, virtualized with RAID drive (4x150 GB 15k rpm)
GW C - Intel SSD 3:rd Generation 250 GB
GW E - Intel SSD 2:nd Generaton 150 GB

IO/s
Throughput MB/s
SSD performance in this case blows the roof off the RAID and the loss of performance is rather substantial inside the VPC, but the read performance is still 5-7 times that of the RAID.

An interesting aspect of this is the GW LAB, our development machine run on RAID, it has almost 3 to 4 times the IO and throughput in writes compared to reads, which is not the fact for the SSD-based disks. This is probably due to some write caching functionality of the RAID.

My recommendation based on this is that if you need high performance on you CRM, use SSD:s in your setup. Do use server-grade SSD:s and used at least RAID:s with 2 disks redundancy, but it will give your CRM a rather large performance boost compared to normal grade SAN.

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

Saturday, September 01, 2012

More swedish CRM blogger

There seems to be a nice trend of lot of new CRM bloggers here in Sweden. I think this is great, mercantilism always has to give way to free trade! Even more so in the information era.

Alan Varcoe, a Dynamics CRM veteran and architect, who some of you might have noticed has left some comments here from time to time, has now started his own blog. He has written an interesting post managed and unmanaged solutions. Do check it out!

Let's hope this discussion results in some new features from Microsoft in this area, as that would be greatly appreciated!

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

Thursday, August 09, 2012

Social Roadmap for Dynamics CRM

Today I watched an interview on CRMSoftware.TV with David Pennington, Director of Product Marketing for Dynamics CRM where he talks about where Microsoft is headed in terms of social functionality.

In short this is what is mentioned:

The recent updates from november 2011 added some social functionality, namely the wall functionality in CRM and also the ability to leverage hash-tags to some extent.
Microsoft’s focus is, as they usually do, on productivity in the sense that you should spend more time closing business and less in computer systems, and this has also been the guiding star when developing these new CRM features.

He also talked about the new update coming in the end of the year with functionality to enrich your data based on social intelligence. Brought in technology from Inside View (http://www.insideview.com/)  to bring in data from social systems and enrich the CRM data. Inside Views offer is to assemble social data from over 25 000 news sources and social media directly to the CRM system to give salespeople an edge over competitors by knowing more about the customer.
They are also adding integrations with LinkedIn which will add functionalities that allow users to see the relationships that exists to contacts in the system. Ex A salesperson can see that another salesperson has a connection to a potential customer.

Also social customer care, grab comment or similar in social media like twitter and make cases of it.
Looking at social from the perspective of three different categories

-          Managed – internal social channels like for instance discussions in SharePoint
-          Semi-managed – external social channels with a distinct precense, like SharePoint sites hosted by a customer
-          Independent channels like Facebook or Twitter where you mainly listen to what is going on.
Important part of this is to be able to know what is happening so that the strategy of the company’s marketing etc. can be adapted to this.

I look forward to seeing social media integrations in CRM, some of it has been available in Outlook for some time now using the Outlook social connector so from my perspective I have expected this for some time.
How CRM will be using Inside View is also interesting. I do now know if Microsoft have bought full rights to their software to enable it in Dynamics CRM without extra licensing or if it will be made available as some add-on license. Another interesting aspect of this is how extensible it will be or if it will be a more or less static functionality. I am personally hoping it will be very extensible since I would expect many customers to appreciate this functionality but probably ask for adaptions to it.
The integration of the social media data, from Twitter and Facebook to CRM will also be interesting. Since the amount of data available in these sites is no less than vast and stored in databases that are not SQL-based there might be interesting performance issues that might arise if the filtering of this functionality is not set correctly. I also hope that this functionality will be extensible as I would expect many customers to look for extensions or changes to this. Being a bit cynical, I don’t expect there will be though.
The three different categorizations of social channels seem logical, however, he didn’t really mention anything on how they were to manage the first two in CRM, if at all. Perhaps that would signal that there would be some adaptable functionality where you can plug-in any social adapter of your choice where you could also develop your own. But that is pure speculation, so we will have to see.
In general I welcome all of these new functions as they do bring really good value to the customers and let us just hope that our competitors are a few steps behind.  
Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se

Friday, July 06, 2012

Rickard's blog

My colleague Rickard Norström, who is a very skilled Dynamics CRM developer and consultant has finally started his own blog. Make sure you add it as he has many interesting perspectives on Dynamics CRM and consultancy around it.

Rickard Norström is my closest colleague and is involved with some of the more major installations of Dynamics CRM as well as iScala CRM implementations. He has worked with Dynamics CRM for about 2 years now in a variety of versions and has also held several courses, both for end uses, powerusers and other CRM consultants. He is very skilled in development, installations and configurations of Dynamics CRM, for instance he is currenlty working with an upgrade of a webfarm based CRM system that has some interesting issues. Make sure not to miss what he is writing!

You will find his blog at the following url:


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

Sunday, July 01, 2012

MVP Award

Today I was awarded the MVP status for Dynamics CRM! I am very grateful for this award and it is thanks to all of you who read my blog and value what I write that this was at all possible. So first of all, I want to give you all a this recognition.

I also hope this will give me further contacts and insights into what is going on within Microsoft despite the fact that some facts received in the MVP program are under strict NDA.

You can find my MVP profile here: https://mvp.support.microsoft.com/profile=C23EEC24-1A5A-41F1-9B53-A5C2C2B658EE

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

Monday, June 25, 2012

Migration strategies

Migrations are often complicated and not very sexy, all the work you put into it, configuration, scripts and code will be more or less useless after the migration has been done. However, choosing the right strategy is essential for a good CRM implementation. I will go through some of the strategies that are common and discuss some of the advantages and disadvantages.

Greenfield
Greenfield migrations are not really migrations, but rather the lack of migration. This means that the system will be set up without any migrated data, no accounts, no contacts etc. The idea is then that all the users will create data in the new system as the feel the need for it.

This is often used for start-ups when there is no or very little data. It can also be used when the data quality is very bad and trying to filter out the "good" data is just to complicated. Normal problems can be large numbers of duplicates, errors in the data itself, like "." and "," being inserted instead of real data just to make the forms savable.

Advantages of Greenfield migrations is that the system will be up and running in no time. Migrations might otherwise take considerable amounts of time. This also mean that the cost of Greenfield migrations are very low. Do note however, that there is need for some general system configuration, like creating users, setting up queues.

The disadvantage is that the users do not feel that the new system is helping them out and they have to reinsert a lot of data which can create considerable amounts of annoyance with the new system. This can in the long term increase the bad-will towards the system, lowering usage which can jeopardize the entire CRM investment.

Standard import
The standard import functionality of Dynamics CRM is reasonably powerful and can usually be used for importing simpler data. It is based on data being stored in csv-files or excel as xml-files. The first of these being a bit problematic as it is rather old and dependant on the regional setting. For instance, the value separator in Sweden is semicolon ";" but in USA comma ",". It is also common that the csv-files contain data that risk messing up the file syntax, breaking the imports. In general the excel-as-xml format is to be preferred as it also contains field names and proper matching.

This functionality has greatly been enhanced in CRM 2011 compared to CRM 4. For instance, it now support uploading of zip-files containing xml-data files with relations between the files. It can even handle multiple relations that otherwise would take three import runs, all in one go. For instance if you have data with accounts containing primary contact and all contacts also contain parent customer.

The limitations of standard import is that it cannot really handle large amounts of data as the maximum upload size is 8 MB (can be changed in an onpremise installation). Complicated data structures are also hard to handle and it is rather time consuming to run it as there is no scripting capabilities. The lack of scripting also makes the ordering of the different imports in a zip more or less impossible. There is also no support for logic like "If the contacts email adress exists, update the data of that contact, otherwise create a new contact" which is often very useful when importing data from multiple sources. It is also hard to do testruns of the migration without a lot of manual steps involved. There is some error handling but it is very rudimentary and cannot handle more complex logic.

The advantages of standard import is mainly that it requires no extra software and it is relativly easy as the options are limited.

Third party products
One of the more powerful options when doing migrations, is using third party products, like Scribe, Import Manager. These include lots of options that the standard import doesn't like:
  • ODBC/OLE DB connections to a data source
  • Logic to handle update or create
  • Scripting - custom logic to handle some of the data conversions
  • Run as service - ability to be run in the background as a service
  • Reuse for integrations - these tools can also be used for integrations why the effort invested can at least partly be reused.
  • Support for custom addons
  • More powerful - has support for multi threading and large data sources
  • Easier to do test migrations as all steps can be set up in a run-script, less manual labour.
  • Can handle more complex data
  • Better error handling
Not all products support all of these features.

The main drawbacks are the licensing fees required. Do note that some of these companies have special migration licenses which are not the same as the full license used for integrations. These products are also a bit more complicated due to the larger sets of options available. Hence it also takes some time to learn the product why my recommendation is to choose one and stick with it.

Custom migration program
The most advanced for of migrations need to be done by using custom code. There are really very few limitations to what can be done when writing custom programs that migrated data, it is more up to the skills of the developer and the time available.

Some of the advantages:
  • Limitations only in skills and available time and money
  • Easy to do test runs
  • Complicated error handling logic can be created
The main disadvantages are:
  • Demands developers
  • Time consuming - from around 100 hours to several thousand hours
General recommendations
Migrations are often complex and it is not until you have worked with the data a bit that you start to get a feel for how problematic it is going to be. Hence I usually never give fixed prices on migrations as it would either be inflated or put me at risk. It is also often the case that customers do not realize the complexity of migrations, especially smaller customers it is therefor essential to involve them a lot in the work.

De-scoping the migration is also very important. Usually not all data is required, especially if the old system can be maintained with read-only access. Try to de-scope in width (which entities are really required) and in depth (how old data is required).

Data quality can also be a problem so try to evaluate this early on. Examples are names being stored both as "First name Last name" and "Last name, First name" or fill-in data like ".", "," or "-" that has been entered into required fields to make the forms savable.

Large migrations might required delta migrations, when migrations are run in two steps, first the major migration, then after it has been completed, a smaller to migrate the data that was changed during the main migration. This will put additional demands on migration scripts and/or code so try to avoid it if possible.

Sometimes the new system required data that doesn't exist and hence has to be created. I usually refer to this as migration of non-existent data. It is easy to forget if your perspective is to map the data from the old system without looking at which data is required in the new.

Migrations between two systems that with very different data models is theoretically complicated. There might, for instance exist data in several places that need to fit into one. Data might need to be restructured in complex ways. In depth knowledge of source and target data model is essential and the proper skills required to understand complex data modelling is also a strong recommendation.

I hope I have shed some light on this subject which can be discussed at length.

Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB
www.crmkonsulterna.se