Pular para o conteúdo

API de Modelos de E-mail

A API de Modelos de E-mail gerencia os modelos de e-mail reutilizáveis por trás das predefinições de e-mail de uma aplicação — os mesmos modelos que você constrói no editor de e-mail do Painel de Controle. Cada modelo armazena assuntos por localidade, informações do remetente e conteúdo do editor, e é identificado pelo código da predefinição de e-mail à qual está conectado. Use esse código para enviar o modelo através do Notify (payload de e-mail email_template) ou de um ponto Enviar e-mail da Customer Journey.

https://rpc-api.svc-nue.pushwoosh.com

Todos os endpoints são servidos sobre HTTPS. As solicitações e respostas usam application/json, a menos que seja indicado o contrário.

Autenticação

Anchor link to

Cada solicitação deve incluir um cabeçalho Authorization com o seu token da API do Servidor:

Authorization: Api SEU_TOKEN_DE_API

Convenções

Anchor link to
  • Nomenclatura de campos: os corpos das solicitações e os parâmetros de consulta/caminho aceitam lowerCamelCase (por exemplo, previewSettings, searchByLabel, includeHtml) — o servidor decodifica ambos os formatos. As respostas são sempre codificadas usando os nomes de campo do proto, em snake_case (per_page, email_template, sender_info, preview_settings, e assim por diante). Os exemplos de resposta e a referência de objeto abaixo usam esse formato.
  • code: cada resposta de modelo carrega o código da sua predefinição de e-mail conectada, não um ID de modelo interno. Passe este mesmo código para Get, Update, Delete e para as APIs de mensagens/jornada acima.
  • Campos não preenchidos: as respostas incluem todos os campos, mesmo quando vazios ou com valor zero.

Respostas de erro

Anchor link to
Status HTTPSignificado
400 Bad RequestArgumento inválido — um campo obrigatório está ausente ou malformado, ou uma pré-condição falhou (por exemplo, excluir um modelo ainda usado por uma jornada).
401 UnauthorizedCabeçalho Authorization ausente ou inválido.
403 ForbiddenA aplicação ou predefinição não pertence à conta do chamador.
404 Not FoundO modelo, predefinição ou aplicação não foi encontrado.
500 Internal Server ErrorFalha inesperada no lado do servidor.
MétodoCaminhoDescrição
POST/api/email_templatesCriar um novo modelo de e-mail
GET/api/email_templatesListar os modelos de e-mail de uma aplicação
GET/api/email_templates/{code}Obter um único modelo de e-mail
PUT/api/email_templates/{code}Atualizar um modelo de e-mail
DELETE/api/email_templates/{code}Excluir um modelo de e-mail
POST/api/email_templates:cloneClonar um modelo de e-mail em uma aplicação

Cria um novo modelo de e-mail — seu conteúdo de editor mais uma predefinição de e-mail conectada — em uma aplicação, e retorna o código do modelo gerado.

POST /api/email_templates

Corpo da solicitação

Anchor link to
ParâmetroTipoObrigatórioDescrição
applicationstringSimO código da aplicação Pushwoosh para criar o modelo.
namestringSimNome do modelo, 1–255 caracteres.
contentobjectSimO objeto de conteúdo de e-mail.
labelstringNãoRótulo de texto livre, até 255 caracteres.
categoriesarray de stringsNãoNomes de categorias para marcar o modelo.
previewSettingsobjectNãoConfigurações arbitrárias de visualização do editor, armazenadas e retornadas como estão.
systembooleanNãoMarca o modelo como um modelo de sistema — um recurso interno, por exemplo, um fragmento de bloco sincronizado. Modelos de sistema são ocultos de List (veja a nota abaixo), mas permanecem acessíveis por código. O padrão é false.
Exemplo de solicitação
Anchor link to
{
"application": "XXXXX-XXXXX",
"name": "E-mail de boas-vindas",
"label": "onboarding",
"categories": ["ciclo de vida"],
"content": {
"senderInfo": {
"from": { "email": "ola@acme.com", "name": "Acme" },
"replyTo": { "email": "suporte@acme.com", "name": "Suporte Acme" }
},
"subject": { "en": "Bem-vindo à Acme!", "default": "Bem-vindo à Acme!" },
"pushwoosh": {
"html": "<html><body>Bem-vindo, {name|string|aí}!</body></html>",
"localizationData": { "default": { "name": "" } }
}
}
}

Retorna { "email_template": { ... } } — o objeto de modelo de e-mail criado, mas sem content (este endpoint não o retorna). Chame Get com o code retornado se precisar ler o conteúdo de volta.

Lista os modelos de e-mail de uma aplicação — apenas metadados, sem conteúdo — com paginação, ordenação e filtragem por nome, rótulo ou categoria.

GET /api/email_templates

Parâmetros de consulta

Anchor link to
ParâmetroTipoObrigatórioDescrição
applicationstringSimO código da aplicação para listar os modelos.
orderBystringNãoNAME (padrão), CREATED ou UPDATED.
orderDirectionstringNãoASC (padrão) ou DESC.
pageintegerNãoÍndice da página baseado em zero.
perPageintegerNãoTamanho da página. O padrão é 100 quando omitido ou 0. Este endpoint não impõe um máximo explícito.
searchByNamestringNãoCorrespondência de substring (like %value%) com o nome do modelo ou seu código — qualquer uma das correspondências é suficiente.
searchByLabelstringNãoCorrespondência de substring no rótulo (like %label%), ou correspondência exata quando strictSearchByLabel é true.
strictSearchByLabelbooleanNãoUsa correspondência exata em vez de substring para searchByLabel.
searchByCategoryarray de stringsNãoRepita o parâmetro para filtrar por várias categorias, por exemplo, ?searchByCategory=lifecycle&searchByCategory=promo.
CampoTipoDescrição
email_templatesarray de objetosA página atual de objetos de modelo de e-mail. content é null em todos os itens.
pageintegerO índice da página retornada.
per_pageintegerO tamanho da página usado para esta resposta.
totalintegerNúmero total de modelos que correspondem aos filtros, em todas as páginas.
Exemplo de resposta
Anchor link to
{
"email_templates": [
{ "code": "AAAAA-BBBBB", "name": "E-mail de boas-vindas", "label": "onboarding", "categories": ["ciclo de vida"] }
],
"page": 0,
"per_page": 100,
"total": 1
}

Retorna um único modelo de e-mail pelo seu código, incluindo informações do remetente, assuntos por localidade e o conteúdo completo do editor.

GET /api/email_templates/{code}

Parâmetros de caminho

Anchor link to
ParâmetroTipoDescrição
codestringO código do modelo (o código da predefinição de e-mail conectada).

Parâmetros de consulta

Anchor link to
ParâmetroTipoObrigatórioDescrição
includeHtmlbooleanNãoSe deve retornar o html renderizado junto com o conteúdo do editor. O padrão é true. Defina como false para ignorá-lo — geralmente representa mais da metade do payload, e o conteúdo do editor já descreve o modelo.

Retorna { "email_template": { ... } }, o objeto de modelo de e-mail completo.

Atualiza um modelo de e-mail existente por código, sobrescrevendo os campos fornecidos.

PUT /api/email_templates/{code}

Parâmetros de caminho

Anchor link to
ParâmetroTipoDescrição
codestringO código do modelo a ser atualizado.

Corpo da solicitação

Anchor link to
ParâmetroTipoObrigatórioDescrição
namestringNãoNovo nome, 1–255 caracteres. Omita para manter o nome atual.
contentobjectNãoNovo objeto de conteúdo de e-mail, substituindo o conteúdo armazenado por completo. Omita para deixar o conteúdo inalterado.
labelstringNãoNovo rótulo. Sempre sobrescrito — omita ou envie "" para limpá-lo.
categoriesarray de stringsNãoNovo conjunto completo de nomes de categorias. Omita para deixar as categorias inalteradas; envie [] para limpá-las.
previewSettingsobjectNãoNovas configurações de visualização. Omita para deixar inalterado.
Exemplo de solicitação
Anchor link to
{
"name": "E-mail de boas-vindas v2",
"label": "onboarding",
"content": {
"senderInfo": { "from": { "email": "ola@acme.com", "name": "Acme" } },
"subject": { "default": "Bem-vindo à Acme — atualizado!" },
"pushwoosh": {
"html": "<html>...</html>",
"localizationData": {}
}
}
}

Retorna { "email_template": { ... } } — o objeto de modelo de e-mail atualizado, também sem content. Chame Get se precisar ler o conteúdo de volta.

Exclui um modelo de e-mail e sua predefinição conectada por código, removendo o conteúdo armazenado.

DELETE /api/email_templates/{code}

Parâmetros de caminho

Anchor link to
ParâmetroTipoDescrição
codestringO código do modelo a ser excluído.

Um objeto vazio em caso de sucesso: {}.

Clona um modelo de e-mail — seu conteúdo e predefinição — em uma aplicação de destino, opcionalmente com um novo nome.

POST /api/email_templates:clone

Corpo da solicitação

Anchor link to
ParâmetroTipoObrigatórioDescrição
emailPresetCodestringSimO code do modelo (conforme retornado por Create, Get, List ou Update) a ser clonado. Nomeado emailPresetCode aqui porque é o código da predefinição de e-mail conectada — veja Convenções.
applicationstringSimCódigo da aplicação de destino. Pode ser a mesma aplicação ou uma diferente pertencente à mesma conta.
namestringNãoNome para o clone, 1–255 caracteres. O padrão é o nome do modelo de origem.
Exemplo de solicitação
Anchor link to
{
"emailPresetCode": "AAAAA-BBBBB",
"application": "YYYYY-YYYYY",
"name": "E-mail de boas-vindas (cópia)"
}
CampoTipoDescrição
email_preset_codestringO code do novo modelo — o mesmo identificador que Get/Update/Delete chamam de code.

Referência de objeto

Anchor link to

Os nomes dos campos abaixo correspondem ao que Get, List, Update e Create realmente retornam — nomes de campo do proto em snake_case (veja Convenções). Quando você envia essas mesmas estruturas de volta em um corpo de solicitação (Create, Update), a forma lowerCamelCase usada nos exemplos de solicitação acima também funciona; o servidor aceita ambos os formatos na entrada.

Objeto de modelo de e-mail

Anchor link to
CampoTipoDescrição
codestringCódigo da predefinição de e-mail conectada. Identifica este modelo em todos os outros lugares da API.
namestringNome do modelo.
labelstringRótulo de texto livre.
categoriesarray de stringsNomes das categorias.
contentobjectO objeto de conteúdo de e-mail. Preenchido apenas por Get; null nas respostas de Create, List e Update.
preview_settingsobjectConfigurações arbitrárias de visualização do editor.
createdstring (RFC 3339)Timestamp de criação.
updatedstring (RFC 3339)Timestamp da última atualização.

Objeto de conteúdo de e-mail

Anchor link to
CampoTipoDescrição
sender_infoobjectObjeto de informações do remetente — endereços from e reply_to.
subjectobject (map)Assunto por localidade, por exemplo, { "en": "Assunto", "default": "Assunto" }.
unlayer / pushwoosh / smartcardsobjectO conteúdo do editor. Exatamente um destes deve ser definido — ele seleciona qual editor produziu (e renderizará) o modelo. Veja tipos de editor abaixo.

Tipos de editor

Anchor link to
TipoCampoSubcampos obrigatóriosDescrição
unlayerhtml, localization_data, editor_configeditor_config, localization_dataEditor de blocos de arrastar e soltar (Unlayer). editor_config é o JSON de design do Unlayer.
pushwooshhtml, localization_datalocalization_dataEditor próprio da Pushwoosh baseado em HTML. Recomendado para modelos criados programaticamente/via API.
smartcardshtml, localization_data, contentcontent, localization_dataEditor de blocos Smart Cards; content é seu JSON específico do editor.

Em todos os tipos, html é a saída renderizada. localization_data é o conteúdo por localidade do próprio editor: um objeto com chaves de código de localidade (en, es, default, …), onde cada valor é a cópia daquela localidade dos campos do editor. Sua estrutura interna é específica do editor e opaca para esta API — a API a armazena e retorna como está. É obrigatório em Create/Update para todos os tipos (envie {} se não houver nada para localizar).

O texto dentro de html ou de um valor de localization_data pode incluir tags de Conteúdo Dinâmico, por exemplo, {name|string|aí} — elas são resolvidas com base nas Tags do dispositivo do destinatário quando o e-mail é efetivamente enviado. Esta API não as resolve; ela apenas armazena e retorna qualquer texto que você colocar lá.

Objeto de informações do remetente

Anchor link to
CampoTipoDescrição
fromobject{ "email": string, "name": string } — endereço do remetente.
reply_toobject{ "email": string, "name": string } — endereço de resposta.

Ambos os subcampos email, quando não vazios, devem ser endereços de e-mail válidos.

Relacionados

Anchor link to