Update conversation
curl --request PUT \
--url https://api.weav.com/v1/conversations/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"subject": "<string>",
"assignee_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://api.weav.com/v1/conversations/{id}"
payload = {
"subject": "<string>",
"assignee_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({subject: '<string>', assignee_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'})
};
fetch('https://api.weav.com/v1/conversations/{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.weav.com/v1/conversations/{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([
'subject' => '<string>',
'assignee_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 := "https://api.weav.com/v1/conversations/{id}"
payload := strings.NewReader("{\n \"subject\": \"<string>\",\n \"assignee_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("https://api.weav.com/v1/conversations/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"subject\": \"<string>\",\n \"assignee_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.weav.com/v1/conversations/{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 \"subject\": \"<string>\",\n \"assignee_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"channel": "email",
"customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"subject": "<string>",
"status": "open",
"priority": "low",
"assignee_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"assignee_type": "user",
"closed_at": "2023-11-07T05:31:56Z",
"first_response_at": "2023-11-07T05:31:56Z",
"last_message_at": "2023-11-07T05:31:56Z",
"is_spam": true,
"spam_score": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"error": "Error message",
"code": "UNAUTHENTICATED",
"errors": {}
}{
"error": "Error message",
"code": "UNAUTHENTICATED",
"errors": {}
}{
"error": "Error message",
"code": "UNAUTHENTICATED",
"errors": {}
}{
"message": "The given data was invalid.",
"errors": {}
}Conversations
Update conversation
Assignment rules:
- Assignees must belong to the same workspace as the API key.
- Chat conversations can be assigned to users, unassigned, or only the conversation’s original chat agent.
- Email conversations can be assigned to users, unassigned, or only the workspace’s active email agent.
PUT
/
conversations
/
{id}
Update conversation
curl --request PUT \
--url https://api.weav.com/v1/conversations/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"subject": "<string>",
"assignee_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://api.weav.com/v1/conversations/{id}"
payload = {
"subject": "<string>",
"assignee_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({subject: '<string>', assignee_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'})
};
fetch('https://api.weav.com/v1/conversations/{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.weav.com/v1/conversations/{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([
'subject' => '<string>',
'assignee_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 := "https://api.weav.com/v1/conversations/{id}"
payload := strings.NewReader("{\n \"subject\": \"<string>\",\n \"assignee_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("https://api.weav.com/v1/conversations/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"subject\": \"<string>\",\n \"assignee_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.weav.com/v1/conversations/{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 \"subject\": \"<string>\",\n \"assignee_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"channel": "email",
"customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"subject": "<string>",
"status": "open",
"priority": "low",
"assignee_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"assignee_type": "user",
"closed_at": "2023-11-07T05:31:56Z",
"first_response_at": "2023-11-07T05:31:56Z",
"last_message_at": "2023-11-07T05:31:56Z",
"is_spam": true,
"spam_score": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"error": "Error message",
"code": "UNAUTHENTICATED",
"errors": {}
}{
"error": "Error message",
"code": "UNAUTHENTICATED",
"errors": {}
}{
"error": "Error message",
"code": "UNAUTHENTICATED",
"errors": {}
}{
"message": "The given data was invalid.",
"errors": {}
}Authorizations
Workspace API token.
Include abilities external-api:read and/or external-api:write.
Path Parameters
Body
application/json
Response
Conversation updated
Available options:
email, chat Available options:
open, closed Available options:
low, normal, high, urgent User or agent UUID to assign. Must belong to the same workspace. For chat, agent assignment is limited to the conversation's original chat agent. For email, agent assignment is limited to the workspace active email agent.
Available options:
user, agent 
