Update node
Update one node’s name, position, and/or config (inputs shallow-merge). Use journeys_authoring_catalog for a node kind’s input fields.
curl --request PATCH \
--url https://www.useboom.ai/api/v1/journeys/{journeyId}/nodes/{nodeId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"inputs": {}
}
'import requests
url = "https://www.useboom.ai/api/v1/journeys/{journeyId}/nodes/{nodeId}"
payload = {
"name": "<string>",
"inputs": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: '<string>', inputs: {}})
};
fetch('https://www.useboom.ai/api/v1/journeys/{journeyId}/nodes/{nodeId}', 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://www.useboom.ai/api/v1/journeys/{journeyId}/nodes/{nodeId}",
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>',
'inputs' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://www.useboom.ai/api/v1/journeys/{journeyId}/nodes/{nodeId}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"inputs\": {}\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://www.useboom.ai/api/v1/journeys/{journeyId}/nodes/{nodeId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"inputs\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.useboom.ai/api/v1/journeys/{journeyId}/nodes/{nodeId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"inputs\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"initiativeId": "<string>",
"status": "DRAFT",
"version": 0,
"definition": {
"name": "<string>",
"actions": [
{
"id": "<string>",
"kind": "ENTRY",
"name": "<string>",
"position": {
"x": 123,
"y": 123
},
"inputs": {
"description": "<string>",
"triggerType": "manual",
"segmentId": "<string>",
"segmentName": "<string>",
"eventName": "<string>",
"inboundAction": "WHATSAPP_MESSAGE",
"inboundChannelIds": [
"<string>"
],
"inboundKeyword": "<string>",
"inboundMatchMode": "EXACT",
"maxEnrollments": 4503599627370496,
"enrollmentWindow": "<string>"
}
}
],
"edges": [
{
"from": "<string>",
"to": "<string>",
"sourceHandle": "<string>",
"metadata": {
"signalCategory": "lifecycle",
"signalDescription": "<string>"
}
}
],
"id": "<string>",
"metadata": {
"initiativeType": "<string>",
"version": 0,
"cancelOnEvents": {
"eventNames": [
"<string>"
]
},
"environmentId": "<string>"
}
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Authorizations
Organization API key, sent as Authorization: Bearer boom_org_....
Path Parameters
A draft journey id, or the initiative id (resolves to its current draft).
1Node id within the journey.
1Body
New node label.
1Show child attributes
Show child attributes
Config fields to merge into the node's inputs. The MERGED node must satisfy the same per-kind rules journeys_add_node enforces, so a field that contradicts what the node already stores is refused — sending templateId to a node whose mode is 'free_text', say. Being half-configured is never a refusal on its own.
Show child attributes
Show child attributes
Response
Success
Journey (workflow version) id.
The initiative this journey belongs to.
DRAFT (editable), PUBLISHED (live, frozen), or STOPPED (retired).
DRAFT, PUBLISHED, STOPPED Version number within the initiative.
-9007199254740991 <= x <= 9007199254740991The full journey graph.
Show child attributes
Show child attributes
Was this page helpful?
curl --request PATCH \
--url https://www.useboom.ai/api/v1/journeys/{journeyId}/nodes/{nodeId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"inputs": {}
}
'import requests
url = "https://www.useboom.ai/api/v1/journeys/{journeyId}/nodes/{nodeId}"
payload = {
"name": "<string>",
"inputs": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: '<string>', inputs: {}})
};
fetch('https://www.useboom.ai/api/v1/journeys/{journeyId}/nodes/{nodeId}', 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://www.useboom.ai/api/v1/journeys/{journeyId}/nodes/{nodeId}",
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>',
'inputs' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://www.useboom.ai/api/v1/journeys/{journeyId}/nodes/{nodeId}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"inputs\": {}\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://www.useboom.ai/api/v1/journeys/{journeyId}/nodes/{nodeId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"inputs\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.useboom.ai/api/v1/journeys/{journeyId}/nodes/{nodeId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"inputs\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"initiativeId": "<string>",
"status": "DRAFT",
"version": 0,
"definition": {
"name": "<string>",
"actions": [
{
"id": "<string>",
"kind": "ENTRY",
"name": "<string>",
"position": {
"x": 123,
"y": 123
},
"inputs": {
"description": "<string>",
"triggerType": "manual",
"segmentId": "<string>",
"segmentName": "<string>",
"eventName": "<string>",
"inboundAction": "WHATSAPP_MESSAGE",
"inboundChannelIds": [
"<string>"
],
"inboundKeyword": "<string>",
"inboundMatchMode": "EXACT",
"maxEnrollments": 4503599627370496,
"enrollmentWindow": "<string>"
}
}
],
"edges": [
{
"from": "<string>",
"to": "<string>",
"sourceHandle": "<string>",
"metadata": {
"signalCategory": "lifecycle",
"signalDescription": "<string>"
}
}
],
"id": "<string>",
"metadata": {
"initiativeType": "<string>",
"version": 0,
"cancelOnEvents": {
"eventNames": [
"<string>"
]
},
"environmentId": "<string>"
}
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}