The purpose of a CRM


For businesses serious about marketing and revenues, having a Customer Relations Management (CRM) system is close to compulsory.

Whether your CRM is a home-grown spreadsheet system or an enterprise-level software suite, it allows you to keep track of interactions and transactions between you and the people you do business with.

  • In its simplest form, a CRM may consist of a number of rudimentary business entities (e.g. "customer", "product") linked together by a relational entity (e.g. "sale", "project" or "invoice")
  • In a more advanced form, a CRM will be a powerful tool to extract reports, statistics, trends, goals tracking etc.
  • In a highly sophisticated form, your CRM might be just one of several data sources feeding a higher-level data aggregator (e.g. Silverpop, which I'll get to below), to enable automated, personalized and optimized customer interactions and marketing.

In essence, a CRM system is relational data with a control panel slapped on top.

While there are several popular CRM suites on the market today ranging from enterprise-scale (e.g. Salesforce, Oracle Sales Cloud and Microsoft Dynamics CRM / MS CRM) to SMB- scale (e.g. SugarCRM, Insightly and NetSuite), this article will focus mainly on Microsoft Dynamics CRM.

Screenshot from Microsoft Dynamics CRM

Screenshot from Microsoft Dynamics CRM


CRM use cases


Tracking basic sales or customer data is a typical example of "back office" usage of a CRM system. Many businesses use such a system internally, and don't ever expose any of that data to the outside world (let alone on the web!)

Thinking outside that box will suggest a number of other powerful ways that a CRM integration can enhance your web site.

Imagine any of the following usages:

  • A community/union site - storing members in CRM, enabling "My page" type autonomy, personalized interactions and social collaboration features.
  • An event listing site - storing educational/cultural/sports events and their participants in CRM, enabling advanced listings, cross-referencing events and integrations with ticket agents.
  • An nonprofit organisation site - storing volunteers/donors/projects in CRM, enabling efficient followup and fundraising.
  • A customer support site - storing issues, solutions and interaction history in CRM, enabling self-service, interactive knowledge bases and reducing the internal communication load between support reps.

By leveraging the complex data from your CRM and combining it with a personalization engine, social collaboration features or e-commerce modules, you could end up with a seriously powerful site.

(And surprise, surprise - the EPiServer product family covers all of these scenarios.)

 

Proxy option: Third party APIs


At Epinova, we have built EPiServer sites for some of the largest unions and nonprofit organisations in Norway, most of which include a CRM integration.

In some cases, a third party vendor (like Winorg or Mysoft here in Norway) is contracted to deliver a proxy API layer that handles the actual CRUD operations in CRM.

These are typically ready-made, modular, Web Service based APIs (or even complete mini-portals) that can be configured and customized by the vendor depending on the project requirements.

Pros:

  • Vendors have experience with lots of similar customers, and may provide valuable councelling.
  • Vendors offer an extensive array of appropriate API modules to cover most business scenarios.
  • Tested, ready-to-use modules will cut down on project development costs, and reduce time-to-market.
  • Streamlined APIs will ensure the quality of the data input/output and maintain data integrity.

Cons:

  • Possibly non-standard CRM solution, proprietary APIs or non-customizable portal features or graphical design.
  • Vendor lock-in; i.e. the specialized nature of the solution might prevent you from switching to another system without having to replace the CRM, the communication layer, or both.
  • Third parties add an extra layer of people who need to understand your business goals, provide solutions that solve your needs, and have resources available to you when necessary.

 

Commercial option: EPiServer Connect for CRM


The EPiServer CRM connector has been around since 2008, supporting EPiServer versions ranging from v5.x up to the current v7.5 (though not all-in-one).

This plugin actually supports two flavors of CRM - Salesforce and Microsoft Dynamics CRM. While I'm not too familiar with the Salesforce version history, at least Microsoft Dynamics versions v4.0 up to the current "2013" version have been supported.

Providing an official connector is, of course, a smart move by EPiServer. Plugins and extensibility have always been among EPiServer's core strengths, and with the increased popularity of social/community sites and personalized user experience, a CRM connector was an obvious addition to the product family early on.

Feature-wise, the connector might be adequate for simple integrations, but too limited for more complex ones. This is mainly due to the lack of support for customization, noted below.

It's basically a way to store business-type entities (as Accounts) and person-type entities (as Contacts) and using the CRM as a membership provider. Of course, you can still store a vast amount of data for each entity - and how you leverage that data in your EPiServer site is entirely up to you.

Also - as commercial products tend to - it costs money. Being an EPiServer product, the license falls neatly into the enterprise end of the spectrum. You might argue that most of EPiServer's clients are enterprise-size players anyway. But you'd be surprised how many smaller organizations choose to invest in EPiServer despite modest budgets, knowing they will be able to keep costs down by building plugins and customizations themselves.

Demonstration of the EPiServer CMR Connector used on the Alloy demo site

Demonstration of the EPiServer CRM Connector used on the Alloy demo site. Credits: Fiurmax (YouTube)

Pros:

  • Official EPiServer product - official documentation, tech support and version upgrades.
  • Fairly straightforward and well-documented setup.
  • Fast entry-level CRM integration for small-to-medium businesses.
  • Seamless use of standard .NET components like Membership Provider and Mail API
  • Links up nicely with EPiServer's membership model and personalization engine through use of Virtual Roles for CRM users.

Cons:

  • Only supports standard/native CRM entities (namely Accounts and Contacts), not custom entities. (Not without undesirable hacks, anyway.)
  • Same as above goes for attribute types. Types like OptionSet/Picklist, which are very commonly used, are not supported out of the box.
  • CRM entities and their attributes are defined/mapped in config files, not in code. In fact, most of the connector setup involves you messing around in config files.
  • Doesn't recognize N:N (many-to-many) relationships between entities
  • Proprietary source code.
  • License costs.

More information:

 

 

Open source option: Epinova CRM Framework


Developed and maintained by my colleague Karoline Klever from 2010 onwards, the Epinova.CRMFramework is an open source framework (available on GitHub and Nuget) designed specifically to avoid the shortcomings of the EPiServer CRM Connector. It's lightweight, powerful, extensible, and free.

Before deciding to roll her own, Karoline researched a bunch of the available frameworks out there, without finding any that ticked all of her boxes. She blogged about the development process along the way, documenting her findings and design decisions.

Although Epinova.CRMFramework was designed with EPiServer integrations in mind, it's actually CMS-agnostic, meaning it can be utilized to connect any .NET based project to Microsoft Dynamics CRM.

(Dynamics is currently the only CRM flavor supported by Epinova.CRMFramework).

Snippet from the Epinova CRM Framework docs on Github

Pros:

  • Configuration kept to a minimum, only connectionstring resides in web.config.
  • Support for all native and custom entities, attributes (including OptionList/PickList) and relation types (including Many-to-Many).
  • Support for all CRUD operations.
  • Entities and attributes defined in code, enabling strongly-typed access and use of interfaces, mocks and unit testing.
  • Entity search and filtering options using conditional queries and logical operators.
  • It's open source, which means you can download, use and modify it for free.
  • Comes in two flavors; v1.0 supporting .NET 3.5 + Dynamics 4.0, and v2.0 supporting .NET 4 + Dynamics 2011/2013.

Note: While Dynamics CRM is traditionally an on-premise software installation, the cloud hosted (SaaS) version is becoming increasingly popular due to improved scaling and lower operations costs. Epinova.CRMFramework 2.0 has been successfully tested in a hosted environment. Also, support for Dynamics 2013 is due shortly.

Cons/improvement areas:

  • Entity queries can currently only use one logical operator at a time, which makes complex queries (e.g. conditional joins) require several sequential queries.
  • As is the nature with open source projects, you can't expect free updates and tech support for ever. Although since the framework is used by several of Epinovas customers, it will naturally evolve as new requirements arise.
  • Being a nonprofit side project, further development and bug fixes depends on volunteer work and spare time.
  • Only one CMS flavor currently supported

More information:

 

 

Advanced option: Silverpop integration for EPiServer


As you might be aware, Silverpop is a leading software suite for marketing and email automation. EPiServer and Silverpop became partners in 2013, which involves developing a joint connector to leverage Silverpop's data aggregation features for increased marketing juice.

(Or, in true press release buzzword bingo style, "Connect Multiple Touchpoints, Improve Time to Conversion".)

In a typical scenario, Silverpop would act as a high-level data aggregator, being fed data from sources like your EPiServer site, your CRM (and possibly other integrated systems), and functioning as both a data storage and intermediary service.

By intermediary I mean that CRM connections will be handled by Silverpop's own Dynamics CRM connector (they support a range of CRM vendor connectors), not directly from EPiServer.

While you would still use your CRM's control panel for extracting statistics/reports and generating invoices etc, Silverpop's main function would be analyzing visitor behaviour and optimizing interactions with the visitor through appropriate channels, like personalized web content and email marketing.

As the EPiServer connector for Silverpop is not officially available yet, I'll postpone listing any pros and cons until it can be properly reviewed. Off the top of my head I am unsure if Silverpop only offers cloud hosted APIs or if they also offer on-premise installation (which might be of interest because of security/privacy concerns).

The Silverpop connector should be available as an Add-On for EPiServer 7.x later this year, along with a demo site showcasing its possibilities.

More information:

 

More on Silverpop..

If you're in Oslo Norway for the 2014 EPiServer Partner Summit on March 19th, Silverpop representatives will be both attending and speaking. If you're serious about personalization and marketing, popping by might be worth your while.