CRM Integration considerations


Every CRM solution must be integrated with in-house applications and other systems like Microsoft Outlook, Microsoft GP, etc., to leverage the most out of CRM. In this blog, I will give a generic overview of how to go about the whole integration exercise, highlighting key CRM integration considerations. This blog covers integration with custom applications, and the series will continue to cover CRM integration considerations with Microsoft GP and other products.

Learn more about our CRM services

CRM Services Overview

Microsoft Dynamics CRM 4.0 features a couple of web services, so one can easily talk to CRM using these web services. Now that WCF and WWF are replacing integration products because of their reliability, scalability, and robustness, I think that is the solution for CRM integration with other applications. CRM has the following out-of-the-box services.

  • CRM Service: This is used to interact with the entity instance data.
  • MetaData Service: This is used to interact with the entity model.

Understanding CRM Service and MetaData Service:

CRM service is where all the actions occur; this is our (for the outside world) interface with CRM. Accessing the CRM database directly and doing everything might feel tempting, but that’s neither supported nor recommended. The MetaData Service retrieves all metadata, adds/updates attributes in entities, adds/removes an option from the picklist, etc.

Read more: Why is Microsoft Dynamics 365 a good CRM tool to invest in?

Streamline your Business Processes with Advanced CRM Solutions!

AlphaBOLD is here to show you the path to more efficient processes and improved decision-making capabilities.

Request a Demo

Common Methods for CRM Service Interaction

Some common methods for CRM Service are as follows:

  1. Create: Creates an instance of any entity that supports the Create message, including custom entities.
  2. Retrieve: Retrieves an instance of an entity.
  3. RetrieveMultiple: Uses a custom query (QueryExpression) to retrieve strongly typed results.
  4. Update: Updates an existing entity instance.
  5. Delete: Deletes an existing entity instance.
  6. Fetch: Use a custom query (FetchXML) to retrieve results in XML format.

Another important method is the Execute Method, which is message-based and is used for specialized business logic.

Integrating CRM with Custom Applications:

Now that we have basic knowledge of the services that will help us talk with CRM let’s start discussing integration. Suppose we have an existing application used for operations that affects how we manage our customers. It could be an application used for membership updates, with each customer getting a different level of customer support based on membership. Ideally, this system should be integrated with CRM to inform the sales team of membership/membership updates so that operations can be performed that would guarantee greater customer satisfaction.

Architectural Considerations for CRM Integration:

Similarly, we would like the CRM solution to be integrated with other applications so that changes in one system are reflected in the other.  Another example is registration on-site, which might lead to creating a lead/account in CRM so that the sales team can talk to customers/potential customers. Without going into the intricacies of your integration requirement, it is evident that CRM needs to be integrated with other applications, and an architecture that offers a de-coupled SOA integration model would suffice for most of the integration requirements.

Normally, the integration results in two-way communication between CRM and other applications. Consider when a registration process should create a lead/account/contact or opportunity in CRM. In this case, an action in a custom application results in something happening in CRM. The same is true for many operations happening with CRM that should update the other systems.

Read more: Handling multiple bids within one opportunity with Dynamics 365 CE for Construction.

Building Blocks for CRM Integration Solution:

Let’s identify the building blocks for our solution. For our existing system to talk with CRM, we already have the CRM Service, but for CRM to talk to our existing system, we’ll need to have a service as well. Let’s call it CRM Integration Service.

Designing the CRM Integration Service:

Considering that one would like to integrate the two systems using WCF, the existing application architecture needs to be extended to expose some of the operations through a WCF contract. We do it by adding an integration helper. This will be responsible for all the integration calls from our existing system to CRM. In case there is no requirement for the response from CRM for the operation resulting from a custom application, one would have one-way calls in our new CRM Integration Service, and we’ll execute service calls on a separate thread from the thread pool so that our normal flow of application isn’t disturbed. Any exception will be handled in that separate thread from the thread pool.

Read more: AI in CRM: Exploring Microsoft Dynamics 365 Benefits.

Lead the way in Innovation with CRM Analytics!

Want to lead your industry with cutting-edge CRM analytics? Embark on an advanced analytics journey with AlphaBOLD, where we utilize the power of AI and machine learning to bring you insightful analytics and forecasts.

Request a Demo

Key Requirements for Successful CRM Integration

Our CRM integration service should meet the following requirements.

  1. It should have no impact on the existing application. This is important because if one changes the existing application, one must go through the complete testing and deployment cycle.
  2. The integration should be configuration-driven to close the custom application and CRM channel.
  3. Error handling in the integration layer should not affect the application responsible for invoking the operation.
  4. The integration layer should be robust, which means it should be able to restore and sync up the two systems in case of failure.
  5. Scalability can be a concern, but it is driven mostly by the traffic and the direction of that traffic. I will not talk much about it in this series.
  6. Unit work performed by the integration layer should be small. 


We discussed some of the integration considerations for any sort of integration in this blog. Having worked in EAI and B2B integration projects, I know through experience that these are critical requirements for integration. The next post will discuss how our integration solution would cover these requirements. I will also share some code and requirements/problems we addressed during our implementation.

Explore Recent Blog Posts

Infographics show the 2021 MSUS Partner Award winner

Related Posts

Receive Updates on Youtube