Apache Unomi™: The Open Source Customer Data Platform

Apache Unomi™ (pronounced "You know me") is a Java Open Source customer data platform, a Java server designed to manage customers, leads and visitors data and help personalize customers experiences while also offering features to respect visitor privacy rules (such as GDPR)

News

Version 2.6.1 released!

Changes in 2.6.1 (since 2.6.0)

Bug
  • [UNOMI-866] - Remove hardcoded version of log4j-extension
  • [UNOMI-867] - Fix reIndex in migration to allow to call the method multiple times

Version 2.6.0 released!

Changes in 2.6.0 (since 2.5.0)

Bug
  • [UNOMI-847] - Unable to delete a groovy action / Issue when registering Groovy actions
  • [UNOMI-862] - Error in scope existing check during the migration
  • [UNOMI-863] - healthcheck config not updated
Improvement
  • [UNOMI-846] - Change log level for json schema validation
  • [UNOMI-854] - Add Healthcheck endpoint
Task
  • [UNOMI-806] - Remove dependency to org.hibernate.validator @NotEmpty annotation
  • [UNOMI-842] - Update next release version to 2.6.0 (instead of 2.5.1)
  • [UNOMI-852] - Improve robustness against log injection
  • [UNOMI-853] - Adapt migration job to use asynchronous mode avoiding timeout and connection lost
  • [UNOMI-861] - Adapt migration job to use asynchronous mode on deletion to avoid timeout and connection lost

Version 2.5.0 released!

Changes in 2.5.0 (since 2.4.0)

Sub-task
  • [UNOMI-576] - Create documentation for GraphQL schema usage
Bug
  • [UNOMI-794] - Investigate test execution time on master
  • [UNOMI-810] - Logging for segment & scoring creation/update is missing details
  • [UNOMI-811] - Improve logs when an event is being rejected
  • [UNOMI-841] - Exception during unomi startup
Improvement
  • [UNOMI-817] - past event conditions can generate mapping explosions
Task
  • [UNOMI-822] - Add search event
  • [UNOMI-825] - Hide some profile properties from context request when required is set to with all (*)
  • [UNOMI-827] - Release Unomi-tracker 1.4.0
  • [UNOMI-829] - Upgrade the dependencies version

Version 2.4.0 released!

Changes in 2.4.0 (since 2.3.0)

Bug Fix
  • [UNOMI-784] - Timeout on updateByQuery request such as scoring update
  • [UNOMI-788] - remove OGNL warning when evaluating missing properties
  • [UNOMI-792] - Log error should be warning
  • [UNOMI-796] - Add log4j conf + env variable to set SchemaService log level
  • [UNOMI-800] - Example tracker page view event is rejected
Improvement
  • [UNOMI-787] - Improve migration script from unomi 1.x to 2.x to take target.properties.path into account
Task
  • [UNOMI-789] - Update json schema validator library
  • [UNOMI-790] - Clean properties.attributes
  • [UNOMI-791] - Make sessionId optional for events
  • [UNOMI-795] - Fix the use of jekyll for unomi-site
  • [UNOMI-799] - Upgrade nodejs version to 16

Version 1.9.1 released!

Changes in 1.9.1 (since 1.9.0)

  • Fix concurrency issue in groovy action refresh
  • Timeout on updateByQuery request such as scoring update
  • Avoid NPE when a profileID in session is not found

Version 2.3.0 released!

Changes in 2.3.0 (since 2.2.0)

  • Provide an endpoint that allow to validate multiple event
  • Make Unomi batchProfilesUpdate use ES scroll query
  • Upgrade the version of the json-schema-validator library
  • Remove unevaluatedProperties in sub schema
  • Fix segment update scheduled task timing
  • Profile merge system is doing a lot of scroll queries
  • Result size limit when searching events
  • Other small bug fixes

Version 1.9.0 released!

Changes in 1.9.0 (since 1.8.0)

  • One-shot profiles export improved and faster
  • Segment recalculation job scheduling fixed
  • Profile merge system optimized to consume less memory
  • Ability to use scrolling when searching events using REST API
  • Other small bug fixes

Version 2.2.0 released!

Changes in 2.2.0 (since 2.1.0)

  • Reduced the number of ElasticSearch indices
  • Implemented ElasticSearch rollover strategy to optimize the monthly indices rotation (events, sessions)
  • Bug fixes and improvements in the profile merge system
  • New JSON Schema endpoint allowing for direct validation of events
  • Performance improvements for direct profile export to CSV
  • Upgraded user agent library (Yauaa) to version 7.9.0
  • Other small bug fixes and improvements

Version 1.8.0 released!

Changes in 1.8.0 (since 1.7.1)

  • Upgrade user agent library (Yauaa) to 7.8.0
  • Backport optimization on non persisted events
  • Replace openjdk base image & make image multi-arch
  • Other small bug fixes

Version 2.1.0 and 1.7.1 released !

Changes in 2.1.0 (since 2.0.0)

  • Upgrade user agent library (Yauaa) to 7.8.0
  • Bug fixes in control groups
  • Bug fixes in profile purge system
  • Other small bug fixes

Changes in 1.7.1 (since 1.6.1)

  • Bug fixes in list personalization
  • Bug fixes in control groups
  • Bug fixes in profile purge system
  • Other small bug fixes
JSON Schema Logo

Version 2.0 released !

JSON Schema

  • Define strict structure for events
  • Easily extensible through plugins & API

GraphQL API (beta)

  • Brand new GraphQL API to input events and manage all objects
  • Based on the OASIS CXS CDP Specification
  • Deactivated by default for security

Profile aliases

  • Profiles may now have alias IDs, multiple IDs for a single profile
  • Simplifies merging of profiles
  • Enables new use cases for integrating with external systems (CRM IDs, ...)

New web tracker

  • Replaces old web tracker that had dependencies on third party library with self-sufficient code
  • Designed to be used directly as well as extended
  • New tutorial that illustrates its use

Lots of smaller fixes/improvements

  • Migration tools from 1.6 to 2.0
  • Docker images now use JDK 11 by default
  • Lots more details here
JSON Schema Logo

Version 1.6.1 released !

Minor release with the following changes

  • Bug fixes
  • Migration fix
  • More details here
 

Version 1.6 released !

Groovy actions REST API

  • Deploy Groovy actions directly through API
  • Makes it possible to use Groovy actions in cloud deployments!

Rule engine optimization

  • Rule are now associated to event types in memory
  • Only rules related to incoming event are evaluated
  • Changes rule engine performance from exponential to linear when rules are added

Lots of smaller fixes/improvements

  • Log4j upgrades
  • Docker support improvements
  • Segment and score process fixes
  • Lots more details here
Apache Groovy logo

Unomi Meetup Logo

Find more details on the event's page.

First Apache Unomi meetup !

The event was held on Nov 18th, 2021 from 1600 to 1800 CET. See the event's page for information about viewing the recorded session.


Version 1.5 released !

ElasticSearch 7 support

  • New data model to support ElasticSearch 7 and up
  • Better compatibility with Kibana
  • Migration tool updated to make the upgrade from the old to the new data model seamless

Docker / Cloud improvements

  • Official Docker image now on Docker Hub!
  • Improved Docker project to be in line with latest project builds

Profiles

  • Added last updated property to profiles to make it easy to query last modified profiles

Actions

  • It is now possible to build Unomi actions using Groovy scripts inside a plugin

JDK support

  • Both JDK 11 and JDK 8 are now supported.

Kafka support

  • Initial Kafka consumer support
Apache Unomi profile view shell command

Apache Unomi profile view shell command

Version 1.4.0 released !

Container/Cloud deployments

  • Centralized configuration compatible with Docker environment variables
  • New Dockerfile and Docker Compose project files (official Apache Unomi Docker image coming soon!)

Event, rules, profiles management and tools

  • New Karaf Shell Commands to view events, sessions and profiles, analyze rule executions, view incoming events, and much more...
  • Endpoint to search in events has been added
  • New patch system to improve modifying default definitions (rules, segments, …)

Data collection

  • Analytics.js integration, providing an out-of-the-box ready-to-use web tracker

Version 1.3.0 introduced Privacy (GDPR consent management) features

New in release 1.3.0 are features to manage visitor consents, in order to make it easier to comply with new privacy regulations such as the GDPR. A quick guide to these new features is also available here.

GDPR Illustration

Why would you need a Customer Data Platform ?

Organizations collect data from multiple sources and channels - sales, web, emails, mobile, brick and mortar - and all of this data is spread across different departments and technologies. As a result, many professionals are lacking the data they need to do their job, especially data analysts and marketers.

A customer data platform helps business users collect all the customer data in one place, providing a complete view of the customers. When the data is collected, the customer data platform will also play a key role in choosing which content or offer is more relevant to a customer.

The Apache Unomi™ advantage ?

Each organization is unique and will always have specific needs, this is why Apache Unomi™ has been designed to be extended and to ease the integration of external data. The embedded features such as segmentation, scoring and built-in privacy will be appreciated by business users while horizontal scalability and open source positioning will be loved by developers and architects.

Apache Unomi™ is also the reference implementation of the upcoming OASIS Context Server Customer Data Platform (CDP) standard (https://www.oasis-open.org/committees/cxs/) to help standardize personalization of customer experience while promoting ethical web experience management and increased user privacy controls.

Business cases based on Apache Unomi™ ?

  • Build a web personalization software to adapt the content on your website to your audience
  • Collect data from mobile application and feed Apache Unomi™ to track and understand your customers’ journeys
  • Connect the beacons deployed in your stores to Apache Unomi™ and consolidate the profile of your customers and leads across all these channels
  • Automatically push profiles from Apache Unomi™ to your CRM when a lead reach a given number of points in one of your scoring plans

Apache Unomi™ logical architecture

All communication is done using HTTP REST requests and JSON data formats.

Apache Unomi logical architecture diagram

For developers

  • Uses ElasticSearch for data storage, dynamic data structure
  • Highly scalable architecture
  • Very simple to deploy and install (simply unzip & run)
  • Uses Apache Karaf™ as the OSGi runtime
  • Full & simple REST API
  • Extensible through plugin architecture (using OSGi & simple JSON descriptors)
  • Apache Open Source project

For IT stakeholders and business users

  • First-Party Data Collection and Ownership
  • Persistent and consolidated profiles for all your audience (customers & leads), storing anonymous and personally identifiable information
  • Regulation-proof and privacy management built-in
  • Real-Time Decisioning (Scoring logics, segmentation)
  • Open standard, easy integration and extension

Articles & slides

Checkout the latest articles and slides

Apache & OpenSource.

Unomi™ is your project ! Unomi™ is an Apache Software Foundation project, available under the Apache v2 license. It's a complete open community, always listening proposals and comments. Sources, mailing lists, issue tracker: it's fully open, you can access directly. We also love contributions : don't hesitate to contribute.

Be Involved In The Community | How To Contribute