curl --request POST \
--url https://api.getoneprofile.ai/sequences/proposals/{proposal_id}/tailor/ \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"angle": "<string>",
"audience": "<string>",
"campaign_key": "<string>",
"intent": "",
"why_now": "<string>"
}
'import requests
url = "https://api.getoneprofile.ai/sequences/proposals/{proposal_id}/tailor/"
payload = {
"angle": "<string>",
"audience": "<string>",
"campaign_key": "<string>",
"intent": "",
"why_now": "<string>"
}
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({
angle: '<string>',
audience: '<string>',
campaign_key: '<string>',
intent: '',
why_now: '<string>'
})
};
fetch('https://api.getoneprofile.ai/sequences/proposals/{proposal_id}/tailor/', 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/proposals/{proposal_id}/tailor/",
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([
'angle' => '<string>',
'audience' => '<string>',
'campaign_key' => '<string>',
'intent' => '',
'why_now' => '<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.getoneprofile.ai/sequences/proposals/{proposal_id}/tailor/"
payload := strings.NewReader("{\n \"angle\": \"<string>\",\n \"audience\": \"<string>\",\n \"campaign_key\": \"<string>\",\n \"intent\": \"\",\n \"why_now\": \"<string>\"\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/proposals/{proposal_id}/tailor/")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"angle\": \"<string>\",\n \"audience\": \"<string>\",\n \"campaign_key\": \"<string>\",\n \"intent\": \"\",\n \"why_now\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getoneprofile.ai/sequences/proposals/{proposal_id}/tailor/")
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 \"angle\": \"<string>\",\n \"audience\": \"<string>\",\n \"campaign_key\": \"<string>\",\n \"intent\": \"\",\n \"why_now\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"campaign": {
"angle": "<string>",
"audience": "<string>",
"campaign_key": "<string>",
"campaign_name": "<string>",
"steps": [
{
"kind": "<string>",
"note": "<string>",
"title": "<string>",
"wait_days": 123
}
],
"summary": "<string>",
"why_now": "<string>"
},
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"in_flight": true,
"intent": "<string>",
"reason": "<string>",
"record_count": 123,
"sender_profile_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"sequence_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"stage": "<string>",
"status": "<string>",
"table_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"table_name": "<string>",
"view_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>",
"issues": [
{
"input": "<string>",
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Tailor a proposed sequence again
Tailor a proposal again before the sequence is made: another campaign from the library by campaign_key, other words of the person’s as intent, or brief lines to keep word for word. What was asked before stands unless something new is given.
curl --request POST \
--url https://api.getoneprofile.ai/sequences/proposals/{proposal_id}/tailor/ \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"angle": "<string>",
"audience": "<string>",
"campaign_key": "<string>",
"intent": "",
"why_now": "<string>"
}
'import requests
url = "https://api.getoneprofile.ai/sequences/proposals/{proposal_id}/tailor/"
payload = {
"angle": "<string>",
"audience": "<string>",
"campaign_key": "<string>",
"intent": "",
"why_now": "<string>"
}
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({
angle: '<string>',
audience: '<string>',
campaign_key: '<string>',
intent: '',
why_now: '<string>'
})
};
fetch('https://api.getoneprofile.ai/sequences/proposals/{proposal_id}/tailor/', 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/proposals/{proposal_id}/tailor/",
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([
'angle' => '<string>',
'audience' => '<string>',
'campaign_key' => '<string>',
'intent' => '',
'why_now' => '<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.getoneprofile.ai/sequences/proposals/{proposal_id}/tailor/"
payload := strings.NewReader("{\n \"angle\": \"<string>\",\n \"audience\": \"<string>\",\n \"campaign_key\": \"<string>\",\n \"intent\": \"\",\n \"why_now\": \"<string>\"\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/proposals/{proposal_id}/tailor/")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"angle\": \"<string>\",\n \"audience\": \"<string>\",\n \"campaign_key\": \"<string>\",\n \"intent\": \"\",\n \"why_now\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getoneprofile.ai/sequences/proposals/{proposal_id}/tailor/")
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 \"angle\": \"<string>\",\n \"audience\": \"<string>\",\n \"campaign_key\": \"<string>\",\n \"intent\": \"\",\n \"why_now\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"campaign": {
"angle": "<string>",
"audience": "<string>",
"campaign_key": "<string>",
"campaign_name": "<string>",
"steps": [
{
"kind": "<string>",
"note": "<string>",
"title": "<string>",
"wait_days": 123
}
],
"summary": "<string>",
"why_now": "<string>"
},
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"in_flight": true,
"intent": "<string>",
"reason": "<string>",
"record_count": 123,
"sender_profile_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"sequence_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"stage": "<string>",
"status": "<string>",
"table_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"table_name": "<string>",
"view_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>",
"issues": [
{
"input": "<string>",
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Authorizations
Path Parameters
Body
What a person asks of a tailoring: their own words, a campaign, and brief lines to keep.
The idea the campaign is built around, as the person wants it kept.
1 - 300Who the campaign writes to, as the person wants it kept.
1 - 300A campaign from the library to run, by key (see the outbound presets' campaigns). Omitted, tailoring chooses the one that fits the audience best.
64What the campaign is for, in the person's own words: an event, a launch, an offer, who to reach. The one part of a campaign an email may state as fact.
500Why this audience needs it now, as the person wants it kept.
1 - 300Response
Successful Response
A sequence not made yet, and how its tailoring stands.
The tailored campaign; null means the sequence starts on the standard one.
Show child attributes
Show child attributes
Tailoring is still working; poll until false.
Why it was skipped or failed, as a code.
How many chosen rows, when rows were chosen.
The sequence made from it, once made.
While in flight: starting, choosing (the campaign) or checking (it).
The tailoring's outcome once settled: ready_for_review (a campaign is ready), kept_stock (the standard read better), skipped or failed.
Was this page helpful?