---
title: Use Cases
layout: default
---

    <div class="container pt-5 pb-2">
      <div class="jumbotron p-3 p-md-5 text-white bg-primary">
        <div class="col-md-12 px-0">
          <h1 class="display-5 font-italic">Apache Unomi has several use cases for what your need!</h1>
          <p class="lead my-3">Apache Unomi is a REST server that manages user profiles and events related to the profiles. It can be used to integrate personalization and profile management within very different systems such as CMS, CRMs, Issue Trackers, native mobile application. It was designed to be easy to integrate with external systems, promoting profile sharing and re-use in very different applications.</p>
          <p class="lead mb-0">Let's start !</p>
        </div>
      </div>
    </div>

      <div class="container">

        <!-- use-cases -->
        <div class="row pb-4 pt-4 border-bottom">
            <div class="col-md-12">
              <h5 class="project-heading pb-4">Use cases</h5>

              <h3 class="font-italic">Use Apache Unomi as a <span class="text-muted">personalization service</span> for a Web CMS</h3>
              <div class="pb-2 pt-2">
                <p>In this use case Apache Unomi is used to track all the users that visits the sites being managed by the CMS. The sites may also contain personalized content elements that will use the profile information coming from Apache Unomi to change their display based on the user. It will also send events (such as login events for example) back to the server using simple AJAX calls to the Apache Unomi REST API.</p>
                <p>The Web CMS can also build UIs to expose the privacy management feature to end-users of the platform, and will of course build UIs to perform administration tasks such as profile, segments, goals, rules management.</p>
              </div>

              <h3 class="font-italic">Use Apache Unomi as an <span class="text-muted">analytics service</span> for a native mobile application</h3>
              <div class="pb-2 pt-2">
                <p>In this case the server is used as a back-end for a native mobile application that will authenticate a user and then send events to the server when the user performs certains tasks within the app. Tasks may include pressing a button, getting close to a location (using GPS or beacons), etc…</p>
                <p>The application may also include a UI to expose the privacy management features of Apache Unomi.</p>
              </div>

              <h3 class="font-italic">Use Apache Unomi as a <span class="text-muted">centralized profile management system</span></h3>
              <div class="pb-2 pt-2">
                <p>In this use case the server is used a centralized profile management system, making it easy to aggregate different profile information that may be stored in different systems such as CRMs, Issue tracking systems, forums, CMS, … One way of achieving this is to make sure that “anonymous” profiles are merged when an event such as a login happens and a unique cross-system identifier (usually the email address) is detected on each system.</p>
                <p>In this case connectors to all the different systems will need to be developped (and hopefully contributed back to the Apache Unomi community), so that the centralization of the information is managed by an Open Source and standards compliant server community.</p>
              </div>
            </div>
        </div><!-- use-cases -->

      </div><!-- /.container -->

