Module guide
Views
Group-by and conditional formatting with a saveable AST.
Overview
Pick an axis (status, priority, assignee, or project), get count, sum, and mean chips per group, and use the deterministic formula evaluator to color rows by tenant-defined rules. Save any configuration as a SavedView preset.
Highlights
The capabilities worth knowing before you dive in.
- Formula AST: literal, field, compare, logical, not, between, dateDiffDays, and match
- Ships an "overdue + HIGH/URGENT" preset that paints matching rows red
- SavedView persistence: save presets and re-apply with one click
- Pinning floats presets to the start of the rail
Important to know
Limits, permissions, and sharp edges to keep in mind.
- The AST is strictly JSON, with no free-text eval anywhere. Malformed payloads are rejected by Zod before they reach the evaluator.
- Presets are per-user today; sharing is a follow-on.
How to use it
The primary workflow, start to finish.
- Change the Group-by dropdown to see tasks grouped on a different axis.
- Click Save view and name it, and it appears in the rail with a Pin toggle.
- Overdue high-priority tasks are highlighted by a built-in rule; tenant-authored rules ship in a later release.
FAQ
- Can I share a saved view with my team?
- Not yet. Presets are stored per user today, so a view you save is yours alone. Sharing is a follow-on. Until then, describe the axis and the rules to a colleague and they can rebuild the preset in a few clicks.
- Is it safe to let people write their own colouring rules?
- Yes. A rule is a strictly JSON abstract syntax tree, not free text, and there is no evaluation of arbitrary expressions anywhere in the path. A malformed payload is rejected by schema validation before it reaches the evaluator.
- Why do my group chips show a mean of zero?
- The count, sum and mean chips describe the numeric field you grouped on. If the field is empty on every row in that group, the sum and the mean are zero. Check that the rows carry a value for the field before reading the chip as a result.
Automate this module
Everything on this screen is scriptable. Drive it from the REST API, or let an AI agent run it through the MCP server.
Was this page helpful?