Skip to main content
FlowPilot emits a fixed set of analytics events. Each one is an event_type on the events endpoint. This page defines every type, the key fields it carries, and how the dashboard turns them into metrics.

Event types

event_typeMeaningKey fields it carries
flow_startA flow began (was presented and started).flow, version, placement, user, session
screen_viewA screen became visible.screen_id, screen_name, screen_index
screen_exitA screen was left.screen_id, time_on_screen_ms
flow_completeThe flow finished successfully.time_since_flow_start_ms
flow_exitThe flow was dismissed before completing.the screen it exited on
conversionA revenue or goal event tied to the flow.revenue, currency, plus product_id in properties
experiment_exposureThe user was assigned to an experiment variant.experiment_id, variant_id, variant_name
element_interactionA user interacted with an element.element_id, element_type, interaction_type
resolve_no_flowA resolve returned no matching flow.placement_id (no flow IDs)
Every event also carries the shared context: user_id, session_id, app_id, device_platform, sdk_version, timestamp, and (when applicable) flow_id, flow_version_id, placement_id, experiment_id, variant_id.

What the iOS SDK emits

The SDK fires seven automatic event types (AutomaticEventType), with these exact wire values: flow_start, flow_complete, flow_exit, screen_view, screen_exit, experiment_exposure, element_interaction. Two more exist that the SDK does not fire automatically:
  • conversion is sent explicitly via trackConversion, not as an automatic lifecycle event.
  • resolve_no_flow is recorded server-side by the backend when a resolve matches no flow. The iOS SDK does not emit it.
The SDK’s automatic event names match the backend’s recognized list exactly.

Mapping to dashboard metrics

The placement and dashboard analytics are built from these raw events:
Dashboard metricDerived from
Impressions / Trigger Eventsflow_start count
Completions / Flow Completionsflow_complete count
Completion Rateflow_complete divided by flow_start
Funnel reach per screendistinct sessions with screen_view for that screen
Funnel drop-offdistinct sessions with flow_exit on that screen
Time per screenmean time_on_screen_ms from screen_exit
Element engagementelement_interaction rows grouped by element
Experiment exposuresexperiment_exposure count per variant
Revenue is not aggregated or displayed at MVP, even though conversion events carry revenue and currency. See Placement analytics and Reading results.

Reading these in your app

Your app can observe every event (including conversion) through the SDK analytics callback. The callback fires in-process for each event the SDK enqueues. See Analytics integration for the AnalyticsEvent shape and how to forward events to your own analytics.