# bulkCreateTasksOnContacts

The Contacts bulk bar's Add task: ONE task (createTaskOnContact's rules) on each of contactIds, as a background task (`bulkTaskId`, getBulkTask). assignToPointPerson gives each contact's task to that contact's point person instead of participants, and skips a contact with none. A checklist over many contacts is STILL one action per step. Confirm the task and the count first.

- Call: `POST https://server.goliathdata.com/api/v1/call` with `{ "operationId": "bulkCreateTasksOnContacts", "variables": {...} }`
- Scope: `WRITE`
- Type: mutation
- Idempotency: honors `Idempotency-Key` (24 h)
- Rate-limited: no

## Variables

- `contactIds`: `[String!]!` (required)
- `title`: `String!` (required)
- `dueDate`: `DateTime!` (required)
- `timezone`: `Timezone!` (required, one of `IDLW`, `SST`, `HST`, `AKST`, `PST`, `MST`, `AZ`, `CST`, `EST`, `AST`, `BRT`, `FNT`, `AZOT`, `UTC`, `CET`, `EET`, `MSK`, `GST`, `PKT`, `BST`, `ICT`, `JST`, `AEST`, `NCT`, `NZST`). AZ: Arizona: MST all year, no DST.
- `description`: `String`
- `taskType`: `String`
- `participants`: `[String!]`
- `assignToPointPerson`: `Boolean`

## Response (data, an example)

```json
{
  "tasksMutation": {
    "bulkCreateTasksOnContacts": {
      "bulkTaskId": "…"
    }
  }
}
```

## Example

```bash
curl https://server.goliathdata.com/api/v1/call \
  -H "Authorization: Bearer $GOLIATH_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "operationId": "bulkCreateTasksOnContacts",
    "variables": {
      "contactIds": [
        "<String>"
      ],
      "title": "<String>",
      "dueDate": "2026-01-01T00:00:00.000Z",
      "timezone": "IDLW"
    }
  }'
```
