{
  "name": "Lead Generation Pipeline",
  "nodes": [
    {
      "parameters": {
        "eventsUi": {
          "eventValues": [
            {
              "name": "leadgen"
            }
          ]
        }
      },
      "name": "Facebook Lead Ads Trigger",
      "type": "n8n-nodes-base.facebookTrigger",
      "typeVersion": 1,
      "position": [
        250,
        250
      ]
    },
    {
      "parameters": {
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "value": "Sheet1",
          "mode": "list",
          "cachedResultName": "Sheet1"
        },
        "options": {}
      },
      "name": "Google Sheets Trigger",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "typeVersion": 2,
      "position": [
        250,
        400
      ]
    },
    {
      "parameters": {
        "jsCode": "// Extract lead data from Facebook Lead Ads or Google Sheets\nconst items = [];\n\nfor (const item of $input.all()) {\n  let leadData = {};\n  const data = item.json;\n  \n  // Check if data is from Facebook Lead Ads\n  if (data.leadgen_id || data.form_id) {\n    const fieldData = data.field_data || [];\n    leadData = {\n      name: fieldData.find(f => f.name === 'full_name')?.values?.[0] || data.name || '',\n      email: fieldData.find(f => f.name === 'email')?.values?.[0] || data.email || '',\n      phone: fieldData.find(f => f.name === 'phone_number')?.values?.[0] || data.phone || '',\n      job_title: fieldData.find(f => f.name === 'job_title')?.values?.[0] || data.job_title || '',\n      company: fieldData.find(f => f.name === 'company_name')?.values?.[0] || data.company || '',\n      comments: fieldData.find(f => f.name === 'comments')?.values?.[0] || data.comments || '',\n      source: 'facebook'\n    };\n  } \n  // Check if data is from Google Sheets\n  else {\n    // Google Sheets data comes as direct properties\n    // Assuming columns: name, email, Phone number, Job Tittle, company, comments\n    leadData = {\n      name: data.name || data.Name || data.full_name || data['Full Name'] || '',\n      email: data.email || data.Email || '',\n      phone: data['Phone number'] || data.phone || data.Phone || data.phone_number || data['Phone Number'] || '',\n      job_title: data['Job Tittle'] || data.job_title || data['Job Title'] || data.title || data.Title || '',\n      company: data.company || data.Company || data.company_name || data['Company Name'] || '',\n      comments: data.comments || data.Comments || data.comment || data.Comment || '',\n      source: 'google_sheets'\n    };\n  }\n  \n  items.push({ json: leadData });\n}\n\nreturn items;"
      },
      "name": "Process Lead Data",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        450,
        325
      ]
    },
    {
      "parameters": {
        "url": "https://marcelino-insecure-staci.ngrok-free.dev/pipeline/run",
        "method": "POST",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "ngrok-skip-browser-warning",
              "value": "true"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        },
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "dry_run",
              "value": "=false"
            },
            {
              "name": "enrichment_mode",
              "value": "=ai"
            },
            {
              "name": "lead_count",
              "value": "=200"
            },
            {
              "name": "channel",
              "value": "=both"
            },
            {
              "name": "lead_data",
              "value": "={{ { \"name\": $json.name, \"email\": $json.email, \"phone\": $json.phone, \"job_title\": $json.job_title, \"company\": $json.company, \"comments\": $json.comments, \"source\": $json.source } }}"
            }
          ]
        },
        "options": {}
      },
      "name": "Run Pipeline",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [
        650,
        325
      ]
    },
    {
      "parameters": {
        "amount": 5,
        "unit": "seconds"
      },
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "typeVersion": 1,
      "position": [
        850,
        325
      ]
    },
    {
      "parameters": {
        "url": "https://marcelino-insecure-staci.ngrok-free.dev/metrics",
        "method": "GET",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "ngrok-skip-browser-warning",
              "value": "true"
            }
          ]
        },
        "options": {}
      },
      "name": "Get Metrics",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [
        1050,
        325
      ]
    },
    {
      "parameters": {
        "conditions": {
          "boolean": [
            {
              "value1": "={{ $json.pipeline_running }}",
              "value2": true
            }
          ]
        }
      },
      "name": "Check If Running",
      "type": "n8n-nodes-base.if",
      "typeVersion": 1,
      "position": [
        1250,
        325
      ]
    },
    {
      "parameters": {
        "amount": 3,
        "unit": "seconds"
      },
      "name": "Wait for Completion",
      "type": "n8n-nodes-base.wait",
      "typeVersion": 1,
      "position": [
        1450,
        225
      ]
    },
    {
      "parameters": {
        "url": "https://marcelino-insecure-staci.ngrok-free.dev/metrics",
        "method": "GET",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "ngrok-skip-browser-warning",
              "value": "true"
            }
          ]
        },
        "options": {}
      },
      "name": "Get Final Metrics",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [
        1450,
        425
      ]
    },
    {
      "parameters": {
        "url": "https://marcelino-insecure-staci.ngrok-free.dev/leads",
        "method": "GET",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "ngrok-skip-browser-warning",
              "value": "true"
            }
          ]
        },
        "qs": {
          "limit": 50
        },
        "options": {}
      },
      "name": "Get Leads",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [
        1650,
        425
      ]
    }
  ],
  "connections": {
    "Facebook Lead Ads Trigger": {
      "main": [
        [
          {
            "node": "Process Lead Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets Trigger": {
      "main": [
        [
          {
            "node": "Process Lead Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Process Lead Data": {
      "main": [
        [
          {
            "node": "Run Pipeline",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Run Pipeline": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait": {
      "main": [
        [
          {
            "node": "Get Metrics",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Metrics": {
      "main": [
        [
          {
            "node": "Check If Running",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check If Running": {
      "main": [
        [
          {
            "node": "Wait for Completion",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Get Final Metrics",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait for Completion": {
      "main": [
        [
          {
            "node": "Get Metrics",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Final Metrics": {
      "main": [
        [
          {
            "node": "Get Leads",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "staticData": null,
  "tags": [],
  "triggerCount": 0,
  "updatedAt": "2024-01-08T00:00:00.000Z",
  "versionId": "1"
}