Task Inbox Filters
The Task Inbox filter panel provides fine-grained control over which tasks are shown. Filters combine with AND logic — a task must match all applied filters to appear. Active filters are shown as dismissible tags above the task list.
Available Task Filters
| Filter Dimension | Options | API Parameter | Notes |
|---|---|---|---|
| Task Type | All / Approval / Form / Review (multi-select) | ?type=approval,form | Comma-separated for multi-select |
| Due Date | All / Overdue / Due Today / Due This Week / No Deadline | ?dueFilter=overdue | Mutually exclusive |
| Urgency | All / Low / Normal / High / Urgent (multi-select) | ?urgency=high,urgent | Set by workflow designer |
| Claim State | All / Unclaimed / Claimed by Me / Claimed by Others | ?claimState=unclaimed | Mutually exclusive |
| Workflow Name | Free text partial match | ?workflowName=expense | Case-insensitive |
| Status | Pending / Completed / Expired | ?status=pending | Default: pending |
Filter Combinations
Filters combine with AND logic. All applied filter conditions must be true for a task to appear. Common useful combinations:
| Scenario | Filter Combination |
|---|---|
| Most urgent tasks to act on now | Type=Any, DueFilter=Overdue, Status=Pending |
| Available approvals for me to claim | Type=Approval, ClaimState=Unclaimed, Status=Pending |
| My claimed tasks across all types | ClaimState=Claimed by Me, Status=Pending |
| All forms for the HR Onboarding workflow | Type=Form, WorkflowName=HR Onboarding |
| Urgent unclaimed tasks due this week | Urgency=Urgent, ClaimState=Unclaimed, DueFilter=This Week |
Applied Filters Display
When filters are active, a row of applied-filter chips appears above the task list. Each chip shows the filter name and value — click the ✕ to remove it. A "Clear All" button removes all filters at once and resets the view.
// AppliedFilterChips component
function AppliedFilterChips({ filters, onRemove, onClearAll }) {
const chips = [];
if (filters.type.length) chips.push({ label: `Type: ${filters.type.join(', ')}`, key: 'type' });
if (filters.dueFilter !== 'all') chips.push({ label: `Due: ${filters.dueFilter}`, key: 'dueFilter' });
if (filters.urgency.length) chips.push({ label: `Urgency: ${filters.urgency.join(', ')}`, key: 'urgency' });
// ... etc
if (!chips.length) return null;
return (
<div className="applied-filters">
{chips.map(c => (
<span key={c.key} className="filter-chip">
{c.label} <button onClick={() => onRemove(c.key)}>✕</button>
</span>
))}
<button onClick={onClearAll}>Clear All</button>
</div>
);
}
Above the filter panel, a row of pre-configured quick-filter chips provides one-click access to the most common filter combinations: "Overdue", "Due Today", "Approvals Only", "My Claimed Tasks". These are shortcuts that apply a preset filter combination instantly.