Sprints #902
AbertaDocumentaçã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
0%
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
Atualizado por Rodrigo Admin há 7 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)
Atualizado por Rodrigo Admin há 7 dias
- Categoria ajustado para Backend
- Situação alterado de Developing para Testing
- Atribuído para ajustado para Rodrigo Admin
Atualizado por Rodrigo Admin há 7 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.
Atualizado por Rodrigo Admin há 6 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
Atualizado por Rodrigo Admin há 4 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
Atualizado por Rodrigo Admin há 4 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.
Atualizado por Rodrigo Admin há 3 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.
Atualizado por Rodrigo Admin há 3 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.