Chatwoot and N8n Http CONECTION error

Problema: Não Consigo Estabelecer Conexão HTTP entre o N8N e o Chatwoot

Descrição

Estou tentando integrar o Chatwoot (self-hosted) ao N8N para realizar chamadas HTTP e consumir dados da API do Chatwoot. No entanto, as requisições feitas pelo N8N resultam constantemente em erro de autenticação, mesmo com o token correto configurado.

Detalhes do Erro

Quando realizo uma chamada para a API do Chatwoot, como a seguinte:

bash

Copiar código

curl -X GET "https://chatwoot.parizarteemdanca.com.br/api/v1/accounts/2/contacts" \
-H "Authorization: Bearer <SEU_TOKEN_AQUI>" \
-H "Content-Type: application/json"

Ou configuro o nó HTTP Request no N8N com os mesmos headers e endpoint, a resposta é sempre:

json

Copiar código

{
  "errorMessage": "Authorization failed - please check your credentials",
  "errorDescription": "Você precisa entrar ou se cadastrar antes de continuar.",
  "errorDetails": {
    "rawErrorMessage": [
      "401 - \"{\\\"errors\\\":[\\\"Você precisa entrar ou se cadastrar antes de continuar.\\\"]}\""
    ],
    "httpCode": "401"
  }
}

O Que Descobrimos

Pesquisando mais sobre o problema, descobrimos que o Chatwoot utiliza headers com underscores (ex.: Authorization) que, em alguns casos, podem ser filtrados ou ignorados pelo proxy reverso. Nesse caso, o Traefik, que utilizamos como proxy reverso, parece ser um dos pontos potenciais de falha.

Tentamos a seguinte configuração no Traefik para habilitar o suporte a underscores:

  1. Adicionamos um middleware específico para permitir headers com underscores:

yaml

Copiar código

- traefik.http.middlewares.chatwoot-headers.headers.customrequestheaders.underscores_in_headers=on
  1. Associamos o middleware ao router do Chatwoot:

yaml

Copiar código

- traefik.http.routers.chatwoot_app.middlewares=sslheader,chatwoot-headers

Mesmo com essa configuração, o problema persiste, e as chamadas continuam retornando “401 Unauthorized”.

Ambiente

  • N8N Version: 1.65.2 (Self-Hosted)
  • Database: SQLite (padrão)
  • EXECUTIONS_PROCESS Setting: own (padrão)
  • Running n8n via: Docker
  • Operating System: Linux
  • Chatwoot: v3.15.0
  • Traefik: v2.11
  • Docker: Swarm Mode
  • Endpoint testado: /api/v1/accounts/2/contacts

Abordagens Tentadas

  1. Token de Autenticação: O token foi gerado corretamente via console Rails no Chatwoot e testado diretamente no contêiner da aplicação. Funciona para alguns endpoints, mas falha para outros.
  2. Configuração de Middleware no Traefik: Adicionamos suporte a underscores em headers e associamos isso ao router do Chatwoot.
  3. Testes Locais: Fizemos chamadas diretamente no contêiner do Chatwoot, e o problema persiste.
  4. Verificação de Logs: Logs do Chatwoot mostram que o header Authorization ou não está sendo reconhecido ou está sendo ignorado.

Perguntas

  1. Existe alguma configuração adicional no Traefik que possa resolver esse problema de headers com underscores?
  2. É possível que o problema seja na configuração do Chatwoot, e não no Traefik?
  3. Alguém já enfrentou esse mesmo problema integrando o Chatwoot com o N8N ou outro serviço de automação? Como foi resolvido?

It looks like your topic is missing some important information. Could you provide the following if applicable.

  • n8n version:
  • Database (default: SQLite):
  • n8n EXECUTIONS_PROCESS setting (default: own, main):
  • Running n8n via (Docker, npm, n8n cloud, desktop app):
  • Operating system:
  • N8N Version: 1.65.2 (Self-Hosted)
  • Database: SQLite (padrão)
  • EXECUTIONS_PROCESS Setting: own (padrão)
  • Running n8n via: Docker
  • Operating System: Linux
  • Chatwoot: v3.15.0
  • Traefik: v2.11
  • Docker: Swarm Mode
  • Endpoint testado: /api/v1/accounts/2/contacts

Amigo, sou novo no fórum, não sei se o suporte é somente em inglês, mas se tanto seu chatwoot e seu n8n estão no mesmo ambiente docker, ao invés de utilizar https://seu.dominio tente https://chatwoot/endpoint ou http://chatwoot tente usar o hostname do service ao invés do domínio.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.