curl --request PUT \
--url http://localhost:8080/chat/sessions/{session_id}/sub-status \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"sub_status_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "http://localhost:8080/chat/sessions/{session_id}/sub-status"
payload = { "sub_status_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a" }
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({sub_status_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'})
};
fetch('http://localhost:8080/chat/sessions/{session_id}/sub-status', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "8080",
CURLOPT_URL => "http://localhost:8080/chat/sessions/{session_id}/sub-status",
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([
'sub_status_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
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 := "http://localhost:8080/chat/sessions/{session_id}/sub-status"
payload := strings.NewReader("{\n \"sub_status_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\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("http://localhost:8080/chat/sessions/{session_id}/sub-status")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"sub_status_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:8080/chat/sessions/{session_id}/sub-status")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"sub_status_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"tags": [
{
"tag_name": "<string>",
"created_at": "2023-11-07T05:31:56Z"
}
],
"status": "open",
"sub_status_id": "<string>",
"ai_closure_type": "assumed_resolved",
"sentiment": "angry",
"summary": "<string>",
"channel": {
"type": "web"
},
"assignee": {
"type": "human",
"id": 0,
"name": "<string>"
},
"support_team": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
},
"ticket_number": 123,
"assist_mode": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"first_human_message_at": "2023-11-07T05:31:56Z",
"contact": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"email": "[email protected]",
"phone_number": "<string>",
"name": "<string>",
"custom_data": {},
"created_at": "<string>",
"updated_at": "<string>",
"non_verified_name": "<string>",
"non_verified_email": "<string>",
"non_verified_custom_data": {}
},
"language": "<string>",
"assignee_id": "<string>",
"custom_data": {},
"team": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"description": "<string>"
},
"handoff": {
"summary": "<string>",
"sentiment": "angry"
},
"ticketing_system": {
"name": "dynamics365",
"external_id": "<string>",
"id_type": "conversation_id"
}
}{
"statusCode": 123,
"message": "<string>",
"error": "<string>"
}Set the custom status of a chat session
Apply a custom status to a session. The session moves to that status’s built-in parent, so an open-parented status reopens a closed session and a closed-parented one closes it.
curl --request PUT \
--url http://localhost:8080/chat/sessions/{session_id}/sub-status \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"sub_status_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "http://localhost:8080/chat/sessions/{session_id}/sub-status"
payload = { "sub_status_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a" }
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({sub_status_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'})
};
fetch('http://localhost:8080/chat/sessions/{session_id}/sub-status', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "8080",
CURLOPT_URL => "http://localhost:8080/chat/sessions/{session_id}/sub-status",
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([
'sub_status_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
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 := "http://localhost:8080/chat/sessions/{session_id}/sub-status"
payload := strings.NewReader("{\n \"sub_status_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\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("http://localhost:8080/chat/sessions/{session_id}/sub-status")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"sub_status_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:8080/chat/sessions/{session_id}/sub-status")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"sub_status_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"tags": [
{
"tag_name": "<string>",
"created_at": "2023-11-07T05:31:56Z"
}
],
"status": "open",
"sub_status_id": "<string>",
"ai_closure_type": "assumed_resolved",
"sentiment": "angry",
"summary": "<string>",
"channel": {
"type": "web"
},
"assignee": {
"type": "human",
"id": 0,
"name": "<string>"
},
"support_team": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
},
"ticket_number": 123,
"assist_mode": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"first_human_message_at": "2023-11-07T05:31:56Z",
"contact": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"email": "[email protected]",
"phone_number": "<string>",
"name": "<string>",
"custom_data": {},
"created_at": "<string>",
"updated_at": "<string>",
"non_verified_name": "<string>",
"non_verified_email": "<string>",
"non_verified_custom_data": {}
},
"language": "<string>",
"assignee_id": "<string>",
"custom_data": {},
"team": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"description": "<string>"
},
"handoff": {
"summary": "<string>",
"sentiment": "angry"
},
"ticketing_system": {
"name": "dynamics365",
"external_id": "<string>",
"id_type": "conversation_id"
}
}{
"statusCode": 123,
"message": "<string>",
"error": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The unique identifier of the chat session
Body
Id of the custom status to apply, from GET /custom-statuses
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Response
Default Response
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$All tags currently assigned to this session, ordered by tag name. Empty when no tags are assigned.
Show child attributes
Show child attributes
open, closed_resolved, closed_unresolved Id of the custom status refining status, or null when only the built-in status applies. Resolve it with GET /custom-statuses.
assumed_resolved, handed_off, resolved angry, happy, neutral AI-generated summary of the conversation. Populated for both AI-resolved and handed-off sessions once the session has been summarized; null otherwise.
Show child attributes
Show child attributes
Current session assignment. AI and unassigned sessions have no assignee ID.
- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
Support team assigned to this session. Null when no team can be resolved within the session organization.
Show child attributes
Show child attributes
Timestamp of the first recorded human reply to this session. Null when no human reply has been recorded.
Show child attributes
Show child attributes
Deprecated: use assignee. Contains the recorded human user ID as a string, or null for AI and unassigned sessions. Use assignee.type to distinguish them. This deprecation applies only to response fields; assignment requests still accept assignee_id.
Session-level custom data stored on the chat session.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?