The Marketing Factory - Salesforce connector : story of a technical success
The bidirectional integration of Marketing Factory and Salesforce is an important step for our open DXP & personalization platform.
Can you tell us the starting point of this project ?
In Apache Unomi we have a powerful rules engines that is not very visible to most newcomers, but, for some, enables cool ways of integrating systems. To illustrate this, we had the idea to integrate with a CRM at a very early of the project. This was even discussed during the work on the OASIS Context Server specification. Apache Unomi being an implementation of this specification, it became the logical place to provide a connector to Salesforce as an example of its CRM integration capabilities.
What is the functional scope of this project?
This connector integrates with the new UI rules in Marketing Factory and makes it possible to :
- Update a Salesforce Lead from an Apache Unomi profile (rule action 1)
- Update an Apache Unomi profile from a Salesforce Lead (rule action 2)
The connector creates a correspondance between the Salesforce Leads and the Apache Unomi profiles using a common key. The usual key is the email address but other keys may be defined. The connector also enables to update data both ways.
These two functionalities are implemented as Apache Unomi rule actions, meaning that the core of the connector has actually been contributed to the Apache Foundation as part of the Apache Unomi project.
Why are the features divided between Marketing Factory and Apache Unomi?
Marketing Factory can be seen as mostly an operational solution built on top of Apache Unomi, as well as a deep integration layer with our DX CMS. The reason for this split of functionality is that we wanted to have an open source server that many systems could integrate with. Unfortunately we couldn't find an already existing project so we started working on both a specification and an implementation at the same time. Having a separate custom data platform makes it easy to scale and integrate in very flexible ways.
Which technical aspects have been real challenges in this project?
There have been multiple challenges :
- Building a server such as Apache Unomi from scratch is quite an undertaking. We had to clearly defined its APIs, and then build a server that is highly scalable. We made it a little easier by using ElasticSearch as the main storage and querying engine but implementing a rule engine that is highly flexible and customizable was quite tricky initially.
- Building a completely new User Interface for Marketing Factory was also quite a big project, and as in many such projects it had to go through multiple iterations to get things to the way they are today. But we still have many more ideas on how to improve it!
The strong integration with Digital Experience Manager, Jahia's DXP solution was also an important goal from the start, without compromising Marketing Factory’s or Apache Unomi’s flexibility. This integration really makes it possible for our existing users to complement their deployments with personalization and A/B testing using the usual Jahia DX UI. This also one of the reasons why Markting Factory was implemented as a Jahia DX module that interacts with Apache Unomi through its REST API.
What are the potential outcomes of the Salesforce Unomi integration for other Unomi projects?
From a purely technical and API-first point of view, any Apache Unomi user may use the Salesforce rule actions to integrate their custom solutions.
What are the next steps for Unomi?
We are working on promoting the project to grow the community, which is the last important step before the project can graduate at the Apache Foundation and become a TLP (top-level project).
On the features side we will be improving some parts of the framework such as upgrading to Apache Karaf 4, or looking at new integrations including artificial intelligence (AI) frameworks.
Author : Serge Huber
Serge Huber is co-founder and CTO of Jahia. He is a member of the Apache Software Foundation and Chair of the Apache Unomi project management committee as well as a co-chair of the OASIS Customer Data Platform Specification.