curl --request POST \
--url https://api.example.com/customer-intelligence/outreach-drafts/push-to-mailbox \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"run_ids": [
"<string>"
],
"step": 1,
"contact_ids": [
"<string>"
],
"dry_run": false,
"force": false,
"as_user_id": "<string>",
"limit": 200,
"signature": "<string>",
"sender_first_name": "<string>"
}
'import requests
url = "https://api.example.com/customer-intelligence/outreach-drafts/push-to-mailbox"
payload = {
"run_ids": ["<string>"],
"step": 1,
"contact_ids": ["<string>"],
"dry_run": False,
"force": False,
"as_user_id": "<string>",
"limit": 200,
"signature": "<string>",
"sender_first_name": "<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({
run_ids: ['<string>'],
step: 1,
contact_ids: ['<string>'],
dry_run: false,
force: false,
as_user_id: '<string>',
limit: 200,
signature: '<string>',
sender_first_name: '<string>'
})
};
fetch('https://api.example.com/customer-intelligence/outreach-drafts/push-to-mailbox', 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.example.com/customer-intelligence/outreach-drafts/push-to-mailbox",
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([
'run_ids' => [
'<string>'
],
'step' => 1,
'contact_ids' => [
'<string>'
],
'dry_run' => false,
'force' => false,
'as_user_id' => '<string>',
'limit' => 200,
'signature' => '<string>',
'sender_first_name' => '<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.example.com/customer-intelligence/outreach-drafts/push-to-mailbox"
payload := strings.NewReader("{\n \"run_ids\": [\n \"<string>\"\n ],\n \"step\": 1,\n \"contact_ids\": [\n \"<string>\"\n ],\n \"dry_run\": false,\n \"force\": false,\n \"as_user_id\": \"<string>\",\n \"limit\": 200,\n \"signature\": \"<string>\",\n \"sender_first_name\": \"<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.example.com/customer-intelligence/outreach-drafts/push-to-mailbox")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"run_ids\": [\n \"<string>\"\n ],\n \"step\": 1,\n \"contact_ids\": [\n \"<string>\"\n ],\n \"dry_run\": false,\n \"force\": false,\n \"as_user_id\": \"<string>\",\n \"limit\": 200,\n \"signature\": \"<string>\",\n \"sender_first_name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/customer-intelligence/outreach-drafts/push-to-mailbox")
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 \"run_ids\": [\n \"<string>\"\n ],\n \"step\": 1,\n \"contact_ids\": [\n \"<string>\"\n ],\n \"dry_run\": false,\n \"force\": false,\n \"as_user_id\": \"<string>\",\n \"limit\": 200,\n \"signature\": \"<string>\",\n \"sender_first_name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Push Outreach Drafts To Mailbox
Copy one step of each contact’s Personal drafts into a mailbox’s Drafts.
The mailbox is the one the person connected themselves (Outlook or Gmail, via Connected accounts), so the drafts sit in their own Drafts folder and leave from their own address when they press Send. Nothing is sent here.
- Step 1 becomes a new email to the contact.
- A later step becomes a reply in the thread of the step-1 email, found in
Sent by recipient and subject. Until that email has been sent the step is
skipped (
earlier_step_not_sent), never drafted unthreaded. - Each push is recorded on the contact’s by-run entry (
mailbox_drafts), so running it twice does not stack duplicates;forceoverrides. - Disqualified, opted-out and email-less contacts are skipped.
curl --request POST \
--url https://api.example.com/customer-intelligence/outreach-drafts/push-to-mailbox \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"run_ids": [
"<string>"
],
"step": 1,
"contact_ids": [
"<string>"
],
"dry_run": false,
"force": false,
"as_user_id": "<string>",
"limit": 200,
"signature": "<string>",
"sender_first_name": "<string>"
}
'import requests
url = "https://api.example.com/customer-intelligence/outreach-drafts/push-to-mailbox"
payload = {
"run_ids": ["<string>"],
"step": 1,
"contact_ids": ["<string>"],
"dry_run": False,
"force": False,
"as_user_id": "<string>",
"limit": 200,
"signature": "<string>",
"sender_first_name": "<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({
run_ids: ['<string>'],
step: 1,
contact_ids: ['<string>'],
dry_run: false,
force: false,
as_user_id: '<string>',
limit: 200,
signature: '<string>',
sender_first_name: '<string>'
})
};
fetch('https://api.example.com/customer-intelligence/outreach-drafts/push-to-mailbox', 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.example.com/customer-intelligence/outreach-drafts/push-to-mailbox",
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([
'run_ids' => [
'<string>'
],
'step' => 1,
'contact_ids' => [
'<string>'
],
'dry_run' => false,
'force' => false,
'as_user_id' => '<string>',
'limit' => 200,
'signature' => '<string>',
'sender_first_name' => '<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.example.com/customer-intelligence/outreach-drafts/push-to-mailbox"
payload := strings.NewReader("{\n \"run_ids\": [\n \"<string>\"\n ],\n \"step\": 1,\n \"contact_ids\": [\n \"<string>\"\n ],\n \"dry_run\": false,\n \"force\": false,\n \"as_user_id\": \"<string>\",\n \"limit\": 200,\n \"signature\": \"<string>\",\n \"sender_first_name\": \"<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.example.com/customer-intelligence/outreach-drafts/push-to-mailbox")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"run_ids\": [\n \"<string>\"\n ],\n \"step\": 1,\n \"contact_ids\": [\n \"<string>\"\n ],\n \"dry_run\": false,\n \"force\": false,\n \"as_user_id\": \"<string>\",\n \"limit\": 200,\n \"signature\": \"<string>\",\n \"sender_first_name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/customer-intelligence/outreach-drafts/push-to-mailbox")
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 \"run_ids\": [\n \"<string>\"\n ],\n \"step\": 1,\n \"contact_ids\": [\n \"<string>\"\n ],\n \"dry_run\": false,\n \"force\": false,\n \"as_user_id\": \"<string>\",\n \"limit\": 200,\n \"signature\": \"<string>\",\n \"sender_first_name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Copy Personal drafts into a person's own Outlook / Gmail Drafts folder.
For senders who write from their own mailbox rather than a campaign: the sequence step lands as a draft they read and send themselves. Nothing is sent. Step 1 is a new email; later steps are replies in the thread of the step-1 email the person already sent (skipped until it has been sent).
1 - 10 elements1 <= x <= 12500641 <= x <= 500100060Response
Successful Response
The response is of type Response Push Outreach Drafts To Mailbox Customer Intelligence Outreach Drafts Push To Mailbox Post · object.