Crie respostas inteligentes com OpenRouter

O que é e por que usar

O OpenRouter é um gateway de API que unifica o acesso a dezenas de modelos de linguagem (LLMs) — como GPT-4o, Claude 3.5, Llama 3.1, Mistral, Gemma e muitos outros — através de uma única interface. Em vez de criar integrações separadas para cada provedor de IA, você utiliza um endpoint único e troca de modelo com uma simples alteração no parâmetro model.

Para quem trabalha com automação no n8n, isso resolve um problema real: dependência de um único fornecedor. Se você usa apenas a OpenAI e o serviço cai, sua automação para. Com o OpenRouter, você pode configurar um fallback automático para outro modelo ou escolher o modelo mais barato para cada tipo de tarefa. Além disso, o custo é frequentemente menor: modelos como Llama 3.1 70B custam uma fração do GPT-4o para tarefas de classificação ou extração de dados.

Neste artigo, vou mostrar como criar um sistema de respostas inteligentes usando o OpenRouter dentro do n8n. O fluxo completo envolve receber uma mensagem, processá-la com um modelo de IA e devolver uma resposta contextualizada — tudo sem escrever uma linha de código além da configuração dos nós.

Pré-requisitos

  • Conta no OpenRouter — crie em openrouter.ai e gere uma API key no painel (você precisa adicionar créditos, a partir de US$ 5).
  • Instância do n8n — self-hosted (Docker ou npm) ou n8n Cloud. Qualquer versão recente serve.
  • Conhecimento básico de n8n — saber criar um workflow, conectar nós e usar o nó HTTP Request.
  • Credenciais de teste — uma planilha Google Sheets ou um webhook de teste para simular entrada de dados.

Exemplo Prático: Atendimento automatizado para e-mails de suporte

Imagine que você administra uma loja online e recebe cerca de 50 e-mails de suporte por dia. A maioria é sobre status de pedido, política de troca e horário de funcionamento. Responder cada um manualmente consome 2 horas diárias da sua equipe.

O que vamos automatizar: um workflow que recebe o texto do e-mail (via webhook), envia para o OpenRouter com instruções de resposta, e retorna um rascunho de resposta pronto para revisão. O sistema classifica a intenção (pedido, troca, dúvida) e gera uma resposta personalizada com base em um tom pré-definido.

Resultado esperado: redução de 70% do tempo gasto com e-mails repetitivos. A equipe apenas revisa e envia, em vez de escrever do zero. Para e-mails que exigem ação manual (reembolso, erro de entrega), o sistema adiciona um marcador “REVISÃO HUMANA NECESSÁRIA” no início da resposta.

Configuração Passo a Passo

Passo 1: Criar o workflow e o nó de entrada (Webhook)

Sleek white wireless router with four antennas emitting soft blue and pink light.

No n8n, crie um novo workflow e adicione um nó Webhook. Configure o método como POST e o caminho como receber-email. Este webhook receberá um JSON com o conteúdo do e-mail:

{
  "assunto": "Onde está meu pedido #12345?",
  "mensagem": "Fiz o pedido na semana passada e ainda não chegou. Preciso de uma atualização.",
  "cliente_nome": "Maria Silva"
}

Salve o workflow e copie a URL do webhook para testar depois.

Passo 2: Configurar o nó HTTP Request para o OpenRouter

Adicione um nó HTTP Request conectado ao webhook. Configure assim:

  • Método: POST
  • URL: https://openrouter.ai/api/v1/chat/completions
  • Autenticação: Header — adicione Authorization com valor Bearer SUA_API_KEY
  • Header adicional: Content-Type: application/json

No corpo da requisição (Body), selecione JSON e insira:

{
  "model": "openai/gpt-4o-mini",
  "messages": [
    {
      "role": "system",
      "content": "Você é um assistente de suporte de uma loja online. Responda de forma educada e profissional. Se a solicitação exigir ação manual (reembolso, erro de entrega), comece a resposta com 'REVISÃO HUMANA NECESSÁRIA'. Máximo 150 palavras."
    },
    {
      "role": "user",
      "content": "Assunto: {{ $json['assunto'] }}. Mensagem: {{ $json['mensagem'] }}. Cliente: {{ $json['cliente_nome'] }}"
    }
  ],
  "temperature": 0.7
}

A expressão {{ $json['assunto'] }} puxa os dados do webhook dinamicamente. O modelo openai/gpt-4o-mini é um bom equilíbrio entre custo e qualidade. Você pode trocar por anthropic/claude-3.5-sonnet ou meta-llama/llama-3.1-70b-instruct conforme necessidade.

Passo 3: Processar a resposta e formatar

Adicione um nó Code após o HTTP Request para extrair o texto gerado. O OpenRouter retorna uma estrutura JSON padrão:

{
  "choices": [
    {
      "message": {
        "role": "assistant",
        "content": "Olá Maria, tudo bem? Sobre o pedido #12345..."
      }
    }
  ]
}
Wooden letter tiles spelling 'OPENAI CHATGPT' on a wooden surface, focused image.

No nó Code, use o seguinte script para extrair e formatar:

const resposta = $json.choices[0].message.content;
return {
  resposta_final: resposta,
  assunto_original: $json.assunto,
  timestamp: new Date().toISOString()
};

Passo 4: Enviar para um canal de saída

Conecte um nó Google Sheets (ou Email, ou Slack) para registrar a resposta. Para Google Sheets, configure:

  • Operação: Append (adicionar linha)
  • Planilha: selecione a que deseja usar
  • Colunas: mapeie assunto_original, resposta_final e timestamp

Se preferir testar sem integração, use um nó Respond to Webhook para retornar a resposta diretamente ao chamador.

Passo 5: Ativar e testar

Clique em Active no workflow. Envie um POST de teste com o JSON do exemplo:

curl -X POST https://SEU_WEBHOOK_URL \
  -H "Content-Type: application/json" \
  -d '{"assunto":"Onde está meu pedido #12345?","mensagem":"Fiz o pedido na semana passada e ainda não chegou.","cliente_nome":"Maria Silva"}'

Você deve receber uma resposta gerada pelo modelo no formato configurado.

Dicas e Variações

  • Use modelos diferentes por tarefa: para classificação simples, use meta-llama/llama-3.1-8b-instruct (mais barato). Para respostas complexas, use openai/gpt-4o ou anthropic/claude-3.5-sonnet. O OpenRouter cobra por token, então essa escolha impacta diretamente seu custo mensal.
  • Implemente fallback automático: no n8n, use o nó IF para verificar se a resposta contém um erro (status HTTP != 200). Se sim, faça uma segunda chamada ao OpenRouter com outro modelo.
  • Adicione contexto via memória: em vez de enviar apenas a mensagem atual, use um nó Read/Write Files from Disk ou um banco de dados (SQLite) para armazenar interações anteriores e enviá-las no array messages.
  • Limite de tokens: defina max_tokens na requisição (ex: 300) para evitar respostas longas demais e custos inesperados.
  • Teste com streaming: o OpenRouter suporta SSE (Server-Sent Events). No n8n, você pode usar o nó HTTP Request com a opção Stream habilitada para receber respostas em tempo real, útil para chat interativo.

Erros Comuns e Como Evitá-los

  • Erro 401 (Unauthorized): a API key está incorreta ou expirou. Verifique se você copiou corretamente e se há créditos na conta.
  • Erro 429 (Rate Limit): você excedeu o número de requisições por minuto. No n8n, adicione um nó Wait (ex: 5 segundos) entre chamadas ou use o nó Queue para controlar o fluxo.
  • Formato de resposta inesperado: alguns modelos retornam conteúdo em campos diferentes. Sempre valide a estrutura com um nó Code que faça um log do $json completo antes de processar.
  • Contexto muito longo: se a mensagem do usuário for muito grande, o modelo pode estourar o limite de tokens. Trunque o texto com slice(0, 5000) no nó Code antes de enviar.
  • Esquecer o header Content-Type: sem ele, a API retorna erro 400. Sempre inclua Content-Type: application/json.

Próximos Passos

Você já tem a base de um sistema de respostas inteligentes funcionando. Agora, amplie o escopo:

  1. Conecte ao seu e-mail real: use o nó IMAP do n8n para ler mensagens automaticamente e alimentar o webhook que você criou.
  2. Adicione classificação de prioridade: inclua no prompt uma instrução para o modelo retornar também um nível de prioridade (alta, média, baixa) e use o nó Switch para rotear a resposta para filas diferentes.
  3. Implemente confirmação humana: em vez de enviar a resposta automaticamente, envie para um canal Slack com botões “Aprovar” e “Rejeitar” usando o nó Slack e a funcionalidade de interatividade.
  4. Monitore custos: crie um workflow separado que consulta a API de uso do OpenRouter (endpoint /api/v1/auth/key) diariamente e registra o gasto em uma planilha.

O OpenRouter + n8n é uma combinação poderosa porque separa a lógica de automação da escolha do modelo. Você pode trocar de provedor sem reescrever nada — apenas alterando o nome do modelo no corpo da requisição. Comece com um caso simples, meça o tempo economizado e expanda gradualmente para outros fluxos como geração de conteúdo, resumo de reuniões ou triagem de leads.

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

CATEGORIES:

rotinas

Tags:

Comments are closed