Projeto

Geral

Perfil

Ações

Sprints #902

Aberta

Documentação #901: ÉPICA 04: Integrações e Mensageria

Sprint 11 — Integração com Evolution api, Interface de Pareamento com Whatsapp e Criação Credencial N8N

Adicionado por Rodrigo Admin 16 dias atrás. Atualizado 3 dias atrás.

Situação:
Testing
Prioridade:
medio
Atribuído para:
Categoria:
Backend
Início:
04/05/2026
Data prevista:
05/05/2026 (Previsto para 14 dias)
% Terminado:

0%

Tempo estimado:
12:00 h

Descrição

Desenvolvimento Backend:

Questoes:

  • Tipo de Instância: Qual engine vamos usar? WHATSAPP-BAILEYS (mais flexível e comum) ou WHATSAPP-BUSINESS?
  • Webhook Domain: Para que o WhatsApp receba mensagens e envie para o n8n, precisamos de uma URL pública acessível (ex: via Tunnel ou domínio real). Você já tem essa URL?
  • Ambiente: Você já possui o servidor da Evolution API instalado ou devo deixar as variáveis preparadas no .env para você configurar?

Propostas

  • [Phase 1] Backend: Evolution API Proxy (Stateless)
    [MODIFY]
    evolution-api.service.ts
    Implementação dos métodos de integração direta:
    createInstance: Cria a instância e retorna o token.
    connect: Gera o QR Code (Base64).
    connectionState: Monitora o status (open, close, connecting).
    logout: Desconecta a sessão.
    delete: Remove a instância do servidor Evolution.
    [NEW]
    whatsapp.service.ts
    Gerenciamento do ciclo de vida no banco de dados (MessagingInstance).
    Sincronização de status entre nosso sistema e o servidor Evolution.
  • [Phase 2] Frontend: Interface de Pareamento
    [NEW]
    whatsapp_connection_view.dart
    Tela com exibição de QR Code dinâmico.
    Sistema de polling/atualização automática do status da conexão.
    Design premium com estados de carregamento e sucesso.

Documentação:
https://doc.evolution-api.com/v2/api-reference/instance-controller/create-instance-basic

Ações #1

Atualizado por Rodrigo Admin7 dias

  • Título alterado de Sprint 11 — Atividades de banco de dados para Sprint 11 — Integração com Evolution api v2.3.*
  • Descrição atualizado(a) (diff)
Ações #2

Atualizado por Rodrigo Admin7 dias

  • Situação alterado de Backlog para Developing
Ações #3

Atualizado por Rodrigo Admin7 dias

  • Categoria ajustado para Backend
  • Situação alterado de Developing para Testing
  • Atribuído para ajustado para Rodrigo Admin
Ações #4

Atualizado por Rodrigo Admin7 dias

🛠️ O que foi entregue:
Modal Premium: Um diálogo interativo que solicita o número de telefone e gera o QR Code sob demanda.
Gerenciamento de Estado: WhatsappPairingCubit que controla o ciclo de vida da conexão e realiza o polling de 5 minutos conforme sua solicitação.
Integração Fluida: O fluxo foi integrado diretamente na etapa final do Wizard do Bot, mantendo a experiência do usuário coesa.
Todos os detalhes técnicos e instruções de validação estão disponíveis no
walkthrough
. O plano de execução atualizado também foi salvo na pasta oficial de tarefas do projeto.

Ações #5

Atualizado por Rodrigo Admin6 dias

  • Título alterado de Sprint 11 — Integração com Evolution api v2.3.* para Sprint 11 — Integração com Evolution api v2.3.* & Interface de Pareamento com Whatsapp
Ações #6

Atualizado por Rodrigo Admin6 dias

  • Descrição atualizado(a) (diff)
Ações #7

Atualizado por Rodrigo Admin4 dias

  • Título alterado de Sprint 11 — Integração com Evolution api v2.3.* & Interface de Pareamento com Whatsapp para Sprint 11 — Integração com Evolution api, Interface de Pareamento com Whatsapp e Criação Credencial N8N
Ações #8

Atualizado por Rodrigo Admin4 dias

Integração n8n e Correções de UI
Concluí a integração automática com o n8n e a correção dos erros que bloqueavam o frontend.

Alterações Realizadas
[Backend: Integração n8n]
Implementei um novo serviço que monitora as conexões de WhatsApp e registra automaticamente as credenciais no seu n8n.

Configuração: Adicionei N8N_BASE_URL e N8N_API_KEY ao arquivo
.env
.
N8nService: Criado em
n8n.service.ts
para gerenciar a API do n8n. Ele configura a credencial evolutionApi com a URL interna do Docker (http://evolution_api:8080).
Automação: O
WhatsappService
agora dispara a criação da credencial assim que detecta que o status da instância mudou para CONNECTED (após o scan do QR Code).
[Frontend: Correção de Erros]
Resolvi o erro de compilação que impedia o início da aplicação:

Adicionada a chave back ("Voltar") nos arquivos ARB de tradução (
Português
e
Inglês
).
Como Testar
Certifique-se de que o container do n8n está rodando.
No sistema, faça o processo de pareamento do WhatsApp via QR Code.
Assim que o status mudar para Conectado, verifique no seu painel do n8n (Settings > Credentials) se uma nova credencial do tipo evolutionApi foi criada com o nome da instância.
TIP

Usei a URL interna http://evolution_api:8080 na configuração da credencial no n8n. Como ambos estão na mesma rede do Docker, eles conseguirão se comunicar sem problemas.

Ações #9

Atualizado por Rodrigo Admin3 dias

Concluímos com sucesso a otimização da cobertura de testes e a estabilização das integrações da plataforma FTSAssistants.

Principais Conquistas
Cobertura de Backend: 81,25% Alcançados

Expandimos significativamente os testes de serviços críticos: BotsService, TenantsService e AuthService.
Implementamos novas suítes de teste para segurança (SecurityService) e gerenciamento de chaves de API (ApiKeysService).
A cobertura total do backend agora supera o limite de 80% exigido.
Estabilidade do Frontend

Refatoramos o teste de integração do Wizard de Bot para utilizar StreamController e tempos de espera discretos, eliminando timeouts e garantindo que todos os passos (Parâmetros, LLM & API, Ativação) sejam verificados com sucesso.
Adicionamos testes de unidade para os principais BLoCs (AuthBloc, UserListBloc) e visualizações.
Correção N8n

Ajustamos o payload de criação de credenciais no N8nService para alinhar-se ao esquema JSON rigoroso, resolvendo os erros de "propriedade adicional" encontrados anteriormente.
Os detalhes completos das métricas e das melhorias realizadas podem ser visualizados no
walkthrough.md
.

Todos os testes de backend (85 suítes) estão passando, e a estabilidade da interface do usuário foi validada. Estou à disposição para prosseguir com as próximas funcionalidades do projeto.

Ações #10

Atualizado por Rodrigo Admin3 dias

Resolvi o problema das credenciais duplicadas no n8n.

O que foi feito:
Check de Idempotência no N8nService: Atualizei o método createCredential para verificar se uma credencial com o mesmo nome e tipo já existe antes de tentar criá-la. Isso evita duplicatas mesmo quando o WhatsApp ou Telegram disparam múltiplas atualizações de status.
Verificação por Testes: Adicionei casos de teste na suíte do N8nService para validar que a criação é pulada quando a credencial já está presente. Todos os 7 testes de integração do serviço estão passando.

Ações

Exportar para Atom PDF