O n8n é uma plataforma low code que funciona como uma ferramenta de automação de fluxo de trabalho conectandos seus aplicativos e serviços favoritos, fazendo com que eles “conversem” entre si.

Dentre desses serviços existem integrações diretas a APIs dos melhores modelos de LLMs como Gemini, GPT, Claude, Deepseek e etc… Possibilitando a criação facilitada de Agentes de IA para Whatsapp, Telegram, Gmail até para aqueles usuários que não tenham conhecimento profundo de programação.

Nesse artigo vamos explorar a plataforma do n8n e mostrar como fazer uma integração de um Chatbot com histórico de chat e banco de conhecimento baseado em sites para o Telegram.

Sumário

Panorama Inicial

Atualmente a plataforma do n8n oferece duas opções para construir seus workflows:

  • n8n host: Nessa opção o processamento dos workflows funcionam através da cloud do próprio n8n, sendo assim o usuário não precisa se preocupar com limitações de CPU e memória ram para funcionamento do projeto, porém existem limitações de execuções simultaneas, workflows ativos ao mesmo tempo e quantidade de execuções totais por mês, a depender do plano escolhido.

  • self-host: Nessa opção o usuário pode instalar o n8n na sua própria máquina local (ou em uma VPS) e dessa forma não possuir nenhuma limitação da opção anterior, desde de que a CPU e a memória ram da sua própria máquina dê conta de suportar seus workflows, sendo assim não há custos adicionais caso você instale no seu próprio computador ou já possua uma VPS.

Nesse primeiro momento vamos trabalhar com a avaliação gratuita de 14 dias do plano Starter, que oferece recurso suficiente para o nosso projeto de Chatbot do Telegram.

Pré-requisitos

  • É necessário criar uma conta no n8n escolher a opção “free-trial”, que dará acesso ao plano Starter por 14 dias.

  • Também é preciso criar uma conta no Telegram e obter um Token da API do Telegram.
    • Para obter esse token envie uma mensagem para @BotFather.
    • Escolha a opção /newbot.
    • Escolha um nome para o seu Chatbot e depois escolha um username válido.
    • Após isso, você receberá o Token, guarde esse código pois será necessário para conectar o n8n com o Telegram.
  • Por fim, precisaremos da API de uma LLM para atuar como o “cérebro” do nosso Chatbot, eu vou optar pela Gemini API pelo uso gratuito. Caso você não saiba como adquirir a API Key do Gemini, acesse nosso último post.

Conectando o Telegram ao n8n

Dentro da página do n8n, após escolhido o plano de testes, vamos clicar no botão superior direito Create Workflow.

A página que se abriu é onde vamos adicionar nossos nodes, cada node funciona como se fosse um bloco de código que recebe algum dado ou ação, faz o processamento e retorna outro dado ou uma ação.

Nessa tela inicial podemos clicar no botão central para adicionar o primeiro node, ou clicar no ícone de + no canto superior direito, ao fazer isso veremos os diferentes tipos de nodes que podemos inserir e a uma barra de pesquisa, vamos utilizar essa barra e pesquisar por “Telegram”.

n8n-tela-inicial

Ao fazer isso, vamos clicar na primeira opção e teremos acesso a todas as ações que podemos executar no “Telegram”, a primeira que vamos inserir, é a On message da aba de Triggers.

Um Trigger funciona para receber um evento e executar uma ação, ele é o acionador do Workflow.

Ao adicionar esse node, vamos dar dois cliques para acessar suas configurações e na parte de Create new credential vamos clicar e na região de Acess Token vamos inserir o token que geramos no BotFather pelo Telegram, após isso clicamos e veremos a mensagem Connection tested successfully.

Agora podemos executar pela primeira vez nosso Workflow para analisar seu funcionamento, ao clicar no botão inferior Execute Workflow nosso Triger será ativado e ficará aguardando o recebimento de um evento, agora enviando uma mensagem para o nosso bot do Telegram, quando voltarmos para o Triger ele terá retornando um JSON contendo diferentes dados sobre a mensagem recebida.

Armazenando dados importante

Agora que já estamos recebendo o evento do Telegram, vamos começar a montar o nosso Agente, mas antes disso precisamos armazenar os dados importantes retornados pelo nosso Triger.

Para isso, vamos adicionar um node Set, dentro desse node vamos adicionar dois campos, no primeiro campo vamos nomear de “contato” e arrastar da parte chat o campo id como value e no segundo campo vamos nomear de mensagem e arrastar da parte chat o campo text como value, assim armazenando a mensagem recebida e de quem foi a mensagem.

n8n-set

Configurando o Agente

Com tudo isso pronto, podemos finalmente adicionar nosso node AI Agent para configurar nosso Chatbot.

Ao adicionar o AI Agent do n8n, veremos que ele tem 3 ramificações na parte debaixo, a primeira é para definirmos a LLM utilizada, a segunda para definir o tipo de memória e a última são todas as ferramentas que ele pode acessar durante a sua execução.

n8n-agente

O modelo que vamos criar será simples, ele será especializado em IA e terá como ferramenta o acesso Wikipédia.

  • Adicionar Chat Model

    • Vamos selecionar a opção Google Gemini Chat Model
    • Acessando o node vamos em Create a new credential.
    • Inserimos nossa chave de api no campo api key e clicamos em save.
    • Veremos a mensagem Connection tested successfully.
  • Adicionar Memory

    • A memória serve pra registrar as últimas mensagens enviadas pelo usuário e pelo agente.
    • Vamos usar a Simple Memory por ser a mais simples nesse ínicio.
    • Alteramos o Session ID para Define below.
    • No campo key colocamos “$json.contato” entre chaves duplas, para acessar o contato armazenado no nosso set.
    • O campo Context Window Length define quantas mensagens nossa memória vai salvar de histórico, eu vou deixar o padrão que é 5, mas sinta-se livre para alterar.
  • Adicionar Tool

    • Para o agente ter acesso a um site vamos utilizar a ferramenta HTTP Request Tool.
    • Basta inserir a url da Wikipédia sobre IA.
    • É recomendado explicar qual a função dessa ferramenta na descrição, podemos colocar “Acessa uma fonte de informações sobre IA”, além disso é bom colocar um nome relacionado a função da ferramenta (IA_Wikipedia).

Essa ferramenta, faz uma requisição para a URL que você definir (nesse caso um método GET), então como retorno ela obtém o código-fonte do site, que contém muito “ruído” do HTML, CSS e JS do site. Esse não é o melhor método para leitura de sites pelo agente, mas no nosso caso utilizando um site simples como a Wikipédia vai funcionar.

Definindo o prompt

Nosso agente está quase completo, precisamos apenas acessa-ló e definir o seu prompt.

Para isso vamos alterar o Source for Prompt(User Message) para Define below. E na região de prompt user message vamos adicionar o seguinte:


Você é o meu assistente de IA. Use seus conhecimentos para responder minhas perguntas sobre inteligência artificial, caso precise pode acessar a ferramenta "IA_wikipedia" para pesquisar sobre o conteúdo.

Minha pergunta: $json.mensagem (Insira entre chaves duplas)

n8n-prompt

Caso queira testar a resposta do agente, clique em execute workflow acesse o agente e veja o output.

Enviando a resposta ao usuário

Para finalizar, precisamos que o usuário receba a mensagem gerada pelo nosso agente, para isso vamos nos nodes do Telegram e adicionar o Send a text message.

Acessando ele vamos colocar na campo Chat ID $('Edit Fields').item.json.contato e no campo Text $json.output (ambos entre chaves duplas), e o nosso Chatbot do Telegram usando n8n estará pronto.

n8n-prompt

Fique livre para testar com diferentes perguntas sobre Inteligência Artifical ou altere o prompt e o site utilizado para criar Chatbots especializados em outros assuntos. Para deixar seu Workflow funcionando de forma autônoma a partir dos eventos do Telegram, salve o projeto e no campo superior direito clique em inactive para ativar seu Chatbot.

Reconhecimento

Para a construção desse post foram utilizados essas fontes de referência: