curl --request POST \
--url https://api.getoneprofile.ai/sequences/{sequence_id}/agent/training/previews/ \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"record_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}
'import requests
url = "https://api.getoneprofile.ai/sequences/{sequence_id}/agent/training/previews/"
payload = { "record_ids": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"] }
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({record_ids: ['3c90c3cc-0d44-4b50-8888-8dd25736052a']})
};
fetch('https://api.getoneprofile.ai/sequences/{sequence_id}/agent/training/previews/', 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.getoneprofile.ai/sequences/{sequence_id}/agent/training/previews/",
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([
'record_ids' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
]),
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.getoneprofile.ai/sequences/{sequence_id}/agent/training/previews/"
payload := strings.NewReader("{\n \"record_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.getoneprofile.ai/sequences/{sequence_id}/agent/training/previews/")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"record_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getoneprofile.ai/sequences/{sequence_id}/agent/training/previews/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"record_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"session": {
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"applied_version": 123,
"base_version": 123,
"contacts": [
{
"context": {},
"fields": [
{
"name": "<string>",
"value": "<string>"
}
],
"label": "<string>",
"messages": [
{
"authored": true,
"body": "<string>",
"conditional": "<string>",
"edited_body": "<string>",
"edited_subject": "<string>",
"error": "<string>",
"facts_used": [
"<string>"
],
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"kind": "<string>",
"note": "<string>",
"previous_body": "<string>",
"previous_subject": "<string>",
"reasoning": "<string>",
"reply_to_step_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"steps": [
{
"action": "<string>",
"detail": "",
"duration_ms": 123,
"observation": "",
"outcome": "completed",
"thought": "<string>"
}
],
"subject": "<string>",
"timing": "<string>",
"title": "<string>"
}
],
"note": "<string>",
"record_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"verdict": "good",
"profile_mismatch": "<string>"
}
],
"created_at": "2023-11-07T05:31:56Z",
"error": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"proposal": {
"summary": "<string>",
"changes": [
{
"current": "<string>",
"proposed": "<string>",
"rationale": "<string>",
"slot_key": "<string>"
}
]
},
"revision": 123,
"status": "running",
"steps": [
{
"action": "<string>",
"detail": "",
"duration_ms": 123,
"observation": "",
"outcome": "completed",
"thought": "<string>"
}
]
},
"write_again": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Keep threads already written in the Preview
Makes the threads already written as free previews for up to ten contacts those contacts’ threads in the sequence’s Preview, word for word: nothing is written again, nothing is charged and no preview allowance is spent, so each contact’s Preview shows the emails the previews showed and Looks good can be given on them. A step with no current preview shows as not written. The contacts join the sequence’s open Preview; one already in it with the same words keeps its verdict. This never writes: the start route is what writes a thread. The answer names any kept thread written before the plain-words check that uses banned jargon or copies the business context, so it can be written again.
curl --request POST \
--url https://api.getoneprofile.ai/sequences/{sequence_id}/agent/training/previews/ \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"record_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}
'import requests
url = "https://api.getoneprofile.ai/sequences/{sequence_id}/agent/training/previews/"
payload = { "record_ids": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"] }
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({record_ids: ['3c90c3cc-0d44-4b50-8888-8dd25736052a']})
};
fetch('https://api.getoneprofile.ai/sequences/{sequence_id}/agent/training/previews/', 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.getoneprofile.ai/sequences/{sequence_id}/agent/training/previews/",
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([
'record_ids' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
]),
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.getoneprofile.ai/sequences/{sequence_id}/agent/training/previews/"
payload := strings.NewReader("{\n \"record_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.getoneprofile.ai/sequences/{sequence_id}/agent/training/previews/")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"record_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getoneprofile.ai/sequences/{sequence_id}/agent/training/previews/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"record_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"session": {
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"applied_version": 123,
"base_version": 123,
"contacts": [
{
"context": {},
"fields": [
{
"name": "<string>",
"value": "<string>"
}
],
"label": "<string>",
"messages": [
{
"authored": true,
"body": "<string>",
"conditional": "<string>",
"edited_body": "<string>",
"edited_subject": "<string>",
"error": "<string>",
"facts_used": [
"<string>"
],
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"kind": "<string>",
"note": "<string>",
"previous_body": "<string>",
"previous_subject": "<string>",
"reasoning": "<string>",
"reply_to_step_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"steps": [
{
"action": "<string>",
"detail": "",
"duration_ms": 123,
"observation": "",
"outcome": "completed",
"thought": "<string>"
}
],
"subject": "<string>",
"timing": "<string>",
"title": "<string>"
}
],
"note": "<string>",
"record_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"verdict": "good",
"profile_mismatch": "<string>"
}
],
"created_at": "2023-11-07T05:31:56Z",
"error": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"proposal": {
"summary": "<string>",
"changes": [
{
"current": "<string>",
"proposed": "<string>",
"rationale": "<string>",
"slot_key": "<string>"
}
]
},
"revision": 123,
"status": "running",
"steps": [
{
"action": "<string>",
"detail": "",
"duration_ms": 123,
"observation": "",
"outcome": "completed",
"thought": "<string>"
}
]
},
"write_again": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Authorizations
Path Parameters
Body
The audience rows whose threads were already written as previews, between one and ten different ones.
1 - 10 elementsResponse
Successful Response
The Preview once it keeps threads already written, and which of them to write again.
Show child attributes
Show child attributes
Contacts whose kept thread was written before the plain-words check and uses jargon the writing rules forbid or a business context sentence word for word. Writing them again (the step preview with fresh) replaces those words; the Preview shows the thread as it is meanwhile.
Was this page helpful?