---
title: "Update a sequence node"
method: PUT
path: "/v1/projectId/{projectId}/automations/{automationId}/node/{id}"
tags: ["Automations"]
---

# Update a sequence node

`PUT /v1/projectId/{projectId}/automations/{automationId}/node/{id}`

## Request

- Base URL: `https://api.bluefox.email`
- URL: `https://api.bluefox.email/v1/projectId/{projectId}/automations/{automationId}/node/{id}`
- Auth: HTTP bearer

Same draft/live routing as adding a node - see POST .../node.

## Path parameters

- `projectId` string, required
- `automationId` string, required
- `id` string, required

## Request body

- AutomationNodeInput: Plus whatever type-specific fields that node type needs (see AutomationNode) - on create these are optional and the node starts with sensible defaults; on update at least one field to change is expected.
  - `type` 'delay' | 'send-email' | 'filter-audience' | 'branch' | 'condition' | 'set-value' | 'notify' | 'complete' | 'manage-tags' | 'webhook', required: "condition" is special: it does not add a top-level node. Instead, set prevNodeId to an EXISTING branch node's own _id, and it appends one more arm to that branch's branches[] (branches start with two). Its condition fields go under a nested "condition" object in the body, e.g. { "type": "condition", "prevNodeId": "<branchNodeId>", "condition": { "property": "...", "operator": "...", "value": "..." } } - not flat on the request body like filter-audience.
  - `prevNodeId` string: Create only. Insert immediately after this node (a sibling _id anywhere in the tree, including inside a branch). Omit to insert as the very first node.

## Response `200`

OK

- object
  - `status` integer
  - `result` Automation
    - `_id` string
    - `name` string
    - `status` 'draft' | 'active' | 'paused'
    - `trigger` object: Discriminated by trigger.type (contact-added | contact-updated | enter-segment | leave-segment | time-based) - shape varies by type, see the Automations guide. Every type except time-based also supports runOnce (boolean, default true): when true, a contact who has ever run this automation before is skipped even if the trigger matches again; set false to let them re-enter each time it matches.
    - `exitCriteria` object: A condition that removes a contact from this automation mid-flow when true. Has an "active" boolean plus condition fields.
    - `sequence` AutomationNode[]: The live, running sequence. Use the node sub-resource endpoints to add/update/delete nodes rather than replacing this array directly.
      - `_id` string
      - `type` 'delay' | 'send-email' | 'filter-audience' | 'branch' | 'complete' | 'set-value' | 'notify' | 'manage-tags' | 'webhook'
      - `error` string[]: Populated by the server when this node fails validation on an activate/merge-draft attempt - not settable by the client.
    - `draftSequence` AutomationNode[]: Present only while this automation is active and has unmerged staged edits. POST .../merge-draft to apply, or .../discard-draft to drop them.
      - `_id` string
      - `type` 'delay' | 'send-email' | 'filter-audience' | 'branch' | 'complete' | 'set-value' | 'notify' | 'manage-tags' | 'webhook'
      - `error` string[]: Populated by the server when this node fails validation on an activate/merge-draft attempt - not settable by the client.
    - `draftTrigger` object: Staged trigger edit, present only while active with unmerged changes.
    - `draftExitCriteria` object: Staged exit-criteria edit, present only while active with unmerged changes.
    - `usedSegments` string[]
    - `lastTriggeredAt` string, date-time
    - `createdAt` string, date-time
    - `updatedAt` string, date-time

## Other responses

- `400`: Invalid request body or query - every violation found (missing/invalid/unexpected fields) is reported in one response, semicolon-separated, not just the first one hit.
- `403`: Missing or invalid API key
- `404`: Node not found

---

[API](https://skmtc.dev/bluefox/apis/bluefox-email-public-api.md) · [All operations](https://skmtc.dev/bluefox/apis/bluefox-email-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/bluefox/apis/bluefox-email-public-api/revisions/fa1a0a835c7f?raw)
