Implementing Microsoft Dynamics CRM across an enterprise can deliver tremendous value for organizations, but it requires addressing several significant challenges (such as the need for functional diversity between departments, organizational security requirements, enterprise-wide standardization, and enterprise-wide reporting.) The flexibility of Dynamics CRM provides many different architecture alternatives for enterprise implementation, each with its own characteristics and tradeoffs, and for many organizations, a hub-and-spoke architecture may be the best approach for answering the challenges presented by enterprise-wide implementation of CRM.
Hub and Spoke Strategy
This deployment strategy utilizes Microsoft Dynamics CRM’s multi-tenancy capabilities to create a “hub and spoke” architecture. At the center is a hub that serves as a data master. It aggregates all the common data elements and manages which organizations or “spokes” are setup to see the data. This allows data to be shared among multiple organizations through an integration layer.
This model lends itself to some centralized administration to support the hub organization and the integration platform, but can support decentralized administration for the spokes.
The hub contains only the most basic and fundamental data elements needed to represent the shared data and serves as the central data aggregator. As the data at the hub is added or modified (by either a spoke or the integration), it pushes out those changes to the spokes. The hub should make the call to push to the spokes as a proxy user, “Hub Proxy User”. The Hub Proxy User needs to be granted sufficient rights to make the call in each of the spoke organizations.
Additionally, the hub needs a way to identify each of the spokes, or “subscribers” that are attached. The best way to achieve this is to create a custom entity that tracks the URL to the organization as well as the organization name for each spoke.
For each spoke to be able to connect to the hub, a baseline solution should be created with the required data elements (entities, fields, etc.), web resources, and plugin assemblies required to achieve integration with the hub. Once the baseline solution is deployed, the business group can extend the data model and apply any business logic that they need to achieve individual business goals. When data mastered by the hub is created or modified, the spoke pushes the changes to the hub. The hub, in turn, pushes out those changes to the other spokes. The spoke makes the call to push to the hub as a proxy user, Spoke Proxy User. The Spoke Proxy User should be granted only the rights needed to meet their business goals and the enterprise security requirements. If the spoke should not be allowed to modify organizational data, then the Spoke Proxy User should be restricted as such.
There are many different choices for the integration technology. One example is to use plugins to push data between the hub and spokes. The diagram below illustrates how the integration using plugins would work for contact updates (at either hub or spoke).
Implementing CRM applications in enterprise environments present unique challenges which can include:
- Functional Diversity among Business Groups
- Organizational Privacy, Security and Compliance Restrictions
- Enterprise-wide Reporting