Send email draft
curl --request POST \
--url https://sitegpt.ai/api/v2/chatbots/{chatbotId}/conversations/{threadId}/drafts/{draftId}/send \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"message": "Your order ships tomorrow morning. Tracking follows by email."
}
'import requests
url = "https://sitegpt.ai/api/v2/chatbots/{chatbotId}/conversations/{threadId}/drafts/{draftId}/send"
payload = { "message": "Your order ships tomorrow morning. Tracking follows by email." }
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({message: 'Your order ships tomorrow morning. Tracking follows by email.'})
};
fetch('https://sitegpt.ai/api/v2/chatbots/{chatbotId}/conversations/{threadId}/drafts/{draftId}/send', 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://sitegpt.ai/api/v2/chatbots/{chatbotId}/conversations/{threadId}/drafts/{draftId}/send",
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([
'message' => 'Your order ships tomorrow morning. Tracking follows by email.'
]),
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://sitegpt.ai/api/v2/chatbots/{chatbotId}/conversations/{threadId}/drafts/{draftId}/send"
payload := strings.NewReader("{\n \"message\": \"Your order ships tomorrow morning. Tracking follows by email.\"\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://sitegpt.ai/api/v2/chatbots/{chatbotId}/conversations/{threadId}/drafts/{draftId}/send")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"message\": \"Your order ships tomorrow morning. Tracking follows by email.\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sitegpt.ai/api/v2/chatbots/{chatbotId}/conversations/{threadId}/drafts/{draftId}/send")
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 \"message\": \"Your order ships tomorrow morning. Tracking follows by email.\"\n}"
response = http.request(request)
puts response.read_body{
"ok": true,
"data": {
"sent": true,
"edited": false
},
"meta": {
"requestId": "request-id"
}
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"meta": {
"requestId": "<string>"
}
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"meta": {
"requestId": "<string>"
}
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"meta": {
"requestId": "<string>"
}
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"meta": {
"requestId": "<string>"
}
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"meta": {
"requestId": "<string>"
}
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"meta": {
"requestId": "<string>"
}
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"meta": {
"requestId": "<string>"
}
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"meta": {
"requestId": "<string>"
}
}Conversations
Send email draft
Send an email draft to the customer. Without a body it goes out as the AI wrote it. With message, your text goes out instead, as your reply. A draft is sent once.
Required scope: conversations:write.
On success, data contains: sent, edited.
POST
/
api
/
v2
/
chatbots
/
{chatbotId}
/
conversations
/
{threadId}
/
drafts
/
{draftId}
/
send
Send email draft
curl --request POST \
--url https://sitegpt.ai/api/v2/chatbots/{chatbotId}/conversations/{threadId}/drafts/{draftId}/send \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"message": "Your order ships tomorrow morning. Tracking follows by email."
}
'import requests
url = "https://sitegpt.ai/api/v2/chatbots/{chatbotId}/conversations/{threadId}/drafts/{draftId}/send"
payload = { "message": "Your order ships tomorrow morning. Tracking follows by email." }
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({message: 'Your order ships tomorrow morning. Tracking follows by email.'})
};
fetch('https://sitegpt.ai/api/v2/chatbots/{chatbotId}/conversations/{threadId}/drafts/{draftId}/send', 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://sitegpt.ai/api/v2/chatbots/{chatbotId}/conversations/{threadId}/drafts/{draftId}/send",
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([
'message' => 'Your order ships tomorrow morning. Tracking follows by email.'
]),
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://sitegpt.ai/api/v2/chatbots/{chatbotId}/conversations/{threadId}/drafts/{draftId}/send"
payload := strings.NewReader("{\n \"message\": \"Your order ships tomorrow morning. Tracking follows by email.\"\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://sitegpt.ai/api/v2/chatbots/{chatbotId}/conversations/{threadId}/drafts/{draftId}/send")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"message\": \"Your order ships tomorrow morning. Tracking follows by email.\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sitegpt.ai/api/v2/chatbots/{chatbotId}/conversations/{threadId}/drafts/{draftId}/send")
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 \"message\": \"Your order ships tomorrow morning. Tracking follows by email.\"\n}"
response = http.request(request)
puts response.read_body{
"ok": true,
"data": {
"sent": true,
"edited": false
},
"meta": {
"requestId": "request-id"
}
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"meta": {
"requestId": "<string>"
}
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"meta": {
"requestId": "<string>"
}
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"meta": {
"requestId": "<string>"
}
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"meta": {
"requestId": "<string>"
}
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"meta": {
"requestId": "<string>"
}
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"meta": {
"requestId": "<string>"
}
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"meta": {
"requestId": "<string>"
}
}{
"ok": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"meta": {
"requestId": "<string>"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Chatbot ID.
Conversation thread ID.
draftId path parameter.
Body
application/json
Optional. Your text instead of the draft. It goes out as your reply and joins the transcript. Leave it out to send the draft as the AI wrote it.
Required string length:
1 - 20000Was this page helpful?