It is very common in the retail world for companies to maintain the business partner information centralized into an external system. Any application that requires to work with business partners usually connects to this system through an API.
CRM connector is a feature that allows Openbravo to connect to external CRM (Customer Relationship Management) systems in an easy and transparent way.
The main idea for this approach is to be able to work in Openbravo with the customer information without storing any personal information inside the Openbravo database. The customer data is always retrieved from the external CRM system and never saved locally.
The CRM system is therefore the master of the information and the source of truth. Openbravo can query/create/update/delete data directly in the External System, which is the final responsible of storing and maintaining the data.
The only information that is actually stored in the Openbravo database is the External Business Partner Reference that uniquely identifies the customer into the external CRM system. This reference is linked into the order/shipment/invoice documents so Openbravo keeps track of the real customer behind each document.
The CRM connector configuration is done directly into the Openbravo backend. There is a new window called CRM Connector Configuration that defines the configuration for a concrete CRM integration.
This configuration is usually provided by external modules in the form of a dataset that should be applied at Client level (*) through the Enterprise_module_management window. A standard CRM Connector Configuration usually contains the following structure:
- In the Header a name and description is provided, and also any useful information to connect to the external CRM system, like the URL, Username or Password. Please refer to the concrete CRM connector implementation you want to use to get the configuration details.
- The API Property tab allows to define the external CRM properties involved in the connector and how they map into Openbravo. You can configure the visibility level, the label displayed in the customer selector, the type of data (String, Number, Checkbox, Combo, Date...), whether it's a record identifier, the position within the detail and list views, etc. When the reference is set to Combo, then a new tab called Property Options will be displayed below to define the static options for the combo selector.
- The Filter tab defines the available filters in the customer selector. You can either define simple or advanced filters.
Enable CRM Connector in the Client
The final configuration step is to enable and define the CRM connector in the Client definition. This is done inside the Client's Information tab.
The CRM connector implementation enabled in the client can be changed at any time. This allows, for example, to test different implementation versions in an easy and fast way.
CRM Reference and Anonymous Customer
As explained in the introduction, the aim of using a CRM connector is to avoid the need of storing and maintaining personal customer data, delegating it instead to an external CRM system.
The only information that is actually stored inside Openbravo database is a reference to the customer within the external CRM system. This reference is available in any document created using a CRM connector, like Sales_Order, Sales_Invoice or Goods_Shipment. It is shown at header level in the field called CRM Reference.
CRM connector and Promotions & Discounts
With this new feature, discounts and promotions engine has been adapted to allow to create promotions adapted to the CRM integration.
To create a promotion applicable to a CRM reference 2 steps are required
- Specify which property (or properties) of the defined ones will be used to apply (or not) the discount.
- Define the discount and set the value for selected property that makes the discount applicable
In this example, we have configured the discount based on the unique CRM reference ID. However, other scenarios can be covered (I.E. Apply a discount to a customer who has the property category with value 'VIP') just selecting the properties to be checked and defining the discount with the proper value.
POS customer selector
When the CRM connector is enabled for a Client, the customer selector in the POS windows is automatically replaced by a new selector ready to work with the external CRM and based on the configuration explained above.
Although we are talking about a totally different component from a pure technical point of view, there is no usability change for the end user as the behavior of the standard and the CRM based selector is exactly the same. It means that the end user shouldn't actually realize he's actually working with an external CRM system instead of with the standard Openbravo.
Here you have some useful documentation How to create an integration using CRM connector to create you own CRM connector