Create contact comment
Add a new comment to a contact.
curl --request POST \
--url https://api.useinvent.com/orgs/{org_id}/contacts/{contact_id}/comments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"id": "<string>",
"comment": "<string>",
"attachments": [
"<string>"
],
"references": [
{
"id": "<string>",
"name": "<string>",
"icon": "<string>",
"icon_url": "<string>"
}
],
"context": {
"page_url": "<string>",
"page_title": "<string>",
"timezone": "<string>"
}
}
'import requests
url = "https://api.useinvent.com/orgs/{org_id}/contacts/{contact_id}/comments"
payload = {
"id": "<string>",
"comment": "<string>",
"attachments": ["<string>"],
"references": [
{
"id": "<string>",
"name": "<string>",
"icon": "<string>",
"icon_url": "<string>"
}
],
"context": {
"page_url": "<string>",
"page_title": "<string>",
"timezone": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
id: '<string>',
comment: '<string>',
attachments: ['<string>'],
references: [{id: '<string>', name: '<string>', icon: '<string>', icon_url: '<string>'}],
context: {page_url: '<string>', page_title: '<string>', timezone: '<string>'}
})
};
fetch('https://api.useinvent.com/orgs/{org_id}/contacts/{contact_id}/comments', 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.useinvent.com/orgs/{org_id}/contacts/{contact_id}/comments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'id' => '<string>',
'comment' => '<string>',
'attachments' => [
'<string>'
],
'references' => [
[
'id' => '<string>',
'name' => '<string>',
'icon' => '<string>',
'icon_url' => '<string>'
]
],
'context' => [
'page_url' => '<string>',
'page_title' => '<string>',
'timezone' => '<string>'
]
]),
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.useinvent.com/orgs/{org_id}/contacts/{contact_id}/comments"
payload := strings.NewReader("{\n \"id\": \"<string>\",\n \"comment\": \"<string>\",\n \"attachments\": [\n \"<string>\"\n ],\n \"references\": [\n {\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"icon\": \"<string>\",\n \"icon_url\": \"<string>\"\n }\n ],\n \"context\": {\n \"page_url\": \"<string>\",\n \"page_title\": \"<string>\",\n \"timezone\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.useinvent.com/orgs/{org_id}/contacts/{contact_id}/comments")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"<string>\",\n \"comment\": \"<string>\",\n \"attachments\": [\n \"<string>\"\n ],\n \"references\": [\n {\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"icon\": \"<string>\",\n \"icon_url\": \"<string>\"\n }\n ],\n \"context\": {\n \"page_url\": \"<string>\",\n \"page_title\": \"<string>\",\n \"timezone\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.useinvent.com/orgs/{org_id}/contacts/{contact_id}/comments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": \"<string>\",\n \"comment\": \"<string>\",\n \"attachments\": [\n \"<string>\"\n ],\n \"references\": [\n {\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"icon\": \"<string>\",\n \"icon_url\": \"<string>\"\n }\n ],\n \"context\": {\n \"page_url\": \"<string>\",\n \"page_title\": \"<string>\",\n \"timezone\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"contact_id": "<string>",
"comment": "<string>",
"attachments": [
{
"id": "<string>",
"file_path": "<string>",
"file_filename": "document.pdf",
"file_size": 1024,
"file_mimetype": "application/pdf",
"file_url": "<string>",
"created_at": "2023-11-07T05:31:56Z"
}
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"actor": {
"id": "<string>",
"name": "<string>",
"email": "jsmith@example.com",
"avatar": "<string>",
"seen_at": "2023-11-07T05:31:56Z"
},
"agent": {
"id": "<string>",
"name": "<string>",
"icon": "<string>",
"color": "red",
"shape": "square",
"avatar_url": "<string>"
},
"assistant": {
"id": "<string>",
"name": "<string>",
"avatar_url": "<string>",
"deleted": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
},
"message_id": "<string>",
"chat": {
"id": "<string>",
"title": "<string>",
"status": "RUNNING",
"created_at": "2023-11-07T05:31:56Z",
"state": {
"state": "OPEN",
"ai_enabled": true,
"admin_unseen_count": 123,
"muted_until": "2023-11-07T05:31:56Z",
"follow_up_at": "2023-11-07T05:31:56Z"
}
},
"metadata": {
"type": "contact_updated",
"changes": [
{
"key": "<string>",
"old_value": "<unknown>",
"new_value": "<unknown>"
}
]
}
}Authorizations
Bearer token authentication using your API key
Body
Schema for creating a contact comment
Client-generated id for the new comment (enables optimistic creation). Encoded (act_…) or raw UUID. Rejected if already in use.
128The content of the comment (max 2048 characters)
2048Array of file IDs to attach to the comment
20The entities tagged by name in the comment (@Name in the text). A tagged agent answers in the thread; the org id tags Ask Invent
20Show child attributes
Show child attributes
Ephemeral context about where the user is when sending the message. Injected into the prompt on the fly, never stored.
Show child attributes
Show child attributes
Response
Schema for a contact comment
Files attached to the comment
Show child attributes
Show child attributes
User who posted the comment
Show child attributes
Show child attributes
Agent who posted the comment
Show child attributes
Show child attributes
Assistant who posted the comment
Show child attributes
Show child attributes
The private note this comment mirrors, when it was written in a conversation
The chat behind the comment: the conversation a note was written in, or the run that answered a tag
Show child attributes
Show child attributes
Activity metadata payload. Discriminated by type, which mirrors the parent activity row type.
- Option 1
- Option 2
Show child attributes
Show child attributes
Was this page helpful?
curl --request POST \
--url https://api.useinvent.com/orgs/{org_id}/contacts/{contact_id}/comments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"id": "<string>",
"comment": "<string>",
"attachments": [
"<string>"
],
"references": [
{
"id": "<string>",
"name": "<string>",
"icon": "<string>",
"icon_url": "<string>"
}
],
"context": {
"page_url": "<string>",
"page_title": "<string>",
"timezone": "<string>"
}
}
'import requests
url = "https://api.useinvent.com/orgs/{org_id}/contacts/{contact_id}/comments"
payload = {
"id": "<string>",
"comment": "<string>",
"attachments": ["<string>"],
"references": [
{
"id": "<string>",
"name": "<string>",
"icon": "<string>",
"icon_url": "<string>"
}
],
"context": {
"page_url": "<string>",
"page_title": "<string>",
"timezone": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
id: '<string>',
comment: '<string>',
attachments: ['<string>'],
references: [{id: '<string>', name: '<string>', icon: '<string>', icon_url: '<string>'}],
context: {page_url: '<string>', page_title: '<string>', timezone: '<string>'}
})
};
fetch('https://api.useinvent.com/orgs/{org_id}/contacts/{contact_id}/comments', 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.useinvent.com/orgs/{org_id}/contacts/{contact_id}/comments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'id' => '<string>',
'comment' => '<string>',
'attachments' => [
'<string>'
],
'references' => [
[
'id' => '<string>',
'name' => '<string>',
'icon' => '<string>',
'icon_url' => '<string>'
]
],
'context' => [
'page_url' => '<string>',
'page_title' => '<string>',
'timezone' => '<string>'
]
]),
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.useinvent.com/orgs/{org_id}/contacts/{contact_id}/comments"
payload := strings.NewReader("{\n \"id\": \"<string>\",\n \"comment\": \"<string>\",\n \"attachments\": [\n \"<string>\"\n ],\n \"references\": [\n {\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"icon\": \"<string>\",\n \"icon_url\": \"<string>\"\n }\n ],\n \"context\": {\n \"page_url\": \"<string>\",\n \"page_title\": \"<string>\",\n \"timezone\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.useinvent.com/orgs/{org_id}/contacts/{contact_id}/comments")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"<string>\",\n \"comment\": \"<string>\",\n \"attachments\": [\n \"<string>\"\n ],\n \"references\": [\n {\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"icon\": \"<string>\",\n \"icon_url\": \"<string>\"\n }\n ],\n \"context\": {\n \"page_url\": \"<string>\",\n \"page_title\": \"<string>\",\n \"timezone\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.useinvent.com/orgs/{org_id}/contacts/{contact_id}/comments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": \"<string>\",\n \"comment\": \"<string>\",\n \"attachments\": [\n \"<string>\"\n ],\n \"references\": [\n {\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"icon\": \"<string>\",\n \"icon_url\": \"<string>\"\n }\n ],\n \"context\": {\n \"page_url\": \"<string>\",\n \"page_title\": \"<string>\",\n \"timezone\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"contact_id": "<string>",
"comment": "<string>",
"attachments": [
{
"id": "<string>",
"file_path": "<string>",
"file_filename": "document.pdf",
"file_size": 1024,
"file_mimetype": "application/pdf",
"file_url": "<string>",
"created_at": "2023-11-07T05:31:56Z"
}
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"actor": {
"id": "<string>",
"name": "<string>",
"email": "jsmith@example.com",
"avatar": "<string>",
"seen_at": "2023-11-07T05:31:56Z"
},
"agent": {
"id": "<string>",
"name": "<string>",
"icon": "<string>",
"color": "red",
"shape": "square",
"avatar_url": "<string>"
},
"assistant": {
"id": "<string>",
"name": "<string>",
"avatar_url": "<string>",
"deleted": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
},
"message_id": "<string>",
"chat": {
"id": "<string>",
"title": "<string>",
"status": "RUNNING",
"created_at": "2023-11-07T05:31:56Z",
"state": {
"state": "OPEN",
"ai_enabled": true,
"admin_unseen_count": 123,
"muted_until": "2023-11-07T05:31:56Z",
"follow_up_at": "2023-11-07T05:31:56Z"
}
},
"metadata": {
"type": "contact_updated",
"changes": [
{
"key": "<string>",
"old_value": "<unknown>",
"new_value": "<unknown>"
}
]
}
}