Chats Messages
Respond to Interactive Tool
Submit a user response to an interactive tool (e.g. connecting an app).
POST
/
chats
/
{chat_id}
/
messages
/
{message_id}
/
tools
/
{tool_call_id}
/
respond
Respond to Interactive Tool
curl --request POST \
--url https://api.useinvent.com/chats/{chat_id}/messages/{message_id}/tools/{tool_call_id}/respond \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"type": "connection",
"connection_id": "<string>"
}
'import requests
url = "https://api.useinvent.com/chats/{chat_id}/messages/{message_id}/tools/{tool_call_id}/respond"
payload = {
"type": "connection",
"connection_id": "<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({type: 'connection', connection_id: '<string>'})
};
fetch('https://api.useinvent.com/chats/{chat_id}/messages/{message_id}/tools/{tool_call_id}/respond', 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/chats/{chat_id}/messages/{message_id}/tools/{tool_call_id}/respond",
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([
'type' => 'connection',
'connection_id' => '<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/chats/{chat_id}/messages/{message_id}/tools/{tool_call_id}/respond"
payload := strings.NewReader("{\n \"type\": \"connection\",\n \"connection_id\": \"<string>\"\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/chats/{chat_id}/messages/{message_id}/tools/{tool_call_id}/respond")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"connection\",\n \"connection_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.useinvent.com/chats/{chat_id}/messages/{message_id}/tools/{tool_call_id}/respond")
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 \"type\": \"connection\",\n \"connection_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"model": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"messages": [
{
"role": "system",
"parts": [
{
"type": "text",
"text": "<string>",
"audio": {
"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"
},
"start_timestamp": 123,
"end_timestamp": 123
}
]
}
],
"member": {
"id": "<string>",
"user": {
"id": "<string>",
"name": "<string>",
"avatar": "<string>"
},
"session": {
"id": "<string>"
},
"contact_channel": {
"id": "<string>",
"user_id": "<string>",
"avatar": "<string>",
"name": "<string>",
"username": "<string>",
"email": "jsmith@example.com",
"phone": "<string>",
"country": "<string>",
"agent": "<string>",
"ip": "<string>",
"language": "<string>",
"contact": {
"id": "<string>",
"name": "<string>",
"blocked": true,
"unsubscribed": true,
"ai_replies": true,
"is_admin": true
},
"link": "<string>"
}
},
"error": "<string>",
"broadcast_id": "<string>",
"is_broadcast_message": true,
"usage": {
"input_tokens": 123,
"output_tokens": 123,
"total_tokens": 123,
"reasoning_tokens": 123,
"input_tokens_cache_read": 123,
"input_tokens_cache_write": 123,
"turns": [
{
"input_tokens": 123,
"output_tokens": 123,
"total_tokens": 123,
"reasoning_tokens": 123,
"input_tokens_cache_read": 123,
"input_tokens_cache_write": 123
}
]
},
"delivered_at": "2023-11-07T05:31:56Z",
"seen_at": "2023-11-07T05:31:56Z"
}Authorizations
Bearer token authentication using your API key
Path Parameters
Chat ID
Message ID
The ID of the tool call being responded to.
Body
application/jsonmultipart/form-data
Response
200 - application/json
The chat message schema
The role of the message
Available options:
user, assistant, system, tool, event, note The model used for the message
The chat status
Available options:
RUNNING, COMPLETED, FAILED, CANCELED The message content
System message
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
- Option 6
Show child attributes
Show child attributes
The member of the chat
Show child attributes
Show child attributes
Error message if the message failed
ID of the broadcast this message originates from
Whether this message was sent via a broadcast template
The usage information for the message
Show child attributes
Show child attributes
When the message was delivered to the recipient
When the recipient saw the message
Was this page helpful?
⌘I
Respond to Interactive Tool
curl --request POST \
--url https://api.useinvent.com/chats/{chat_id}/messages/{message_id}/tools/{tool_call_id}/respond \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"type": "connection",
"connection_id": "<string>"
}
'import requests
url = "https://api.useinvent.com/chats/{chat_id}/messages/{message_id}/tools/{tool_call_id}/respond"
payload = {
"type": "connection",
"connection_id": "<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({type: 'connection', connection_id: '<string>'})
};
fetch('https://api.useinvent.com/chats/{chat_id}/messages/{message_id}/tools/{tool_call_id}/respond', 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/chats/{chat_id}/messages/{message_id}/tools/{tool_call_id}/respond",
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([
'type' => 'connection',
'connection_id' => '<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/chats/{chat_id}/messages/{message_id}/tools/{tool_call_id}/respond"
payload := strings.NewReader("{\n \"type\": \"connection\",\n \"connection_id\": \"<string>\"\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/chats/{chat_id}/messages/{message_id}/tools/{tool_call_id}/respond")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"connection\",\n \"connection_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.useinvent.com/chats/{chat_id}/messages/{message_id}/tools/{tool_call_id}/respond")
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 \"type\": \"connection\",\n \"connection_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"model": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"messages": [
{
"role": "system",
"parts": [
{
"type": "text",
"text": "<string>",
"audio": {
"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"
},
"start_timestamp": 123,
"end_timestamp": 123
}
]
}
],
"member": {
"id": "<string>",
"user": {
"id": "<string>",
"name": "<string>",
"avatar": "<string>"
},
"session": {
"id": "<string>"
},
"contact_channel": {
"id": "<string>",
"user_id": "<string>",
"avatar": "<string>",
"name": "<string>",
"username": "<string>",
"email": "jsmith@example.com",
"phone": "<string>",
"country": "<string>",
"agent": "<string>",
"ip": "<string>",
"language": "<string>",
"contact": {
"id": "<string>",
"name": "<string>",
"blocked": true,
"unsubscribed": true,
"ai_replies": true,
"is_admin": true
},
"link": "<string>"
}
},
"error": "<string>",
"broadcast_id": "<string>",
"is_broadcast_message": true,
"usage": {
"input_tokens": 123,
"output_tokens": 123,
"total_tokens": 123,
"reasoning_tokens": 123,
"input_tokens_cache_read": 123,
"input_tokens_cache_write": 123,
"turns": [
{
"input_tokens": 123,
"output_tokens": 123,
"total_tokens": 123,
"reasoning_tokens": 123,
"input_tokens_cache_read": 123,
"input_tokens_cache_write": 123
}
]
},
"delivered_at": "2023-11-07T05:31:56Z",
"seen_at": "2023-11-07T05:31:56Z"
}