1. Identify and track
Two typed calls from your app, across every product you run. Backfill a year of history without emailing a year of users.
1. Identify and track
Two typed calls from your app, across every product you run. Backfill a year of history without emailing a year of users.
2. Group them
Segments are rules over traits and events, recomputed on every write. Entering one can start a journey.
3. Write the journey
defineJourney({ trigger, from, run }) in your repo. One execution per user, waits that survive a restart, events delivered as they arrive.
Hand it to an agent
Anything the dashboard does, the cow CLI and the MCP server do too.
Every page is markdown too: append index.md to its URL (/journeys/index.md). The index is /llms.txt, the whole site is /llms-full.txt, and the API contract is /openapi.json.