CampaignSequenceNode
A step in the sequence. Nodes form a single linear chain from the `start` node via `next_node_id`; `wait` nodes between steps are managed automatically.
Properties
node_idstringNode ID — stable for the life of the node
typestringPersisted node type. A `manual_email` added via the catalog persists as `send` with `config.send_mode = "manual"`.
"start""wait""send""manual_task""phone_call_task""linkedin_message_task""note"display_namestring (nullable)Custom step name; falls back to the type label
configobjectStep configuration, stored and returned verbatim in the sending engine's own vocabulary — so key casing is mixed (`sender_mode` next to `trackOpens`) and it is passed through rather than renamed, because these are the exact keys the sender reads. **send**: `subject`, `body` (required), plus `send_mode` (`manual`), `thread_mode` (`reply`|`new`), `cc`, `bcc`, `trackOpens`, `sender_mode` (`pool`|`mailbox`|`member`), `sender_mailbox_id`, `sender_member_email`, `replyTaskPriority`. **wait**: `delay`, `unit` (`minutes`|`hours`|`days`). **task steps**: `priority`, `note`, `assignee_mode` (`mailbox_owner`|`member`), `assignee_email`. **start**: `leadFields` — the campaign's lead schema, in the same shape as `lead_schema` on Get Campaign.
next_node_idstring (nullable)The next step in the chain; null on the final step
Example
{
"node_id": "send-m2k9x1p-0",
"type": "start",
"display_name": "string",
"config": {},
"next_node_id": "string"
}