Update DM Templates
curl --request PATCH \
--url https://api.goextrovert.com/client/v2/voice-dm-templates \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"items": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"text": "<string>",
"whenToUse": "<string>",
"adaptation": "<string>"
}
]
}
'import requests
url = "https://api.goextrovert.com/client/v2/voice-dm-templates"
payload = { "items": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"text": "<string>",
"whenToUse": "<string>",
"adaptation": "<string>"
}
] }
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
items: [
{
id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
text: '<string>',
whenToUse: '<string>',
adaptation: '<string>'
}
]
})
};
fetch('https://api.goextrovert.com/client/v2/voice-dm-templates', 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.goextrovert.com/client/v2/voice-dm-templates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'items' => [
[
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'text' => '<string>',
'whenToUse' => '<string>',
'adaptation' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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.goextrovert.com/client/v2/voice-dm-templates"
payload := strings.NewReader("{\n \"items\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"text\": \"<string>\",\n \"whenToUse\": \"<string>\",\n \"adaptation\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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.patch("https://api.goextrovert.com/client/v2/voice-dm-templates")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"items\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"text\": \"<string>\",\n \"whenToUse\": \"<string>\",\n \"adaptation\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.goextrovert.com/client/v2/voice-dm-templates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"items\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"text\": \"<string>\",\n \"whenToUse\": \"<string>\",\n \"adaptation\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"data": [
{
"index": 4503599627370495,
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"item": {
"id": "8d256aa6-9b12-49a7-93ee-bf41634b5b60",
"updatedAt": "2025-06-30T14:02:07.456Z",
"createdAt": "2025-06-30T14:02:07.456Z",
"text": "<string>",
"whenToUse": "<string>",
"adaptation": "<string>",
"voiceId": "cf33282b-b171-4d23-ae02-848499d793e4"
},
"error": {
"code": "<string>",
"message": "<string>"
}
}
],
"message": "Operation completed successfully"
}{
"status": "error",
"data": null,
"message": "An error occurred while processing the request"
}Voice DM Templates
Update DM Templates
Replaces all three fields of one or more existing DM Templates. Templates not listed are left unchanged. Returns one result per requested element, in request order: the saved DM Template, or the reason that element was not applied (access, plan cap, not found). Other elements are unaffected. DM Templates feed direct-message generation only — never comments. The change applies to future generations only: an existing DM draft keeps its text until it is refreshed (dm-conversations_generate-or-improve-reply).
PATCH
/
client
/
v2
/
voice-dm-templates
Update DM Templates
curl --request PATCH \
--url https://api.goextrovert.com/client/v2/voice-dm-templates \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"items": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"text": "<string>",
"whenToUse": "<string>",
"adaptation": "<string>"
}
]
}
'import requests
url = "https://api.goextrovert.com/client/v2/voice-dm-templates"
payload = { "items": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"text": "<string>",
"whenToUse": "<string>",
"adaptation": "<string>"
}
] }
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
items: [
{
id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
text: '<string>',
whenToUse: '<string>',
adaptation: '<string>'
}
]
})
};
fetch('https://api.goextrovert.com/client/v2/voice-dm-templates', 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.goextrovert.com/client/v2/voice-dm-templates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'items' => [
[
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'text' => '<string>',
'whenToUse' => '<string>',
'adaptation' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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.goextrovert.com/client/v2/voice-dm-templates"
payload := strings.NewReader("{\n \"items\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"text\": \"<string>\",\n \"whenToUse\": \"<string>\",\n \"adaptation\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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.patch("https://api.goextrovert.com/client/v2/voice-dm-templates")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"items\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"text\": \"<string>\",\n \"whenToUse\": \"<string>\",\n \"adaptation\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.goextrovert.com/client/v2/voice-dm-templates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"items\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"text\": \"<string>\",\n \"whenToUse\": \"<string>\",\n \"adaptation\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"data": [
{
"index": 4503599627370495,
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"item": {
"id": "8d256aa6-9b12-49a7-93ee-bf41634b5b60",
"updatedAt": "2025-06-30T14:02:07.456Z",
"createdAt": "2025-06-30T14:02:07.456Z",
"text": "<string>",
"whenToUse": "<string>",
"adaptation": "<string>",
"voiceId": "cf33282b-b171-4d23-ae02-848499d793e4"
},
"error": {
"code": "<string>",
"message": "<string>"
}
}
],
"message": "Operation completed successfully"
}{
"status": "error",
"data": null,
"message": "An error occurred while processing the request"
}Authorizations
API Key for authentication
Body
application/json
Elements to apply, 1 to 25. Each element is applied on its own and gets its own result, in the same order; a failed element does not affect the others.
Required array length:
1 - 25 elementsShow child attributes
Show child attributes