{
  "name": "Fluxo WhatsApp com Envio de V\u00eddeo",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "whatsapp-webhook",
        "options": {}
      },
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        0,
        400
      ],
      "id": "a0800e83-1100-4cff-b137-84781f2c9979"
    },
    {
      "parameters": {
        "jsCode": "// Extrair dados do webhook do WhatsApp\nlet message = \"\";\nlet from = \"\";\nlet profileName = \"\";\nlet waId = \"\";\nlet destinatario = \"\";\n\n// Verificar estrutura do webhook do Twilio\nif ($input.first().json.Body) {\n  message = $input.first().json.Body || \"\";\n  from = $input.first().json.From || \"\";\n  profileName = $input.first().json.ProfileName || \"\";\n  waId = $input.first().json.WaId || \"\";\n  destinatario = $input.first().json.body.To;\n}\n// Verificar estrutura do corpo da requisi\u00e7\u00e3o\nelse if ($input.first().json.body && $input.first().json.body.Body) {\n  message = $input.first().json.body.Body || \"\";\n  from = $input.first().json.body.From || \"\";\n  profileName = $input.first().json.body.ProfileName || \"\";\n  waId = $input.first().json.body.WaId || \"\";\n  destinatario = $input.first().json.body.To;\n}\n\n\nreturn [\n  {\n    json: {\n      message: message,\n      from: from,\n      profileName: profileName,\n      waId: \"+\"+waId,\n      destinatario: destinatario\n    }\n  }\n];"
      },
      "name": "Extrair Dados",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        220,
        400
      ],
      "id": "37b14782-e647-489a-852e-ea6148f70d27"
    },
    {
      "parameters": {
        "jsCode": "// Detectar solicita\u00e7\u00f5es de v\u00eddeo\nfunction detectarSolicitacaoVideo(mensagem) {\n  // Converter para min\u00fasculas para facilitar a compara\u00e7\u00e3o\n  const mensagemLower = mensagem.toLowerCase();\n  \n  // Palavras-chave que indicam solicita\u00e7\u00e3o de v\u00eddeo\n  const palavrasChaveVideo = [\n    'envie o v\u00eddeo', 'enviar v\u00eddeo', 'quero ver o v\u00eddeo', \n    'manda o v\u00eddeo', 'mandar v\u00eddeo', 'envie um v\u00eddeo',\n    'enviar um v\u00eddeo', 'me manda o v\u00eddeo', 'me envie o v\u00eddeo',\n    'video', 'v\u00eddeo'\n  ];\n  \n  // Verificar se alguma palavra-chave est\u00e1 presente na mensagem\n  return palavrasChaveVideo.some(keyword => mensagemLower.includes(keyword));\n}\n\n// C\u00f3digo para o n\u00f3 \"Code\" no n8n\nconst message = $input.first().json.message || '';\nconst from = $input.first().json.from || '';\nconst waId = $input.first().json.waId || '';\nconst profileName = $input.first().json.profileName || '';\nconst destinatario = $input.first().json.destinatario || '';\n\n// Verificar se \u00e9 uma solicita\u00e7\u00e3o de v\u00eddeo\nconst isSolicitacaoVideo = detectarSolicitacaoVideo(message);\n\nif (isSolicitacaoVideo) {\n  // URL do v\u00eddeo a ser enviado\n  const videoUrl = 'https://sua-url-de-video.mp4'; // Substitua pela URL real do v\u00eddeo\n  \n  // Preparar dados para envio de v\u00eddeo\n  return [{\n    json: {\n      solicitacaoVideo: true,\n      videoUrl: videoUrl,\n      waId: waId,\n      from: from,\n      message: message,\n      profileName: profileName,\n      destinatario: destinatario\n    }\n  }];\n} else {\n  // Continuar com o fluxo normal para mensagens de texto\n  return [{\n    json: {\n      ...$input.first().json,\n      solicitacaoVideo: false\n    }\n  }];\n}"
      },
      "name": "Detectar V\u00eddeo",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        440,
        400
      ],
      "id": "video-detection-node"
    },
    {
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{$json.solicitacaoVideo}}",
              "operation": "equals",
              "value2": "true"
            }
          ]
        }
      },
      "name": "\u00c9 Solicita\u00e7\u00e3o de V\u00eddeo?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 1,
      "position": [
        660,
        400
      ],
      "id": "video-condition-node"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "=http://supabase-server:3001/api/enviar-video-whatsapp",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "whatsappNumero",
              "value": "={{$node[\"Detectar V\u00eddeo\"].json.waId}}"
            },
            {
              "name": "videoUrl",
              "value": "={{$node[\"Detectar V\u00eddeo\"].json.videoUrl}}"
            },
            {
              "name": "mensagem",
              "value": "Aqui est\u00e1 o v\u00eddeo que voc\u00ea solicitou!"
            }
          ]
        },
        "options": {}
      },
      "name": "Preparar Envio V\u00eddeo",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 3,
      "position": [
        880,
        300
      ],
      "id": "prepare-video-node"
    },
    {
      "parameters": {
        "from": "={{$node[\"Preparar Envio V\u00eddeo\"].json.dados.numeroRemetente}}",
        "to": "={{$node[\"Preparar Envio V\u00eddeo\"].json.dados.numeroDestino}}",
        "toWhatsapp": true,
        "message": "={{$node[\"Preparar Envio V\u00eddeo\"].json.dados.mensagem}}",
        "mediaUrl": "={{$node[\"Preparar Envio V\u00eddeo\"].json.dados.videoUrl}}",
        "options": {}
      },
      "name": "Enviar V\u00eddeo",
      "type": "n8n-nodes-base.twilio",
      "typeVersion": 1,
      "position": [
        1100,
        300
      ],
      "id": "send-video-node",
      "credentials": {
        "twilioApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "method": "POST",
        "url": "=http://supabase-server:3001/api/registrar-mensagem",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "whatsappNumero",
              "value": "={{$node[\"Detectar V\u00eddeo\"].json.from.replace(\"whatsapp:\", \"\")}}"
            },
            {
              "name": "pergunta",
              "value": "={{$node[\"Detectar V\u00eddeo\"].json.message}}"
            },
            {
              "name": "resposta",
              "value": "V\u00eddeo enviado: {{$node[\"Detectar V\u00eddeo\"].json.videoUrl}}"
            },
            {
              "name": "numeroDestino",
              "value": "={{$node[\"Detectar V\u00eddeo\"].json.waId}}"
            },
            {
              "name": "nome",
              "value": "={{$node[\"Detectar V\u00eddeo\"].json.profileName}}"
            }
          ]
        },
        "options": {}
      },
      "name": "Registrar Envio V\u00eddeo",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 3,
      "position": [
        1320,
        300
      ],
      "id": "register-video-node"
    },
    {
      "parameters": {
        "from": "={{$node[\"Webhook\"].json.body.To.replaceAll('whatsapp:', '')}}",
        "to": "={{$node[\"Extrair Dados\"].json.waId}}",
        "toWhatsapp": true,
        "message": "={{$node[\"OpenAI\"].json.output}}",
        "options": {}
      },
      "name": "Enviar Resposta",
      "type": "n8n-nodes-base.twilio",
      "typeVersion": 1,
      "position": [
        2576,
        500
      ],
      "id": "a91534de-6b85-4394-b82b-ebadc0cb4cea",
      "credentials": {
        "twilioApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "method": "POST",
        "url": "=http://supabase-server:3001/api/registrar-mensagem",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "whatsappNumero",
              "value": "={{$node[\"Extrair Dados\"].json.from.replace(\"whatsapp:\", \"\")}}"
            },
            {
              "name": "pergunta",
              "value": "={{$node[\"Extrair Dados\"].json.message}}"
            },
            {
              "name": "resposta",
              "value": "={{$node[\"OpenAI\"].json.output}}"
            },
            {
              "name": "numeroDestino",
              "value": "={{$node[\"Enviar Resposta\"].json.from.replaceAll('whatsapp:','')}}"
            },
            {
              "name": "nome",
              "value": "={{$node[\"Extrair Dados\"].json.profileName}}"
            }
          ]
        },
        "options": {}
      },
      "name": "Registrar Mensagem",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 3,
      "position": [
        2796,
        500
      ],
      "id": "1a1bf06c-8f9d-4f0a-88bb-d5fb241d3b0c"
    },
    {
      "parameters": {
        "resource": "assistant",
        "assistantId": {
          "__rl": true,
          "value": "asst_CJZAwPykZpXY1IZZAEdd1bJk",
          "mode": "list",
          "cachedResultName": "ThaysBot"
        },
        "prompt": "define",
        "text": "={{$node[\"Merge\"].json.var1}}",
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.8,
      "position": [
        2200,
        500
      ],
      "id": "73c21b6d-6374-4eec-8d62-d63121c0757a",
      "name": "OpenAI",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "Webhook": {
      "main": [
        [
          {
            "node": "Extrair Dados",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extrair Dados": {
      "main": [
        [
          {
            "node": "Detectar V\u00eddeo",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Detectar V\u00eddeo": {
      "main": [
        [
          {
            "node": "\u00c9 Solicita\u00e7\u00e3o de V\u00eddeo?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u00c9 Solicita\u00e7\u00e3o de V\u00eddeo?": {
      "main": [
        [
          {
            "node": "Preparar Envio V\u00eddeo",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "OpenAI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Preparar Envio V\u00eddeo": {
      "main": [
        [
          {
            "node": "Enviar V\u00eddeo",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Enviar V\u00eddeo": {
      "main": [
        [
          {
            "node": "Registrar Envio V\u00eddeo",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI": {
      "main": [
        [
          {
            "node": "Enviar Resposta",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Enviar Resposta": {
      "main": [
        [
          {
            "node": "Registrar Mensagem",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}