Para imagem, áudio, vídeo e arquivo, veja Mídia.
POST /messages/text
Envia uma mensagem de texto livre. O envio é feito na hora: o 201 quer dizer que o
WhatsApp aceitou a mensagem.
Corpo
Resposta: 201
Erros
Lista completa em Erros.
Exemplo
O que acontece no projeto
- A mensagem aparece no chat do lead, do lado do agente (não como mensagem de um humano da equipe).
- Não pausa a IA. Se o lead responder, o agente responde. Para assumir a conversa, pause a IA antes pelo Controle da IA.
- Não agenda automações (follow-up, transbordo, webhook por inatividade). Ver Quando as automações disparam.
- Se o lead estava com o atendimento encerrado, o envio abre uma conversa nova.
- Quando a mensagem sai, os webhooks recebem
API_KEY_INTERACTION.
POST /messages/template
Envia um template da Meta aprovado. Na conexão não
oficial, envia o template de texto salvo no painel (sem aprovação). Se o número ainda
não é lead do projeto, o lead é criado no envio.
Corpo
Não há campo para os valores das variáveis: elas são preenchidas com os dados do lead.
Para um template com propriedade, preencha a propriedade antes pela
API de leads (
PATCH /leads/{numero}/properties). Lead criado neste mesmo
envio ainda não tem propriedades.
Resposta: 201
name é o nome do lead (ou o name enviado, se o lead não tinha nome).
Erros
Exemplo
O que acontece no projeto
- Lead novo: nasce na primeira coluna do funil, com o
nameenviado. Os webhooks recebemLEAD_CREATED. - O template aparece no chat do lead já preenchido. Os webhooks recebem
WA_TEMPLATEno envio eAPI_KEY_INTERACTIONna entrega. - Template não agenda automações.
- A Meta cobra o template pela categoria dele. Ver Quanto custa operar um projeto.
Armadilhas
- Texto para número novo dá 400. O primeiro contato com um número é sempre por template.
- Texto fora da janela dá 400 na conexão oficial. Teste a janela antes, ou mande template direto quando o último contato do lead tem mais de 24 horas.
- Template com propriedade vazia não sai. Ao criar o lead pelo template, use só
variáveis que todo lead tem (
{{nome}},{{telefone}}). namenão renomeia. Para lead que já existe, o nome continua o gravado.- O agente continua respondendo. Mensagem pela API não pausa a IA.
- Template não é “mensagem grátis”. Cada envio é cobrado pela Meta.
- Reenviar depois de timeout pode duplicar a mensagem. Confira o histórico antes.
Perguntas frequentes
Como sei se o lead está dentro da janela de 24h?
Como sei se o lead está dentro da janela de 24h?
A API não tem um campo direto. O fim da janela chega nos
webhooks em
lead.conversation_expires_in. Sem isso, tente o
texto e, se vier o 400 de janela vencida, envie um template.Dá para mandar um template com valores de variável que eu escolho?
Dá para mandar um template com valores de variável que eu escolho?
Não. As variáveis vêm dos dados do lead. Grave o valor numa propriedade do lead
(
PATCH /leads/{numero}/properties) e use {{slug-da-propriedade}} no template.Posso mandar texto para um número que nunca falou com o projeto?
Posso mandar texto para um número que nunca falou com o projeto?
Não. Envie um template primeiro; ele cria o lead. Na conexão oficial, só depois que o
lead responder a janela abre para texto livre.
Para saber mais
- Mídia, Erros, Identificar o lead
- Janela de 24h, Templates da Meta, Campanhas
- Meta: janela de atendimento, templates, preços
- Termos para buscar: “WhatsApp template message”, “customer service window”, “WhatsApp text formatting”.