Prévia de Público
curl --request POST \
--url https://api.selltrust.com.br/api/v1/email-campaign/audience/preview \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"audience": {},
"audience.match": "<string>",
"audience.rules": [
{}
]
}
'import requests
url = "https://api.selltrust.com.br/api/v1/email-campaign/audience/preview"
payload = {
"audience": {},
"audience.match": "<string>",
"audience.rules": [{}]
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({audience: {}, 'audience.match': '<string>', 'audience.rules': [{}]})
};
fetch('https://api.selltrust.com.br/api/v1/email-campaign/audience/preview', 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.selltrust.com.br/api/v1/email-campaign/audience/preview",
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([
'audience' => [
],
'audience.match' => '<string>',
'audience.rules' => [
[
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"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.selltrust.com.br/api/v1/email-campaign/audience/preview"
payload := strings.NewReader("{\n \"audience\": {},\n \"audience.match\": \"<string>\",\n \"audience.rules\": [\n {}\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
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.selltrust.com.br/api/v1/email-campaign/audience/preview")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"audience\": {},\n \"audience.match\": \"<string>\",\n \"audience.rules\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.selltrust.com.br/api/v1/email-campaign/audience/preview")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"audience\": {},\n \"audience.match\": \"<string>\",\n \"audience.rules\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"count": 128,
"total_customers": 940,
"excluded_unsubscribed": 3,
"excluded_other": 1,
"sample": [
"ana@exemplo.com",
"bruno@exemplo.com",
"carla@exemplo.com"
],
"limits": {
"per_minute": 10,
"per_hour": 120,
"per_day": 640
},
"estimated_minutes": 64,
"estimated_days": 0
}
Campanhas de email
Prévia de Público
POST
/
api
/
v1
/
email-campaign
/
audience
/
preview
Prévia de Público
curl --request POST \
--url https://api.selltrust.com.br/api/v1/email-campaign/audience/preview \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"audience": {},
"audience.match": "<string>",
"audience.rules": [
{}
]
}
'import requests
url = "https://api.selltrust.com.br/api/v1/email-campaign/audience/preview"
payload = {
"audience": {},
"audience.match": "<string>",
"audience.rules": [{}]
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({audience: {}, 'audience.match': '<string>', 'audience.rules': [{}]})
};
fetch('https://api.selltrust.com.br/api/v1/email-campaign/audience/preview', 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.selltrust.com.br/api/v1/email-campaign/audience/preview",
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([
'audience' => [
],
'audience.match' => '<string>',
'audience.rules' => [
[
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"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.selltrust.com.br/api/v1/email-campaign/audience/preview"
payload := strings.NewReader("{\n \"audience\": {},\n \"audience.match\": \"<string>\",\n \"audience.rules\": [\n {}\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
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.selltrust.com.br/api/v1/email-campaign/audience/preview")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"audience\": {},\n \"audience.match\": \"<string>\",\n \"audience.rules\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.selltrust.com.br/api/v1/email-campaign/audience/preview")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"audience\": {},\n \"audience.match\": \"<string>\",\n \"audience.rules\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"count": 128,
"total_customers": 940,
"excluded_unsubscribed": 3,
"excluded_other": 1,
"sample": [
"ana@exemplo.com",
"bruno@exemplo.com",
"carla@exemplo.com"
],
"limits": {
"per_minute": 10,
"per_hour": 120,
"per_day": 640
},
"estimated_minutes": 64,
"estimated_days": 0
}
Calcula, sem enviar nada, quantos clientes um público alcança agora. Devolve a contagem, uma amostra dos emails, quantos ficaram de fora e uma estimativa de quanto a fila leva para terminar.
Regras disponíveis:
type | Campos | Quem entra |
|---|---|---|
PURCHASED_LAST_DAYS | days | Comprou nos últimos N dias |
NOT_PURCHASED_LAST_DAYS | days | Já comprou, mas não nos últimos N dias |
NEVER_PURCHASED | — | Tem cadastro ou pedido na loja, mas nenhum pedido aprovado |
PURCHASED_PRODUCT | product_id | Comprou o produto (variações contam para o produto principal) |
PURCHASED_CATEGORY | category_id | Comprou algo da categoria (subcategorias contam) |
USED_COUPON | coupon_code | Usou o cupom em um pedido aprovado |
TOTAL_SPENT | operator (GT ou LT), value | Total gasto maior ou menor que o valor |
ORDER_COUNT | operator (GT ou LT), value | Número de pedidos aprovados maior ou menor que o valor |
Exige a permissão Gerenciar Marketing (
MANAGE_MARKETING) do usuário que criou o token. Veja Permissões do token.Exemplo de corpo
{
"audience": {
"match": "ALL",
"rules": [
{
"type": "PURCHASED_LAST_DAYS",
"days": 30
},
{
"type": "TOTAL_SPENT",
"operator": "GT",
"value": 300
}
]
}
}
{
"count": 128,
"total_customers": 940,
"excluded_unsubscribed": 3,
"excluded_other": 1,
"sample": [
"ana@exemplo.com",
"bruno@exemplo.com",
"carla@exemplo.com"
],
"limits": {
"per_minute": 10,
"per_hour": 120,
"per_day": 640
},
"estimated_minutes": 64,
"estimated_days": 0
}
