Prereq: read first. JSONL piping, pagination, dry-run/digest/confirm, and recovery live there. Reshape patterns live in . is a string field on , , , and . Owners are CRM users — returns them; there is no object, so team-level views are client-side groupings by . 1. Resolve email → owner ID Never hardcode IDs — they are portal-specific. Resolve, then cache: 2. Find records for an owner Same filter across all four object types. Add object-specific for context. Unowned records use the form. 100 hits — page with the loop from . Counting only: pipe to . 3. Bulk reassign — search → update Reshape e…