
Personalization refers to the process of tailoring experiences, products, and services to the unique needs and preferences of individual customers. By using large amounts of data and technology to analyze it accurately, we can gain an understanding of each cusotomer's behavior, preferences, and characteristics. Such knowledge allows companies to deliver an engaging and valuable personalized experience to each customer. 

Implementing personalization on a website can bring many benefits. First, it can improve the customer experience by providing personalized content and recommendations that are tailored to each customer's interests and preferences. This can lead to increased engagement and loyalty as customers feel more valued and understood by the business.

Second, personalization can also lead to increased revenue by driving more sales and higher customer lifetime value. By providing personalized product recommendations and offers, companies can encourage customers to make repeat purchases and continue to engage with the brand over time.

Third, personalization can also lead to cost savings by reducing the need for broad, one-size-fits-all marketing campaigns. By targeting specific customer segments with personalized messages and offers, companies can achieve higher conversion rates and lower customer acquisition costs.

This use case describes the process of sending customers segmentations using tracking code and API to an external tool - CMS. Based on the acquired customer segmentations created in Synerise, we can tailor content and offers to each customer group to meet their needs and expectations.

## Prerequisites 
---
- Implement a [tracking code](/developers/web/installation-and-configuration) into your website.
- Generate a Workspace [API key](/docs/settings/tool/api) with the following permission: `ANALYTICS_BACKEND_SEGMENTATIONS_LIST_READ`

## Process 
---
In this use case, you will go through the following steps:
1. [Create a segmentation](/use-cases/content-personalization-CMS#create-a-segmentation).
2. [Get all segmentations for clients](/use-cases/content-personalization-CMS#get-all-segmentations-for-client).   

## Create a segmentation
---
In this step, you can create any customer segmentation for which you will personalize content/offers on your site. In our case, we will create a segmentation of heavy buyers based on the RFM analysis. You'll find a detailed process for creating the RFM analysis in [this use case](/use-cases/rfm-analysis). 


<div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

The segmentation shown in this use case is just an example. You can create any other segmentation that meets your specific business needs.

</div></div></div>


1. Go to **Decision Hub > Segmentations > New segmentation**.
2. Enter the name of the segment.
3. Choose **Add condition** and find the RFM segmentation. For detailed steps on how to create an RFM segmentation, refer to [this section](/use-cases/rfm-analysis#create-a-rfm-segmentation) of the process of creating RFM analysis.
4. Select the **Equal** operator and in the right field enter the name of the segment that defines the heavy buyers. In our case, we type - `Heavy Buyers`
5. Save the segmentation.

<figure>
<img src="/api/docs/image/54176ad07f146575310749eba44b7c2f42c1b327/use-cases/all-cases/_gfx/heavy-buyers-rfm-segmentation.png" alt="Segmentation settings"  class="full">
<figcaption>Segmentation settings</figcaption>
</figure> 

## Get all segmentations for client
---
In this part of the process, you will get all the customer segmentations from Synerise to use them for content personalization from within your external tool - CMS in our case.

We will also provide a code sample, the task of which is to replace the title content on the page if the customer belongs to a certain segmentation. However, before implementing the code, there are a series of requests you need to perform. These requests will help determine whether the customer belongs to the segmentation that we have chosen as the condition for displaying the personalized header.


<div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

Completing this procedure requires some knowledge on sending API requests using cURL, Postman, or similar tools.

</div></div></div>


1. Acquire API authorization token by using [Log in as Workspace](https://developers.synerise.com/ProfileManagement/ProfileManagement.html#operation/profileLogin) endpoint. Use it to authorize later calls to the API.

   <details class="accordion"><summary>See an example of a cURL request</summary><div class="accordion-content"><pre><code class="language-json">curl --request POST --url https://api.synerise.com/uauth/v2/auth/login/profile --header 'content-type: application/json' --data '{"apiKey":"64c09614-1b2a-42f7-804d-f647243eb1ab"}'</code></pre></div></details>

2. Get all defined segmentations by list, using [List segmentations](https://developers.synerise.com/AnalyticsSuite/AnalyticsSuite.html#tag/Analytics-v2) endpoint.

   <details class="accordion"><summary>See an example of a cURL request</summary><div class="accordion-content"><pre><code class="language-json">curl --request GET --url 'https://api.synerise.com/analytics/%7Bnamespace%7D/segmentations?page=SOME_NUMBER_VALUE&amp;limit=SOME_NUMBER_VALUE&amp;search=SOME_STRING_VALUE&amp;sortBy=SOME_STRING_VALUE' --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'</code></pre></div></details>

3. Pick which segmentations from above call response are relevant and see if the client is in them by using [Check if profile in segmentations](https://developers.synerise.com/AnalyticsSuite/AnalyticsSuite.html#operation/analytics2-segmentation-check) endpoint.

   <details class="accordion"><summary>See an example of a cURL request</summary><div class="accordion-content"><pre><code class="language-json">curl --request POST --url https://api.synerise.com/analytics/%7Bnamespace%7D/segmentations/check/by/%7BidentifierType%7D --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' --header 'content-type: application/json' --data '{"identifierValue":"string","segmentationIds":["a8b2ed5c-c342-436f-a98e-eca642767926"]}'</code></pre></div></details>

4. Show part of your web frontend based on your segmentations. 

Below we present an exemplary React code that renders component that displays a secondary title if a specific profile ID is present in an array of segmentations. Remember to communicate with the Synerise API in your backend and pass segmentations to the frontend.


<div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

The presented React code is just an example. You can use any other method to render your content.

</div></div></div>



<pre><code class="language-javascript">function renderPersonalizedMessage(props) {
  const segmentations = props.segmentations;
  return (
    &lt;div&gt;
      &lt;h1&gt;Hello!&lt;/h1&gt;
        {segmentations.includes("a8b2ed5c-c342-436f-a98e-eca642767926") &amp;&amp;
          &lt;h2&gt;Discover our new offer!.&lt;/h2&gt;}
    &lt;/div&gt;
  );
}</code></pre>



**Below you will find a sequence diagram to help you better understand the communication flow between e-point CMS and Synerise.**

  <figure>
  <img src="/api/docs/image/54176ad07f146575310749eba44b7c2f42c1b327/use-cases/all-cases/_gfx/epoint-cms-communication-flow-diagram.png" alt="Communication flow diagram"  class="full">
  <figcaption>Communication flow diagram</figcaption>
  </figure> 

## Explore the content configuration process in e-point CMS
---

Below, you'll find screenshots from e-point CMS that demonstrate the configuration of various platform elements.

- Below are screenshots showcasing the e-point visual builder. In the first screenshot, you can see a component created specifically for a specified customer segment. 

  <figure>
  <img src="/api/docs/image/54176ad07f146575310749eba44b7c2f42c1b327/use-cases/all-cases/_gfx/epoint-cms-visual-builder.png" alt="e-point CMS Visual Builder with defined component"  class="full">
  <figcaption>e-point CMS Visual Builder with defined component</figcaption>
  </figure> 

- In the following screenshot, the same page is displayed, but the component is hidden and will only be shown to customers outside of the predefined segment.  

  <figure>
  <img src="/api/docs/image/54176ad07f146575310749eba44b7c2f42c1b327/use-cases/all-cases/_gfx/epoint-cms-visual-builder-hidden-component.png" alt="e-point CMS Visual Builder with hidden component"  class="full">
  <figcaption>e-point CMS Visual Builder with hidden component</figcaption>
  </figure> 

- The screenshot displayed below presents the configuration panel for the component.  

  <figure>
  <img src="/api/docs/image/54176ad07f146575310749eba44b7c2f42c1b327/use-cases/all-cases/_gfx/component-personalization.png" alt="e-point CMS component configuration panel"  class="full">
  <figcaption>e-point CMS component configuration panel</figcaption>
  </figure> 

- The screenshot below provides a view of the list of e-point CMS segmentations that were obtained from Synerise.

  <figure>
  <img src="/api/docs/image/54176ad07f146575310749eba44b7c2f42c1b327/use-cases/all-cases/_gfx/epoint-cms-segmentation-list.png" alt="e-point CMS segmentation list"  class="full">
  <figcaption>e-point CMS segmentation list</figcaption>
  </figure> 

## Check the use case set up on the Synerise Demo workspace
---
You can check the configuration of [segmentation](https://app.synerise.com/analytics-v2/segmentations/a8b2ed5c-c342-436f-a98e-eca642767926) directly in Synerise Demo workspace.

If you’re our partner or client, you already have automatic access to the **Synerise Demo workspace (1590)**, where you can explore all the configured elements of this use case and copy them to your workspace.  

If you’re not a partner or client yet, we encourage you to fill out the contact [form](https://demo.synerise.com/request) to schedule a meeting with our representatives. They’ll be happy to show you how our demo works and discuss how you can apply this use case in your business.

## Read more
---
- [e-point CMS](https://www.e-point.com/products/e-point-cms)
- [API keys](/docs/settings/tool/api)
- [API references](https://developers.synerise.com/)
- [Segmentations](/docs/analytics/segmentations)
- [Synerise API](/developers/api)


