Update Conversation Variable
Available for: Chatflow, Chatbot, Agent apps.
Update the value of a specific conversation variable. The value must match the expected 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
API Key authentication. For all API requests, include your API Key in the Authorization HTTP Header, prefixed with Bearer. Example: Authorization: Bearer {API_KEY}. Strongly recommend storing your API Key on the server-side, not shared or stored on the client-side, to avoid possible API-Key leakage that can lead to serious consequences. Requests with a missing or invalid API key fail with HTTP 401 and error code unauthorized.
Path Parameters
Conversation ID.
Variable ID.
Body
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
}