Adxstudio Portal Solutions for Microsoft CRM
If you’ve seen the Customer Portal Accelerator for Microsoft CRM you have already seen a little of what Adxstudio has to offer. The accelerator is badged as a freebee from Microsoft, but the underlying product is essentially a cut down version of Adxstudio’s portal offering. This link will give you an idea of the extra functionality packed into their licensed products.
Why would you be interested in the Customer Portal Accelerator or Adxstudio’s other Portal editions?…
It comes down to a build vs. buy discussion. Adxstudio are offering you an alternative to custom development for meeting your public website, customer portal, or partner portal requirements – and their solution comes with built in integration to Microsoft CRM and some handy Content Management System (CMS) features. It does however still require a bit of coding. I’ll try and explain whether configuration ends and coding begins in this post.
It’s important to understand from the outset that Adxstudio’s Portal product is more of a Portal Development Framework then it is an off-the-shelf product. They do provide you with sample portals, or ‘portal templates’ if you like, but the reality is you will need .Net development skill in order to configure your own portal.
Now there is a learning curve there for your developer – they need to learn Adxstudio’s portal framework. But this still beats figuring out an authentication architecture, caching strategy, security model and CRM integration framework from scratch.
But, what’s cool for business users is that once your developer has deployed the portal you can then maintain the content yourself and even customise the web forms and views – all from within Microsoft CRM.
Installing an Adxstudio Portal
First off, let me run you through the installation experience…
The product is provided as an MSI installer. Running the installer unzips the application files into a folder on your computer.
Now, before I go on, I need to explain there are 2 components to the Adxstudio Portal framework. The first is the portal web application that you build in Visual Studio and deploy into IIS (or Azure). The second is a set of CRM customisation components that provide the data model, screens and views for the backend of the portal. The portal web application uses your Microsoft CRM system as its backend database – there is no separate portal database. The portal is tightly integrated to Microsoft CRM; it can authenticate portal users against CRM contact records, the portal pages can display CRM data, and can even display the forms and views that you have configured in CRM. In fact the entire structure and content of the portal is configured in, and read from, your Microsoft CRM system. So your Microsoft CRM system both drives the portal and the portal can feed your CRM system.
So back to the installation process, running the MSI installer unzips a bunch of files. Included in those files are a some CRM solution files each offering different functionalities:
You import the solution file(s) that you want and then publish the changes (note: you need to import at a minimum the “MicrosoftXrmCustomerPortal.zip” solution and that needs to be your first import).
In my case, I imported the CustomerPortal solution file followed by the PortalsComplete file (without the PortalsComplete solution I got a missing schema item error when I tried accessing my portal).
Give your CRM system a quick F5 refresh and you will see CRM has been extended with Portal configuration entities:
You now have the data model and the user interface for the Portal configuration and can start manually creating records to define your portal. Or, you can use Adxstudio’s WebSiteCopy utility to populate these tables with the definition of one of Adxstudio’s sample portals – and I think this second option is the path Adxstudio expect you to go down. Using one of their sample portals will speed up your learning and the development process.
The WebSiteCopy utility comes with a wizard style user interface:
You can either specify a CRM system or an XML file as your source (websites can be exported to XML). Adxstudio provide a range to pick from. I went with the CustomerPortal option:
You provide your CRM system’s Discovery service, followed by the Organisation to deploy to and then you execute the copy:
Next step is to deploy the sample website into IIS. They provide step by steps on that here – in summary: you create a website, point it at one of the sample apps installed unzipped from the MSI installer, set the .net framework to 4, change the app pool identity to a CRM administrator and set the anonymous access to use the app pool identity. You should then be able to browse your website:
Now that’s the hard way. There are 2 shortcuts to that process. The first is you can download an existing CRM Organisation from Adxstudio and restore it to your SQL Server and then import the Organisation. Then you just need to deploy the website into IIS.
The second shortcut available is to use their PortalDeploy utility. Here you simply create a new CRM Organisation and then run this utility. It will import customisations and sample data into the Organisation and then deploy the website into IIS. Much easier then what I just went through right! Oh well, it’s good to get your hands a little dirty and really understand what’s going on.
If you want, you can install any number of the sample portals into your CRM organisation. You will need any IIS website for each but the configuration data can exist side by side in your CRM system, co-existing as distinct records under distinct parent “Website” records:
So, now that we have a portal installed what can we do with it?…
‘Out-of-the-box’ Portal Capabilities
Each sample applications provides a different bundles of portal functionality. It makes sense to pick the sample portal that has features closest to your requirements. But the idea is you can pick and chose what functionality you want to build into your portal. Here’s a quick run down on the functionality included in a couple of the sample portals:
– Submit a Case online (including attach files) [Case created directly into CRM]
– View current/previous Cases [queries CRM in real time]
– Search Knowledge Base [queries CRM in real time]
– Schedule a Service [checks availability via CRM’s Service Scheduling module]
- Event Management:
– View Events Calendar [queries CRM in real time]
– Register for Event [creates a registration record directly into CRM]
- Forums / Discussion Groups:
– View discussions [queries CRM in real time]
– Post a new Topic, or reply to an existing discussion [writes to CRM]
- Product Registration [writes to CRM]
- Web lead capture form [writes to CRM]
- About Us, Company News [read from CRM]
- Product Listing [read from CRM]
- Job Board / Careers Page:
– Open Positions [read from CRM]
– Apply for a Job [write to CRM]
– Subscribe to Job Postings [RSS feed]
- Web lead capture form [writes to CRM]
- eCommerce functionality (add to cart, view cart, order enquiry)
(not sure how far they have gone with their eCommerce functionality, there wasn’t much to see in the sample portal)
- Home page alerts
- Offer Opportunities to Partners [read from CRM]
- Maintain Open Opportunities:
– Update details
– Record Notes
– Maintain opportunity Contacts
– Close as Won / Lost
- Maintain Customer records:
– Add/update Accounts and Contacts [writes to CRM]
- Forums / Discussion Groups
- Partner Contacts Management
The names of the other sample portals suggest functionality in these areas:
- Ideas Portal
- Conference Management
- User Group Management
Content Management System (CMS) Capabilities
One of the big selling points of Adxstudio Portals are their CMS capabilities. There are a couple of aspects to this…
Firstly, the Portal design makes use of Microsoft CRM as its data source so wherever you see records displayed in the Portal – e.g. Events, Products, Forums – these are all stored in CRM. So if you want to promote a new Product on your Portal you simply add that record in CRM:
Secondly, if you log into the Portal as a user with administrator permissions you will see little “Edit” buttons pop up all over the place as you hover over elements on the web pages. Here I have hovered over the Portal Title:
When I click that Edit button an HTML editor pop up displaying the editable content. I can change the text, change the font, add an image, insert a hyperlink, etc.:
And then I just save the change to instantly update my Portal:
And you’ll see these changes stored in CRM in the Content Snippet entity:
Now, this is not all encompassing mind you. You only get this in-line editing feature where it has been enabled in the underlying web page, back in Visual Studio. For example I can edit the items highlighted in green below but not the items highlighted in yellow:
Configurable Forms and Views
Another very cool configuration feature Adxstudio offers is the ability to surface CRM forms and views in the portal. The Portal can actually read form and view definitions from CRM and render these as web forms.
Here’s an example: – the Web Lead form that appears on the Contact Us page looks like this:
And here is the CRM form it is derived from:
This is a new custom form added to CRM so is quite separate from the main CRM form:
To illustrate how we can easily change the portal I quickly modify the CRM form definition:
And the result is immediately reflected in the portal (once I flush out the caching):
And the same is true for some of the portal views. Here is a Case view in the Portal:
Which is derived from this CRM view definition:
An important caveat here though is you can simply create a new page in the portal and select a CRM form or view to display. This level of configurability does not exist. Instead you need to build that page in Visual Studio, following the portal framework development guidelines.
So the configuration offered is more ‘after the fact’ tweaking then it is configuration-based development.
There you have it, a quick run down on Adxstudio’s portal offering. I like what I have seen thus far, they take care of a lot of the architecture for you and that has got to translate to significant cost savings over straight custom development. I’m not across the quality of their development framework or technical application architecture though so I cannot review that side of their solution. From what I have seen though I would put this offering on the table as a potential option but with the caveat that my technical architects need to give it the once over. A colleague of mine has implemented this several times under his old employer, and had a generally positive experience. If you have any experience please share them below.