Update Conversation Variable
Available for: Chatflow, Chatbot, Agent apps.
Updates a conversation variable’s value. The new value must match the variable’s existing type.
curl --request PUT \
--url https://{api_base_url}/conversations/{conversation_id}/variables/{variable_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"value": "new value",
"user": "abc-123"
}
'import requests
url = "https://{api_base_url}/conversations/{conversation_id}/variables/{variable_id}"
payload = {
"value": "new value",
"user": "abc-123"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({value: 'new value', user: 'abc-123'})
};
fetch('https://{api_base_url}/conversations/{conversation_id}/variables/{variable_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_base_url}/conversations/{conversation_id}/variables/{variable_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'value' => 'new value',
'user' => 'abc-123'
]),
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://{api_base_url}/conversations/{conversation_id}/variables/{variable_id}"
payload := strings.NewReader("{\n \"value\": \"new value\",\n \"user\": \"abc-123\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://{api_base_url}/conversations/{conversation_id}/variables/{variable_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"value\": \"new value\",\n \"user\": \"abc-123\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{api_base_url}/conversations/{conversation_id}/variables/{variable_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"value\": \"new value\",\n \"user\": \"abc-123\"\n}"
response = http.request(request)
puts response.read_body{
"id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
"name": "user_preference",
"value_type": "string",
"value": "new value",
"description": "User preference setting",
"created_at": 1705407629,
"updated_at": 1705411229
}Authorizations
Every request authenticates with an API key: Authorization: Bearer {API_KEY}. App endpoints take an app API key; knowledge endpoints take a knowledge base API key (Get Started).
Keep keys server-side; never embed them in client code. Requests with a missing or invalid key fail with HTTP 401 (unauthorized).
Path Parameters
ID of the conversation that owns the variable. Get conversation IDs from List Conversations.
ID of the variable to update. Get variable IDs from List Conversation Variables.
Body
Request body for updating a conversation variable.
The new value for the variable. Must match the variable's expected type.
End-user identifier, defined by your app and unique within it. See End User Identity.
Response
Variable updated successfully.
Variable ID.
Variable name.
Variable value type. Possible values: string, number, object, secret, file, boolean, array[any], array[string], array[number], array[object], array[file], array[boolean].
Variable value (can be a JSON string for complex types).
Variable description.
Creation timestamp.
Last update timestamp.
Was this page helpful?
curl --request PUT \
--url https://{api_base_url}/conversations/{conversation_id}/variables/{variable_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"value": "new value",
"user": "abc-123"
}
'import requests
url = "https://{api_base_url}/conversations/{conversation_id}/variables/{variable_id}"
payload = {
"value": "new value",
"user": "abc-123"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({value: 'new value', user: 'abc-123'})
};
fetch('https://{api_base_url}/conversations/{conversation_id}/variables/{variable_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_base_url}/conversations/{conversation_id}/variables/{variable_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'value' => 'new value',
'user' => 'abc-123'
]),
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://{api_base_url}/conversations/{conversation_id}/variables/{variable_id}"
payload := strings.NewReader("{\n \"value\": \"new value\",\n \"user\": \"abc-123\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://{api_base_url}/conversations/{conversation_id}/variables/{variable_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"value\": \"new value\",\n \"user\": \"abc-123\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{api_base_url}/conversations/{conversation_id}/variables/{variable_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"value\": \"new value\",\n \"user\": \"abc-123\"\n}"
response = http.request(request)
puts response.read_body{
"id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
"name": "user_preference",
"value_type": "string",
"value": "new value",
"description": "User preference setting",
"created_at": 1705407629,
"updated_at": 1705411229
}