Personalizing the customer experience is in every marketer’s mind and has a strong impact on customer data integration, across channels and applications. This overview helps developers and architects understand how they can use and extend jExperience and jCustomer to integrate customer data.
At a high level, a typical environment is composed of the following:
In a typical use case, when a visitor first opens a site, jExperience serves a Javascript tracker initialized with a context object. Once loaded in a page, the Javascript tracker provided by jExperience (called wem.js), will react to various user interactions and will send events to jCustomer via its REST API.
Although the diagram above provides a good overview of the data flow, the actual environment deployed for production is slightly more complex.
An install typically includes the following layers:
As shown in the above diagram, a collection of TCP ports is used by a typical jExperience installation. The following summary table lists the ports that need to be made available to ensure that jExperience and jCustomer works as expected.
Default Ports | Service | Reachable by | Description |
8080 | Jahia Public interface | Reverse Proxy | Jahia’s interface used to provide access to the website(s) and access to jExperience. |
5700-5800 | jCustomer Hazelcast |
jCustomer nodes |
Used by Apache Karaf Cellar to keep track of cluster nodes and exchange configuration information |
8181 | jCustomer Public interface |
Reverse Proxy |
jCustomer Public endpoint (exposed to the Internet) for event collection and context serving (for example profile, session, and segments) |
9443 | jCustomer Private interface |
Jahia nodes |
jCustomer Administration endpoint, used to manage all jCustomer objects (for example segments and profile editing), also the jCustomer secure address (Endpoint used in a secure environment) |
8102 | jCustomer Karaf console |
Developers, Sys-Admins |
SSH access to Karaf console, useful during development and to debug deployment issues. Although password protected, this should not be publicly exposed. |
9200 | Elasticsearch | jCustomer, Kibana |
Elasticsearch HTTP interface, used by jCustomer to talk to ElasticSearch and also used by other clients such as Kibana or other applications |
5601 | Kibana | Jahia | Access to the Kibana platform, providing a user interface over the data in the Elasticsearch cluster |