{
  "name": "Fotos Faciledita — Recuperação 24h",
  "nodes": [
    {
      "id": "cron-recuperacao",
      "name": "Agenda — toda hora",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1,
      "position": [80, 300],
      "parameters": {
        "rule": { "interval": [{ "field": "hours", "hoursInterval": 1 }] }
      }
    },
    {
      "id": "busca-leads-abandonados",
      "name": "Busca leads awaiting_pay sem recuperação",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [280, 300],
      "parameters": {
        "method": "GET",
        "url": "={{ $vars.API_URL }}",
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            { "name": "action", "value": "leads_recovery_pending" }
          ]
        }
      }
    },
    {
      "id": "tem-leads",
      "name": "Há leads para recuperar?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [480, 300],
      "parameters": {
        "conditions": {
          "conditions": [
            { "leftValue": "={{ $json.data.length }}", "operator": { "type": "number", "operation": "gt" }, "rightValue": 0 }
          ]
        }
      }
    },
    {
      "id": "split-leads",
      "name": "Divide leads",
      "type": "n8n-nodes-base.splitInBatches",
      "typeVersion": 3,
      "position": [680, 200],
      "parameters": {
        "batchSize": 1,
        "options": {}
      }
    },
    {
      "id": "envia-recuperacao",
      "name": "Envia mensagem de recuperação",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [880, 200],
      "parameters": {
        "method": "POST",
        "url": "={{ $vars.EVOLUTION_URL }}/message/sendText/{{ $vars.EVOLUTION_INSTANCE }}",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [{ "name": "apikey", "value": "={{ $vars.EVOLUTION_KEY }}" }]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"number\": \"{{ $json.phone }}\",\n  \"options\": { \"delay\": 1500 },\n  \"textMessage\": {\n    \"text\": \"👋 Olá{{ $json.name ? ', ' + $json.name : '' }}! Vi que você ainda não finalizou seu ensaio digital.\\n\\nSuas fotos estão nos esperando! 📸\\n\\n✨ Ainda temos disponibilidade hoje. Que tal concluir agora?\\n\\nResponda *SIM* para receber o link de pagamento novamente.\\n\\n_(Para não receber mais mensagens, responda PARAR)_\"\n  }\n}"
      }
    },
    {
      "id": "marca-recuperacao-enviada",
      "name": "Marca recovery_sent_at no lead",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [1080, 200],
      "parameters": {
        "method": "POST",
        "url": "={{ $vars.API_URL }}?action=lead_mark_recovery",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={ \"id\": {{ $json.id }} }"
      }
    },
    {
      "id": "aguarda-1min",
      "name": "Aguarda 1 min entre envios",
      "type": "n8n-nodes-base.wait",
      "typeVersion": 1,
      "position": [1080, 320],
      "parameters": {
        "unit": "minutes",
        "amount": 1
      }
    }
  ],
  "connections": {
    "Agenda — toda hora": { "main": [[{ "node": "Busca leads awaiting_pay sem recuperação", "type": "main", "index": 0 }]] },
    "Busca leads awaiting_pay sem recuperação": { "main": [[{ "node": "Há leads para recuperar?", "type": "main", "index": 0 }]] },
    "Há leads para recuperar?": {
      "main": [
        [{ "node": "Divide leads", "type": "main", "index": 0 }],
        []
      ]
    },
    "Divide leads": { "main": [[{ "node": "Envia mensagem de recuperação", "type": "main", "index": 0 }]] },
    "Envia mensagem de recuperação": { "main": [[{ "node": "Marca recovery_sent_at no lead", "type": "main", "index": 0 }]] },
    "Marca recovery_sent_at no lead": { "main": [[{ "node": "Aguarda 1 min entre envios", "type": "main", "index": 0 }]] },
    "Aguarda 1 min entre envios": { "main": [[{ "node": "Divide leads", "type": "main", "index": 0 }]] }
  },
  "settings": { "executionOrder": "v1" },
  "staticData": null
}
