ISV Hosting Toolkit for Microsoft Dynamics CRM – Part 2

The Free Trial

A potential customer found your web site somehow.  Now is your chance so you better catch their attention before they leave.  So, put a link to a free trial or demo of your software where they’ll see it.

Get CourseMax or Try it Today!

Get CourseMax or Try it Today!

On the CourseMax site, we show a link prominently everywhere someone might think about trying the software.  The experts say a graphical link on the top-right of the page works best.  The first option we offer them is a free trial but, if they are ready to buy it now, we give them that option too.

Once they click on one of these links, they are taken to a form where they fill out the minimum info we need to set them up with a free trial:

Buy CourseMax CRM or Get a Free 30-Day Trial

Buy CourseMax CRM or Get a Free 30-Day Trial

First Name:
Last Name:
Email:
Company:
CRM Organization Name:

We ask them for other pieces of information (phone, web site, etc.) but the above fields are the required fields on the form. Once this prospect submits the web form the application checks to see if the Organization Name is available (the CRM Org name must be unique), then creates an Account and Contact record in our CRM system and links the Contact as the Primary Contact for the account.

The Provisioning Workflow

There are some custom fields we added to the account record to deal with provisioning and billing.  The workflow triggers on an update of a field called “CreateOrganization”.  The Account record is actually created and saved first after the Primary Contact is created and linked then this field is updated and the record is saved again.

Each organization takes about 10 minutes to provision in the production environment.  The provisioning steps include:

  • Check to see if another Org is Being Provisioned (<1 sec)
  • Create CRM Organization (~4 minutes)
  • Import & Publish Customizations (~4 minutes)
  • Load & Register Plug-Ins (~1 minute)
  • Import & Publish Security Roles (~30 sec)
  • Create CRM User (~5 sec)
  • Create CRM Queue, POP Account, & Configure Email Router (~ 2 sec)
  • Update Account Provisioning Status to Completed (< 1 sec)
  • Send Prospect an Email Confirmation (< 1 sec)
  • Create a Bulk Delete Job in CRM Org (~14 sec)
  • Import Configuration Entity Records (~3 sec)

I left out a bunch of small steps that are specific to CourseMax but this is the bulk of the workflow.  As you can see, the majority of the work and time is in creating the CRM organization and loading the customizations.  Both of these tasks run for 4 minutes. Loading and registering plug-in assemblies takes another minute.

Lessons Learned

One lesson we learned is that the deployment service is prone to timing out.  You can try adjusting the timout periods but that can lead to more problems.  If more than one organization was provisioned at a one time, the deployment service inevitably timed out.  We had to implement a sort of a FIFO queue to make sure one provisioning task was sent to the deployment service at a time.

We also had to execute several of these tasks locally on the server where the deployment or CRM web services are running.  That meant that we had to create our own web services on each of the servers which then ran a local process to call the CRM web services. So our workflow actually makes calls to our custom provisioning web services rather than calling the deployment service and CRM web services directly.

These steps eliminated the timeout problems we experienced initially and optimized the process.  If CourseMax becomes so popular that dozens of people are requesting free trials every hour and the queue length becomes an issue, we’ll have to look at intelligently scaling out across multiple deployment servers.  But that will be a good problem to have.

Next up…more details on the provisioning and customer conversion workflows.

Add to FacebookAdd to DiggAdd to Del.icio.usAdd to StumbleuponAdd to RedditAdd to BlinklistAdd to Ma.gnoliaAdd to TechnoratiAdd to FurlAdd to Newsvine

Cloud Computing Pervasive In 2009?

Let’s say you and I are starting a business and we’re making plans to launch a great new piece of software that will change the world. Should we be thinking cloud platform? Will our software product/service be obsolete by the time we finish it if we don’t build it on Google or Microsoft or Amazon’s cloud? The answer to these questions depend a lot on what software we’re trying to build. But I’d argue that it depends even more on our customers and what they want.

If you are a technocrat, you probably do what I do all the time and underestimate how long it will take for the the business crowd to adopt new technology. There are lots of reasons why businesses still haven’t adopted SaaS and don’t even care to learn about what “cloud computing” means. One reason that SaaS is still not pervasive is the lack of single-sign-on or at least some common or easily federated directory service. If I get 10 different pieces of business software from 10 different vendors then all of my employees have 10 different user logins and 10 different passwords to maintain and remember.  This won’t fly in the enterprise. Another big problem is the question of risk and trust. “Do I trust this hosted software company to maintain and secure my data?” Do I trust 10 different vendors to each maintain my data.

I gave a presentation during Microsoft Dynamics CRM Incubation week back in mid-December and I showed this graphic:

 
Technology Evolution vs. Customer Adoption

Technology Evolution vs. Customer Adoption

This is not exact science.  This is really my opinion of the approximate periods where each category of computing platform reached a critical mass in terms of CUSTOMER adoption starting with the client-server days (I’m old but I was still in college when mainframes/terminals were all the rage).  I should really back this up with sound research but my goal is to illustrate a point, not publish an article in a scientific journal. 

The point is that 2009 might be the year that Cloud Platform TECHNOLOGY is a real option but that certainly does NOT mean that cloud computing will be adopted by the majority of businesses any time soon.  So, if we want to start selling our software at the end of 2009 or early 2010, should we write it for Google’s AppEngine or build it completely on Microsoft’s Azure platform?  That’s probably not a good business move considering that SMBs haven’t moved to SaaS as a predominant platform yet, much less enterprises.  We would be a lot better off building our software so that we can offer it EITHER an on-premise OR a hosted (SaaS) model.  This is why my company developed the latest version of CourseMax on the Microsoft Dynamics CRM platform.  This is the Software + Services advantage, the “Power of Choice.”

Does this mean that we shouldn’t be considering cloud computing at all?  No way.  We should always be forward thinking.  We need to be ready to offer our customers what they want when they want it which means we better start working on it before they want it and we better start thinking about it before we start working on it.  Are there pieces of Google, Microsoft, or Amazon’s cloud platform we can start incorporating into our product now?  Sure, there may be some logical pieces of our architecture that we want to implement in the cloud.  Maybe we’ll use Microsoft Azure’s Internet Service Broker to handle data synchronization.

History has shown us a pretty natural cycle of platform adoption.  The future part of my graphic may be way off.  I’m not Nostradomus you know.  Perhaps the cloud is really an enhancement of SaaS that will actually accelerate SaaS adoption.  I think that may be partially true.  But there are still many things that need to shake out in cloud computing, standards to be built, interoperability, and much more before even the technology is ready for prime time.

One thing I am sure of is that businesses will be buying on-premise software for many years to come.  We should always learn from the past and look to the future.

Tell me what you think.  What’s your opinion?  Are you building software on a cloud platform already?

Add to FacebookAdd to DiggAdd to Del.icio.usAdd to StumbleuponAdd to RedditAdd to BlinklistAdd to Ma.gnoliaAdd to TechnoratiAdd to FurlAdd to Newsvine