01 July 2014

Setup Orchard CRM portal website on Azure


In this post, I will demonstrate how to set up a front-end Orchard CRM portal website on Azure, with Dynamics CRM as the back-end system.
A portal user correspond with a "contact" record in Dynamics CRM, so the user can manage his/her own CRM information without directly accessing the CRM system.
A live demo can be found on: http://www.orchardcrm.com


Microsoft Azure
Microsoft Azure is an open and flexible cloud platform that enables you to quickly build, deploy and manage applications across a global network of Microsoft-managed datacenters.
Microsoft Dynamics CRM
Microsoft Dynamics CRM is a customer relationship management (CRM) business solution that drives sales productivity and marketing effectiveness through social insights, business intelligence, and campaign management in the cloud, on-premises, or with a hybrid combination.
Orchard CMS
Orchard is a free, open source, community-focused Content Management System built on the ASP.NET MVC platform. Orchard is delivered as part of the ASP.NET Open Source Gallery under the Outercurve Foundation.
Orchard CRM
Orchard CRM is an open source, Microsoft Dynamics CRM portal solution for Orchard CMS; support Microsoft Dynamics CRM 2011/2013 Online, On Premise and Partner Hosted.


Please follow these steps to setup Orchard CRM portal on Azure:
  1. Setup an Azure website using Orchard CMS template.
  2. Install and configure “Dynamics CRM” model.
  3. Add portal navigation pages.
  4. Setup portal users.

Setup an Azure website using Orchard CMS template

Click NEW -> COMPUTE -> WEB SITE ->FROM GALLERY, then select CMS on the left navigation list, then choose Orchard CMS.

Click “Next”, provide URL prefix, WEBSCALEGROUP and SUBSCRIPTION, and then click “Complete”.

Your Azure website will be created after a few minutes, once created, let’s click on the site name and browse some properties.

The “Dashboard” page provides you the overview of the website, one important thing to notice is you can download the “Publish Profile” and then use it in a website editor (Visual Studio, WebMatrix) for publishing a website onto this Azure website.

You can increase the scalability of the website by clicking the “SCALE” tab, and change the hosting mode and capacity of the website.  Azure website is offered in four tiers: Free, Shared, Basic and Standard, in different price.

For this demo, you don’t need to make change, but do verify the .Net Framework 4.5 is enabled on the “CONFIGURE” tab, by default it is enabled.

Now click the SITE URL from the Dashboard page, on the first time you launch the Orchard site, it will gather some basic information to build the site. In this demo, we use the default settings to build the Orchard site, click “Finish Setup” and wait a few seconds, the Orchard site will be ready to use.

Click the “admin” link on the bottom of the page, or simply add a “/admin” on the site URL, it will redirect to the Orchard Admin Dashboard panel. 

Install and configure “Dynamics CRM” model

From the left navigation panel of the Orchard Admin Dashboard, click “Modules”, then click the “Gallery” tab, search for “Dynamics CRM”, click “Install” and then “Enable” the feature.

After you enabled the module, you should see a “Dynamics CRM” link just under the “Settings” menu on the left navigation bar of the Dashboard. (In case you don’t see that link appear, please click the “Install” again, and then enable it again; this is assembly loading issue in this version.)

Click on the “Dynamics CRM” link, type in the connection string as examples. 
You can try it using CRM Online Trail.

Add portal navigation pages

From the left navigation panel of the Orchard Admin Dashboard, click “Navigation”, then add custom link; Repeat this step to add the following links:

Menu Text URL                                 
CRM Profile      /DynamicsCRM/Account
Cases            /DynamicsCRM/Case
Customers        /DynamicsCRM/Customer
Orders           /DynamicsCRM/Order
Articles         /DynamicsCRM/Article
Service Calendar /DynamicsCRM/Calendar

Setup portal users

From the left navigation panel of the Orchard Admin Dashboard, click “Users”, then you can create Orchard user from there. Every Orchard user has a unique User ID (_orchardServices.WorkContext.CurrentUser.Id) which is generated when create that user in Orchard. In CRM contact entity, there is a system attribute call externaluseridentifier which uses to store the Orchard User ID, this is by design but you can use a different attribute to do so by changing the source code of Orchard CRM.

When an Orchard User login to any of the navigation pages, Orchard will pass the User ID to CRM; CRM will try to match the User ID in contact. externaluseridentifier, if there isn’t a match, then create a new contact record with the User ID; otherwise use that CRM contact record for operations. So each Orchard User will map to a contact record in CRM, and Orchard User can operate as a CRM Contact on the portal website, for example, opening a new case, making an order, schedule an appointment etc. 

Now, if you have got the above steps correctly, you should be able to browse the Orchard CRM Portal via: http://YourAzureURL/DynamicsCRM/

Enjoy Orchard CRM! :)