Records events into the unified event stream.
Populates promoted columns from source classification at ingest time, generates UUIDv7 IDs, broadcasts workspace event notifications, and fires appropriate hooks after insert.
The JS client may include an event_id idempotency key for host-app
ingest layers. The recorder deliberately ignores that value for
ga_events.id: the event stream primary key is (id, inserted_at) on a
partitioned table, so idempotency must happen before this recorder runs.
Summary
Functions
Backfills fingerprint on a previously recorded link click by click_id.
Records a generic event.
Records a link click event.
Records a custom event.
Records a lead event.
Records a pageview event.
Records a sale event.
Functions
Backfills fingerprint on a previously recorded link click by click_id.
This is used by destination-page beacons after a redirect click creates the initial
link_click row without browser-only fingerprint signals.
Records a generic event.
Parameters
visitor- the visitor struct (must have:idand:workspace_id)event_type- one of the valid event typesattrs- additional event attributes
Returns {:ok, event} or {:error, changeset}.
Important: Hooks are dispatched immediately after insert. Connector planning uses a durable post-commit handoff when available so caller-owned transactions do not leak dispatches on rollback.
Records a link click event.
Records a custom event.
Records a lead event.
Records a pageview event.
Records a sale event.