Skip to content

Pipeline API

Define multi-step analytics over event data: per-step counts, occupancy (last-state), and step metrics.

To list raw event rows instead of aggregating them, see Event listing.

Base URL: https://api.giosg.com/api/objectives/v1/orgs/<organization_id>/pipeline
Authentication: Bearer token. The URL organization_id must match the authenticated organization.

Guides vs reference

If you want to… Start here
Learn the model (steps, counts vs occupancy, dimensions) Concepts
Get counts from a predefined pipeline Quickstart
Build or sync your own pipeline Building a custom pipeline
Pick the right case-funnel pipeline Choosing a funnel variant
Look up request/response fields Pages in this section (below)

In this section

Page What it covers
Query endpoints /counts, /last-state, /last-state-detail, /step-detail
Managing definitions CRUD definitions, predefined pipelines, case-funnel sync
Managing value sets CRUD value sets
Object reference Event filters, metrics, dimensions, query filters

Glossary

Term Meaning
Pipeline definition Named list of steps (and optional dimensions). May include a slug and tags.
Step One stage to count or occupy. Has event filters, a count_field, and optional metrics.
Count field What /counts counts distinctly: visitor_id (default), session_id, event_id, or dim1dim5.
Identity field Per-event key for last-state occupancy. Required on every event when using /last-state.
Value set Org-level list of strings, referenced in filters as $name.
Metric Extra aggregation on a step; returned only by /step-detail.
Dimension Declared property for slicing counts at query time.
Last-state Occupancy query: each entity sits in one step (newest matching event).
Case funnel sync Creates five related pipelines from a giosg case funnel. See Choosing a funnel variant.

Query behavior (summary)

  • Time ranges apply to event time (collector_created_at, functionally the same as timestamp on generic events and ts on pageviews) for all steps in a request. Those pairs exist for legacy reasons; a later API will use timestamp or ts only, depending on the table.
  • On /counts, steps are independent — matching an earlier step is not required.
  • On /last-state, each entity occupies only the step of its newest matching event (collector_created_at, then event_id).
  • Within a step, multiple event filters are OR-ed; fields inside one filter are AND-ed.
  • Metrics run only on /step-detail (not counts or last-state).
  • Dimension filters work on counts and step-detail; they are not supported on last-state.
  • Missing value sets make that filter field unconstrained (no match restriction).