Filter boxes in a pipeline with structured filters and sorting.
PREREQUISITE: Call get_pipeline first to discover stage keys, field names, dropdown/tag options, and users.
IMPORTANT: Most queries need 2+ filters. Identify ALL criteria in the query. Example: "my active deals" needs: [{ field: "assignedTo", operator: "equals", value: "me" }, { field: "stageKey", operator: "equals", value: "Active" }] Example: "boxes in Scheduled stage for Cooldown sprint" needs: stageKey filter + Sprint filter
SYSTEM FIELDS (primary filters - check these first): stageKey (workflow stage), assignedTo (owner), createdBy, creationTimestamp, lastUpdatedTimestamp, lastStageChangeTimestamp, name, notes
OPERATORS BY FIELD TYPE:
TEXT (name, notes, custom text fields):
- 'contains'/'not_contains': substring search
- 'equals'/'not_equals': exact match
- 'is_set'/'is_not_set': check if has value
Example: { field: "name", operator: "contains", value: "Acme" }
DATE (creationTimestamp, lastUpdatedTimestamp, custom date fields):
- 'greater_than'/'less_than': compare dates (ISO-8601 UTC)
- 'equals': exact date match
- 'is_set'/'is_not_set': check if date is set
Example: { field: "creationTimestamp", operator: "greater_than", value: "2025-01-15T10:30:00Z" }
NUMBER (taskTotal, totalNumberOfEmails):
- 'greater_than'/'less_than': numeric comparison
- 'equals'/'not_equals': exact value
Example: { field: "taskTotal", operator: "greater_than", value: "5" }
DROPDOWN (stageKey, custom dropdown fields):
- 'equals'/'not_equals': match by name or key
- 'is_set'/'is_not_set': check if selected
Example: { field: "stageKey", operator: "equals", value: "5001" }
TAG (custom tag fields):
- 'includes': has ANY of specified tags (use 'values', not 'value')
- 'excludes': has NONE of specified tags
- 'is_set'/'is_not_set': check if any tags
Example: { field: "Tags", operator: "includes", values: ["9001", "9002"] }
USER (assignedTo, createdBy, followers, taskAssignees, incompleteTaskAssignees, overdueTaskAssignees, custom person fields):
- 'includes': specific user(s) by email (use 'values')
- 'excludes': exclude specific user(s)
- 'contains': partial name/email text search (use 'value')
- 'equals': single user match or "me" for current user
- 'is_set'/'is_not_set': check if assigned
Example (by email): { field: "assignedTo", operator: "includes", values: ["user@example.com"] } Example (custom person): { field: "Account Manager", operator: "includes", values: ["manager@example.com"] }
CHECKBOX (custom checkbox fields):
- 'is_set': checkbox is checked (true)
- 'is_not_set': checkbox is unchecked (false)
Example: { field: "Approved", operator: "is_set" }
SORTING: sorts: [{ field: "lastUpdatedTimestamp", direction: "desc" }]
All filters combined with AND. Do not use for: keyword search (use search), single box lookup (use get_box).