Pular para o conteúdo
Automação

Como criar um bot no Telegram com n8n para responder mensagens

Sim. Você pode criar um bot no Telegram com o n8n para responder mensagens e disparar avisos sem escrever um servidor do zero. O caminho mais simples usa o Telegram Trigger para receber o comando e o nó Telegram para devolver a resposta.

Neste tutorial, vamos montar um fluxo que recebe uma mensagem, identifica o chat e responde automaticamente. O mesmo desenho serve para avisar sobre novos pedidos, erros de um sistema ou leads; se a origem for um formulário, veja também o guia do JSMS sobre triagem de leads com n8n e Google Sheets.

Diagrama do fluxo de automação que leva um evento ao n8n e depois a um alerta no Telegram
O fluxo básico: o evento chega, o n8n organiza os dados e o bot envia a mensagem.

O que você precisa antes de começar

  • Uma conta no n8n Cloud ou uma instalação própria acessível pela internet;
  • uma conta do Telegram;
  • algum lugar para guardar o token do bot, como a credencial do n8n;
  • um chat privado com o bot para fazer o teste.

O n8n tem nós próprios para o Telegram, incluindo o Telegram Trigger e operações como enviar mensagem, foto e documento. O serviço por trás deles é a Bot API do Telegram, uma interface HTTP que recebe chamadas por HTTPS.

1. Crie o bot no BotFather

Abra o Telegram, procure por @BotFather e confira se o perfil é o oficial. Envie /newbot, escolha um nome de exibição e depois um nome de usuário. O username precisa terminar em bot, como alertas_da_loja_bot.

Ao terminar, o BotFather mostrará um token de acesso. Ele funciona como uma senha: não publique em tutorial, não envie em grupo e não coloque em um nó de texto. Se o token vazar, use o próprio BotFather para revogá-lo e gerar outro.

2. Cadastre o token como credencial no n8n

  1. Abra o n8n e crie um workflow vazio.
  2. Adicione o nó Telegram Trigger.
  3. Em Credential to connect with, escolha Create New Credential para Telegram.
  4. Cole o token no campo de acesso e salve.
  5. No evento do trigger, selecione mensagens recebidas. Se a sua versão mostrar opções mais específicas, comece pelo evento geral de mensagem.

O ponto importante é não confundir o token do bot com o ID do chat. O primeiro autentica a chamada à API; o segundo diz para qual conversa a mensagem deve ser enviada.

3. Faça o bot responder ao primeiro comando

Com o Telegram Trigger configurado, clique em Listen for Test Event ou no botão equivalente para executar o teste. Abra a conversa com o bot, toque em Iniciar e envie uma mensagem, por exemplo /start.

O n8n deve exibir um objeto JSON recebido do Telegram. Em uma mensagem comum, o ID costuma aparecer no caminho message.chat.id. Anote o caminho, não um número copiado de outra conversa: cada chat tem seu próprio identificador.

4. Adicione o nó que envia a resposta

Conecte um nó Telegram depois do trigger. Configure os campos assim:

  • Resource: Message;
  • Operation: Send Message;
  • Chat ID: use uma expressão com {{$json.message.chat.id}};
  • Text: escreva uma resposta fixa ou use o texto recebido com {{$json.message.text}}.

Para um primeiro teste, o texto pode ser:

Olá! Recebi sua mensagem: {{$json.message.text}}

Se o nó reclamar que o caminho não existe, abra a saída real do trigger e procure onde o Telegram colocou o objeto chat. Mensagens com foto, botão ou arquivo podem ter uma estrutura diferente de uma mensagem de texto.

5. Teste e publique o workflow

Execute o workflow em modo de teste e envie novamente uma mensagem ao bot. O resultado esperado é uma execução concluída no n8n e uma resposta na mesma conversa. Depois de confirmar o fluxo, salve-o, ative o workflow e faça um novo teste fora do editor.

Essa separação entre teste e produção é importante: o Telegram permite apenas um webhook por bot. Ao alternar entre a URL de teste e a URL de produção, uma pode substituir a outra. Para não ficar trocando o endereço de um bot usado por clientes, mantenha bots separados para desenvolvimento e produção.

Como transformar a resposta em um alerta automático

O exemplo acima começa com uma mensagem do usuário, mas o nó de envio pode ficar depois de praticamente qualquer gatilho. O desenho fica assim:

  1. um formulário, webhook, banco de dados ou Schedule Trigger detecta o evento;
  2. um nó Edit Fields ou Code monta o texto e define o destinatário;
  3. o nó Telegram envia a mensagem para o chat configurado.

Por exemplo, um aviso de pedido pode usar a expressão abaixo no campo de texto:

🚨 Novo pedido
Cliente: {{$json.cliente}}
Valor: R$ {{$json.valor}}
Pedido: {{$json.id}}

Em um fluxo iniciado por webhook, o chat_id pode ficar em um campo fixo ou vir de uma tabela de configuração. Evite deixar o ID espalhado em vários nós: centralizar essa informação torna a manutenção menos sujeita a erro.

Problemas comuns e como corrigir

“Bad request: an HTTPS URL must be provided”

O Telegram exige uma URL HTTPS para o webhook. Isso aparece com frequência em instalações do n8n atrás de proxy reverso. Configure o domínio público, o certificado TLS e a variável WEBHOOK_URL do n8n com o endereço HTTPS correto. Depois, reinicie ou aplique a configuração conforme o seu método de instalação.

O trigger fica esperando e não recebe nada

Primeiro confira se você enviou a mensagem ao bot certo e se a credencial usa o token correto. Depois verifique se o workflow está em modo de teste ou ativo em produção. Se outro workflow ou outra ferramenta estiver usando o mesmo bot, ela pode estar recebendo o único webhook registrado.

O bot não responde em um grupo

Em grupos, o modo de privacidade e as permissões do bot influenciam quais mensagens ele consegue receber. Para alertas, prefira enviar diretamente a um chat privado ou a um canal/grupo no qual o bot tenha as permissões necessárias. Não desative a privacidade sem entender o efeito: isso aumenta a quantidade de mensagens que o bot pode processar.

A mensagem falha por ser grande

O método sendMessage aceita texto de 1 a 4.096 caracteres depois do processamento das entidades. Para relatórios longos, envie um resumo e anexe um documento, divida o conteúdo em partes ou guarde os detalhes em uma página acessível.

Cuidados de segurança

  • trate o token como uma senha e use somente credenciais do n8n;
  • limite o bot a chats e grupos necessários;
  • não envie dados pessoais ou segredos em mensagens sem avaliar o risco;
  • registre falhas e crie uma rota de erro para saber quando o alerta não saiu;
  • antes de ativar um fluxo, teste o que acontece quando chegam campos vazios ou valores inesperados.

O n8n elimina boa parte do código repetitivo, mas não elimina as decisões de segurança e operação. Um bot que dispara mensagens sem filtro pode virar spam em poucos minutos — automação sem limite é só uma forma eficiente de criar problema.

FAQ

Preciso programar para conectar o Telegram ao n8n?

Não para o fluxo básico. Você cria o bot, cadastra o token como credencial, escolhe o trigger e configura o nó de mensagem. Expressões simples ajudam a reutilizar o texto e o ID do chat.

Posso usar o mesmo bot no teste e na produção?

Pode, mas não é o ideal. Como o Telegram mantém um webhook por bot, alternar entre teste e produção pode substituir a URL registrada. Dois bots evitam esse conflito.

Como o n8n descobre para qual chat enviar a resposta?

Quando o fluxo começa no Telegram Trigger, o ID vem no evento recebido, normalmente em message.chat.id. Em alertas iniciados por outro serviço, você precisa salvar o ID ou defini-lo na configuração do workflow.

O Telegram cobra para enviar essas mensagens pelo bot?

A Bot API não é apresentada pela documentação oficial como um serviço pago por mensagem. Ainda assim, o n8n Cloud, o servidor, o banco de dados e outros serviços do seu fluxo podem ter custos próprios.