Update settings or node contents
Changes campaign settings, the contents of existing nodes, or both, without sending the graph. For example: reword an SMS, point a callback at a different calendar, or switch AI notes on.
Everything merges: keys you omit keep their stored value, and a key set to null is removed (RFC 7386, one level deep). Arrays replace wholesale, so send the full tags list rather than the one you are adding.
Send campaignConfig, nodes, or both. Both are saved in one write, so a settings change and a node edit cannot half-apply. At least one is required.
Structure is not editable here. nodes changes existing nodes only. To add a node, use POST /outcomes/{outcome}/nodes. To remove one, use DELETE /nodes/{nodeId}, which also re-links the chain around it. To change the links between nodes, use PUT /workflow. {"nodes": {"n1": null}} is rejected and does not delete the node. if, switch and trigger nodes cannot be changed here. Change them with PUT /workflow.
Send the workflow version you read as expectedVersion, so the update is refused if the workflow changed since then. Without it, the update is still refused if another save lands while this request runs. A refused update answers 409 and changes nothing.
Required API key scope: campaign_workflows:write.
Authorizations
Query Parameters
Body
At least one of campaignConfig or nodes is required.
Response
The updated workflow.
