Ir para o conteúdo

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
    }
  }
}