Crie chatbots para FAQ com n8n

O que é e por que usar

Um chatbot de FAQ (Frequently Asked Questions) é uma ferramenta que responde automaticamente a perguntas comuns de usuários, reduzindo o volume de atendimento humano e acelerando o tempo de resposta. Com o n8n, você pode construir esse chatbot sem escrever uma linha de código, conectando APIs de mensageria (como Telegram, WhatsApp ou Slack) a fontes de dados como bancos vetoriais, JSONs ou APIs externas.

O n8n é uma plataforma de automação de código aberto que permite criar fluxos complexos com uma interface visual. Em vez de depender de soluções prontas e caras, você pode montar seu próprio FAQ bot integrando ao seu banco de conhecimento existente. A grande vantagem é a flexibilidade: você decide quais fontes de dados usar, como tratar respostas e por quais canais entregar.

Segundo dados internos de empresas que implementaram chatbots de FAQ com n8n, a redução no ticket de suporte chega a 40-60%, com tempo médio de resposta caindo de horas para segundos. Além disso, o custo operacional é significativamente menor do que contratar uma plataforma SaaS de chatbot.

Pré-requisitos

  • Instância do n8n – auto-hospedada ou na nuvem (n8n.cloud).
  • Conta no serviço de mensageria (Telegram, WhatsApp Business API, Slack ou Discord). Vou usar Telegram para o exemplo, por ser mais simples de configurar.
  • Fonte de dados de FAQ – pode ser um arquivo JSON, uma Airtable, uma planilha do Google Sheets ou até uma API externa (ex.: Confluence, Notion).
  • Conhecimento básico do n8n – saber criar workflows e conectar nós.
  • Opcional: contra de armazenamento vetorial (como Qdrant ou Pinecone) se quiser respostas semânticas (não usarei neste exemplo para manter a simplicidade).

Exemplo Prático: Chatbot de FAQ para suporte de um SaaS de gestão de projetos

Close-up of a smartphone displaying an AI chat interface with the DeepSeek app.

Cenário: Você administra um pequeno SaaS chamado “ProjManager”. Diariamente, recebe dezenas de perguntas repetitivas sobre como criar projetos, convidar membros, alterar prazos e recuperar senha. A equipe de suporte de 3 pessoas gasta cerca de 4 horas por dia respondendo essas perguntas comuns.

O que será automatizado: Um chatbot no Telegram que recebe perguntas dos usuários, busca a resposta mais adequada em uma base de pares (pergunta + resposta) armazenada em um arquivo JSON no próprio n8n, e envia a resposta de volta. Se não encontrar correspondência, encaminha a mensagem para um grupo de suporte humano.

Resultado esperado: Redução de 70% das interações de suporte repetitivas, respostas instantâneas (menos de 2 segundos), e possibilidade de a equipe focar em problemas complexos.

Configuração Passo a Passo

1. Criar o bot no Telegram e obter o token

  1. No Telegram, procure por BotFather.
  2. Envie o comando /newbot e siga as instruções para criar um novo bot (ex.: ProjManagerFAQBot).
  3. O BotFather fornecerá um token de API (ex.: 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11). Guarde-o.
  4. Inicie uma conversa com o bot e envie /start para ativá-lo.

2. Estruturar a base de FAQ em JSON

No n8n, crie um nó “Manual Trigger” inicial, mas no final nosso trigger será o “Telegram Trigger”. A base FAQ será um JSON armazenado em um nó “Code” ou “Set”.

[
  {
    "pergunta": "Como criar um novo projeto?",
    "resposta": "Para criar um projeto no ProjManager, clique em **+ Novo Projeto** no painel esquerdo, preencha o nome e descrição e clique em **Criar**."
  },
  {
    "pergunta": "Como convidar um membro para o projeto?",
    "resposta": "Acesse o projeto desejado, vá em **Membros** > **Convidar** e insira o e-mail do usuário. Ele receberá um link de convite."
  },
  {
    "pergunta": "Como alterar o prazo de uma tarefa?",
    "resposta": "Clique na tarefa, vá no campo **Prazo** e selecione a nova data. Salve as alterações."
  },
  {
    "pergunta": "Esqueci minha senha",
    "resposta": "Na tela de login, clique em **Esqueceu a senha?** e siga as instruções enviadas para seu e-mail."
  }
]

3. Montar o workflow no n8n

  1. Nó de Trigger: Telegram Trigger
    • Tipo: Telegram Trigger
    • Credenciais: adicione o token do bot.
    • Atualização: opção “message” para capturar qualquer mensagem.
    • Nota: o n8n criará um webhook automaticamente. Você precisa informar ao Telegram para onde enviar as atualizações (o n8n faz isso se você usar o Webhook do Telegram Trigger).
  2. Nó de Preparação: Set (ou Function)
    • Propósito: extrair o texto da mensagem e o chatId do Telegram.
    • Configuração: Usar “Set” com expressões:
      {{ $json.message.text }} para o texto da pergunta.
      {{ $json.message.chat.id }} para o chat ID.
  3. Nó de Busca: Code Node (ou Workflow específico)
    • Este nó fará a correspondência entre a pergunta do usuário e a base JSON.
    • Insira o JSON da FAQ dentro do código (ou use um nó “Switch” para cada pergunta, mas não escalaria).
    • Exemplo de código JavaScript para busca simples (case-insensitive e por palavras-chave):
// Code Node
const faq = [
  { pergunta: "como criar um novo projeto", resposta: "..." },
  { pergunta: "como convidar um membro", resposta: "..." },
  // ... demais
];
const userQuestion = $input.first().json.message.text.toLowerCase();

let found = null;
for (let item of faq) {
  if (userQuestion.includes(item.pergunta) || item.pergunta.includes(userQuestion)) {
    found = item.resposta;
    break;
  }
}

if (found) {
  return [{ resposta: found, chatId: $input.first().json.message.chat.id }];
} else {
  return [{ resposta: null, chatId: $input.first().json.message.chat.id, originalMessage: userQuestion }];
}

Esse código retorna a resposta ou null quando não acha.

  1. Nó de Decisão: IF
    • Condição: {{ $json.resposta !== null }}
    • Se true (resposta encontrada): vai para o nó Telegram Send Message.
    • Se false (não encontrou): vai para um nó que encaminha para o grupo de suporte.
  2. Nó de Resposta: Telegram Send Message
    • Tipo: Telegram > Send Message
    • Chat ID: {{ $json.chatId }}
    • Text: {{ $json.resposta }}
    • Parse Mode: Markdown (opcional, para formatar a resposta do FAQ).
  3. Nó de Encaminhamento: Telegram Send Message (ou outro)
    • Enviar para um chat/grupo de suporte (ID fixo do grupo).
    • Text: “Pergunta não encontrada: {{ $json.originalMessage }}”

4. Ativar o workflow

Clique em “Active” no workflow. O n8n criará um webhook automaticamente. Teste enviando uma mensagem para o seu bot.

Dicas e Variações

  • Use um banco de dados real – Em vez de JSON estático, conecte a uma Airtable ou Supabase. Assim você pode atualizar as FAQs sem alterar o workflow. Basta usar o nó “Airtable” ou “Postgres” para buscar os dados.
  • Implemente busca semântica com embeddings – Para capturar perguntas escritas de formas diferentes, armazene os embeddings das perguntas em um vetor store (ex.: Qdrant) e use o nó “Embeddings OpenAI” para transformar a pergunta do usuário em vetor e buscar a mais similar.
  • Mantenha histórico de conversas – Use um nó “Redis” ou “Postgres” para armazenar o contexto, permitindo que o chatbot responda perguntas de acompanhamento (ex.: “e como excluir um projeto?”).
  • Limite de taxa – Se o bot receber muitas mensagens, adicione um nó “Delay” ou “Rate Limit” para evitar bloqueios do Telegram.
  • Personalize respostas – Use variáveis como nome do usuário, extraído do firstName do Telegram, para deixar a resposta mais humana.

Erros Comuns e Como Evitá-los

  • Webhook não configurado – Ao criar o Telegram Trigger, o n8n tenta configurar o webhook automaticamente, mas se falhar, você pode definir manualmente: POST para https://api.telegram.org/bot<token>/setWebhook?url=<seu-webhook-n8n>.
  • Resposta muito longa – O Telegram limita mensagens a 4096 caracteres. Se sua resposta ultrapassar, divida em múltiplas mensagens ou use um nó “Code” para truncar.
  • Case sensitivity na busca – No código de exemplo, convertemos tudo para minúsculas. Não esqueça de fazer o mesmo com a base para evitar que “Como Criar” não seja encontrado.
  • Respostas duplicadas – Se sua base tiver perguntas muito similares, a busca pode retornar a primeira correspondência. Considere usar uma lógica de “melhor correspondência” baseada em contagem de palavras em comum.
  • Loop infinito – Se o bot responder em um grupo onde ele próprio está monitorando, pode gerar loop. Certifique-se de ignorar mensagens do próprio bot (verifique o campo from.is_bot no código).

Próximos Passos

Agora que você tem um chatbot funcional, leve a automação adiante:

  1. Adicione um painel de monitoramento – Conecte um nó “Google Sheets” para registrar cada pergunta recebida, se houve resposta automática ou encaminhamento humano. Assim você pode identificar lacunas na base de FAQ.
  2. Expanda para outros canais – Repita o fluxo para WhatsApp (usando Twilio), Slack ou até mesmo um widget no site (via webhook HTTP). O n8n permite duplicar o trigger e encaminhar para o mesmo nó de decisão.
  3. Implemente feedback do usuário – Após enviar a resposta, pergunte “Isso resolveu sua dúvida? (sim/não)”. Use um código que aguarde a próxima mensagem e, se for “não”, encaminhe para suporte humano.
  4. Integre com seu sistema de tickets – Se a pergunta não for respondida, crie automaticamente um ticket no sistema (ex.: Zendesk, Jira) com o conteúdo da mensagem, usando o nó HTTP Request.
  5. Compartilhe o workflow – O n8n permite exportar o fluxo como JSON. Publique em comunidades ou no blog rotinas.net com exemplos práticos, ajudando outros profissionais.

Comece com o exemplo simples deste artigo e evolua incrementalmente. Um chatbot de FAQ bem construído pode transformar o suporte ao cliente e liberar horas preciosas da sua equipe.

Gostou do conteúdo? Inscreva-se para receber as novidades:

CATEGORIES:

rotinas

Tags:

Comments are closed