Como fazer a IA do n8n responder com o seu catálogo no WhatsApp e parar de inventar preço

Se a IA do seu bot inventa preço, o problema não é o prompt, é a falta de fonte pra ler. O atendimento no WhatsApp com n8n para de alucinar quando você joga catálogo, preços e políticas dentro de um vector store e conecta esse nó ao tools connector do AI Agent, no modo Retrieve Documents (As Tool for AI Agent). A ingestão usa Default Data Loader e Embeddings OpenAI, e a consulta acontece na hora de responder. O System Message fecha a regra de só responder a partir da base. E o Simple Vector Store, pelo próprio n8n, serve só pra desenvolvimento
Fala aí, beleza? Poucas coisas dão mais aperto no peito que ver o teu bot inventando preço na frente do cliente 😅
A cena é sempre parecida: o fluxo tá de pé, a mensagem chega, o agente responde rapidinho e cita um plano que não existe em lugar nenhum
Isso não é bug do n8n, é o jeito que o modelo funciona
Sem uma fonte própria pra consultar, ele completa a frase com o que PARECE plausível, e plausível não é a tua tabela
A virada não vem de um prompt mais bonito, vem de dar pra ele de onde ler: teu catálogo, teus preços e tuas políticas dentro de um vector store, ligado direto no agente
Se o fluxo básico ainda nem existe aí, vale montar antes o bot de atendimento no WhatsApp e voltar pra cá
Bora ver como se liga o catálogo, e principalmente onde essa montagem costuma quebrar…
O que você precisa ter antes de ligar o catálogo no agente
Antes de sair arrastando nó na tela, confere se essas peças já existem
- n8n rodando: a versão self-hosted Community continua gratuita sob a Sustainable Use License, que é fair-code e não certificada pela OSI. Uso livre pros fins internos do teu próprio negócio. Só toma cuidado com um ponto: oferecer o n8n como serviço hospedado pra clientes pagantes exige licença comercial da n8n
- Credencial OAuth2 do WhatsApp: ela é criada a partir do app no Meta for Developers. Com o app selecionado, em App settings > Basic, você copia o App ID pro campo Client ID e o App Secret pro campo Client Secret da credencial no n8n
- Nó WhatsApp Business Cloud: é ele quem devolve a resposta pro cliente, com envio de mensagens e upload, download e exclusão de mídia
- Credencial de embeddings: sem ela não existe busca na base, é o que transforma teu texto em vetor
- O catálogo em TEXTO: produtos, preços e políticas escritos de verdade, não na tua cabeça e não espalhados em três grupos de WhatsApp
Formação Agentes de IA
Domine a criação de Agentes de IA e Venda para Empresas
- 402 aulas
- 32 projetos
- 38h 19min
Se a tua conexão com o WhatsApp segue outro caminho, já tratei do assunto no post sobre atendimento com provedores nacionais
Tem ainda uma decisão que não é detalhe de configuração: ONDE esses vetores vão morar
Essa é escolha de produção, e é o motivo número um de gente perder a base inteira depois 🙂
Passo a passo: conectando produtos, preços e políticas ao AI Agent do n8n
Antes do primeiro passo, uma ideia que organiza tudo o que vem a seguir
O n8n separa esse desenho (o famoso RAG) em duas fases: a ingestão, que carrega, divide e gera os embeddings dos documentos na base, e a consulta, em que o agente busca os trechos relevantes na hora de responder
São fases diferentes, com nós diferentes
Se você entender isso, metade dos erros deixa de acontecer
1. Escreva o catálogo como documento
Começa pelo mais chato e mais importante: transformar o que tá espalhado em um texto organizado, um item por bloco
PRODUTO: Curso de Python do Zero
PRECO: <valor da tabela vigente>
FORMA DE PAGAMENTO: <formas aceitas>
ACESSO: <tempo de acesso>
POLITICA DE REEMBOLSO: <regra escrita>
PRODUTO: Mentoria de Carreira
PRECO: <valor da tabela vigente>
...
O erro comum deste passo é jogar tudo em um parágrafo gigante, misturando cinco produtos e duas políticas
A base vai ser cortada em pedaços depois, e pedaço bagunçado devolve resposta bagunçada
2. Ingestão: nó de Vector Store no modo Insert Documents
Aqui é a fase de carregar
O nó de Vector Store tem quatro modos de operação: Get Many, Insert Documents, Retrieve Documents (As Vector Store for Chain/Tool) e Retrieve Documents (As Tool for AI Agent)
Pra colocar o catálogo lá dentro, o modo é o Insert Documents, com o Default Data Loader alimentando ele
E o loader tem dois modos:
- Simple: já vem com divisão pronta, usando o Recursive Character Text Splitter com chunk size de 1000 caracteres e overlap de 200
- Custom: permite conectar um text splitter próprio
Quer mexer no corte? O Recursive Character Text Splitter expõe os dois parâmetros que importam: Chunk Size (número de caracteres em cada pedaço) e Chunk Overlap (quanto de sobreposição entre eles)
O erro comum deste passo é confundir as fases e deixar o carregamento do catálogo dentro do MESMO fluxo que responde o cliente
Ingestão é uma coisa, consulta é outra
3. Gere os vetores com o nó Embeddings OpenAI
É o nó que traduz teu texto pra número, o formato que a busca entende
Ele já vem com um modelo padrão, o text-embedding-3-small, e expõe parâmetros como Base URL, Batch Size, Strip New Lines (ligado por padrão no n8n) e Timeout
O erro comum aqui aparece com catálogo grande: a execução morre no meio do carregamento
O campo Timeout aceita -1 pra rodar sem limite
4. Decida onde os vetores vão morar
Esse é o passo que separa demonstração de produção
O próprio n8n recomenda o Simple Vector Store apenas para desenvolvimento, porque ele guarda tudo em memória
E tem duas consequências que doem:
- os dados são perdidos quando o n8n reinicia, e podem ser descartados em situação de pouca memória
- as memory keys são globais na instância, então qualquer usuário da instância pode acessar os dados adicionando um Simple Vector Store e selecionando a chave, independente do controle de acesso do workflow original
Ou seja: teu catálogo e tuas políticas ficam ao alcance de quem mais usa aquela instância 😬
Pra base que fica de pé, o n8n tem nós dedicados: Pinecone, Qdrant, Supabase, PGVector, Weaviate, Milvus, Chroma e Azure AI Search
O erro comum deste passo é subir pro cliente com o Simple Vector Store porque "funcionou no teste"
5. Consulta: ligue o vector store no tools connector do AI Agent
Agora a fase de responder
A ligação é direta: AI Agent (tools connector) -> nó de Vector Store, com o nó no modo Retrieve Documents (As Tool for AI Agent)
E se liga nisso, que é o detalhe que quase ninguém conta: o agente usa a base quando o NOME e a DESCRIÇÃO da ferramenta batem com a pergunta
O erro comum deste passo é batizar a ferramenta de "base" ou "dados" e escrever uma descrição vaga
A ferramenta vira invisível pro agente e ele responde de cabeça, exatamente o que você queria evitar
6. Alternativa: Vector Store Question Answer Tool
Existe um nó de ferramenta específico que resume os trechos da base e responde perguntas a partir deles
A cadeia de conexão é: AI Agent (tools connector) -> Vector Store Question Answer Tool (Vector Store connector) -> nó de Vector Store
Nos parâmetros dele entram a descrição dos dados contidos na base e o número máximo de resultados
O erro comum deste passo tá na entrada: ela precisa ser uma pergunta completa
Mandar um pedaço solto de mensagem do cliente pra lá não é a mesma coisa que mandar a pergunta inteira
7. Feche a regra no System Message do AI Agent
A instrução que proíbe o agente de inventar entra pela opção System Message do nó AI Agent
Ela fica na seção Options, adicionada pelo seletor Add Option, no rodapé do painel do nó
É a mensagem enviada ao agente antes da conversa começar, usada pra guiar a decisão dele
Você é o atendente virtual da empresa no WhatsApp
Regras:
- Responda sobre produtos, preços e políticas SOMENTE com o que vier da base de conhecimento
- Se a informação não estiver na base, diga que vai confirmar com um humano e não estime valores
- Nunca deduza preço, prazo ou condição de pagamento a partir de produtos parecidos
- Consulte a base antes de responder qualquer pergunta sobre valores
O erro comum deste passo é tratar o System Message como substituto da base
Ele não inventa dado que não existe, ele só define o que fazer quando o dado não aparece
8. Devolva a resposta pelo nó WhatsApp Business Cloud
Última peça da corrente: o nó WhatsApp Business Cloud manda a resposta de volta pro cliente
Ele suporta envio de mensagens e upload, download e exclusão de mídia
E tem uma operação que salva a vida em fluxo de venda, a Send and Wait for a Response, que pausa a execução do workflow aguardando resposta
Bom pra quando o papo precisa de um "confirma pra mim?" antes de seguir
Qual caminho de consulta usar?
| Caminho | Como conecta | Quando faz sentido |
|---|---|---|
| Vector Store como tool | AI Agent (tools connector) -> Vector Store no modo Retrieve Documents (As Tool for AI Agent) | Agente decide sozinho quando consultar o catálogo |
| Vector Store Question Answer Tool | AI Agent (tools connector) -> QA Tool (Vector Store connector) -> Vector Store | Quando você quer os trechos resumidos em resposta, com número máximo de resultados |
| Question and Answer Chain | Q&A Chain (Retriever connector) -> Vector Store Retriever (Vector Store connector) -> Vector Store | Caminho sem agente, pergunta entra e resposta sai |
A IA ainda erra preço: sintomas comuns e o que checar no fluxo
Montou tudo e ainda tá estranho? Passa por essa lista antes de culpar o modelo
A base sumiu depois que o n8n reiniciou
Causa: Simple Vector Store, que guarda tudo em memória
Os dados são perdidos quando o n8n reinicia e podem ser descartados em situação de pouca memória
Solução: migrar pra um dos nós dedicados (Pinecone, Qdrant, Supabase, PGVector, Weaviate, Milvus, Chroma ou Azure AI Search) e rodar a ingestão de novo
Prevenção: tratar o Simple Vector Store como o que ele é, uma ferramenta de desenvolvimento
Os dados do catálogo apareceram pra outra pessoa da instância
Causa: no Simple Vector Store as memory keys são globais na instância
Qualquer usuário dela pode acessar os dados adicionando um Simple Vector Store e selecionando a chave, independente do controle de acesso do workflow original
Solução: tirar dado sensível de lá e usar um banco vetorial dedicado
Prevenção: nunca colocar política interna, margem ou tabela de desconto numa base em memória compartilhada
O agente ignora a base e responde de cabeça
Causa: o agente usa a base quando o nome e a descrição da ferramenta batem com a pergunta
Descrição genérica, ferramenta esquecida
Solução: reescrever a descrição dizendo exatamente o que tem ali (produtos, preços, prazos, política de reembolso) e reforçar no System Message que valores só saem da base
Prevenção: testar com as perguntas que o cliente manda de verdade, não com "me fale sobre o produto X"
O trecho certo existe na base mas não chega ao modelo
Causa: a ordem dos resultados da busca
Solução: dá pra reordenar os resultados antes de entregar ao modelo, com reranking
Ele está disponível nos modos Get Many, Retrieve Documents (As Vector Store for Chain/Tool) e Retrieve Documents (As Tool for AI Agent)
Prevenção: se habilitar, lembra que é OBRIGATÓRIO conectar um nó de reranking ao vector store, senão o fluxo não fecha
O fluxo parou de receber mensagem depois que você trocou de ambiente
Causa: o WhatsApp permite registrar apenas um webhook por app
Cada troca entre a URL de teste e a de produção (e vice-versa) faz o WhatsApp sobrescrever a URL de webhook registrada
Solução: registrar de novo a URL do ambiente que você quer usar
Prevenção: já me ferrei com esse tipo de coisa, então anota: teste e produção brigam pelo mesmo webhook, escolhe um e avisa a equipe
Além do catálogo: outras fontes que o agente pode consultar
O desenho é o mesmo, só muda de onde vem o dado
Sem agente, só pergunta e resposta: dá pra usar a base como retriever de uma chain, com Question and Answer Chain (Retriever connector) -> Vector Store Retriever (Vector Store connector) -> nó de Vector Store
É mais simples e mais previsível quando você não quer que o modelo decida nada
Dado que vive em planilha: a documentação do n8n traz um exemplo oficial de conversar com uma planilha do Google Sheets usando IA
O exemplo usa o Chat Trigger pra interface de conversa e o Call n8n Workflow Tool pra chamar um segundo workflow que consulta o Google Sheets
Ou seja, o agente não fala com a planilha na marra, ele chama outro fluxo que faz isso
Deixar o agente preencher o parâmetro sozinho: pra ele mandar o código do produto que quer consultar, o n8n oferece a função $fromAI()
{{ $fromAI('codigo_produto') }}
Duas regras que valem tatuar: a chave precisa ter de 1 a 64 caracteres e aceita apenas letras maiúsculas e minúsculas, números, underscores e hífens
E a função só está disponível para ferramentas conectadas ao nó AI Agent
Confirmação humana no meio do papo: o nó WhatsApp Business Cloud tem a operação Send and Wait for a Response, que pausa a execução do workflow aguardando resposta
Bom pra quando o fluxo precisa de um "confirma pra mim?" antes de seguir
O que aprendi montando um CRM de WhatsApp com IA do zero
No vídeo abaixo eu construo um CRM com WhatsApp e IA conversando com o Verdent, e a parte que mais conversa com este post é justamente a do contexto
Sem o conhecimento do negócio, a inteligência do sistema fica ampla demais e vira só mais um chatbot dentro do CRM
Foi o que eu percebi na prática, então alimentei a IA com o que a empresa é
Escrevi um contexto de identidade: um atendente comercial virtual de uma escola online, simpático e prestativo, que entende o que a pessoa procura, tira dúvidas e recomenda o produto mais adequado
Listei os cursos ali dentro pra ela ter o que oferecer, em vez de responder solta
E defini por escrito o comportamento esperado a cada mensagem recebida: responder de forma natural, classificar o quão quente é o lead, identificar o interesse principal e escrever um resumo curto da conversa
Outra decisão que mudou o jogo foi a ORDEM
Eu separei em dois passos: primeiro testei a IA sozinha, pra ver se ela respondia e se estava integrada, e só depois fui conectar o WhatsApp
Pra isso pedi no mesmo prompt um simulador de chat, uma forma de digitar uma mensagem de exemplo e ver a resposta na hora, sem depender do WhatsApp
Muito massa isso, porque quando algo quebra você sabe exatamente onde olhar
E quebrou: o primeiro teste da IA falhou com erro na conexão com o provedor, e eu não sabia se era a chave ou o backend
Devolvi o erro pra própria IA pedindo que identificasse a causa e corrigisse
Sobre a chave de API, um detalhe que vale pro teu fluxo também: ela não foi criada pelo assistente
Eu pedi o arquivo de variáveis de ambiente e a ferramenta se recusou por segurança, então criei o arquivo na mão, colei a chave e salvei
E aí, sempre que algo entra no arquivo de variáveis de ambiente, precisa reiniciar o servidor pro sistema considerar o novo valor
Outra coisa: eu não deixei a IA executar o plano inteiro de uma vez
Aprovei o planejamento e fui mandando uma etapa por vez, pra reduzir entrega mal acabada e evitar que ela mexesse em parte que eu não pedi
No primeiro prompt de construção eu já especifiquei critérios de design (cores, tipo de elementos e tipografia) pra não receber a interface no chute
O painel ficou em funil (novos, em conversa e qualificados) e a ideia era não mover contato na mão: a leitura das mensagens é que faria o lead avançar quando o interesse de compra ficasse claro
Manteve o MVP sem login e só com as três etapas, respondendo às perguntas de esclarecimento que a ferramenta fez antes de planejar
Resumo do que eu tirei dali: a IA só para de responder solta quando você alimenta ela com o conhecimento do próprio negócio (identidade, catálogo e comportamento esperado) e valida essa resposta ISOLADA, no simulador, antes de plugar o WhatsApp
Próximo passo: colocar o catálogo em um banco vetorial de verdade
Se é pra levar uma frase deste post, leva essa: o ganho vem de o agente ter de onde ler, não de um prompt mais caprichado
O prompt define o que fazer quando falta dado, a base define o dado
Então o próximo passo é bem concreto
Sai do Simple Vector Store e leva o catálogo pra um dos nós dedicados, revisa o nome e a descrição da ferramenta (é o que faz o agente lembrar de consultar), ajusta o System Message e testa com as perguntas que os teus clientes realmente mandam, com erro de digitação e tudo
E fica de olho no calendário, porque isso mexe no custo de operar atendimento no WhatsApp com n8n
As mensagens de serviço enviadas dentro da janela de 24 horas são gratuitas desde novembro de 2024, e a partir de 1º de outubro de 2026 passam a ser cobradas por mensagem
Vale lembrar como essa janela funciona: ela abre quando o cliente manda mensagem e é contada a partir da mensagem mais recente dele, reiniciando a cada nova mensagem
Enquanto está aberta, o negócio pode responder com mensagem livre, sem template
Ou seja, resposta errada não vai só irritar cliente, vai custar
Motivo a mais pra ligar o catálogo hoje 😀
até o próximo post!
Perguntas frequentes
Como impedir que o agente do n8n invente preço mesmo depois de conectar o catálogo?
A trava fica na opção System Message do nó AI Agent, dentro da seção Options, acessada pelo seletor Add Option no rodapé do painel. É essa mensagem que guia a decisão do agente antes da conversa começar, então é ali que você deixa escrito para ele só responder preço e política com base no que a busca trouxe.
Dá para usar o Simple Vector Store do n8n em produção no atendimento do WhatsApp?
O próprio n8n recomenda o Simple Vector Store só para desenvolvimento, porque ele guarda tudo em memória. Os dados somem quando o n8n reinicia, podem ser descartados em situação de pouca memória, e as memory keys são globais na instância, então qualquer usuário dela pode acessar teus dados adicionando um Simple Vector Store e selecionando a chave. Para produção, o caminho são os nós dedicados como Pinecone, Qdrant, Supabase, PGVector, Weaviate, Milvus, Chroma ou Azure AI Search.
O que é o $fromAI() e para que ele serve no AI Agent do n8n?
É a função que deixa o próprio agente preencher parâmetros de uma ferramenta, tipo o código do produto que ele vai consultar no catálogo. A chave usada precisa ter de 1 a 64 caracteres, aceitando só letras maiúsculas e minúsculas, números, underscores e hífens. Ela só funciona em ferramentas conectadas ao nó AI Agent.
É possível reordenar os resultados da busca antes do agente responder no n8n?
Sim, isso é o reranking, e ele está disponível nos modos Get Many, Retrieve Documents (As Vector Store for Chain/Tool) e Retrieve Documents (As Tool for AI Agent). Se você habilitar essa opção, é obrigatório conectar um nó de reranking ao vector store para ela funcionar.
Usar o n8n self-hosted para atender clientes no WhatsApp é gratuito?
A versão self-hosted Community continua gratuita, sob a Sustainable Use License, um modelo fair-code que não é certificado pela OSI. Ela cobre uso livre para os fins internos do teu próprio negócio. O ponto de atenção é oferecer o n8n como serviço hospedado para clientes pagantes, que exige licença comercial da n8n.
A partir de quando o WhatsApp vai cobrar pelas mensagens de atendimento dentro da janela de 24 horas?
As mensagens de serviço enviadas dentro da janela de 24 horas são gratuitas desde novembro de 2024, mas isso muda a partir de 1º de outubro de 2026, quando passam a ser cobradas por mensagem. Vale lembrar que essa janela é contada a partir da última mensagem do cliente e reinicia a cada nova mensagem dele.
Formações
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 114 aulas
- 4 projetos
- 9h 18min
Blog | Mais populares
Guia completo do Grok 4: Tudo sobre funcionalidades, versões e preços
Descubra neste guia completo do Grok 4 tudo o que você precisa saber para escolher, contratar e aproveitar o máximo dessa IA inovadora! Confira funcionalidades, […]
Como criar slides no NotebookLM e aposentar o PowerPoint
Aprenda a criar apresentações incríveis com o NotebookLM: slides e infográficos automáticos em poucos minutos – e aposente o PowerPoint de vez! Criar apresentações visuais […]
Planos: n8n preço para 2026 | Qual vale a pena?
O n8n possui um modelo de preço e planos flexível, baseado em execuções mensais de workflows, independentemente da complexidade. O plano Starter custa cerca de […]
