The power of blogging – Why CRM companies are using blogs to get ahead

I read an excellent blog from Mike Ames today, it was called Using Blogs to help in business development .  I am not saying the blog is excellent just because it mentions me and this CRM blog (although that obviously helps).  Like most of Mike’s blog entries it got me thinking about the effects writing this blog has had for me.

I have started blogging about CRM 2011 since the start of the year and I have found it a very useful tool for these reasons.

  • An excellent way to learn about the new features in CRM 2011 and share this knowledge.
  • I follow other blogs to keep up to date with CRM 2011
  • It helps you stick out amoungst a crowd of other CRM developers/consultants
  • It helps you create connections in the CRM world as you start to open dialogues with other CRM bloggers via this blog and theirs.
  • blogging about CRM 2011 features helps you understand the features better.  I also think you have to understand something in detail to be able to explain it other people
  • The blog will be a useful it I go for a job using CRM, I think you can get a good idea of the type of person I am and my knowledge of CRM
  • A blog associcates you with CRM and positive action with CRM, e.g. usually solving a problem


After reading Mike’s article it got me thinking about how companies use blogging and twitter.  There are some good examples of companies/individuals using blogs to promote their business and consistantly remind potential customers how good they are creating CRM solutions.  Some of the companies that spring to mind are

Sonoma partners –

Richard Knudson –

Power Objects –

Customer Effective –


There are probably loads of other blogs and companies but these one spring to mind. They are well known and well respected in the CRM community, they have also used their blogs to promote the companies and their ability to create CRM solutions.  When you compare this to a companies website these seems like a great idea.  There isn’t really much reason for people to visit companies website more than once, once you have read it the information doesn’t really change and people don’t go back (it’s basically a sales pitch)

Blogs on the other hand are constently supplying people with new information and not only that but useful information which can help people using CRM.  so not only do they keep getting people coming back to their blog and maybe website by they are constently advertising their company/organisation with successful CRM stories.  At the same time companies with success blogs are inceasing their reputations and increasing the chances of potential clients will hear about them.

I’m surprised more companies don’t do have blogs because who would you rather do business with, someone who blogs about the successful implementations, clever CRM solutions, well respected and known in the CRM community or another company who just has a website telling you what they might be able to with CRM.



CRM 2011 – How to Setup SharePoint Integration

[tweetmeme source=”BenHosk” only_single=false]

Brilliant article about the new CRM 2011 and Sharepoint integration from the Microsoft blog.  I have to say when we integrated Sharepoint, apart from the initial problem, which you can read about here.  Sharepoint integration was easy.  This is a really powerful addition to CRM 2011 because in CRM 4 document management took a lot of effort and caused a few problems (especially when when it ballooned the database by keep all the documents versions!!).

I also have a useful document about the SharePoint architecture overview  which you can read here

Here is the article

Microsoft Dynamics CRM with Microsoft SharePoint integration introduction

Now that the Microsoft CRM 2011 Beta is out, so is the much awaited feature of integration with Microsoft SharePoint. Microsoft SharePoint has nailed Document Management and the ability to collaborate on documents is very rich. The versioning control, simultaneous editing, checking in/out are some features in SharePoint that makes SharePoint as powerful as it is.

In CRM, there has been a constant need for a rich Document Management functionality as documents are commonly used in sales cycle and are associated with opportunities and quotes. Customers also associate documents with products and many other entities. In CRM4, the ability for associating documents with a record has been through attachments which have quite a few limitations. Attachments are a passive store which does not help in collaboration scenarios. Users really need to be able to access documents in context of a CRM record, add more documents, edit and share them.

In CRM2011, this problem is addressed. We have provided the ability to associate SharePoint Document locations to a CRM record and hence enabling the ability of accessing documents that are stored in SharePoint within the context of a CRM record. Users can:

a) Create a new SharePoint location(folder) to start storing their documents in

b) Use an existing SharePoint location where the documents are already stored.

We support SharePoint 2010 and 2007 and both MOSS and WSS flavors.

Automatic creation of SharePoint folders

For this to happen, you need SharePoint 2010 with the CRM list component for SharePoint installed. Once you have installed and configured the list solution (follow the readme instructions), here are the steps that you need to follow.

Settings area

The following needs to be done by the CRM admin or System customizer.

1) Go into the Settings area and click on “Document Management “ on the left navigation

2) Click on the “Document Management settings” link


3) Select the entities that you want to enable integration on( selecting this will make the “documents” tab appear in the left nav for records within the selected entity)

4) Enter a SharePoint 2010 Site Collection URL where you have installed the CRM List component.

5) Click on Next.


6) The URL will get validated

7) Select if you want to make the creation entity centric.

a. Entities related to accounts

b. Entities related to Contacts

  • Structure: <DefaultSite>/ Contacts /<accountname>/<EntityName>/<recordname>
  • Example: Opportunity called 100WheelRims related to REI Contacts http://SPServer/Contacts/REI/Opportunity/100WheelRims

c. For entities not related to Acounts/ Contacts

  • Structure:<DefaultSite>/<EntityName>/<recordname>
  • Examples:

o Opportunity called 100WheelRimshttp://SPServer/Opportunity/100WheelRims

o Quote called REICyclesSep related to REI accounthttp://SPServer/Quotes/REICyclesSep

d. If you haven’t selected anything

  • Structure:<DefaultSite>/<EntityName>/<recordname>
  • Examples:

o Opportunity called 100WheelRimshttp://SPServer/Opportunity/100WheelRims

o Quote called REICyclesSep related to REI accounthttp://SPServer/Quotes/REICyclesSep

8) Click on Next.


9) Document Library creation happens here to speed up the end user experience. You might get the confirmation dialog based on the number of entities that you have selected on the 1st screen.


10) Once the creation is done, Click Finish.

CRM record

Now this can be done by anyone who has access to the CRM record. If you have not associated any SharePoint location with the CRM record, follow the following steps.

1) Go to the CRM record for which you want to create a folder and start storing documents in.

2) Click on “Documents” on the left navigation

3) Click OK on the Confirmation dialog that pops up.


4) A folder will get created in SharePoint where the users can store the documents in.


If you want to add another SharePoint location to the same CRM record, follow the following steps

1) Go to the CRM record for which you want to create a folder and start storing documents in.

2) Click on “Add location” in the ribbon.

3) Select the 2nd radio button where it says “Create a SharePoint folder”

4) Select the parent URL( if you want to change it or use the default)

5) Change the folder name to the desired folder.


6) Click OK on the Confirmation dialog that pops up.


7) A folder will get created in SharePoint where the users can store the documents in.


Work with existing location

If you have an existing SharePoint location that you want to associate from within a CRM record, you have to do just 2 steps.

1) Go to the CRM record where Document Management is enabled and click on “Documents” on the left navigation.

2) Just copy and paste the SharePoint URL into the Add location dialog that will pop up.


You are done. The location will show within the context of the CRM record. If the CRM list component for SharePoint is installed on the SharePoint server URL and the SharePoint Site Collection is in the CRM system, then the UI will look like the following.


If the CRM List component is not installed, we will show the SharePoint location in an IFrame.


This is just a sneak peek into the SharePoint integration functionality. Look out for more blogs that dwell into the details of each of these flows.


CRM 2011 – Common CRM Interview Questions

I saw this blog post the other day which had common CRM interview questions in.  I have never been for a CRM interview and I haven’t interviewed anyone for a CRM role.   I was looking at the questions and thought they do make sure the person has a good grounding in CRM.

Looking at the questions someone who has passed CRM customizations exam should have a good grasp of all these topics, which is one of the reasons why I think the CRM exams are quite useful.

I was speaking to one of my work collegues who works in recruitment, click here if you are looking for a CRM job.  He was saying there are a lot of CRM jobs out there at the moment but not enough people to fill them.  I would also say there is probably a shortage of people who are skilled in CRM 2011 and the new .NET 4 technologies (WCF, jquery, oData, silverlight etc).  He was saying that people usually have either CRM or strong .NET skills but not many with both.

Typical Questions :

1. What are near features of new crm version (CRM 2011)?.
2. How many implementations you have done ?
3. Whats your experience with development ?
4. Have you done SRS reports development ?
5. Any integration experience ?
6. Whats your role in CRM ?
etc etc

Some technical Questions :
1. What is a Plug-in?
2. What is a Workflow?
3. What are the differences between Plug-in and a Workflow?
4. What are the differences between Asynchronous Plug-in and a Workflow?
5. When will you use a workflow and when will you use a Plug-in? Give some Real-life scenario.
6. What is an Email-Router?
7. What are the steps to configure an Email router?
8. How the Plug-in and Workflow will behave in case of Off-line client?
9. What is Metadata?
10. What is CRM Discovery Service?
11. What is Sales and Marketing life cycle in MSCRM?
12. What is Queue entity in MSCRM?
13. What is 1:1, 1:N and N:N relationship in Microsoft Dynamics CRM?
14. How a Plug-in is different from a Call-out?
15. What is ‘Append’ and ‘Append To’ privilege in MSCRM? Give one example of it?
Ans: ‘Append’ and ‘Append To’ priviledges works together. ‘Append To’ priviledge will allow other entities to get attached with the entity. ‘Append’ priviledge will allow the entity to attach the records to the entity with ‘Append To’ privildege.

Let us understand this with simple example:
Let us say that you want to attach a note to a case then note entity should have ‘Append’ access right and case entity should have ‘Append To’ access right.

Let us take one more example to understand this. Suppose you have two custom entities called ‘TestCustomEntity1’ and ‘TestCustomEntity2’. You want to attach the ‘TestCustomeEntity2’ records to ‘TestCustomEntity1’records. For this you need to have ‘Append’ access right on ‘TestCustomEntity1’ entity and ‘Append To’ access right on ‘TestCustomEntity2’.
Now guess will I be able to attach the records? Answer is “NO” because we need to create a 1:N relationship between ‘TestCustomEntity1’ and ‘TestCustomEntity2’.
Now the user who has above mentioned access right in his security role will only be able to add ‘TestCustomEntity2’ records to ‘TestCustomEntity1’.
16. How to create a Custom Entity record using SDK?
Ans: Using Dynamic Entity.
17. How to join two table using Query Expression?
Ans: Using Linked entity. You should always try to minimize the number of SWS calls that we make in the database. Often during code review it is explored that the number of Microsoft CRM web-service could have been reduced by making use of the Linked-entity concept. So we should always look for the opportunity to minimize the effort.
18. Can we modify the name of Root Business Unit?
Ans: No; We will have to re-install MSCRM.
19. Suppose if I have 20 user license and I have created 20users. What will happen if I create 21st User?
Ans: The 21st User will get created in MSCRM but that user will be in disabled state.
20. What are the maximum number of tabs allowed on a Microsoft Dynamics CRM 4.0 form?
Ans: 8
21. How to enable/disable the form assistant? How to make sure the form assitant is expanded/cllapsed on a form?
Ans: Navigate to Customization >> Open the Entity >> Open Forms and Views >> Open Form >> Select Form Properties >> Open Display Tab >> Check/Uncheck the “Enable the Form Assistant” and “Expanded by Default”.

The interviewer will always try to figure-out whether one is comfortable with the basic concepts of Microsoft CRM (MS CRM) or not and after that; questions will be asked from your previous experience (if you have any experience in CRM). Those questions will be something like this:
1. What was you role in the MSCRM implementation project that you have worked on?
You should be honest while giving answer to this question and should give a brief overview of the project and your role. This is very important question because the answer of this question will tigger so many questions. You should highlight the key skills you have; this way you will divert the attention of the interviewer to your key skills and try not to expose the area in which you are less confident.
2. What was the most challenging task you have faced till now?
Here you should give answer that exihibit your positive attiude . e.g. for a techincal consultant it may be something like … “I was new to the suppport and during this experience i faced challenging issue related to plug-in that impoved my debugging skills. Email-to-case plug-in was really diffcult as we had to take care of so many conditions. I have learnt one thing during my previos assignment and that is ‘Never give-up'”.
3. What was the size of the implementation? (i.e. the number of user-licenses)

Q: What is CRM Service of MSCRM?
Ans: CRM Service is the main web service and it exposes Six methods such that you can write your code against CRM entities. To perform operation other than the six operations (six methods provided by mscrm) we will have to use the Execute method.
Q: What is Metadata service of MSCRM.
Ans: Dictionary meaning of the word METADATA is data about data and similarly the metadata holds the information about MSCRM means the information about the entity and attribute e.g. Display name, platform name, size of the attribute, datatype of attribute etc. If we want to access any information about any entity (Dynamic or system) we will have to make use of the Metadata service. In the database we can find the metadata table and name of these table begins with keyword Metadata.
Q: What is discovery Service?
Ans: The Discovery service is a global service that helps the caller to detemine the correct organization and URL. Microsoft CRM server may include several servers. Each server might be dedicated to multiple organization. Each of these servers will have dedicated web-service URL for faster operations. Internally the Microsoft CRM server allocation may change so the discovery service directs the request to its corresponding web-server for further processing.
In short the Discovery service responsibility is to find the ‘CRM Service’ and ‘Metadata Service’ urls.

The discovery service returns the list of organization URLs that the current-requester (current user) belongs to. During the Outlook client configuration discovery service shows he list of organization the current-user belongs to.

This web-service is used to create authentication ticket in case of Windows live authentication.

Q. Suppose I want to migrate an Microsoft CRM implementation from one environment to other environment. Let us assume that there a published workflow for account entity. Now in normal usage there will be few accounts-records for which the workflow will be waiting/Waiting for Resource/Failed/Succeded state. So what should be our strategy for the migration. What will happen to the records which are in waiting state and what will happen to the records which are in-progress?
Q. Suppose there is a plug-in registered for account entity. When a user submits a request (e.g. account creation etc.) to the web-server then what will happen in the server?
Ans – The plug-in will get loaded into the memory and will perform the operation it is needed to do.
Q. Now what will happen if 100 users will submit the request to the web-server? The plug-in code will get loaded into the memory for 100 times?
Ans – Answer is NO. Noticable point over here is that the Microsoft CRM is a mananged application and runs under .Net framework. So whenever the first request arrives at the web-server the plug-in code is loaded into the memory and will perform its operation and susequently the same plug-in code will serve the process for other user as well. So this way it saves the amount of time required to load the plug-in into the memory. If the plug-in code is not being used for long then the Garbage collector will identify it and will sweep the plug-in out from the memory.
Q. How to add/remove columns in an entity lookup window.
Ans – Go to Settings >> Customization >> Select the entity >> Click ‘Forms and Views in the Left Nav Pane” >> Double click the ‘Entity Lookup View’ >> Dialog box appears that contains the Add/Remove and Sorting options for a lookup view.
Q. How to Debug the java script that we write for some validation on entity pages.
Ans – Following are the steps that are needed to be followed:
1. Enable the Debugging in the Internet Explorer – Goto Tools >> Internet Options (wizard will appear >> Click the ‘Advanced Tab’ >> Under Browsing Section uncheck the ‘Disable script debutting’ checkbox >> Click OK.
2. Edit the java script code of the Entity Page that you want to debug.
3. Put the statement ‘debugger;’ above the line where you want do the debugging. e.g. suppose my java-script show ‘Hello World’ message and i want to debug this then following is the way I am going to add script:
alert(‘Hello World’)
4. Save and Publish corresponding customization.
5. Perform the operation that would trigger the java script written by you
6. Debugger dialog box will appear and select appropriate debugger (Visual Studio new or existing instance)
And you may start debugging from the ‘Debugger’ statement of your javasript.
More to Come…

I hope this post will help you to crack technical interviews on MSCRM. All the best for your interview…