Edit part of a workflow
update_workflow_partialEdit an existing n8n workflow with small operations instead of
resending the whole JSON. Operations (applied in order):
{"op":"add_node","node":{name,type,typeVersion,parameters,credentials?,position?}}
{"op":"remove_node","name":"..."} (also removes its connections)
{"op":"update_node","name":"...","parameters":{...merged...},"set":{"typeVersion":2,"disabled":false,...}}
{"op":"rename_node","name":"old","new_name":"new"} (connections follow)
{"op":"add_connection","from":"A","to":"B","output_index":0,"input_index":0,"type":"main"}
{"op":"remove_connection","from":"A","to":"B","type":"main"}
{"op":"set_name","name":"..."}
{"op":"set_settings","settings":{"timezone":"Asia/Kolkata","errorWorkflow":"..."}}
The result is validated first. If n8n accepts in-place updates the
workflow is updated directly; otherwise it is saved as "... (updated)".
Args:
workflow_id: The workflow to edit.
operations: List of operations as above.
dry_run: Apply and validate only; return the result without saving.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"workflow_id": "<workflow_id>",
"operations": "<operations>"
},
"name": "update_workflow_partial"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| dry_run | No | ||
| operations | Yes | ||
| workflow_id | Yes |