Update a workflow
Base URL
https://{kibana_url}
PUT
/api/workflows/workflow/{id}
Auth
Stack
9.4+
The Elastic Stack includes Elastic's core products such as Elasticsearch, Kibana, Logstash, and Beats.
Availability
Generally available since 9.4
This functionality is generally available and ready for production usage.
Unless stated otherwise on the page, this functionality is available when your Elastic Stack is deployed on Elastic Cloud Hosted, Elastic Cloud Enterprise, Elastic Cloud on Kubernetes, and self-managed environments.
This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes.
Partially update an existing workflow. You can update individual fields such as name, description, enabled state, tags, or the YAML definition without providing all fields.
Privileges
workflowsManagement:update
Expand all
id
string · max length: 255
required
Workflow ID
A required header to protect against CSRF attacks
200
Indicates a successful response
application/json
Thank you for your feedback.
Base URL
https://{kibana_url}
Examples
Update workflow enable
2 languages
Update workflow full
2 languages
Request
Console
1 / 2 languages
‹
›
Example request to enable a workflow and update its tags
Show more
1
2
3
4
5
PUT kbn://api/workflows/workflow/{id}
{
"enabled": true,
"tags": ["production"]
}
1
2
3
4
5
6
7
8
9
curl \
-X PUT "${KIBANA_URL}/api/workflows/workflow/{id}" \
-H "Authorization: ApiKey ${API_KEY}" \
-H "kbn-xsrf: true" \
-H "Content-Type: application/json" \
-d '{
"enabled": true,
"tags": ["production"]
}'
Response
Example response returning the updated workflow
Show more
1
2
3
4
5
6
7
8
{
"enabled": false,
"id": "workflow-a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"lastUpdatedAt": "2026-03-23T13:38:59.568Z",
"lastUpdatedBy": "elastic",
"valid": true,
"validationErrors": []
}
Request
Console
1 / 2 languages
‹
›
Example request to update multiple workflow fields
Show more
1
2
3
4
5
6
7
8
9
10
11
PUT kbn:/api/workflows/workflow/ID
{
"description": "Updated workflow description",
"enabled": true,
"name": "Updated example",
"tags": [
"example",
"updated"
],
"yaml": "name: Updated example\nenabled: true\ndescription: Updated workflow description\ntriggers:\n - type: manual\ninputs:\n - name: message\n type: string\n default: \u0022hello world\u0022\nsteps:\n - name: hello_world_step\n type: console\n with:\n message: \u0022{{ inputs.message }}\u0022\n"
}
Generated from the API spec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
curl \
-X PUT "${KIBANA_URL}/api/workflows/workflow/${ID}" \
-H "Authorization: ApiKey ${API_KEY}" \
-H "kbn-xsrf: true" \
-H "Content-Type: application/json" \
-d '{
"description": "Updated workflow description",
"enabled": true,
"name": "Updated example",
"tags": [
"example",
"updated"
],
"yaml": "name: Updated example\nenabled: true\ndescription: Updated workflow description\ntriggers:\n - type: manual\ninputs:\n - name: message\n type: string\n default: \u0022hello world\u0022\nsteps:\n - name: hello_world_step\n type: console\n with:\n message: \u0022{{ inputs.message }}\u0022\n"
}'
Generated from the API spec
Response
Example response returning the updated workflow
Show more
1
2
3
4
5
6
7
8
{
"enabled": false,
"id": "workflow-a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"lastUpdatedAt": "2026-03-23T13:38:59.568Z",
"lastUpdatedBy": "elastic",
"valid": true,
"validationErrors": []
}