Content Personalization / Segmentation Architecture in Directus

Hi everyone.

I’m trying to understand the best way to implement content personalization in Directus.

Context:

  • Angular widget frontend
  • Directus as headless CMS
  • Frontend knows authenticated user ID
  • Users belong to different segments (for example: new users, premium users, users with active loans, etc.)

Goal:

Frontend sends user identifier, and CMS should return different content depending on the user segment:

  • different banners
  • different partner feeds
  • different texts
  • different promotions

Questions:

  1. What is the recommended approach in Directus for content segmentation/personalization
  2. Should segmentation logic live inside Directus (Flows / permissions / custom endpoints), or should frontend/backend resolve segment first and only request filtered content?
  3. Is there a common pattern for storing segment-to-content relations in Directus collections?
  4. How would you implement this to keep content managers able to manage segments without developer involvement?

Looking for architecture recommendations rather than implementation details.

1 Answer

1

I’d probably keep the segmentation logic outside Directus.

If segments are based on things like subscriptions, active loans, or user activity, that usually ends up being business logic and may depend on other systems as well.

In Directus, I’d just keep a Segments collection and relate it to banners, promotions, feeds, etc. The backend can resolve the user’s segment and request the matching content.

That way content editors can manage the content targeting themselves without needing developer changes every time.