View source | Discuss this page | Page history | Printable version   

CRM Connector

Bulbgraph.png   This feature is available starting from 3.0PR20Q3.



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.

CRM Connector Configuration window with a configuration example

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:

Example of options available for a concrete combo property
Warning.png   The CRM connector configuration is strongly tied to the code implementation. Changes in the property visibility (like labels, position in the list/detail view...) are usually safe, and they will be automatically applied to the customer selector. However any other change might break the connector so it's highly recommend to do it only if you know what you are doing

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.

CRM Connector enabled for the client

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.

Sales Order linked to an external customer. The CRM Reference informs about the customer's identifier in the external CRM system
Bulbgraph.png   It is important to understand that any document created using a CRM connector is linked always to the anonymous customer. In this case the business partner name or address shown in the document is not relevant at all (because they belong the anonymous customer). If you need to get the customer's personal data you should call the CRM's API using the CRM Reference to retrieve that information.

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

CRM Connector discounts property.png
CRM Connector discounts definition.png

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.

CRM Connector discounts applied.png

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.

Example of searching for customers using the email address in a CRM enabled selector
Example of editing the customer information in the POS. The information is retrieved and updated directly into the external CRM system
Warning.png   A direct consequence of working with an external CRM system is that it is not possible to work offline. In any case, for the offline periods the Anonymous customer allows to continue selling if necessary.


Here you have some useful documentation How to create an integration using CRM connector to create you own CRM connector

Retrieved from ""

This page has been accessed 44,418 times. This page was last modified on 17 June 2020, at 15:10. Content is available under Creative Commons Attribution-ShareAlike 2.5 Spain License.