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

atendimento no WhatsApp com n8n conectado ao catálogo de produtos e preços
Resposta rápida

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
Formação Recomendada

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.




Escrito por | Matheus Battisti

Matheus Battisti
Fundador da Hora de Codar

Programador apaixonado pelo mundo das tecnologias, sempre buscando em aprender e se aprofundar em linguagens, frameworks e o que mais for necessário para executar um bom trabalho. Agora tem uma nova missão que é de passar seu conhecimento adiante para formar novos programadores e especializar mais os que já são.

Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted

Formações

Formação Claude Code

Formação Claude Code

Domine Claude Code do absoluto zero até o avançado

  • 120 aulas
  • 4 projetos
  • 9h 45min

Blog | Mais populares