Get Pipeline State
Get the full pipeline state for rendering the kanban view.
Query parameters
When true, omit the heavy AI-plan fields (latest_strategy / latest_draft / evidence / goal) and return small derived previews instead, for faster first card-paint. The web kanban opts in; the full fields load lazily per deal via GET /deals/{id}. Other clients (mobile) leave this false and get the full payload unchanged.
When true, omit the heavy AI-plan fields (latest_strategy / latest_draft / evidence / goal) and return small derived previews instead, for faster first card-paint. The web kanban opts in; the full fields load lazily per deal via GET /deals/{id}. Other clients (mobile) leave this false and get the full payload unchanged.
When true, skip the three post-fetch annotation passes (_annotate_client_contacts / _annotate_commercial_states / _annotate_latest_activities) — the ~2.5s cost that scales with deal count. Cards still receive deal_party identity in the initial light projection, but paint without client_contacts / commercial_state / latest_activity; the caller fetches those separately via POST /pipeline/annotations. stage_totals values are 0 in this mode (no commercial_state to sum) — the frontend computes $ totals client-side once annotations land. Default unchanged: any caller that doesn't opt in (incl. mobile) gets today's exact payload.
When true, skip the three post-fetch annotation passes (_annotate_client_contacts / _annotate_commercial_states / _annotate_latest_activities) — the ~2.5s cost that scales with deal count. Cards still receive deal_party identity in the initial light projection, but paint without client_contacts / commercial_state / latest_activity; the caller fetches those separately via POST /pipeline/annotations. stage_totals values are 0 in this mode (no commercial_state to sum) — the frontend computes $ totals client-side once annotations land. Default unchanged: any caller that doesn't opt in (incl. mobile) gets today's exact payload.
Row-shape projection, opt-in and only honoured together with light=true (ignored otherwise, incl. shape=card without light=true — the default light shape is returned unchanged). shape=card additionally projects sales_plan down to {next_action: {title, kind, target_stage_name}} | null — the single freshest pending action the web board/table actually render (see _project_sales_plan_card) — instead of the full actions[] (every action's payload.draft.body included), which is ~60% of the light payload by weight and otherwise unread outside the deal-detail dialog (which loads the full plan separately via GET /deals/{id}, unaffected by this param). Any other value is ignored the same way.
Row-shape projection, opt-in and only honoured together with light=true (ignored otherwise, incl. shape=card without light=true — the default light shape is returned unchanged). shape=card additionally projects sales_plan down to {next_action: {title, kind, target_stage_name}} | null — the single freshest pending action the web board/table actually render (see _project_sales_plan_card) — instead of the full actions[] (every action's payload.draft.body included), which is ~60% of the light payload by weight and otherwise unread outside the deal-detail dialog (which loads the full plan separately via GET /deals/{id}, unaffected by this param). Any other value is ignored the same way.
Response
Successful Response