Personalization infrastructure

Give every subscriber their own version of your content.

Nevola Engine is an API for content brands that personalize at scale. It turns user profiles and temporal-contextual signals into per-request content your developers ship in an afternoon.

In production with content brands across Europe

Lisa Aura Vesper Notes Tidal Edu Northwind Wellness Apex Drops
The problem

Most personalization stacks are duct tape.

It usually starts small. A feature flag here, a model prompt pasted into a controller there, a handful of analytics events to decide who sees what. Six months later you have personalization logic spread across three services, two databases, and a Notion doc nobody trusts. Every new content variant means a deploy.

The expensive part isn't the model. It's the drift. Your profile schema says tone: warm but the prompt still expects voice: friendly, and nobody notices until a subscriber gets the wrong content for a week. There's no replay, so you can't reproduce what a user actually received last Tuesday. There's no audit trail, so when legal asks how a piece of content was generated, the honest answer is a shrug.

How it works

Three primitives. One contract.

01 · Profiles

Durable per-subscriber state.

A profile is the durable record of who a subscriber is to your brand: preferences, cohort, the external ID you already use. You write to it with POST /v1/profiles and patch it as you learn more. We store a hashed external_user_id and the attributes you send — no other PII touches our database.

POST /v1/profiles
{
  "external_user_id": "u_8f21c",
  "attributes": { "tone": "warm" }
}
02 · Signals

Deterministic, versioned context.

Signals are temporal-contextual values derived from a timestamp plus the context you pass in. GET /v1/signals/temporal/{user_id} returns the computed cohort and weighting the engine will use for that moment — deterministic, versioned, and inspectable. You never guess why a subscriber landed in a given variant; the signal is right there in the response.

GET /v1/signals/temporal/u_8f21c
→ { "cohort": "morning_warm",
    "weight": 0.72,
    "version": "tcs.v3" }
03 · Templates & Sequences

Composable delivery.

Templates define the shape of a personalization; sequences chain them into multi-step delivery like an onboarding arc or a daily drop. Call POST /v1/personalize/content for a single piece, or POST /v1/personalize/sequence for the whole run. Delivery confirmations arrive on the personalize.delivered webhook, so your system knows exactly what shipped.

POST /v1/personalize/sequence
{ "profile_id": "u_8f21c",
  "sequence_id": "onboarding_7d" }
Code

A complete personalization in 12 lines.

Create a profile, then ask for content. The engine reads the profile, computes the temporal-contextual signal for the request, and returns finished copy with the signal attached. Same flow whether you call it with curl or the SDK.

# 1. Create a profile
curl -X POST https://api.nevolagroup.com/v1/profiles \
  -H "Authorization: Bearer $NEVOLA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"external_user_id": "u_8f21c", "attributes": {"tone": "warm", "cadence": "daily"}}'

# 2. Get personalized content for this moment
curl -X POST https://api.nevolagroup.com/v1/personalize/content \
  -H "Authorization: Bearer $NEVOLA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"profile_id": "u_8f21c", "template": "daily_reflection", "context": {"local_time": "2026-03-14T07:02:00-03:00"}}'

Full request and response shapes are in the API reference.

Use cases

Built for teams that ship content daily.

Subscription content

Brands sending daily drops.

This is where the engine earns its keep. A brand sending daily reflection content to 40,000 subscribers can't write 40,000 drafts, and a single generic one defeats the point of subscribing. With Nevola, each subscriber gets a narrative drop shaped by their profile and the moment they open it — morning cadence reads differently from evening, a three-month subscriber differently from a week-one signup. The brand defines the template once and lets the engine handle the per-request work, with every delivery logged and replayable.

Edtech

Adaptive courseware.

Adaptive learning paths usually mean a maze of conditionals nobody wants to maintain. A learner who aces the first three modules shouldn't sit through the remedial track, and a learner who stalls shouldn't be pushed ahead. Sequences let you express the path as templates that branch on profile attributes, so the engine serves the next step that fits — and the audit trail shows exactly why.

Wellness & coaching

Contextualized check-ins.

Context is everything in coaching, and a checkpoint that ignores it feels robotic. A user checking in at 6am before a workout needs a different prompt than one logging in after a hard day. Signals give the app a clean way to read the moment and return a contextualized checkpoint, without hard-coding time-of-day rules into the client.

Pricing

Pricing that scales with your audience.

Engine Starter
$499 /month
  • Up to 10,000 profiles
  • 100K monthly personalizations
  • Email support
  • Sandbox + production
Engine Enterprise
Custom
  • Unlimited profiles & volume
  • Regional data residency
  • 99.95% SLA
  • DPA + BAA
  • Dedicated TAM

All plans include the full API. No feature gating.

Start with a profile and a single request.

Read the docs, write your first personalization, and decide for yourself.