---
title: "Update Campaign Sequence"
method: PATCH
path: "/campaigns/{id}/sequence"
tags: ["Campaigns"]
---

# Update Campaign Sequence

`PATCH /campaigns/{id}/sequence`

Updates the sequence (nodes and/or edges) for a campaign.

**Important notes:**
- Providing `nodes` replaces ALL existing nodes
- Providing `edges` replaces ALL existing edges
- Omitting a field leaves it unchanged

**Validation rules:**
- If/Switch nodes cannot exceed 10 paths/cases
- Each path cannot exceed 10 conditions
- All node and edge IDs should be valid UUIDs

## Path parameters

- `id` string, uuid, required

## Request body

- UpdateSequenceRequest — Request body for updating a campaign sequence
  - `nodes` SequenceNode[] — Array of sequence nodes (replaces all existing nodes)
    - `id` string, uuid, required — Unique identifier for the node
    - `type` 'startNode' | 'stopNode' | 'emailNode' | 'waitNode' | 'ifNode' | 'switchNode' | 'httpApiRequestNode' | 'linkedinProfileVisitNode' | 'linkedinConnectionNode' | 'linkedinConnectionWithMessageNode' | 'linkedinMessageNode' | 'linkedinInmailNode' | 'linkedinLikeRecentPostNode' | 'linkedinWaitUntilConnectedNode' | 'moveToAnotherCampaignNode' | 'taskNode' | 'noteNode', required — The type of node
    - `data` object, required — Node-specific data (varies by node type)
    - `position` NodePosition, required
      - `x` number, required
      - `y` number, required
    - `style` object
      - `width` integer
      - `height` integer
      - `minWidth` integer
      - `minHeight` integer
  - `edges` SequenceEdge[] — Array of edges connecting nodes (replaces all existing edges)
    - `id` string, required — Unique identifier for the edge
    - `source` string, uuid, required — ID of the source node
    - `sourceHandle` string — Handle ID on the source node (e.g., 'true', 'false', or path ID)
    - `target` string, uuid, required — ID of the target node
    - `type` 'buttonedge'

## Response `200`

Sequence updated

- CampaignSequenceResponse
  - `success` boolean
  - `request_id` string
  - `data` object
    - `campaign_id` string, uuid
    - `nodes` SequenceNode[]
      - `id` string, uuid, required — Unique identifier for the node
      - `type` 'startNode' | 'stopNode' | 'emailNode' | 'waitNode' | 'ifNode' | 'switchNode' | 'httpApiRequestNode' | 'linkedinProfileVisitNode' | 'linkedinConnectionNode' | 'linkedinConnectionWithMessageNode' | 'linkedinMessageNode' | 'linkedinInmailNode' | 'linkedinLikeRecentPostNode' | 'linkedinWaitUntilConnectedNode' | 'moveToAnotherCampaignNode' | 'taskNode' | 'noteNode', required — The type of node
      - `data` object, required — Node-specific data (varies by node type)
      - `position` NodePosition, required
        - `x` number, required
        - `y` number, required
      - `style` object
        - `width` integer
        - `height` integer
        - `minWidth` integer
        - `minHeight` integer
    - `edges` SequenceEdge[]
      - `id` string, required — Unique identifier for the edge
      - `source` string, uuid, required — ID of the source node
      - `sourceHandle` string — Handle ID on the source node (e.g., 'true', 'false', or path ID)
      - `target` string, uuid, required — ID of the target node
      - `type` 'buttonedge'

## Other responses

- `400` — Bad Request - Invalid parameters
- `401` — Unauthorized - Invalid or missing API key
- `403` — Forbidden - Access denied
- `404` — Not Found - Resource does not exist

---

[API](https://skmtc.dev/supersend/apis/supersend-api.md) · [All operations](https://skmtc.dev/supersend/apis/supersend-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/supersend/supersend-api/revisions/f0cbeaa12643/schema)
