project_dashboard
Get a full project overview with status, profitability, milestones, hours, budgets, and more in one call. Use the include parameter to refresh only changed sections.
Instructions
Everything the project-detail page needs, in one call.
Replaces ~12 separate calls (status, profitability, milestones,
weekly hours, budgets, budget lines, cost breakdowns, delivery by
month). Use include to re-fetch only what changed: checkbox toggles
-> ["hours", "delivery_monthly"]; budget chip changes ->
["budget_detail", "delivery_monthly"].
Sections fail soft: a broken section lands in "errors" while the rest return.
Args: project_id: project.project id. only_closed_stages / closed_stage_names / single_assignee_only: sub-task filters, as in project_subtask_hours; they shape the "hours" and "delivery_monthly" sections. budget_ids: crossovered.budget / budget.analytic ids to select. OMIT (null) for ALL budgets of the project; pass [] for NO selection (budget_detail then shows all-time cost only). These two states are different on purpose — do not send [] to mean "all". include: Subset of ["core", "hours", "budgets", "budget_detail", "delivery_monthly"]; omitted = all. "core" covers project, milestones, finance and weekly_logged. lookahead_days: "due soon" window for derived health (default 7). timezone_offset: UTC offset for dates (default 7).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| include | No | ||
| budget_ids | No | ||
| project_id | Yes | ||
| lookahead_days | No | ||
| timezone_offset | No | ||
| closed_stage_names | No | ||
| only_closed_stages | No | ||
| single_assignee_only | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |