> ## Documentation Index
> Fetch the complete documentation index at: https://docs.octasend.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Comunicações

> Mensagens multicanal e multilíngues: canais, idiomas, versões com rascunho e publicação, tradução e edição com IA, variações de WhatsApp e envio de teste

Uma **comunicação** é um evento do seu negócio, como "boas-vindas", "pedido-confirmado" ou "senha-redefinida", com o conteúdo pronto para cada canal e cada idioma em que ele pode ser enviado. Seu sistema, suas automações e suas integrações disparam a comunicação pelo **slug**. A OctaSend escolhe o conteúdo certo para cada destinatário e faz a entrega.

As comunicações ficam em **Comunicações → Templates**, no menu lateral.

## Como uma comunicação é organizada

| Nível | O que é | Exemplo |
| - | - | - |
| Comunicação | O evento, identificado pelo slug | `pedido-confirmado` |
| Canal | Um conteúdo para cada canal em que o evento é enviado | E-mail, WhatsApp |
| Idioma | Um conteúdo para cada idioma daquele canal | `pt-BR`, `en` |
| Versão | Variantes do conteúdo de um idioma. Só uma fica publicada por vez | "Versão 1", "Black Friday" |

Qualquer usuário da sua conta pode criar, editar, ativar, desativar e excluir comunicações.

## Criar uma comunicação

**1. Abra a lista**

Em **Comunicações → Templates**, clique em **Nova Comunicação**.

**2. Preencha os dados**

| Campo | Obrigatório | Regras |
| - | - | - |
| Nome | Sim | Mínimo de 2 caracteres. É o rótulo que aparece no painel |
| Slug | Sim | Mínimo de 2 caracteres. Só aceita letras minúsculas, números, hífen (`-`) e sublinhado (`_`). Não pode se repetir na sua conta |
| Descrição | Não | Texto livre para uso interno. Aparece na lista, ao lado do slug |

**3. Crie**

Clique em **Criar Comunicação**. O painel abre a tela da comunicação, onde você adiciona os canais.

> [!TIP]
>
> O slug é gerado a partir do nome quando você sai do campo **Nome**: sem acentos, em minúsculas e com hífen no lugar dos espaços ("Pedido Confirmado" vira `pedido-confirmado`). Ele é gerado de novo toda vez que você sai do campo Nome, então ajuste o slug por último.

Se o slug já existir na sua conta, a comunicação não é criada e o painel mostra o erro.

> [!NOTE]
>
> O slug é o valor do campo `communication_slug` do endpoint [Enviar mensagens](https://docs.octasend.com.br/api-reference/enviar-mensagens.md).

## Editar nome e slug

Na tela da comunicação, clique no lápis (**Editar nome e slug**) ao lado do título. Enquanto você digita o slug, letras maiúsculas viram minúsculas e caracteres não aceitos viram hífen. Nome e slug não podem ficar vazios. A descrição não pode ser alterada depois da criação.

Trocar só o nome salva direto. Ao trocar o slug, antes de salvar o painel confere se alguma [automação](https://docs.octasend.com.br/plataforma/automacoes.md) usa a comunicação num passo de envio, com as mesmas regras da exclusão:

| Situação | O que acontece |
| - | - |
| Nenhuma automação usa a comunicação | O painel pede confirmação, lembrando que as integrações de API que enviam com o slug antigo deixam de funcionar |
| Usada por uma automação ativa | A troca é bloqueada, com o nome das automações. Troque a comunicação no passo de envio e publique de novo, ou pause a automação, antes de trocar o slug |
| Usada só por automações pausadas ou em rascunho | A confirmação avisa quais automações usam a comunicação: se forem ativadas sem trocar a comunicação, não vão conseguir enviar |
| Não foi possível conferir | Nada é salvo e o painel pede para tentar de novo |

> [!WARNING]
>
> Trocar o slug de uma comunicação que já está em uso interrompe quem dispara pelo slug antigo: chamadas da API passam a receber `Communication not found`. O mapeamento de eventos das integrações de e-commerce continua funcionando, porque ele aponta para a comunicação e não para o slug.

## Status e exclusão

A lista mostra, para cada comunicação, o nome, o slug, a descrição, o status (**Ativo** ou **Inativo**) e a data da última atualização. Uma comunicação inativa não é disparada: a API responde `404 Communication not found`, as automações e as integrações que a usam param de enviar, e ela não aparece para escolha nas automações.

Toda comunicação nasce ativa. Para desativar ou ativar de novo, use a chave **Comunicação** (**Ativa** ou **Inativa**) no topo da tela da comunicação:

* **Ativar** vale na hora.
* **Desativar** pede confirmação em **Desativar a comunicação?**, que explica o efeito nos envios pela API, nas automações e nas integrações. Confirme em **Desativar comunicação**. Nada é apagado, e você pode ativar de novo quando quiser.

Para parar de enviar só num canal ou num idioma, remova o canal ou despublique as versões dele (veja **Canais** e **Versões, rascunho e publicação**, mais abaixo).

Para excluir, clique na lixeira da comunicação na lista. Antes de pedir a confirmação, o painel confere se alguma [automação](https://docs.octasend.com.br/plataforma/automacoes.md) usa a comunicação num passo de envio:

| Situação | O que acontece |
| - | - |
| Nenhuma automação usa a comunicação | O painel pede confirmação em **Remover "nome"?** |
| Usada por uma automação ativa | A exclusão é bloqueada, com o nome das automações. Troque a comunicação no passo de envio e publique de novo, ou pause a automação, antes de excluir |
| Usada só por automações pausadas ou em rascunho | A confirmação avisa quais automações usam a comunicação: se forem ativadas sem trocar a comunicação, não vão conseguir enviar |

A exclusão não pode ser desfeita e:

* apaga todos os canais, idiomas, versões e variações de WhatsApp da comunicação;
* remove o mapeamento de eventos das integrações de e-commerce que usavam essa comunicação;
* mantém o histórico de envios em [Logs de mensagens](https://docs.octasend.com.br/plataforma/logs-de-mensagens.md).

## Canais

Na tela da comunicação, a seção **Canais** mostra um cartão para cada canal liberado para a sua conta. Canais não liberados não aparecem. Para usar outro canal, fale com a OctaSend.

* Cartão tracejado com **+ Adicionar canal**: o canal ainda não existe nesta comunicação. Clique para adicioná-lo.
* Cartão preenchido: o canal já existe e mostra quantos idiomas tem (por exemplo, "2 idioma(s) · Clique para editar"). Clique para abrir os idiomas e as versões.

Um canal só participa do envio quando tem uma versão publicada em algum idioma. Canal sem versão publicada não é enviado e aparece em Logs como **Ignorada**, com o motivo.

Para remover um canal, clique na lixeira no canto do cartão dele e confirme em **Remover canal**. Todos os idiomas e versões do canal são apagados, sem volta, e os envios da comunicação deixam de sair por ele, inclusive nas automações que enviam só por esse canal. Para parar de enviar sem apagar nada, despublique as versões dos idiomas desse canal, ou limite os canais no envio com o campo `channels` da API.

| Canal (rótulo no painel) | O que você edita | Guia do canal |
| - | - | - |
| Email | Assunto, corpo em texto simples ou no builder visual, header, footer e design system | [E-mail](https://docs.octasend.com.br/guias/email.md) |
| WhatsApp | Sequência de mensagens com texto, mídia, áudio, botões, lista ou carrossel | [WhatsApp](https://docs.octasend.com.br/guias/whatsapp.md) |
| Telegram | Mensagem em HTML ou MarkdownV2, mídia e botões inline | [Telegram](https://docs.octasend.com.br/guias/telegram.md) |
| Slack | Texto (mrkdwn), Block Kit e aparência do bot | [Slack](https://docs.octasend.com.br/guias/slack.md) |
| Push Notification (Navegador) | Título, corpo, URL de destino, ícone e imagem | [Web Push](https://docs.octasend.com.br/guias/web-push.md) |
| In-app (dentro da aplicação) | Título, corpo, URL ao clicar, categoria, ícone e imagem | [Widget in-app](https://docs.octasend.com.br/api-reference/widget-in-app.md) |
| Push Notification (Mobile) | Título da notificação e mensagem | — |
| SMS | Mensagem | — |

## Idiomas

Ao abrir um canal, você vê a tela **Templates por idioma**. Em **Adicionar idioma** aparecem os idiomas que o canal ainda não tem:

| Idioma | Código |
| - | - |
| Português (Brasil) | `pt-BR` |
| English | `en` |
| Español | `es` |
| Français | `fr` |
| Deutsch | `de` |
| Italiano | `it` |
| 日本語 | `ja` |
| 中文 | `zh` |

Clicar num idioma abre o editor. O idioma só passa a existir no canal quando você grava a primeira versão: com **Salvar rascunho**, ela nasce **Não publicada**; com **Publicar**, já nasce publicada.

Cada idioma aparece como um grupo que abre e fecha, com a quantidade de versões. O português vem primeiro e os demais em ordem alfabética. Dentro do grupo, a tabela mostra **Título**, **Assunto** (só no e-mail), **Atualizado em** e **Status** (**Publicada** ou **Não publicada**, mais o aviso **Alterações não publicadas** quando a versão tem rascunho), com a versão publicada no topo e as outras da mais recente para a mais antiga. Clique numa linha para abrir a versão.

### Qual idioma chega ao destinatário

A cada envio, a OctaSend procura uma versão **publicada** do canal nesta ordem e usa a primeira que encontrar:

1. O idioma informado no envio (campo `language` da API).
2. A base desse idioma. Para `pt-BR`, tenta `pt`.
3. O **Idioma padrão** da sua conta.
4. O **Idioma de fallback** da sua conta.
5. `en`.

Se nenhum desses idiomas tiver versão publicada:

* e o canal tiver **exatamente uma** versão publicada, em qualquer idioma, é ela que vai;
* e o canal tiver **duas ou mais** versões publicadas em outros idiomas, o canal não é enviado. O envio desse canal aparece em [Logs de mensagens](https://docs.octasend.com.br/plataforma/logs-de-mensagens.md) com o status **Ignorada** e o motivo `No template found for any language`. A OctaSend prefere não enviar a mandar a mensagem num idioma escolhido ao acaso.

O envio real usa sempre o conteúdo **publicado** da versão. Um rascunho salvo nunca é usado nos envios pela API, pelas automações ou pelas integrações: só o **Enviar teste** usa o rascunho.

O Idioma padrão e o Idioma de fallback ficam em **Configurações → Geral**. Veja [Configurações](https://docs.octasend.com.br/plataforma/configuracoes.md).

> [!TIP]
>
> Mantenha, em todo canal, uma versão publicada no Idioma padrão da sua conta. Assim, nenhum destinatário fica sem mensagem por causa do idioma.

## Versões, rascunho e publicação

Cada idioma pode ter várias versões, mas só uma fica **publicada**, e é ela que vai nos envios. No topo do editor, uma barra lista as versões do idioma com o nome, o status (**Publicada** ou **Não publicada**) e, quando a versão tem rascunho, o aviso **Alterações não publicadas**. Clique no nome para abrir outra versão.

No fim do formulário ficam três botões:

| Botão | O que faz |
| - | - |
| **Publicar** | Grava o conteúdo do editor na versão e faz dela a publicada do idioma. A versão que estava publicada deixa de estar. Os próximos envios já usam o conteúdo novo, e o rascunho da versão é limpo |
| **Salvar rascunho** | Grava o que está no editor sem mudar os envios. Numa versão publicada, o conteúdo fica num rascunho e os envios continuam usando o que está publicado. Numa versão não publicada, o conteúdo é gravado nela, que continua fora dos envios |
| **Enviar teste** | Envia a versão aberta para o destinatário de teste, com o rascunho salvo, se houver (veja [Enviar teste](#enviar-teste)) |

Teclar **Enter** num campo de uma linha, como o **Assunto**, salva o rascunho. Publicar só acontece pelo botão.

Ao abrir uma versão, o editor mostra o que está salvo nela: o rascunho, quando existe, por cima do conteúdo publicado. Dois avisos explicam a situação:

* **Você tem alterações não publicadas**: a versão publicada tem um rascunho. O aviso mostra quando ele foi salvo e lembra que os envios continuam usando a versão publicada até você publicar.
* **Esta versão não está publicada**: o aviso diz qual versão do idioma está nos envios ou, se nenhuma estiver publicada, que é preciso publicar esta para ela ser usada.

As outras ações da versão:

* **Descartar rascunho**: aparece nos avisos quando a versão tem rascunho. Depois da confirmação, o editor volta ao conteúdo salvo da versão.
* **Despublicar**: aparece ao lado do status da versão publicada. Enquanto nenhuma versão do idioma estiver publicada, os envios passam a usar outro idioma, se houver (veja **Qual idioma chega ao destinatário**, acima).
* **Nova versão**: cria uma cópia do que está salvo na versão aberta, rascunho incluído, com o nome "nome da versão (cópia)", **Não publicada** e sem rascunho próprio. O botão fica disponível depois que a versão é gravada pela primeira vez.
* **Excluir**: a lixeira aparece só nas versões não publicadas. Para excluir a versão publicada, publique outra antes ou despublique-a.
* **Título da versão**: nome interno para você identificar a versão. Não é enviado ao destinatário.

> [!TIP]
>
> Para preparar uma mudança sem afetar quem está recebendo, edite a versão publicada, use **Salvar rascunho**, confira com **Enviar teste** e só então clique em **Publicar**. Se desistir, use **Descartar rascunho**.

Se houver alterações não salvas, o painel pede confirmação antes de abrir outra versão, criar uma nova versão, despublicar, excluir uma versão ou usar **Copiar de**, porque essas ações descartam o que não foi salvo.

As variações de WhatsApp geradas por IA pertencem a cada versão. Uma versão criada com **Nova versão** começa sem variações e com o recurso desligado.

## Variáveis

Os campos de conteúdo aceitam variáveis no formato `{{nome_da_variavel}}`: assunto, preheader, título, corpo, mensagens e mídias do WhatsApp, URL da mídia do Telegram, Block Kit do Slack e as URLs do Web Push e do In-app. O valor vem do campo `variables` do envio pela API, ou dos dados que a automação ou a integração passam.

Não aceitam variáveis: os botões inline do Telegram (texto, URL e callback\_data) e a aparência do bot no Slack (nome e ícone). Uma variável escrita nesses campos chega como está ao destinatário.

* O nome da variável aceita letras, números, sublinhado e ponto, sem espaços dentro das chaves. Escreva `{{nome}}`, não `{{ nome }}`.
* Uma variável que não foi enviada chega **literalmente** ao destinatário (por exemplo, `{{nome}}`). A exceção são as variáveis de conteúdo dos produtos (`produto.conteudo.*`), que ficam vazias quando faltam. Veja [Conteúdo rico](https://docs.octasend.com.br/plataforma/conteudo-rico.md).
* No corpo HTML do e-mail, o valor da variável entra como texto: um HTML dentro do valor aparece como texto na mensagem, e as quebras de linha viram quebras de linha.
* Se o **Assunto** do e-mail ou o **Título** de uma notificação ficar vazio, a mensagem sai com o nome da comunicação no lugar.

## Editor de cada canal

O editor de um idioma mostra, no título, a comunicação, o canal e o idioma. Os botões **Publicar**, **Salvar rascunho** e **Enviar teste** ficam no fim do formulário.

> [tab] E-mail
>
> * **Assunto**: linha de assunto do e-mail.
> * **Preheader**: o texto de prévia que a caixa de entrada mostra ao lado do assunto. Aceita variáveis e é preenchido sozinho quando você importa um layout que já traz um. No envio, ele entra no e-mail como texto oculto, no lugar do preheader oculto que o HTML já trazia, inclusive quando o layout o esconde pela folha de estilo ou com `max-height: 0` e `opacity: 0`. Blocos visíveis do layout, como um "Ver no navegador", não são alterados. Com o campo vazio, o e-mail sai com o que o HTML tiver.
> * **Corpo**: escolha entre **Texto simples** (editor de texto com formatação) e **Builder** (editor visual por blocos: Texto, Título, Imagem, Botão, Divisor, Espaçador, Redes sociais e HTML).
>
> Ao trocar de **Texto simples** para **Builder** com conteúdo já escrito, o painel pergunta **Trocar para o builder?**. O conteúdo atual vira um bloco de HTML, que você pode editar ou substituir por blocos. Voltando para **Texto simples**, você vê o HTML gerado pelo builder, e editar esse HTML à mão não muda o layout do builder.
>
> Estes seletores valem para o e-mail inteiro:
>
> | Seletor | Opções |
> | - | - |
> | Header do email | **Padrão (automático por idioma)**: usa o header padrão do mesmo idioma ou, se não houver, o padrão para todos os idiomas. **Nenhum**. **Escolher template...** |
> | Footer do email | As mesmas opções do header |
> | Design system | **Padrão do tenant** (o design system padrão da sua conta), **Nenhum** ou **Escolher design system...**. Só aparece no **Builder**, porque o design system não se aplica ao texto simples |
>
> No builder, os três seletores ficam no painel de configurações do próprio builder. No texto simples, o header e o footer ficam num quadro abaixo do editor. Headers e footers são criados em **Configurações → Templates de Email**, e os design systems em **Configurações → Design System** (veja [Design system](https://docs.octasend.com.br/plataforma/design-system.md)).
>
> No **Builder**, o corpo segue também a seção **E-mail** do design system escolhido: largura, cor de fundo do e-mail, cor de fundo do conteúdo e cor dos links. Um valor definido no painel de configurações do builder vale por cima do design system; apague o valor para voltar a seguir o design system. Templates criados antes dessa regra mantêm os valores que já tinham.
>
> Abaixo do editor, o **Preview do email** mostra o corpo já com o header e o footer escolhidos. A versão em texto puro do e-mail é gerada a partir do HTML quando você salva o rascunho ou publica.

> [tab] WhatsApp
>
> O conteúdo do WhatsApp é uma **sequência de mensagens** enviadas uma depois da outra. Cada mensagem tem o **Texto da mensagem**, com uma barra de formatação (negrito, itálico, tachado, código, monoespaçado, lista, lista numerada e citação), e um **Tipo de mensagem**:
>
> | Tipo | Regras |
> | - | - |
> | Texto | O texto é obrigatório |
> | Mídia (imagem/vídeo/arquivo) | URL `https`, uma variável ou upload. O texto vira a legenda |
> | Áudio | URL `https`, uma variável ou upload (MP3 ou OGG). O texto, se houver, vai logo depois do áudio |
> | Botões | De 1 a 3 botões do tipo Resposta, Link ou Ligar, com até 20 caracteres de texto cada. Link exige URL `https` ou variável, e Ligar exige telefone |
> | Lista de opções | Texto do botão obrigatório, até 10 seções com título e de 1 a 10 itens cada |
> | Carrossel (sequência de mídias) | De 1 a 10 cards, cada um com mídia e até 2 botões de link. Cada card chega como uma mensagem de imagem separada, e os botões viram links na legenda |
>
> * Use **Adicionar mensagem à sequência** para incluir mensagens. As setas mudam a ordem e a lixeira remove. A sequência tem no mínimo uma mensagem.
> * Entre duas mensagens, **Esperar** define os segundos de pausa (padrão de 1 segundo). Cada pausa é limitada a 30 segundos e a soma das pausas a 60 segundos por sequência. Depois disso, as mensagens restantes saem sem pausa. A pausa só vale quando as duas mensagens saem na hora (Meta, ou Evolution com a fila desativada). Com a fila da Evolution ativa, a pausa não é aplicada: cada mensagem da sequência entra na fila e sai no ritmo dela, que respeita o **Intervalo mínimo entre envios** do canal WhatsApp, quando configurado (veja [WhatsApp](https://docs.octasend.com.br/guias/whatsapp.md)). Se você mudar esse intervalo, as mensagens que já esperavam na fila passam a sair no ritmo novo.
> * O texto de cada mensagem é cortado em 3.800 caracteres, já com as variáveis preenchidas. Ao cortar, a mensagem termina com "\[…continua]".
> * Botões e listas dependem do aparelho do destinatário. Se o envio falhar, a mensagem é reenviada como texto com opções numeradas.
> * A **Prévia** ao lado mostra a sequência como no WhatsApp.
> * Ao salvar o rascunho ou publicar, cada mensagem é validada. Um erro aparece como "Mensagem N: motivo" e nada é gravado.
>
> **Por qual número a mensagem sai.** A conexão de WhatsApp é escolhida nesta ordem, da mais específica para a mais geral:
>
> 1. A conexão da mensagem, pelo ícone de conexão de cada mensagem da sequência.
> 2. **Enviar esta mensagem por**, na versão (opção **Herdar da comunicação** para não definir).
> 3. **Conexão padrão desta comunicação**, na aba **Configurações** do canal WhatsApp da comunicação (opção **Usar padrão do canal** para não definir).
> 4. A conexão padrão do canal WhatsApp da sua conta.
>
> Veja também as diferenças entre Meta e Evolution em [Enviar mensagens](https://docs.octasend.com.br/api-reference/enviar-mensagens.md) e a configuração do canal em [WhatsApp](https://docs.octasend.com.br/guias/whatsapp.md).

> [tab] Telegram
>
> * **Mensagem (ou legenda da mídia)**: obrigatória.
> * **Parse Mode**: **HTML** (padrão), **MarkdownV2** ou **Nenhum (texto puro)**. Em HTML, use tags como `<b>`, `<i>`, `<code>` e `<a href="...">`.
> * **Desabilitar preview de links**: desliga a prévia de links na mensagem.
> * **Mídia (opcional)**: Foto, Vídeo, Documento, Áudio ou Animação (GIF), com a URL da mídia. A URL aceita variáveis.
> * **Botões Inline (opcional)**: organizados em linhas. Cada botão tem um texto e **uma URL ou um callback\_data**, não os dois. Os botões não aceitam variáveis.

> [tab] Slack
>
> * **Mensagem (texto)**: obrigatória. Aceita mrkdwn (`*negrito*`, `_itálico_`, código) e variáveis.
> * **Block Kit (opcional)**: cole o JSON do array de blocks. Se preenchido, substitui a mensagem de texto na entrega, e o texto passa a servir de texto alternativo. Variáveis funcionam em qualquer campo de texto dos blocos, sempre entre aspas (`"{{nome}}"`).
>
>   O campo é conferido ao salvar o rascunho ou publicar, e nada é gravado enquanto houver erro:
>
>   * o conteúdo precisa ser um JSON válido, começando com `[`. Quando não é, o erro aponta a linha e a coluna do problema, como você as vê no campo;
>   * o array precisa ter pelo menos um bloco, e cada bloco precisa ser um objeto com o campo `"type"`;
>   * o objeto inteiro copiado do Block Kit Builder (`{"blocks": [...]}`) é recusado: cole só o array que está em `"blocks"`;
>   * para enviar só o texto, deixe o campo vazio.
> * **Aparência do bot (opcional)**: **Nome do bot** e um ícone, por **Emoji do ícone** ou por **URL do ícone** (um ou outro). Nome e ícone só funcionam se o bot do Slack tiver a permissão `chat:write.customize` e não aceitam variáveis.

> [tab] Web Push
>
> Para o canal **Push Notification (Navegador)**:
>
> * **Corpo** é obrigatório. O **Título** vem marcado como obrigatório, mas se ficar vazio a notificação sai com o nome da comunicação. Os dois aceitam variáveis.
> * Campos opcionais: **URL de destino** (aberta ao clicar na notificação), **Ícone** (192×192 px recomendado) e **Imagem de destaque** (440×240 px recomendado).

> [tab] In-app
>
> Para o canal **In-app (dentro da aplicação)**:
>
> * Preencha **Título** e **Corpo**. Aceitam variáveis. Título vazio sai com o nome da comunicação.
> * **URL ao clicar**, **Categoria** (Info, Sucesso, Aviso ou Erro), **URL do ícone** e **URL da imagem**: opcionais.
> * A tela mostra uma prévia da notificação na lista de notificações e no aviso flutuante (toast).
>
> Veja como instalar o widget em [Widget in-app](https://docs.octasend.com.br/api-reference/widget-in-app.md).

> [tab] Push Mobile e SMS
>
> * **Push Notification (Mobile)**: **Título da notificação** e **Mensagem**.
> * **SMS**: **Mensagem**.

## Importar o layout do e-mail de uma página

No editor de e-mail, **Importar do Claude Design** traz um layout pronto para o corpo do e-mail. O layout pode vir de três lugares:

* **Escolher arquivo .html**: o HTML baixado da página.
* **Ou cole o HTML**: o conteúdo colado direto.
* **Cole o link da página do layout** e clique em **Salvar e Importar**. Serve qualquer página pública, não só o Claude Design.

Antes de aplicar, o painel mostra uma prévia, os avisos da leitura (por exemplo, estilos do `<head>` descartados) e as variáveis encontradas no HTML. O HTML passa por uma limpeza de segurança. Ao clicar em **Aplicar no e-mail**:

* o corpo passa para o **Builder**, com o layout inteiro num bloco HTML;
* se o e-mail já tinha conteúdo, o painel pede confirmação em **Substituir o conteúdo atual?**, e a substituição não pode ser desfeita;
* o **Assunto** e o **Preheader** são preenchidos com os da página, quando ela traz esses dados. Se não trouxer, os seus são mantidos;
* se a versão já foi gravada antes, o layout é salvo na hora como rascunho ("Layout importado e salvo no rascunho."), junto com o restante do que está no editor. Os envios só passam a usar o layout novo depois que você clicar em **Publicar**. Se a gravação falhar, o layout continua no editor e o painel pede para usar **Salvar rascunho**.

Numa versão já gravada, o link fica salvo assim que você o envia, mesmo que a leitura da página falhe. Numa versão nova, ele é gravado junto com o primeiro salvamento. Da próxima vez, o mesmo diálogo mostra o **Link salvo** com os botões **Atualizar Layout** (lê a versão mais recente da página e passa pelo mesmo caminho do rascunho) e **Trocar Link**.

### Status da integração de templates de e-mail

Na lista de comunicações, o botão **Status integração de templates de e-mail** abre um painel com todos os e-mails que têm link de layout salvo. Cada linha é uma comunicação e cada coluna é um idioma. A célula mostra o assunto (ou "Sem assunto"), o link, a data da última leitura do layout (ou "Nunca integrado") e o nome da versão. Quando a versão tem rascunho, o assunto e a data são os do rascunho, e a célula mostra **Alterações não publicadas**. Quando um idioma tem mais de uma versão com link, a célula mostra a integrada mais recentemente.

* Busque por nome da comunicação, assunto ou link.
* O lápis ao lado do link edita o endereço (só links http ou https).
* A data abre o editor daquele idioma.
* **Atualizar HTML** lê de novo o layout de cada idioma da comunicação e grava na versão mostrada na célula (a integrada mais recentemente), junto com o assunto e o preheader quando a página os traz. As outras versões do idioma com link não são atualizadas.

**Atualizar HTML** segue a mesma regra do **Salvar rascunho**, sem publicar nada sozinho:

* Numa versão **publicada**, o layout novo entra no rascunho dela, junto com as outras alterações que o rascunho já tinha. Os envios continuam com o conteúdo publicado até você abrir a versão no editor e clicar em **Publicar**. O aviso ao terminar diz quantos idiomas ficaram no rascunho ("publique no editor para valer nos envios"). Se o layout lido for igual ao publicado, nenhum rascunho é criado: só a data da leitura muda.
* Numa versão **não publicada**, o layout é gravado na própria versão, que continua fora dos envios.

## Editar com IA (e-mail)

No editor de e-mail, **Editar com IA** abre uma conversa em que você pede mudanças em linguagem natural, como "deixe mais formal" ou "adicione um parágrafo convidando para o evento". A IA altera só o que o pedido exige, preserva as variáveis `{{...}}` e responde explicando o que fez. As mudanças entram no editor, e só ficam gravadas quando você clica em **Salvar rascunho** ou **Publicar**.

| | Texto simples | Builder |
| - | - | - |
| O que a IA pode mudar | Assunto e corpo em HTML | Assunto e o texto dos blocos existentes |
| Layout | Pode mudar a estrutura quando o pedido pede | Não cria, não remove e não reordena blocos. Pedidos de layout são respondidos com a orientação de fazer no builder |
| Imagens | Até 5 por mensagem, pelo botão de anexo ou colando com Ctrl+V. JPEG, PNG, GIF ou WEBP, até 5 MB cada. A IA insere a imagem no e-mail ou usa como referência, conforme o pedido | Não disponível |

As imagens anexadas ficam hospedadas num endereço público, para poderem aparecer no e-mail.

No builder, se a IA devolver textos que não batem com os blocos do layout, o corpo não é alterado. Só a resposta da IA aparece na conversa (e o assunto é aplicado, se ela o mudou). Peça de novo.

## Copiar e traduzir entre idiomas

Quando o canal já tem conteúdo em outro idioma, o editor mostra uma barra com duas opções.

**Copiar de**: traz para o editor o conteúdo salvo de uma versão de outro idioma (com o rascunho dela, se houver), no lugar do que está na tela. Vem só o conteúdo: assunto, preheader, corpo, mensagens e as opções do canal. Continuam os da versão aberta o **Título da versão**, a conexão de WhatsApp, o header, o footer, o design system e o link do layout importado. Se houver alterações não salvas, o painel pede confirmação antes. Nada é gravado até você salvar o rascunho ou publicar.

**Traduzir de** e **Traduzir com IA**: traduz para o idioma do editor o conteúdo da **versão publicada** do idioma de origem. Um rascunho da origem não entra na tradução. Se o idioma de origem não tiver versão publicada, o painel mostra "Template de origem não encontrado".

* São traduzidos o assunto, o título, o corpo (texto, HTML ou os textos dos blocos do builder) e o texto de cada mensagem da sequência do WhatsApp.
* Não são traduzidos: o preheader, o Block Kit do Slack, os botões e os cards do WhatsApp, os botões do Telegram e as URLs.
* As variáveis `{{...}}` e as tags HTML são mantidas.
* No e-mail montado no builder, a tradução mantém o layout e troca só os textos. Se a origem usa o builder e o destino está em texto simples, o destino passa a usar o layout da origem, traduzido, e o texto simples anterior é substituído. Se a origem usa texto simples e o destino usa o builder, o corpo não é aplicado e o painel avisa.
* No WhatsApp, os textos traduzidos entram nas mensagens que já estão no editor. Para levar a estrutura (mídia, botões, lista) junto, use primeiro **Copiar de** e depois **Traduzir com IA**.

Ao terminar, o painel mostra "Tradução aplicada. Revise e salve." A tradução só fica gravada quando você salva o rascunho ou publica.

Se a IA devolver a tradução incompleta (faltando o assunto, o corpo, algum texto dos blocos do builder ou alguma mensagem da sequência do WhatsApp, ou com um desses textos vazio no lugar de um que tinha conteúdo na origem), nada é aplicado e o painel mostra o erro "A tradução veio incompleta: a IA não devolveu … Nada foi alterado. Tente de novo."

> [!TIP]
>
> Revise o texto antes de salvar. Se aparecer o erro de tradução incompleta, basta clicar em **Traduzir com IA** de novo.

## Variações de WhatsApp com IA

Para reduzir o risco de bloqueio do número por mensagens repetidas, cada versão de WhatsApp pode ter um conjunto de variações do texto geradas por IA. O quadro **Conteúdo gerado por IA** aparece no editor do WhatsApp depois que a versão é gravada pela primeira vez.

**1. Grave o texto**

As variações partem do texto gravado da primeira mensagem da sequência. Numa versão publicada, é o texto **publicado**: um rascunho só entra depois de publicado. Numa versão não publicada, é o último texto salvo com **Salvar rascunho**.

**2. Ligue o recurso**

Marque a caixa no quadro **Conteúdo gerado por IA**. O rótulo passa de **Desativado** para **Ativado**. Só com a caixa marcada aparecem o botão de geração e a lista de variações.

**3. Gere as variações**

Clique em **Gerar 50 variações**. As variações novas entram no conjunto. Com o conjunto já criado, o botão vira **Gerar mais 50 variações** e acrescenta novas, sem apagar as anteriores.

**4. Revise**

Cada variação pode ser editada (**Salvar**) ou removida (**Excluir**). **Limpar todas** remove o conjunto inteiro, com confirmação.

Regras da geração:

* Cada variação mantém o sentido, o tom e as informações do texto original, com saudação, ordem e palavras diferentes.
* Variações repetidas, inclusive em relação às que já existem, são descartadas.
* Variações que alterem ou removam alguma variável `{{...}}` são descartadas.
* Por isso, uma geração pode trazer menos de 50. A mensagem de confirmação mostra quantas foram criadas.
* Se o texto base estiver vazio, a geração é recusada com "A mensagem base está vazia".
* Se você mudar o texto depois de gerar, o quadro avisa que algumas variações podem ter vindo do texto anterior. Gere mais com o texto atual, ou edite e exclua as desatualizadas.

Como as variações são usadas no envio:

* Com o recurso **Ativado** e o conjunto preenchido, a primeira mensagem da sequência sai com uma variação no lugar do texto original. As demais mensagens da sequência não mudam.
* A escolha é por rodízio: vai sempre a variação usada há mais tempo, então todas são usadas antes de alguma se repetir.
* Com o recurso **Desativado** ou o conjunto vazio, sai o texto original.
* Numa conexão Meta, uma sequência de uma única mensagem de texto sai sempre com o texto original, porque usa o template aprovado da conexão.

## Enviar teste

O botão **Enviar teste** envia a versão aberta para um destinatário de teste, sem precisar integrar a API.

**1. Configure o destinatário de teste**

Em **Configurações → Geral**, preencha o quadro **Destinatário de Teste**: **Destinatário (user\_id)**, **E-mail**, **Telefone (com DDI)** e **Push token (Push Mobile)**. Os dados são salvos automaticamente neste navegador, separados por usuário e por conta.

**2. Salve o rascunho**

O teste usa o que está **salvo** na versão, rascunho incluído, e não o que está só na tela. Para testar uma mudança sem colocá-la nos envios, clique em **Salvar rascunho** e depois em **Enviar teste**. Uma versão que nunca foi gravada não pode ser testada.

**3. Clique em Enviar teste**

O painel mostra "Teste enviado com sucesso via" seguido do código do canal (por exemplo, "Teste enviado com sucesso via email.") ou o motivo da falha, canal por canal.

Regras do teste:

* Envia só o canal e o idioma do editor, e a versão que está aberta, mesmo que ela não esteja publicada. Se a versão tiver rascunho, o teste leva o rascunho. Só o teste usa o rascunho: os envios reais continuam com o conteúdo publicado.
* É enviado sem variáveis, então os marcadores `{{...}}` chegam como estão.
* É um envio real: passa pela configuração do canal, aparece em [Logs de mensagens](https://docs.octasend.com.br/plataforma/logs-de-mensagens.md) e conta no **Limite diário de mensagens** da conta (veja [Configurações](https://docs.octasend.com.br/plataforma/configuracoes.md)). Com o limite do dia atingido, o teste falha com "Limite diário de mensagens atingido".
* Se o canal não estiver configurado na sua conta, o teste não é enviado, não fica registrado em [Logs de mensagens](https://docs.octasend.com.br/plataforma/logs-de-mensagens.md) e o painel mostra o motivo `Canal não configurado`.
* No WhatsApp por conexão Evolution com a fila ativa, o teste é enfileirado e o painel mostra "Nenhum canal processado. Verifique o template e a configuração do canal.", mesmo com a mensagem na fila. Confira o resultado em [Logs de mensagens](https://docs.octasend.com.br/plataforma/logs-de-mensagens.md), onde o envio aparece como **Enfileirada** até sair.
* Se o destinatário de teste não tiver o dado que o canal exige, o teste é recusado com o dado que falta:

| Canal | Dado usado do destinatário de teste |
| - | - |
| Email | E-mail |
| WhatsApp e SMS | Telefone |
| Telegram | Telefone ou user\_id |
| Push Notification (Navegador) e In-app | user\_id |
| Slack | E-mail. Sem ele, só entrega se o canal do Slack tiver um canal padrão ou um webhook configurado |
| Push Notification (Mobile) | Push token: o endpoint ARN do aparelho no AWS SNS. Sem ele, o teste desse canal é recusado |

## Limite de uso da IA

Tradução, **Editar com IA** e geração de variações consomem o limite de tokens de IA da sua conta. Quando o limite é atingido, a ação é bloqueada com a mensagem "Limite de tokens de IA atingido. Contate o administrador para aumentar o limite." Se o limite acabar no meio de uma geração de variações, as que já foram criadas são mantidas.

## Onde a comunicação é usada

> [card] [API](https://docs.octasend.com.br/api-reference/enviar-mensagens.md)
>
> O endpoint `send-message` dispara pelo slug, com as variáveis, o idioma e, se quiser, os canais.

> [card] [Automações](https://docs.octasend.com.br/plataforma/automacoes.md)
>
> O passo de envio escolhe uma comunicação ativa e os canais dela.

> [card] [Integrações de e-commerce](https://docs.octasend.com.br/integracoes/nuvemshop.md)
>
> Cada evento da loja é ligado a uma comunicação no mapeamento da integração.

> [card] [Logs de mensagens](https://docs.octasend.com.br/plataforma/logs-de-mensagens.md)
>
> Cada envio fica registrado com o canal, o idioma e o status.

> [!NOTE]
>
> As campanhas criadas pelo painel não usam comunicações: a mensagem é escrita na própria campanha. Veja [Campanhas](https://docs.octasend.com.br/plataforma/campanhas.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.