Campanha — Email¶
Entidade email da campanha. Este é o payload de email enviado quando a campanha é executada.
Endpoint¶
| Método | URL |
|---|---|
POST |
/campaign/<campaign>/email |
PUT |
/campaign/<campaign>/email |
DELETE |
/campaign/<campaign>/email |
POST /campaign/<campaign>/email¶
Nota
O payload deve ser enviado como multipart/form-data para acomodar o parâmetro attachment.
| Parâmetro | Tipo | Descrição |
|---|---|---|
header_from_name |
string | Nome do remetente legível por humanos |
header_from |
string | Email do remetente. O domínio deve estar activo como domínio de envio. |
subject |
string | Assunto da mensagem |
message |
string | HTML da mensagem |
block_editor_content |
string (opcional) | JSON para conteúdo do editor de blocos (apenas Froala) |
attachment |
ficheiro (opcional) | Anexo, submetido como <input type="file"> |
Devolve: A campanha e o email editados.
Example:
curl -u "username:api_key" -H "Accept: application/json" \
-F "header_from_name=My Brand" \
-F "header_from=noreply@yourdomain.com" \
-F "subject=Newsletter #1" \
-F "message=<html><body><p>Hello {{name}}</p></body></html>" \
https://app.duo.pt/campaign/{campaign_id}/email
Response:
{
"success": true,
"data": {
"email": {
"envelope_from_domain": null,
"header_from_name": "Example...",
"header_from": "sender@yourdomain.com",
"subject": "Summer Newsletter 2026",
"message": "<html><body><p>Hello {{name}}</p></body></html>",
"attachment": null,
"memoizedAttachment": null,
"send_scheduled": 1
}
}
}
PUT /campaign/<campaign>/email¶
Os mesmos campos que o POST. Os parâmetros devem ser enviados como query string (não como body), e devem incluir send_scheduled com o ID da campanha.
| Parâmetro | Tipo | Descrição |
|---|---|---|
send_scheduled |
int | O ID da campanha. Obrigatório no PUT. |
header_from_name |
string | Nome do remetente |
header_from |
string | Email do remetente. O domínio deve ter is_sending: true. |
subject |
string | Assunto |
message |
string | HTML da mensagem |
block_editor_content |
string (opcional) | JSON do editor de blocos |
Devolve: A campanha e o email editados.
Exemplo:
curl -u "username:api_key" -H "Accept: application/json" -X PUT \
"https://app.duo.pt/campaign/{campaign_id}/email?send_scheduled={campaign_id}&header_from_name=My+Brand&header_from=noreply%40yourdomain.com&subject=Assunto+Atualizado&message=%3Chtml%3E%3Cbody%3EAtualizado%3C%2Fbody%3E%3C%2Fhtml%3E"
Resposta:
{
"success": true,
"data": {
"email": {
"envelope_from_domain": null,
"header_from_name": "My Brand",
"header_from": "noreply@yourdomain.com",
"subject": "Assunto Atualizado",
"message": "<html><body>Atualizado</body></html>",
"attachment": null,
"send_scheduled": 1,
"block_editor_type": null,
"block_editor_content": null
}
}
}
DELETE /campaign/<campaign>/email¶
Payload: Sem payload.
Devolve: O email eliminado.
Example:
curl -u "username:api_key" -H "Accept: application/json" -X DELETE \
https://app.duo.pt/campaign/{campaign_id}/email
Response:
{
"success": true,
"data": {
"email": {
"envelope_from_domain": null,
"header_from_name": "Example...",
"header_from": "sender@yourdomain.com",
"subject": "Summer Newsletter 2026",
"message": "<html><body><p>Hello {{name}}</p></body></html>",
"attachment": null,
"memoizedAttachment": null,
"send_scheduled": 1,
"block_editor_type": null,
"block_editor_content": null
}
}
}