curl --request POST \
--url https://api.pocketflows.com/campaign_templates/{id}/campaign_drafts \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"business": "<string>"
}
'import requests
url = "https://api.pocketflows.com/campaign_templates/{id}/campaign_drafts"
payload = { "business": "<string>" }
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({business: '<string>'})
};
fetch('https://api.pocketflows.com/campaign_templates/{id}/campaign_drafts', 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.pocketflows.com/campaign_templates/{id}/campaign_drafts",
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([
'business' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"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.pocketflows.com/campaign_templates/{id}/campaign_drafts"
payload := strings.NewReader("{\n \"business\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
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.pocketflows.com/campaign_templates/{id}/campaign_drafts")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"business\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pocketflows.com/campaign_templates/{id}/campaign_drafts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"business\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"business": "<string>",
"name": "<string>",
"segment": "<string>",
"steps": [
{
"type": "email",
"email_template_id": "<string>",
"custom_step_id": "<string>"
}
],
"email_address": "<string>",
"phone_number": "<string>",
"status": "draft",
"scheduled_at": "<string>",
"scheduled_end_at": "<string>",
"statistics": {
"emails": {
"sent": 123,
"delivered": 123,
"opened": 123,
"soft_bounced": 123,
"hard_bounced": 123,
"spam_reported": 123,
"clicked": 123
},
"custom_steps": [
{
"custom_step": "<string>",
"sent": 123
}
],
"executions": {
"total": 123,
"pending": 123,
"started": 123,
"finished": 123,
"errored": 123
},
"sms": {
"sms_sent_count": 123,
"sms_sent_segments_count": 123,
"mms_sent_count": 123,
"mms_sent_segments_count": 123
},
"total_customers_enrolled": 123,
"total_customers_started": 123,
"total_customers_finished": 123
},
"consumed_message_segments": {
"sms": 123,
"mms": 123,
"email": 123
},
"attributed_revenue": "<string>",
"metadata": {},
"enrolled_customers": [
"<string>"
],
"enrolled_customer_ids": [
"<string>"
],
"estimated_message_segments": {
"sms": 123,
"mms": 123,
"email": 123
}
}Create a campaign from a campaign template
curl --request POST \
--url https://api.pocketflows.com/campaign_templates/{id}/campaign_drafts \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"business": "<string>"
}
'import requests
url = "https://api.pocketflows.com/campaign_templates/{id}/campaign_drafts"
payload = { "business": "<string>" }
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({business: '<string>'})
};
fetch('https://api.pocketflows.com/campaign_templates/{id}/campaign_drafts', 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.pocketflows.com/campaign_templates/{id}/campaign_drafts",
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([
'business' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"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.pocketflows.com/campaign_templates/{id}/campaign_drafts"
payload := strings.NewReader("{\n \"business\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
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.pocketflows.com/campaign_templates/{id}/campaign_drafts")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"business\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pocketflows.com/campaign_templates/{id}/campaign_drafts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"business\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"business": "<string>",
"name": "<string>",
"segment": "<string>",
"steps": [
{
"type": "email",
"email_template_id": "<string>",
"custom_step_id": "<string>"
}
],
"email_address": "<string>",
"phone_number": "<string>",
"status": "draft",
"scheduled_at": "<string>",
"scheduled_end_at": "<string>",
"statistics": {
"emails": {
"sent": 123,
"delivered": 123,
"opened": 123,
"soft_bounced": 123,
"hard_bounced": 123,
"spam_reported": 123,
"clicked": 123
},
"custom_steps": [
{
"custom_step": "<string>",
"sent": 123
}
],
"executions": {
"total": 123,
"pending": 123,
"started": 123,
"finished": 123,
"errored": 123
},
"sms": {
"sms_sent_count": 123,
"sms_sent_segments_count": 123,
"mms_sent_count": 123,
"mms_sent_segments_count": 123
},
"total_customers_enrolled": 123,
"total_customers_started": 123,
"total_customers_finished": 123
},
"consumed_message_segments": {
"sms": 123,
"mms": 123,
"email": 123
},
"attributed_revenue": "<string>",
"metadata": {},
"enrolled_customers": [
"<string>"
],
"enrolled_customer_ids": [
"<string>"
],
"estimated_message_segments": {
"sms": 123,
"mms": 123,
"email": 123
}
}Authorizations
Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.
Path Parameters
The ID of the campaign template
Body
The business ID
Response
The created Campaign object
The ID of the campaign
The time when the campaign was created in ISO 8601 format
The time when the campaign was last updated in ISO 8601 format
The ID of the business
The name of the campaign
The segment attached to the campaign
The steps of the campaign
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
- Option 6
Show child attributes
Show child attributes
The email address used to send emails in the campaign. Will be the ID of an email-like object
The phone number used to send SMS messages in the campaign. Will be the ID of a phone number-like object
The status of the campaign.
draft, scheduled, started, stopped, finished The time when the campaign is scheduled to start in ISO 8601 format
The time when the campaign is scheduled to end in ISO 8601 format
The statistics of the campaign. Includes information about customers enrolled, email statistics, and custom step statistics
Show child attributes
Show child attributes
The number of message segments actually used by the campaign
Show child attributes
Show child attributes
The revenue attributed to the campaign
Arbitrary metadata associated with this campaign
The customers enrolled in the campaign
The IDs of the customers enrolled in the campaign
The number of message segments estimated to be used by the campaign
Show child attributes
Show child attributes