Feature Tracking | Orwel Docs
Docs

Feature Tracking

Map events to product features and measure adoption among your active users.

A feature maps one or more events to a meaningful part of your product, so you can measure adoption: how many of your active users actually use it.

Feature Adoption (% of active users)
Quote builder 72%
Invoicing 48%
Deals pipeline 35%
Reports 19%

Sample adoption across a rolling window.

Define a feature

Features are defined in the dashboard, in Features setup (/developers/features): give the feature a name, pick the events that count as using it (from the catalog or as custom codes), and set the active users window. The configurator then generates the track() calls to add to your code, as an agent prompt, a snippet or a typed TypeScript module. See Journeys and features setup.

Saved, a feature is a set of event specs:

json
{
  "name": "Quote builder",
  "events": [
    { "source": "event", "code": "time_on_screen", "filters": { "section": "quotes" } },
    { "source": "event", "code": "quote_created" }
  ]
}

Custom codes used by a feature are registered in your workspace catalog when you save it, so the ingest accepts them.

How adoption is computed

Adoption %

Distinct visitors who hit any of the feature's events, divided by active workspace visitors, in a rolling window.

Filters

Filters match event properties (for example section: "quotes") via JSONB containment, so one time_on_screen event can power many features.

Adoption is computed from pre-aggregated rollups (materialized views refreshed on a schedule), not by scanning raw events on each request, so the feature list loads in milliseconds no matter how many events you have.

Next steps