{
  "name": "Generate AI sales pitches from website URLs with GPT-4o and Google Sheets",
  "nodes": [
    {
      "id": "6791eccd-206f-46db-b2a0-fd22eddcbaab",
      "name": "Manual Trigger",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -992,
        -80
      ]
    },
    {
      "id": "de262216-3632-44fa-8095-51b2890a2bff",
      "name": "Shape output (Edit Fields)",
      "type": "n8n-nodes-base.set",
      "position": [
        272,
        -80
      ]
    },
    {
      "id": "13509a29-9641-4cb7-a100-322dbcf18efc",
      "name": "Wait 2s",
      "type": "n8n-nodes-base.wait",
      "position": [
        512,
        -16
      ]
    },
    {
      "id": "14b1b895-6a33-4f82-8222-5375bbafbe89",
      "name": "Done",
      "type": "n8n-nodes-base.noOp",
      "position": [
        -400,
        128
      ]
    },
    {
      "id": "0aba365a-c78e-4746-b486-3d82247f3bde",
      "name": "Personalize Message",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        -96,
        -80
      ]
    },
    {
      "id": "f8c9563f-4095-43d6-af90-31ed79b2e57e",
      "name": "Update sheet with personalized message",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        704,
        176
      ]
    },
    {
      "id": "5dd11818-b2ec-4d17-b3af-7c3640f10b4d",
      "name": "Fetch website URL from sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -784,
        -80
      ]
    },
    {
      "id": "a491869d-1446-40bf-b997-db77a5898534",
      "name": "Loop over URLs",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -512,
        -80
      ]
    },
    {
      "id": "d0ee57fd-c057-4cfb-af2f-91d6fbb0fc74",
      "name": "Scrape website and get its content",
      "type": "@mendable/n8n-nodes-firecrawl.firecrawl",
      "position": [
        -288,
        -80
      ]
    },
    {
      "id": "b8aed690-0f39-4886-a80a-4ad918a5c835",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -896,
        -400
      ],
      "parameters": {
        "width": 352,
        "height": 304,
        "content": "Upon being triggered, this first step is going to fetch all URLs from your spreadsheet. Each URL should be in a  new row.\n\nSpreadsheet setup:\n- column 1 = website\n- column 2 = personalized message\n\nPr"
      }
    },
    {
      "id": "3c22c785-ac6c-4ec7-aa13-8d6e65474bfa",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -224,
        -416
      ],
      "parameters": {
        "width": 352,
        "height": 304,
        "content": "This is where the meat of things happens. The automation will loop over each website, using Firecrawl to perform the scrape. It will pass that content into your LLM (chatGPT in this case) to perform t"
      }
    },
    {
      "id": "59b808d0-d10f-4c96-9215-6da972cdb09c",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        640,
        384
      ],
      "parameters": {
        "width": 272,
        "height": 80,
        "content": "Your message will get mapped to the appropriate column in the spreadsheet"
      }
    }
  ],
  "connections": {
    "Wait 2s": {
      "main": [
        [
          {
            "node": "Update sheet with personalized message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop over URLs": {
      "main": [
        [
          {
            "node": "Scrape website and get its content",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Done",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Manual Trigger": {
      "main": [
        [
          {
            "node": "Fetch website URL from sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Personalize Message": {
      "main": [
        [
          {
            "node": "Shape output (Edit Fields)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Shape output (Edit Fields)": {
      "main": [
        [
          {
            "node": "Wait 2s",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch website URL from sheet": {
      "main": [
        [
          {
            "node": "Loop over URLs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scrape website and get its content": {
      "main": [
        [
          {
            "node": "Personalize Message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update sheet with personalized message": {
      "main": [
        [
          {
            "node": "Loop over URLs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}