# Create a campaign

`needleCreateCampaign`

Create a campaign.

**Input**

- `name` (string, required)
- `graph` (object, required)
  - `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)
