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

Advertisements

2nd Incubation Week for Microsoft Dynamics CRM Platform Startups

Sanjay Jain, Microsoft ISV Architect Evangelist, announced the 2nd CRM incubation week event.

On popular demand after very successful 1st CRM Incubation Week, we are pleased to announce 2nd CRM Incubation Week (Boston, week of 20th, April)…

Check out Sanjay’s blog for details and to nominate your company to participate in the event.

I’m excited to be an advisor to the startup teams again.  Jim Steger, CRM Development expert from Sonoma Partners and co-author of the popular books Programming Microsoft Dynamics CRM 4.0, Working with Microsoft Dynamics(TM) CRM 4.0, and Microsoft® Dynamics(TM) CRM 4.0 Step by Step, and Ross Lotharius, CRM Expert from the award-winning CRM consultancy, Ascentium, will also be there as advisors.  There will also be a panel of investors and industry experts there to give advice.  Microsoft team members will also be there providing great advice, technical expertise, and giving you the opportunity to make great connections.

Sanjay and the rest of the Microsoft team orchestrated a fantastic event back in mid-December 2008 and I expect the 2nd event to be even better.  If you are a startup looking to build a vertical industry application on a PaaS platform, this event is an unbelievable way to kickstart your business.

For the first event, five startups were selected from a field of 50 applicants.  Each of those five startups were able to build a working, compelling prototype, get great advice on technology and business planning, make great connections and friendships, and generate buzz about their venture.  That’s a lot of value for the cost of a plane ticket and 4 nights at a hotel.  So hurry up and get your nomination in.  You don’t want to miss out on this opportunity.

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