24 May 2013

Orchard CRM - A concept of Dynamics CRM Portal Solution

The purpose of this article is to introduce a portal solution for Microsoft Dynamics CRM; The concept can be used on other business software + portal, such as ERP, SCM etc.

From the solution perspective, there are two types of portal:
  • Stand-alone Portal - this is a dedicated portal website for CRM, it handles all CRM users security access, CRM interactivity, portal users authentication and authorisation etc.
    Example for this stand-alone portal solution: the CRM SDK has a portal sample from AdxStudio, which fits in  this solution. You can even manage the portal website within CRM - it treats CRM as a CMS system.
  • Integrated Portal - this is an existing website with CRM portal integration, the website manages its own security access and users, CRM portal is an add-on functionality that handles the CRM interactivity.
    Example for this integrated portal solution: Imagine you have an existing company website that needs accept customers order, feedback etc. and send these requests into CRM directly. You might also want the customers can interactive with some CRM data.
The solution I'm going to introduce is the latter. It uses Orchard as the host website, then add CRM portal as an add-on function (call "Module" in Orchard, which effectively is an "Area" in ASP.Net MVC. ) on the website. This is not the how-to article about Orchard, but here's some background information of why I choose Orchard as the host for the CRM portal solution. The whole solution can sit on any .Net hosting provider, such as Windows Azure.

So let's call it "Orchard CRM" from now on - start with Orchard:


In short, Orchard is a free, open source CMS system that built on the cutting-edge version of ASP.Net MVC platform  (that's what I really like about Orchard). It can be extended using "Modules" ( majorly on the functional side) and "Themes" (majorly on the look&feel side).

Orchard Project Mission

Install Orchard 

You can install Orchard locally using the following ways:
  • Install it using the Microsoft Web Platform Installer.
  • Install it from Microsoft WebMatrix as shown in Working with Orchard in WebMatrix.
  • Download the Orchard .zip file and install it as described in Manually Installing Orchard Using a zip File.
  • Enlist in the Orchard source code and build Orchard from the command line or in Visual Studio.
Note: You can also quickly build a Orchard site in Windows Azure website gallery directly.

Build a default Orchard site from the source code

If you want to write your own module or modify an existing module like Orchard CRM, you need the Orchard source code.
  1. Download Orchard source file and extract to a local folder, i.e. D:\Orchard.Source.1.6.1\
  2. Use Visual Studio to open the solution file: D:\Orchard.Source.1.6.1\src\Orchard.sln
  3. Build the solution, then Run it - it will load the Orchard website "Get Started" page.
  4. Type in the site information then click the "Finish Setup" button. The default Orchard site is now created.
  5. You can mange the Orchard site by clicking the 'admin' link on the bottom.
Default Orchard Site

Install and Configure the CRM module

You can install a module via the Admin Dashboard by clicking the "Dashboard" link on the homepage, or just type in the URL, i.e.: http://localhost:30320/OrchardLocal/Admin ,

In the Admin Dashboard, click the Modules link on the left navigation bar, then click the "Gallery" tab, search for "Dynamics CRM".

Then click the "Install" link, after the module has been installed, click "OK" to enable the module.
Now, you should see the "Dynamics CRM" menu under "Setting". Click the link and then input the CRM connection string, for example:
  • CRM Online: "Server=https://crmurl/yourorgname; Username=domain\crmservice; Password=servicepassword"
  • CRM OnPrem: "Server=https://crmurl/yourorgname; Username=domain\crmservice; Password=servicepassword"

Finally click the "Save" button on the bottom.
I suggest you create a brand new CRM instance (or use the CRM Online trial) to run it first.

Orchard CRM Setting
Now the CRM module has been enabled and configured, try to browse the following link to see if it works: http://localhost:30320/OrchardLocal/DynamicsCRM

Because this is the first time you run Orchard CRM and there isn't any data in the CRM system, so the page will relocate to the /DynamicsCRM/Account view, so you can input your information, and save it. Once saved, a Contact record will be auto-generated with all information you input on the page, as well as the user identifier value (Orchard User ID).
Orchard CRM - Profile Page
So next time, when you login to Orchard CRM, your profile will be identified.
Dynamics CRM - Contact

Add Navigation Item

The following CRM functions are available in this module (v1.0)
  • My CRM Profile - My profile in CRM, url: /DynamicsCRM/Account
  • My Cases - My cases in CRM, url: /DynamicsCRM/Case
  • My Customers - My sub-contacts in CRM, url: /DynamicsCRM/Customer
  • Orders - Orders from me and my sub-contacts, url: /DynamicsCRM/Order
  • Articles - All published CRM articles, url: /DynamicsCRM/Article
You can add navigation menu for them on the homepage. On the Admin portal, click the Navigation menu, then add "Custom Link":

Orchard Navigation
 Type in Menu text and Url, then click "Save". (repeat this step to add all links)
Orchard Menu Item
On the Navigation page, click "Save All".

The module can be downloaded here (open source NuGet package): https://gallery.orchardproject.net/List/Modules/Orchard.Module.DynamicsCRM

Note: this is an open source package I built for the the community and demo purpose; you can extend the functionality and enhance the security further to support your business case.

In the next post I will discuss the application design of the Orchard CRM.


Daniel Cai said...

Excellent stuff, gotta check out sometime, thanks for sharing.

CSurieux said...

Interesting work but you use Orchard as a simple MVC application...

Mubasher Sharif said...

Good stuff, Thanks..

Boonyasak said...

Interesting , But I have some Issue about Microsoft.Identify that say is wrong version..
Can you help me please .

Boonyasak said...

Now, I have no problem and fixed it already.


raj johnson said...

Hi Wang,

Nice Article on Dynamics CRM Portal Solution .Thanks for sharing this information .

Dynamics CRM Developers

Jose A said...

I followed your instructions and the module installed successfully. Thank you. Now, would you kindly post the approach you followed to implement the module? That would be very helpful.

paridhi roy said...

Very interesting and informative article with good Portal solution

David Lichtenstein said...
This comment has been removed by the author.
Seng Kok Song said...

hi ,
if i want to run in my localhost , What should i put in the crm connection string ? and what is this crm connection string for ?

webdesign india said...

Nice post. Thanks for sharing with us.

crm it solutions

Chris greg said...

Microsoft dynamics California helps you in marketing and customer relation.

Punit Sharma said...

Every interesting help to understand the Business software solution about CRM portal and concept of portal solution.

Punit Sharma said...

Every interesting help to understand the Business software solution about CRM portal and concept of portal solution.

jack mark said...

This is really very helpful information which is provided online.The person which are interested and want to more about CRM,then they can use this blog.
CRM Solutions

Junior Rodriguez said...

Hi! Jim
Great project! just have an issue with seeing CRM tab after installing it. I had enable it and disable it but still wont show as an active tab. Any advice?

Junior Rodriguez said...

Hi! Jim
Great project! just have an issue with seeing CRM tab after installing it. I had enable it and disable it but still wont show as an active tab. Any advice?

CRM Software said...
This comment has been removed by the author.
CRM Software said...
This comment has been removed by the author.
John Dudley said...

Acetech is a Mobile App Development India company and also popular as Software Development India. They can be an efficient business consultant for you.

Saba Naaz said...

very nice blog

Omega software said...

I really appreciate spending some time to talk about that, I believe firmly regarding this and so really enjoy understanding more about this kind of subject.This is also a very good post which I really enjoyed reading. It is not everyday that I have the possibility to see something like this. CRM Software || MLM Software in Mumbai || ERP Software || System Software in Mumbai

Omega software said...

Keep up the fantastic piece of work, I read few blog posts on this web site and I believe that your site is real interesting and has lots of great information. ERP Software in Mumbai || System Software || CRM Software in Mumbai || MLM Software

Jai Prakash said...

I am sure this post has touched all the internet viewers,its really really pleasant piece of writing on building up new weblog.
Application development company

Prologic Corporation said...

This is a good article & good site.Thank you for sharing this article. It is help us following categorize:
healthcare, e commerce, programming, multi platform,inventory management, cloud-based solutions, it consulting, retail, manufacturing, CRM, technology means, digital supply chain management, Delivering high-quality service for your business applications,
Solutions for all Industries,packaged applications,business applications, Web services, data migration
Business intelligence, Business Development, Software Development etc.

Our address:
2002 Timberloch Place, Suite 200
The Woodlands, TX 77380



Hi, great work.
I am very new to this, i have one question :
Is it possible to deal with Lead Entity, from this module or by modifying some thing in the code.