Case Study CRM API - shephertz/App42-API-Gateway-Sample GitHub Wiki

Case Study - Exposing CRM APIs

Overview -

Any enterprise today uses CRM for managing Customers and lead. These leads might come from different channels and apps. Enterprise wants to expose its CRM APIs to these channels and apps so that leads can be created through these resources directly without exposing underlying CRM APIs to them.

Problem Statement -

  1. Apps and Channels should be able to create a lead in underlying CRM through API.
  2. Underlying CRM APIs should not be exposed directly due to various security concerns.
  3. Enterprise should be able to perform analytics on lead generation source. For example, how many leads were generated by given channel and apps.
  4. Channels and should not be impacted on any changes on underlying CRM or its APIs.

Solution -

Apps and Channels should be able to create a lead in underlying CRM through API.

To achieve this, Enterprise will create an API on Gateway Console and create different IAMs to represent Channels and Apps. Created API can either proxy to underlying CRM or it can be configured to have its own adapter in between the gateway and CRM for granular control on API. Every individual apps and channel (IAM) will use their own API Key/Secret Key or Access Token (OAuth APIs) to use these exposed APIs.

Underlying CRM APIs should not be exposed directly due to various security concerns.

Created API in the gateway will be used by channels and apps. Exposed API will internally call/proxy to underlying CRM APIs. Since CRM API will be behind API gateway and in the Intranet of organization, it wont be directly accessible to third party apps/channel

Enterprise should be able to perform analytics on lead generation source. For example, how many leads were generated by given channel and apps.

Gateway Console will give analytics on over all health of Exposed API. Also, it will give distribution of API calls based on IMA/Channels/Apps. Looking at these graphs one should be able to identify how many API calls (Lead Generation) was done by given IAM/Channel/Apps as shown below in Screen-shot.

Channels and should not be impacted on any changes on underlying CRM or its APIs.

If going forward organization changes its CRM provider or CRM API itself changes, it will not impact channels and apps as they will be using exposed API through Gateway.