Skip to main content
Our docs redesign is live!

Understanding how Contentstack CMS, Personalize, and Lytics work together

4 min read

Digital experiences are no longer just about publishing content. They are about delivering the right content to the right user at the right moment. Contentstack approaches this by combining three distinct but tightly connected capabilities:

  • Content management

  • Customer data and insights

  • Real-time personalization

To understand how these fit together, it helps to think in terms of three layers:

  • Content: what you can show

  • Data: who the user is

  • Decisioning: what should be shown right now

A simple mental model

At a high level, the system looks like this:

DiagramMermaid

This diagram captures the core idea: content, data, and decisioning are separate concerns that come together at runtime.

The role of each product

Contentstack CMS: the content system of record

Contentstack CMS is responsible for managing structured content. It stores entries, assets, and content models, and delivers them via APIs to any channel.

Its responsibility is straightforward: define and deliver what content exists.

What it does well:

  • Structured content modeling

  • Omnichannel delivery via APIs

  • Versioning and governance

What it does not do:

  • It does not track user behavior

  • It does not decide which content variant to show

The CMS is intentionally user-agnostic. It provides content, not context.

Lytics: the customer data platform

Lytics serves as the data and insights layer. It collects behavioral data from users and builds unified customer profiles in real time.

Its responsibility is to answer the question: who is this user?

What it does:

  • Tracks events such as page views, clicks, and interactions

  • Builds persistent user profiles

  • Creates audience segments based on behavior and attributes

Examples of segments:

  • Returning visitors

  • High-intent users

  • Users interested in a specific category

What it does not do:

  • It does not render content

  • It does not control presentation

Lytics transforms raw behavioral data into actionable audience intelligence.

Contentstack Personalize: the decision engine

Contentstack Personalize sits between content and data. It is responsible for making real-time decisions about which content variant should be delivered to a user.

Its responsibility is to answer: what should this user see right now?

What it does:

  • Evaluates audience membership (from Lytics)

  • Matches users to experiences or variants

  • Executes decisions at the edge for low latency

What it does not do:

  • It does not store content

  • It does not build user profiles

Personalize is the orchestration layer that connects content with context.

How the pieces connect

The integration between these systems is often referred to as a data activation layer. This is not a single product, but rather the flow that connects:

  • Content from the CMS

  • User data from Lytics

  • Decisions from Personalize

The result is a runtime system where each request can be tailored dynamically.

End-to-end request flow

To make this concrete, consider what happens when a user visits a site:

DiagramMermaid

This flow highlights an important point: personalization decisions are made at request time, using both stored content and real-time user context.

The feedback loop

One of the most important aspects of this architecture is that it forms a continuous feedback loop:

  1. Content is delivered to the user

  2. The user interacts with that content

  3. Lytics captures and processes the behavior

  4. Audience membership evolves

  5. Personalize adjusts future decisions

Over time, the system becomes more accurate and more relevant without requiring manual intervention for every change.

Clear differentiation between the three

A useful way to explain the system is to map each product to a specific responsibility:

Layer

Product

Responsibility

Question it answers

Content

CMS

Store and deliver content

What content do we have?

Data

Lytics

Build user profiles and segments

Who is this user?

Decisioning

Personalize

Select the right variant

What should they see right now?

Keeping these responsibilities separate is what enables flexibility and composability.

Why all three are necessary

Each component plays a distinct role, and removing one creates a gap:

  • Without the CMS, there is no structured content to deliver

  • Without Lytics, there is no understanding of the user

  • Without Personalize, there is no real-time decision-making

Together, they form a complete system for delivering adaptive digital experiences.

A simple analogy

For a non-technical audience, the system can be compared to a streaming platform:

  • The CMS is the content library

  • Lytics is the viewer profile and history

  • Personalize is the recommendation engine

Each part is essential, and the experience depends on all three working together.

Summary

Contentstack CMS, Lytics, and Personalize are designed as separate but complementary systems:

  • The CMS manages content

  • Lytics understands users

  • Personalize makes real-time decisions

Combined, they enable a composable architecture where content delivery is no longer static, but continuously adapted based on user behavior and context.

Frequently asked questions

  • What does Contentstack CMS do in this architecture?

    Contentstack CMS is the content system of record. It stores structured entries and assets and delivers them via APIs, but it does not track users or choose variants.

  • What role does Lytics play with Contentstack Personalize?

    Lytics collects behavioral events and builds unified user profiles and audience segments. Personalize uses that audience membership as input for runtime decisions.

  • How does Contentstack Personalize decide which content variant to show?

    Personalize evaluates audience membership (from Lytics) and matches the user to an experience or variant. Decisions are executed at the edge to reduce latency.

  • What happens during an end-to-end personalized page request?

    The site sends tracking data to Lytics, requests a decision from Personalize, and then fetches the needed content from the CMS. The site renders the selected variant for the user.

  • Why keep content, data, and decisioning as separate layers?

    Separating responsibilities improves composability and flexibility. You can evolve content models, audience logic, and decision rules independently while still combining them at runtime.