Launch a campaign
curl --request POST \
--url https://app.manypi.com/api/outreach/campaigns/{id}/launch \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.manypi.com/api/outreach/campaigns/{id}/launch"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.manypi.com/api/outreach/campaigns/{id}/launch', 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://app.manypi.com/api/outreach/campaigns/{id}/launch",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.manypi.com/api/outreach/campaigns/{id}/launch"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.manypi.com/api/outreach/campaigns/{id}/launch")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.manypi.com/api/outreach/campaigns/{id}/launch")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"ok": true,
"campaign": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"status": "draft",
"sequence_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"smtp_config_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"reply_to": "<string>",
"daily_limit": 123,
"priority": 123,
"schedule_enabled": true,
"send_days": [
3
],
"send_from": "<string>",
"send_to": "<string>",
"timezone": "<string>",
"track_opens": true,
"inbox_strategy": "single",
"include_unsubscribe": true,
"require_verified": true,
"stats": {
"enrolled": 123,
"active": 123,
"completed": 123,
"sent": 123,
"failed": 123,
"opened": 123,
"replied": 123,
"bounced": 123,
"unsubscribed": 123,
"unsubscribed_sends": 123
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}{
"error": "<string>",
"code": "<string>",
"details": "<unknown>"
}{
"error": "<string>",
"code": "<string>",
"details": "<unknown>"
}{
"error": "<string>",
"code": "<string>",
"details": "<unknown>"
}{
"error": "<string>",
"code": "<string>",
"details": "<unknown>"
}{
"error": "This campaign is not ready to launch yet.",
"issues": [
{
"field": "inboxes",
"message": "Connect a sending inbox",
"tab": "settings"
}
]
}Outreach
Launch a campaign
Make a draft campaign live. This is the only way a draft starts sending. It checks everything at once: a sequence with written emails, a sending inbox, at least one lead, and a plan that can send. When something is missing the response is 409 with every issue listed.
Sending starts right away for leads already enrolled. An API key needs the Send outreach permission (outreach:send).
POST
/
api
/
outreach
/
campaigns
/
{id}
/
launch
Launch a campaign
curl --request POST \
--url https://app.manypi.com/api/outreach/campaigns/{id}/launch \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.manypi.com/api/outreach/campaigns/{id}/launch"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.manypi.com/api/outreach/campaigns/{id}/launch', 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://app.manypi.com/api/outreach/campaigns/{id}/launch",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.manypi.com/api/outreach/campaigns/{id}/launch"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.manypi.com/api/outreach/campaigns/{id}/launch")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.manypi.com/api/outreach/campaigns/{id}/launch")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"ok": true,
"campaign": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"status": "draft",
"sequence_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"smtp_config_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"reply_to": "<string>",
"daily_limit": 123,
"priority": 123,
"schedule_enabled": true,
"send_days": [
3
],
"send_from": "<string>",
"send_to": "<string>",
"timezone": "<string>",
"track_opens": true,
"inbox_strategy": "single",
"include_unsubscribe": true,
"require_verified": true,
"stats": {
"enrolled": 123,
"active": 123,
"completed": 123,
"sent": 123,
"failed": 123,
"opened": 123,
"replied": 123,
"bounced": 123,
"unsubscribed": 123,
"unsubscribed_sends": 123
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}{
"error": "<string>",
"code": "<string>",
"details": "<unknown>"
}{
"error": "<string>",
"code": "<string>",
"details": "<unknown>"
}{
"error": "<string>",
"code": "<string>",
"details": "<unknown>"
}{
"error": "<string>",
"code": "<string>",
"details": "<unknown>"
}{
"error": "This campaign is not ready to launch yet.",
"issues": [
{
"field": "inboxes",
"message": "Connect a sending inbox",
"tab": "settings"
}
]
}