# Update a campaign

`needleUpdateCampaign`

Update a campaign.

**Input**

- `campaignId` (string · uuid, required): Campaign id
- `name` (string, optional)
- `status` ("active" | "paused", optional)
- `graph` (object, optional)
  - `nodes` (object[], required)
  - `edges` (object[], required)
- `schedule` (object, optional)
  - `workingDays` (integer[], optional)
  - `startTime` (string, optional)
  - `endTime` (string, optional)
- `limits` (object, optional)
  - `minGapSeconds` (integer, optional)
  - `maxGapSeconds` (integer, optional)
  - `maxNewLeadsPerDay` (integer | null, optional)
- `suppressionPolicy` (object, optional)
  - `bypassSuppressionReasons` ("manual" | "unsubscribed" | "not_interested" | "existing_customer" | "open_opportunity" | "competitor" | "employee" | "invalid_recipient" | "complained" | "recently_contacted" | "unresponsive"[], optional)
  - `cooldownDays` (integer, optional)
  - `unresponsiveAfterTouches` (integer, optional)
  - `autoSuppressKeywords` (string[], optional)
- `dryRun` (boolean, optional)
