Skip to main content
The runtime reports activity through a single onEvent callback on the provider. There is no built-in analytics destination you receive typed events and send them wherever you like (your warehouse, PostHog, the console).

Event types

onEvent receives a FirstflowEvent for each moment in a run:

Reacting to actions

action.triggered is how you bridge in-widget actions to host behavior. A prompt or event action surfaces here so you can route it:

Notes

  • Events are delivered once (deduped against React’s StrictMode double-invoke).
  • experience.shown/completed/dismissed are the funnel signals; step.entered measures drop-off within a flow.
  • For LLM-side telemetry (tokens, cost, traces), that lives in the server SDK, not these client events.