From 17810e5c8619387b846289f7332cad44c8bffab8 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Tue, 1 Jul 2025 21:21:16 +0000 Subject: [PATCH] Fix: Ensure activate workflow webhook is sent Check and adjust the logic to ensure the "ativarworkflow" webhook is sent correctly. --- .../whatsappGroups/CreateGroupFormSimple.tsx | 18 ++++++++++++++++++ src/hooks/whatsapp/useInstanceCreation.ts | 10 ++++++---- .../whatsAppInstance/workflowOperations.ts | 8 +++++--- 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/src/components/whatsappGroups/CreateGroupFormSimple.tsx b/src/components/whatsappGroups/CreateGroupFormSimple.tsx index 31a1d04..b83ca16 100644 --- a/src/components/whatsappGroups/CreateGroupFormSimple.tsx +++ b/src/components/whatsappGroups/CreateGroupFormSimple.tsx @@ -11,6 +11,7 @@ import { verificarInstanciaWhatsApp } from '@/services/gruposWhatsAppService'; import { findOrCreateWhatsAppGroup } from '@/services/whatsAppGroupsService'; import { createWorkflowInN8n } from '@/services/n8nWorkflowService'; import { createEvolutionWebhook } from '@/services/whatsApp/webhookService'; +import { activateUserWorkflow } from '@/services/whatsAppInstance/workflowOperations'; interface CreateGroupFormProps { userEmail: string; @@ -22,6 +23,7 @@ const CreateGroupFormSimple = ({ userEmail, onSuccess }: CreateGroupFormProps) = const [nomeGrupo, setNomeGrupo] = useState(''); const [carregando, setCarregando] = useState(false); const [webhookEnviado, setWebhookEnviado] = useState(false); + const [workflowAtivado, setWorkflowAtivado] = useState(false); const [mensagemStatus, setMensagemStatus] = useState<{ tipo: 'info' | 'success' | 'error'; texto: string; @@ -42,6 +44,7 @@ const CreateGroupFormSimple = ({ userEmail, onSuccess }: CreateGroupFormProps) = setCarregando(true); setMensagemStatus(null); setWebhookEnviado(false); + setWorkflowAtivado(false); try { // Verificar se o usuário tem instância WhatsApp @@ -70,6 +73,21 @@ const CreateGroupFormSimple = ({ userEmail, onSuccess }: CreateGroupFormProps) = await createWorkflowInN8n(userEmail); + // Ativar workflow (webhook ativarworkflow) APENAS UMA VEZ + if (!workflowAtivado) { + setMensagemStatus({ tipo: 'info', texto: 'Ativando workflow...' }); + + try { + console.log(`🔔 Enviando webhook ativarworkflow para usuário: ${userEmail}`); + await activateUserWorkflow(userEmail); + setWorkflowAtivado(true); + console.log('✅ Webhook ativarworkflow enviado com sucesso'); + } catch (workflowError) { + console.error('❌ Erro ao enviar webhook ativarworkflow:', workflowError); + // Continua mesmo se o webhook falhar + } + } + // Enviar webhook para N8N configurar webhook da Evolution API APENAS UMA VEZ if (!webhookEnviado) { setMensagemStatus({ tipo: 'info', texto: 'Configurando webhook...' }); diff --git a/src/hooks/whatsapp/useInstanceCreation.ts b/src/hooks/whatsapp/useInstanceCreation.ts index f80eb69..64545a7 100644 --- a/src/hooks/whatsapp/useInstanceCreation.ts +++ b/src/hooks/whatsapp/useInstanceCreation.ts @@ -2,7 +2,8 @@ import { useState } from 'react'; import { useToast } from '@/hooks/use-toast'; import { createWhatsAppInstance } from '@/services/whatsAppService'; -import { updateUserWhatsAppInstance, activateUserWorkflow } from '@/services/whatsAppInstanceService'; +import { updateUserWhatsAppInstance } from '@/services/whatsAppInstanceService'; +import { activateUserWorkflow } from '@/services/whatsAppInstance/workflowOperations'; import { WhatsAppInstance } from '@/types/whatsAppTypes'; export const useInstanceCreation = ( @@ -74,13 +75,14 @@ export const useInstanceCreation = ( }); console.log('✅ [INSTÂNCIA] Instância registrada no banco de dados com status "conectado"'); - // 3. Ativar o workflow do usuário no n8n + // 3. Ativar o workflow do usuário no n8n - CORRIGINDO AQUI console.log('🔄 [INSTÂNCIA] Passo 3: Ativando workflow do usuário no n8n...'); try { + console.log(`🔔 Enviando webhook ativarworkflow para usuário: ${userEmail}`); await activateUserWorkflow(userEmail); - console.log('✅ [INSTÂNCIA] Workflow ativado com sucesso no n8n'); + console.log('✅ [INSTÂNCIA] Webhook ativarworkflow enviado com sucesso'); } catch (workflowError) { - console.error('⚠️ [INSTÂNCIA] Erro ao ativar workflow, mas instância foi criada:', workflowError); + console.error('⚠️ [INSTÂNCIA] Erro ao enviar webhook ativarworkflow:', workflowError); toast({ title: "Aviso", description: "Instância criada, mas houve um problema ao ativar a automação. Entre em contato com o suporte.", diff --git a/src/services/whatsAppInstance/workflowOperations.ts b/src/services/whatsAppInstance/workflowOperations.ts index 6108e30..6101b0a 100644 --- a/src/services/whatsAppInstance/workflowOperations.ts +++ b/src/services/whatsAppInstance/workflowOperations.ts @@ -12,12 +12,14 @@ export async function activateUserWorkflow(userEmail: string): Promise { try { console.log(`🔔 Enviando webhook para ativar workflow do usuário: ${userEmail}`); - // Nova lógica: webhook simples para o n8n + // URL do webhook para ativar workflow const webhookUrl = 'https://webhookn8n.innova1001.com.br/webhook/ativarworkflow'; console.log(`🔗 URL do webhook: ${webhookUrl}`); const webhookBody = { - email: userEmail + email: userEmail, + timestamp: new Date().toISOString(), + action: 'activate_workflow' }; console.log('📦 Dados do webhook:', JSON.stringify(webhookBody, null, 2)); @@ -39,7 +41,7 @@ export async function activateUserWorkflow(userEmail: string): Promise { } const responseData = await response.text(); - console.log('✅ Webhook enviado com sucesso:', responseData); + console.log('✅ Webhook ativarworkflow enviado com sucesso:', responseData); } catch (error) { console.error('💥 Erro crítico ao enviar webhook de ativação:', error);