Workflows
Update Workflow
Update a workflow’s name, trigger, steps, or enabled state.
PATCH
/
api
/
v1
/
workflows
/
{id}
Update Workflow
curl --request PATCH \
--url https://api.example.com/api/v1/workflows/{id} \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"triggerType": "<string>",
"triggerConfig": {},
"steps": [
{}
],
"enabled": true
}
'import requests
url = "https://api.example.com/api/v1/workflows/{id}"
payload = {
"name": "<string>",
"triggerType": "<string>",
"triggerConfig": {},
"steps": [{}],
"enabled": True
}
headers = {"Content-Type": "application/json"}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
triggerType: '<string>',
triggerConfig: {},
steps: [{}],
enabled: true
})
};
fetch('https://api.example.com/api/v1/workflows/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/workflows/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'triggerType' => '<string>',
'triggerConfig' => [
],
'steps' => [
[
]
],
'enabled' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/workflows/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"triggerType\": \"<string>\",\n \"triggerConfig\": {},\n \"steps\": [\n {}\n ],\n \"enabled\": true\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.example.com/api/v1/workflows/{id}")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"triggerType\": \"<string>\",\n \"triggerConfig\": {},\n \"steps\": [\n {}\n ],\n \"enabled\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/workflows/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"triggerType\": \"<string>\",\n \"triggerConfig\": {},\n \"steps\": [\n {}\n ],\n \"enabled\": true\n}"
response = http.request(request)
puts response.read_body{
"workflow": {}
}Authentication
Requires a Bearer token withtools scope. See Authentication.
Path Parameters
The workflow UUID.
Request
All fields are optional — include only what you want to change.Display name for the workflow.
How the workflow is triggered (e.g.,
manual, schedule, event).Trigger configuration (schedule expression, event pattern, etc.).
Ordered list of workflow steps.
Enable or disable the workflow.
Response
The updated workflow object.
Example
curl
curl -X PATCH https://www.hitheo.ai/api/v1/workflows/wf_abc123 \
-H "Authorization: Bearer $THEO_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "enabled": false }'
Was this page helpful?
⌘I
Update Workflow
curl --request PATCH \
--url https://api.example.com/api/v1/workflows/{id} \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"triggerType": "<string>",
"triggerConfig": {},
"steps": [
{}
],
"enabled": true
}
'import requests
url = "https://api.example.com/api/v1/workflows/{id}"
payload = {
"name": "<string>",
"triggerType": "<string>",
"triggerConfig": {},
"steps": [{}],
"enabled": True
}
headers = {"Content-Type": "application/json"}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
triggerType: '<string>',
triggerConfig: {},
steps: [{}],
enabled: true
})
};
fetch('https://api.example.com/api/v1/workflows/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/workflows/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'triggerType' => '<string>',
'triggerConfig' => [
],
'steps' => [
[
]
],
'enabled' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/workflows/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"triggerType\": \"<string>\",\n \"triggerConfig\": {},\n \"steps\": [\n {}\n ],\n \"enabled\": true\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.example.com/api/v1/workflows/{id}")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"triggerType\": \"<string>\",\n \"triggerConfig\": {},\n \"steps\": [\n {}\n ],\n \"enabled\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/workflows/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"triggerType\": \"<string>\",\n \"triggerConfig\": {},\n \"steps\": [\n {}\n ],\n \"enabled\": true\n}"
response = http.request(request)
puts response.read_body{
"workflow": {}
}