No post anterior, definimos o próximo passo da Caetano’s: fazer o WhatsApp iniciar um processo fora da conversa.
Hoje vamos construir essa ponte com Evolution API + n8n.
Quando o cliente enviar ENCOMENDA, o fluxo registrará a solicitação numa planilha e responderá pedindo os detalhes.
> Nota sobre a escolha da ferramenta: usamos a Evolution API como recurso de ensino, porque ela permite visualizar com clareza a chegada da mensagem, o webhook e o envio da resposta. Em uma operação real, o WhatsApp também pode ser integrado pela solução oficial da Meta — a WhatsApp Business Platform (Cloud API) — ou por provedores oficiais. Faremos um post separado para comparar os caminhos, sem tratar esta implementação didática como recomendação universal de produção.
Sem prompt.
Sem LLM.
Sem agente.
## O fluxo
```text
Cliente envia "ENCOMENDA" no WhatsApp
↓
Evolution API dispara MESSAGES_UPSERT
↓
Webhook do n8n recebe a mensagem
↓
Regras filtram e validam
↓
Google Sheets registra a solicitação
↓
Evolution API responde no WhatsApp
```
O registro será uma solicitação, não um pedido confirmado.
## Antes de começar
Você precisa de:
- uma instância conectada na Evolution API
- uma API key armazenada com segurança
- um n8n acessível por HTTPS
- uma planilha Google
Os nomes dos campos podem mudar entre versões da Evolution API. Por isso, o primeiro passo é capturar um evento real e inspecionar o payload antes de mapear expressões.
## Parte 1 — Prepare o n8n
### 1. Crie o workflow
1. Crie o fluxo WhatsApp — Encomendas Caetano’s.
2. Adicione um nó Webhook.
3. Método: POST.
4. Path: caetanos-whatsapp.
5. Configure para responder imediatamente com status 200.
6. Copie a URL de produção.
### 2. Configure o webhook na Evolution API
Na instância da Caetano’s, configure a URL do n8n e habilite o evento:
```text
MESSAGES_UPSERT
```
Na API, a configuração é feita pelo endpoint de webhook da instância. A interface e o corpo podem variar conforme a versão; confirme na documentação da instalação.
Não habilite todos os eventos “por garantia”. Para este fluxo, queremos mensagens novas.
### 3. Capture uma mensagem real
Ative o modo de teste do Webhook e envie ENCOMENDA de outro número para o WhatsApp conectado.
No payload, identifique:
- ID único da mensagem
- número/JID do remetente
- indicador fromMe
- texto da mensagem
- tipo de mensagem
- instância
Não copie expressões de tutorial sem olhar o seu payload. O formato muda e uma mensagem pode aparecer como texto simples, texto estendido ou outro tipo.
## Parte 2 — Filtre antes de agir
Logo depois do Webhook, adicione filtros:
1. ignore mensagens com fromMe = true
2. ignore grupos (`remoteJid` terminado em @g.us)
3. aceite somente texto neste primeiro laboratório
4. normalize o conteúdo: remova espaços e converta para maiúsculas
5. continue somente se o texto for ENCOMENDA
Ignorar mensagens enviadas pelo próprio número evita que a resposta automática volte ao webhook e crie um loop.
## Parte 3 — Registre a solicitação
Crie uma planilha com:
```text
id_evento
data_recebimento
telefone
origem
assunto
status
```
No nó Google Sheets:
- use o ID da mensagem como id_evento
- grave o telefone sem o sufixo do WhatsApp
- use whatsapp como origem
- use encomenda como assunto
- use aguardando_detalhes como status
Prefira Append or Update usando id_evento como chave. Se a Evolution API reenviar o mesmo evento, o fluxo não deve criar outra solicitação.
Critério desta etapa: uma mensagem cria uma linha; repetir o mesmo payload não cria duas.
## Parte 4 — Responda pelo WhatsApp
Depois do registro, adicione um HTTP Request:
```text
POST {URL_DA_EVOLUTION}/message/sendText/{NOME_DA_INSTANCIA}
```
Headers:
```text
apikey: SUA_CHAVE
Content-Type: application/json
```
Body:
```json
{
"number": "NUMERO_NORMALIZADO",
"textMessage": {
"text": "Recebemos sua solicitação de encomenda. Envie, por favor: produto desejado, quantidade, data e se será retirada ou entrega. A encomenda só será confirmada após validação da equipe."
}
}
```
Guarde URL, instância e API key nas credenciais ou variáveis do n8n. Não espalhe segredo em vários nós.
## Parte 5 — Trate a falha com honestidade
Não envie a confirmação antes de saber que a linha foi registrada.
Se a planilha falhar:
- registre o erro no n8n
- avise a equipe por um canal separado
- não diga ao cliente que a solicitação foi salva
Uma resposta segura seria:
> Não conseguimos registrar sua solicitação automaticamente. Nossa equipe continuará o atendimento por este WhatsApp.
E isso só deve ser dito se existe alguém acompanhando o canal.
## Parte 6 — Teste ponta a ponta
Execute:
1. envie ENCOMENDA de outro número
2. confirme a execução no n8n
3. confira a linha na planilha
4. confira a resposta no WhatsApp
5. reenvie manualmente o mesmo payload e verifique a idempotência
6. envie CARDÁPIO e confirme que este fluxo não registra encomenda
7. envie mensagem pelo próprio número e confirme que fromMe é ignorado
8. teste uma mensagem em grupo e confirme que ela é ignorada
9. desative a planilha ou remova temporariamente a credencial para observar a falha
Se ENCOMENDA vira uma solicitação única e recebe resposta sem intervenção manual, a primeira automação da Caetano’s está funcionando.
## O que construímos
Usamos:
- WhatsApp como canal
- Evolution API como ponte
- n8n como orquestrador
- Google Sheets como registro
Ainda não entendemos frases livres.
Se o cliente escrever “quero um bolo para sábado”, este fluxo não deveria fingir que reconheceu ENCOMENDA. Ele conhece uma palavra exata.
Isso é limitação — e também previsibilidade.
## O limite desta prática
Uma execução verde não prova produção.
A Evolution API pode reenviar eventos. A credencial pode vencer. O n8n pode responder para a própria mensagem. A planilha pode cair. O WhatsApp pode trazer áudio, imagem ou texto em formatos diferentes.
No próximo post, vamos colocar essa automação sob pressão: duplicidade, loops, credenciais, falhas externas, logs e retries.
Até lá.
Comentários
Faça login para comentar e reagir.
Carregando comentários...