{
  "name": "Generate portfolio screenshots and Upwork copy with Firecrawl, ScreenshotOne, OpenAI and Google Workspace",
  "nodes": [
    {
      "id": "b782b725-8c63-47e6-8164-fc634a049c84",
      "name": "Sticky Note - Main Guide",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2064,
        96
      ],
      "parameters": {
        "width": 420,
        "height": 808,
        "content": "# 📋 Portfolio Screenshot Generator - Setup Guide\n\n## What this workflow does:\n1. Takes a website URL from a form\n2. Renders the page with JavaScript (Firecrawl)\n3. AI analyzes the site structure and c"
      }
    },
    {
      "id": "bcccb937-d768-44d0-822a-1663987b7ea3",
      "name": "Sticky Note - Firecrawl",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1344,
        -112
      ],
      "parameters": {
        "width": 300,
        "height": 444,
        "content": "## 🔑 STEP 1: Firecrawl API Key\n\n**What:** Firecrawl renders JavaScript pages\n\n**How to get:**\n1. Go to https://firecrawl.dev\n2. Sign up / Log in\n3. Get your API key\n\n**Where to change:**\nIn the HTTP R"
      }
    },
    {
      "id": "c2fbcf06-511c-4267-8b40-28e8cb5ed0b4",
      "name": "Sticky Note - ScreenshotOne",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -480,
        -176
      ],
      "parameters": {
        "width": 300,
        "height": 456,
        "content": "## 🔑 STEP 2: ScreenshotOne API Key\n\n**What:** Takes high-quality screenshots\n\n**How to get:**\n1. Go to https://screenshotone.com\n2. Sign up (free tier available)\n3. Copy your Access Key\n\n**Where to ch"
      }
    },
    {
      "id": "5512ce93-beea-42ee-9d0c-327fa592d734",
      "name": "Sticky Note - OpenAI",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -880,
        -176
      ],
      "parameters": {
        "width": 300,
        "height": 432,
        "content": "## 🔑 STEP 3: OpenAI Credentials\n\n**What:** AI analyzes sites & writes Upwork descriptions\n\n**Setup:**\n1. Go to Settings → Credentials\n2. Add new \"OpenAI API\" credential\n3. Paste your API key from:\n   "
      }
    },
    {
      "id": "8b107b06-c832-4384-ae25-54535679b2a6",
      "name": "Sticky Note - Google Drive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        400,
        640
      ],
      "parameters": {
        "width": 348,
        "height": 484,
        "content": "## 📁 STEP 4: Google Drive Setup\n\n**What:** Stores screenshot images\n\n**Setup OAuth:**\n1. Settings → Credentials → Add \"Google Drive OAuth2\"\n2. Follow OAuth flow\n\n**⚠️ CHANGE FOLDER ID:**\nCurrent folde"
      }
    },
    {
      "id": "6831ed2c-a084-43c7-9101-223bfb271c35",
      "name": "Sticky Note - Google Sheets",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        752,
        -320
      ],
      "parameters": {
        "width": 320,
        "height": 552,
        "content": "## 📊 STEP 5: Google Sheets Setup\n\n**What:** Logs all results in a spreadsheet\n\n**Setup OAuth:**\n1. Settings → Credentials → Add \"Google Sheets OAuth2\"\n2. Follow OAuth flow\n\n**⚠️ CHANGE DOCUMENT ID:**\n"
      }
    },
    {
      "id": "0558fce0-4bd6-44a3-9b88-89e8a35d6e15",
      "name": "Sticky Note - Telegram",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1104,
        -320
      ],
      "parameters": {
        "width": 300,
        "height": 540,
        "content": "## 📱 STEP 6: Telegram Setup\n\n**What:** Sends notification when done\n\n**Setup Bot:**\n1. Message @BotFather on Telegram\n2. Send /newbot and follow steps\n3. Copy the bot token\n\n**Setup Credential:**\n1. S"
      }
    },
    {
      "id": "0c755c79-d2d8-4131-b046-01d2143f0867",
      "name": "Sticky Note - Customization",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -320,
        640
      ],
      "parameters": {
        "width": 320,
        "height": 452,
        "content": "## 🎨 CUSTOMIZATION OPTIONS\n\n**Screenshot Settings** (Site Configuration node):\n- `viewport_width`: 1920 (desktop) / 375 (mobile)\n- `device_scale_factor`: 2 (retina quality)\n- `delay`: 3 seconds (wait "
      }
    },
    {
      "id": "79fb4875-d639-4f97-826f-7438491fbf48",
      "name": "Sticky Note - Flow",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -64,
        -192
      ],
      "parameters": {
        "width": 400,
        "height": 368,
        "content": "## 🔄 WORKFLOW FLOW\n\n```\nForm → Firecrawl → AI Analysis → Screenshots → Upload → AI Upwork → Save → Notify\n```\n\n**Loop Logic:**\nScreenshots are processed one-by-one with 3s delay to avoid rate limits.\n"
      }
    },
    {
      "id": "5b6d24d2-0ba3-4866-b9d2-b476d4c813e3",
      "name": "Sticky Note - Trigger",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1616,
        -48
      ],
      "parameters": {
        "width": 260,
        "height": 292,
        "content": "## 🚀 TRIGGER\n\n**Form URL:**\nAfter activating, get the form URL from this node.\n\nShare this URL to allow others to submit websites for portfolio generation."
      }
    },
    {
      "id": "cf11d329-4716-444f-9bc8-6b49848989f6",
      "name": "Site Configuration",
      "type": "n8n-nodes-base.code",
      "position": [
        -416,
        352
      ]
    },
    {
      "id": "b06d6ccb-c47c-4357-a2da-51422fc3ae82",
      "name": "Take Screenshot",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -16,
        432
      ]
    },
    {
      "id": "6408987a-92cd-418e-9180-90d30e80a6e6",
      "name": "Merge Screenshot Data",
      "type": "n8n-nodes-base.code",
      "position": [
        224,
        432
      ]
    },
    {
      "id": "e9cec3c5-ac64-4a4c-8947-e48a39d1083b",
      "name": "Upload to Google Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        464,
        432
      ]
    },
    {
      "id": "fd76a123-5a76-4b5b-adef-2a3be66f9cef",
      "name": "Aggregate All Results",
      "type": "n8n-nodes-base.code",
      "position": [
        -16,
        240
      ]
    },
    {
      "id": "43a9d3b6-5aa4-48bb-bb11-939f10657e87",
      "name": "Save to Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        944,
        240
      ]
    },
    {
      "id": "ceb445a4-221b-48ab-8356-919bea68aa2f",
      "name": "Telegram Notification",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1184,
        240
      ]
    },
    {
      "id": "5c913d1b-492a-4aaf-8eb1-c2bdf56f6e88",
      "name": "Firecrawl Scrape",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1296,
        352
      ]
    },
    {
      "id": "9406854e-fd52-41f7-acd4-3a62a9b05a80",
      "name": "Parse AI Response",
      "type": "n8n-nodes-base.code",
      "position": [
        -576,
        352
      ]
    },
    {
      "id": "f6566d3b-9227-4582-99fa-e2431263474e",
      "name": "Prepare AI Request",
      "type": "n8n-nodes-base.code",
      "position": [
        -1056,
        352
      ]
    },
    {
      "id": "1832698b-ca5c-4012-b188-8e3a2b07f6cd",
      "name": "AI Site Analysis",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -816,
        352
      ]
    },
    {
      "id": "0f06e3f7-47f0-40f8-82c8-fca0354d6251",
      "name": "Prepare Upwork Request",
      "type": "n8n-nodes-base.code",
      "position": [
        224,
        240
      ]
    },
    {
      "id": "e076f5a6-2a02-4e63-9d76-065c499a7eae",
      "name": "AI Generate Upwork",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        464,
        240
      ]
    },
    {
      "id": "79fa1fce-c5be-42ee-91f2-7eeb10734245",
      "name": "Parse Upwork Response",
      "type": "n8n-nodes-base.code",
      "position": [
        704,
        240
      ]
    },
    {
      "id": "611d2b2a-744b-43b7-ac0e-e4e002711cbd",
      "name": "Portfolio Form",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -1552,
        352
      ]
    },
    {
      "id": "bc88d594-f7b5-4bf3-b8fd-b2daf12d2d94",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -240,
        352
      ]
    },
    {
      "id": "bea11447-6ffb-4cde-bfaf-404ae5cd6e32",
      "name": "Wait 3s",
      "type": "n8n-nodes-base.wait",
      "position": [
        704,
        432
      ]
    }
  ],
  "connections": {
    "Wait 3s": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Portfolio Form": {
      "main": [
        [
          {
            "node": "Firecrawl Scrape",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [
          {
            "node": "Aggregate All Results",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Take Screenshot",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Take Screenshot": {
      "main": [
        [
          {
            "node": "Merge Screenshot Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Site Analysis": {
      "main": [
        [
          {
            "node": "Parse AI Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Firecrawl Scrape": {
      "main": [
        [
          {
            "node": "Prepare AI Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse AI Response": {
      "main": [
        [
          {
            "node": "Site Configuration",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Generate Upwork": {
      "main": [
        [
          {
            "node": "Parse Upwork Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare AI Request": {
      "main": [
        [
          {
            "node": "AI Site Analysis",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Site Configuration": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate All Results": {
      "main": [
        [
          {
            "node": "Prepare Upwork Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge Screenshot Data": {
      "main": [
        [
          {
            "node": "Upload to Google Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Upwork Response": {
      "main": [
        [
          {
            "node": "Save to Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save to Google Sheets": {
      "main": [
        [
          {
            "node": "Telegram Notification",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Upwork Request": {
      "main": [
        [
          {
            "node": "AI Generate Upwork",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload to Google Drive": {
      "main": [
        [
          {
            "node": "Wait 3s",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}