Personalize Campaign Email
curl --request POST \
--url https://api.example.com/api/v1/campaigns/{campaign_id}/personalize \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"campaign_lead_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"step_index": 1,
"variant_label": "<string>",
"sender_profile_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://api.example.com/api/v1/campaigns/{campaign_id}/personalize"
payload = {
"campaign_lead_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"step_index": 1,
"variant_label": "<string>",
"sender_profile_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
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({
campaign_lead_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
job_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
step_index: 1,
variant_label: '<string>',
sender_profile_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://api.example.com/api/v1/campaigns/{campaign_id}/personalize', 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/api/v1/campaigns/{campaign_id}/personalize",
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([
'campaign_lead_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'job_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'step_index' => 1,
'variant_label' => '<string>',
'sender_profile_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
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/api/v1/campaigns/{campaign_id}/personalize"
payload := strings.NewReader("{\n \"campaign_lead_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"job_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"step_index\": 1,\n \"variant_label\": \"<string>\",\n \"sender_profile_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\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/api/v1/campaigns/{campaign_id}/personalize")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"campaign_lead_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"job_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"step_index\": 1,\n \"variant_label\": \"<string>\",\n \"sender_profile_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/campaigns/{campaign_id}/personalize")
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 \"campaign_lead_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"job_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"step_index\": 1,\n \"variant_label\": \"<string>\",\n \"sender_profile_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"campaign_lead_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"personalized_subject": "<string>",
"personalized_body": "<string>",
"sender_email": "<string>",
"recipient_email": "<string>",
"credits_consumed": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}campaign-personalization
Personalize Campaign Email
Generate personalized email content for a campaign lead.
This endpoint is called by the Worker Lambda (via internal API key) or directly by authenticated users (via JWT).
POST
/
api
/
v1
/
campaigns
/
{campaign_id}
/
personalize
Personalize Campaign Email
curl --request POST \
--url https://api.example.com/api/v1/campaigns/{campaign_id}/personalize \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"campaign_lead_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"step_index": 1,
"variant_label": "<string>",
"sender_profile_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://api.example.com/api/v1/campaigns/{campaign_id}/personalize"
payload = {
"campaign_lead_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"step_index": 1,
"variant_label": "<string>",
"sender_profile_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
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({
campaign_lead_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
job_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
step_index: 1,
variant_label: '<string>',
sender_profile_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://api.example.com/api/v1/campaigns/{campaign_id}/personalize', 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/api/v1/campaigns/{campaign_id}/personalize",
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([
'campaign_lead_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'job_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'step_index' => 1,
'variant_label' => '<string>',
'sender_profile_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
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/api/v1/campaigns/{campaign_id}/personalize"
payload := strings.NewReader("{\n \"campaign_lead_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"job_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"step_index\": 1,\n \"variant_label\": \"<string>\",\n \"sender_profile_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\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/api/v1/campaigns/{campaign_id}/personalize")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"campaign_lead_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"job_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"step_index\": 1,\n \"variant_label\": \"<string>\",\n \"sender_profile_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/campaigns/{campaign_id}/personalize")
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 \"campaign_lead_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"job_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"step_index\": 1,\n \"variant_label\": \"<string>\",\n \"sender_profile_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"campaign_lead_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"personalized_subject": "<string>",
"personalized_body": "<string>",
"sender_email": "<string>",
"recipient_email": "<string>",
"credits_consumed": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Path Parameters
Body
application/json
Request to personalize email content for a campaign lead.
The campaign lead ID
The outbound job ID
The step index in the campaign
Required range:
x >= 0The variant label for A/B testing
The sender profile ID to use
Response
Successful Response
Response containing personalized email content.
The outbound job ID
The campaign lead ID
Personalized email subject
Personalized email body (HTML)
Sender email from profile
Recipient email address
Credits consumed for personalization
⌘I