Pular para o conteúdo

API de Templates de E-mail

A API de Templates de E-mail gerencia os templates de e-mail reutilizáveis por trás das predefinições de e-mail de um aplicativo — os mesmos templates que você cria no editor de e-mail do Painel de Controle. Cada template 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 template através do Notify (payload de e-mail email_template) ou de um ponto de Envio de e-mail da Customer Journey.

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

Todos os endpoints são servidos via 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 seu token da API do Servidor:

Authorization: Api YOUR_API_TOKEN

Convenções

Anchor link to
  • Nomenclatura de campos: corpos de solicitação e parâmetros de consulta/caminho aceitam lowerCamelCase (por exemplo, previewSettings, searchByLabel, includeHtml) — o servidor decodifica qualquer um dos casos. 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 caso.
  • code: cada resposta de template carrega o código de sua predefinição de e-mail conectada, não um ID de template interno. Passe este mesmo código para Get, Update, Delete e para as APIs de mensagens/journey 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 template ainda usado por uma journey).
401 UnauthorizedCabeçalho de Autorização ausente ou inválido.
403 ForbiddenO aplicativo ou predefinição não pertence à conta do chamador.
404 Not FoundO template, predefinição ou aplicativo não foi encontrado.
500 Internal Server ErrorFalha inesperada no lado do servidor.
MétodoCaminhoDescrição
POST/api/email_templatesCriar um novo template de e-mail
GET/api/email_templatesListar os templates de e-mail de um aplicativo
GET/api/email_templates/{code}Obter um único template de e-mail
PUT/api/email_templates/{code}Atualizar um template de e-mail
DELETE/api/email_templates/{code}Excluir um template de e-mail
POST/api/email_templates:cloneClonar um template de e-mail em um aplicativo

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

POST /api/email_templates

Corpo da solicitação

Anchor link to
ParâmetroTipoObrigatórioDescrição
applicationstringSimO código do aplicativo Pushwoosh no qual criar o template.
namestringSimNome do template, 1–255 caracteres.
contentobjectSimO objeto de conteúdo de e-mail.
labelstringNãoRótulo de texto livre, até 255 caracteres.
categoriesarray of stringsNãoNomes de categoria para marcar o template.
previewSettingsobjectNãoConfigurações de visualização do editor arbitrárias, armazenadas e retornadas como estão.
systembooleanNãoMarca o template como um template de sistema — um recurso interno, por exemplo, um fragmento de bloco sincronizado. Templates de sistema são ocultados 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": "Welcome email",
"label": "onboarding",
"categories": ["lifecycle"],
"content": {
"senderInfo": {
"from": { "email": "hello@acme.com", "name": "Acme" },
"replyTo": { "email": "support@acme.com", "name": "Acme Support" }
},
"subject": { "en": "Welcome to Acme!", "default": "Welcome to Acme!" },
"pushwoosh": {
"html": "<html><body>Welcome, {name|string|there}!</body></html>",
"localizationData": { "default": { "name": "there" } }
}
}
}

Retorna { "email_template": { ... } } — o objeto de template 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 templates de e-mail de um aplicativo — 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 do aplicativo para o qual listar os templates.
orderBystringNãoNAME (padrão), CREATED ou UPDATED.
orderDirectionstringNãoASC (padrão) ou DESC.
pageintegerNãoÍndice de 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 template ou seu código — qualquer correspondência é suficiente.
searchByLabelstringNãoCorrespondência de substring no rótulo (like %label%), ou correspondência exata quando strictSearchByLabel é true.
strictSearchByLabelbooleanNãoUsar correspondência exata em vez de substring para searchByLabel.
searchByCategoryarray of stringsNãoRepita o parâmetro para filtrar por várias categorias, por exemplo, ?searchByCategory=lifecycle&searchByCategory=promo.
CampoTipoDescrição
email_templatesarray of objectsA página atual de objetos de template 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 templates que correspondem aos filtros, em todas as páginas.
Exemplo de resposta
Anchor link to
{
"email_templates": [
{ "code": "AAAAA-BBBBB", "name": "Welcome email", "label": "onboarding", "categories": ["lifecycle"] }
],
"page": 0,
"per_page": 100,
"total": 1
}

Retorna um único template de e-mail por 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 template (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 template.

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

Atualiza um template 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 template 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 completamente o conteúdo armazenado. Omita para deixar o conteúdo inalterado.
labelstringNãoNovo rótulo. Sempre sobrescrito — omita ou envie "" para limpá-lo.
categoriesarray of stringsNãoNovo conjunto completo de nomes de categoria. 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": "Welcome email v2",
"label": "onboarding",
"content": {
"senderInfo": { "from": { "email": "hello@acme.com", "name": "Acme" } },
"subject": { "default": "Welcome to Acme — updated!" },
"pushwoosh": {
"html": "<html>...</html>",
"localizationData": {}
}
}
}

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

Exclui um template 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 template a ser excluído.

Um objeto vazio em caso de sucesso: {}.

Clona um template de e-mail — seu conteúdo e predefinição — em um aplicativo 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 template (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 do aplicativo de destino. Pode ser o mesmo aplicativo ou um diferente pertencente à mesma conta.
namestringNãoNome para o clone, 1–255 caracteres. O padrão é o nome do template de origem.
Exemplo de solicitação
Anchor link to
{
"emailPresetCode": "AAAAA-BBBBB",
"application": "YYYYY-YYYYY",
"name": "Welcome email (copy)"
}
CampoTipoDescrição
email_preset_codestringO code do novo template — 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 qualquer um dos casos na entrada.

Objeto de template de e-mail

Anchor link to
CampoTipoDescrição
codestringCódigo da predefinição de e-mail conectada. Identifica este template em todos os outros lugares da API.
namestringNome do template.
labelstringRótulo de texto livre.
categoriesarray of stringsNomes de categoria.
contentobjectO objeto de conteúdo de e-mail. Preenchido apenas por Get; null nas respostas de Create, List e Update.
preview_settingsobjectConfigurações de visualização do editor arbitrárias.
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": "Subject", "default": "Subject" }.
unlayer / pushwoosh / smartcardsobjectO conteúdo do editor. Exatamente um destes deve ser definido — ele seleciona qual editor produziu (e renderizará) o template. 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 templates 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 próprio daquele 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 forma 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 localization_data pode incluir tags de Conteúdo Dinâmico, por exemplo, {name|string|there} — 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