bulk_assign
(Un)assign multiple tasks to one person in a single call. Pass assigneeId (a user id, or null to unassign) OR assigneeEmail (resolved against active org members) - mutually exclusive. Returns { updated, skipped, errors } so partial success is observable: skipped lists tasks already at that assignee; errors lists per-task failures (NOT_FOUND / PROJECT_ACCESS_DENIED). Up to 200 task ids per call. Use the single-task assign_task when you need optimistic-concurrency (expectedAssigneeRevision). Caller must have task.assign on each task's project; the target must be an active member of the organization.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | No | Preview only: return which tasks would be (re)assigned (current -> proposed assignee) and which would be skipped, without committing. Writes nothing, fires no side effects. | |
| taskIds | Yes | 1–200 task ids to (un)assign. | |
| assigneeId | No | User id, or null to unassign. Mutually exclusive with assigneeEmail. | |
| assigneeEmail | No | Alternative to assigneeId. Resolved against active org members by email. Fails the call if not a member. |