{"workflow":{"id":14266,"name":"Generate AI UGC videos with HeyGen and post to Instagram and Facebook daily","views":557,"recentViews":13,"totalViews":557,"createdAt":"2026-03-23T11:08:07.330Z","description":"# Heygen Viral UGC Generation\n\n**Stop manually creating short-form video content.** This n8n workflow automatically generates AI talking-head UGC videos using HeyGen and publishes them to Instagram and Facebook every single day — fully on autopilot.\n\n![Live Instagram Reel - AI Talking Head Published by This Workflow](https://articles.emp0.com/wp-content/uploads/2026/03/Screenshot-from-2026-03-23-17-52-16.png)\n\n*Real reel posted to [@pinkmatchaprints](https://www.instagram.com/pinkmatchaprints/reels/) — generated and published entirely by this workflow.*\n\n---\n\n## See It In Action: Real Results from Pink Matcha\n\n**[Watch a live reel generated by this workflow](https://www.instagram.com/reel/DU5EzhuAI8H/?utm_source=ig_web_button_share_sheet&igsh=MzRlODBiNWFlZA==)**\n\n**[See all published reels on @pinkmatchaprints](https://www.instagram.com/pinkmatchaprints/reels/)**\n\n![Published Reels Grid - pinkmatchaprints Instagram Account](https://articles.emp0.com/wp-content/uploads/2026/03/Screenshot-from-2026-03-23-17-51-58.png)\n\nEvery single one of these videos was generated and posted automatically — no recording, no editing, no manual uploading.\n\n---\n\n## How It Works\n\nThe workflow runs every day on a schedule. Here's the full pipeline:\n\n1. **Picks today's content** from a Google Sheet using a day-of-year rotation across all rows marked `Idea`\n2. **Randomly selects a HeyGen talking-photo avatar** from a pool of 14 for visual variation across posts\n3. **Generates a 30-second script** using GPT-4.1-mini with a warm, spiritual persona called \"The Shepherd\"\n4. **Submits to HeyGen API** to render a 720x1280 portrait talking-head video\n5. **Polls HeyGen** every 50 seconds (up to 20 times, ~16 min max) until the video is ready\n6. **Publishes to Instagram and Facebook** via upload-post.com with an auto-generated caption\n7. **Logs every step** to a Production Logs Google Sheet — script, video ID, video URL, and status\n\n---\n\n## What You're Getting\n\n### AI-Generated Scripts with a Defined Persona\n\nThe workflow uses GPT-4.1-mini with a custom system prompt called **\"The Shepherd\"** — a calm, wise, spiritual guide. Every script is:\n\n- 75 to 90 words (~30 seconds when spoken naturally)\n- Written in warm, grounded, accessible language\n- Tailored to the specific content section from your workbook\n- Always ending with: *\"Visit the link in bio to learn more.\"*\n\n### A Content Rotation System That Never Repeats\n\nYour content pool lives in a Google Sheet. The workflow selects today's section using day-of-year modulo total rows — so it automatically cycles through your content library without manual scheduling. Add more rows to expand the rotation.\n\n### Full Production Logging\n\nEvery execution is tracked row by row in a Production Logs sheet. You can see exactly what ran, what script was used, what the HeyGen video ID is, and what the final status is.\n\n### Async Video Generation with Smart Polling\n\nHeyGen renders videos asynchronously. The workflow handles this gracefully — it submits the job, waits, polls the status API, and routes automatically based on the result:\n\n- **Still processing** → waits and retries\n- **Completed** → extracts video URL and posts\n- **Failed or timed out** → logs the failure reason to the sheet\n\n### Dual Platform Publishing\n\nVideos are published to both Instagram and Facebook in one execution using upload-post.com. The caption is auto-built from the section title and first 100 characters of the script.\n\n---\n\n## Google Sheets Structure\n\nThe workflow uses a single Google Sheets workbook with two tabs:\n\n### Tab 1: Workbook Content\n\nYour content pool. The workflow reads from this every day.\n\n![Workbook Content Sheet - Content Pool with Section Titles, Key Messages, and Status](https://articles.emp0.com/wp-content/uploads/2026/03/Screenshot-from-2026-03-23-17-40-55.png)\n\n| Column | Description |\n|---|---|\n| `section_title` | Title used in the video caption and script prompt |\n| `workbook_content` | Full context for the AI to generate the script from |\n| `key_message` | The core takeaway — passed to the AI as emphasis |\n| `Status` | Set to `Idea` to include in rotation. Any other value skips the row. |\n\n### Tab 2: Production Logs\n\nAuto-populated. Do not edit manually.\n\n![Production Logs Sheet - Script, HeyGen Video ID, and Status Tracked Per Row](https://articles.emp0.com/wp-content/uploads/2026/03/Screenshot-from-2026-03-23-17-49-11.png)\n\n| Column | Description |\n|---|---|\n| `Date` | Date the video was generated |\n| `Section Title` | Which content section was used |\n| `Script Text` | The generated script |\n| `HeyGen Video ID` | Used to poll render status |\n| `Raw Video URL` | Direct HeyGen video URL |\n| `Final Video URL` | Final URL passed to the publishing step |\n| `Status` | Lifecycle status or failure reason |\n\n---\n\n## Setup Guide\n\n### Step 1: Credentials\n\n| Service | Credential Type | Where Used |\n|---|---|---|\n| HeyGen | HTTP Header Auth (`X-Api-Key`) | Generate and poll videos |\n| upload-post.com | HTTP Header Auth | Post to Instagram / Facebook |\n| Google Sheets | OAuth2 | Read content, write logs |\n| OpenAI | API Key | Generate scripts (GPT-4.1-mini) |\n\n### Step 2: Google Sheets\n\n- Duplicate the workbook structure described above\n- Replace the `documentId` in all Google Sheets nodes with your spreadsheet ID\n- Populate the `Workbook Content` tab and set `Status` = `Idea` on each row\n\n### Step 3: HeyGen Avatars\n\nThe workflow ships with 14 hardcoded talking-photo avatar IDs in the `Code: Select Random Avatar & Combine Data` node. Replace these with your own HeyGen avatar IDs from your HeyGen account.\n\n### Step 4: upload-post.com Account\n\nUpdate the `user` field in both the `facebook` and `instagram` nodes from `pink-matcha` to your upload-post.com username.\n\n### Step 5: Enable Facebook (When Ready)\n\nThe `facebook` node is **disabled by default**. Once you confirm Instagram is posting correctly, enable it in n8n.\n\n### Step 6: Adjust the Schedule\n\nThe trigger is set to fire daily at **12pm noon**. The node name says \"9am\" — rename or adjust the time in the Schedule node to match your target posting time.\n\n---\n\n## Technical Specs\n\n- **Script AI**: OpenAI GPT-4.1-mini\n- **Video Generation**: HeyGen v2 API (talking-photo avatars)\n- **Video Format**: 720x1280 portrait (Reels / Shorts)\n- **Polling**: 50-second intervals, max 20 attempts (~16 min timeout)\n- **Publishing**: upload-post.com multipart API\n- **Logging**: Google Sheets (OAuth2)\n- **Error Workflow**: Separate n8n error workflow for unexpected crashes\n- **Platform**: n8n (self-hosted or cloud)\n\n---\n\n## Frequently Asked Questions\n\n**Q: Do I need a HeyGen subscription?**\nA: Yes. You need a HeyGen account with API access and at least one talking-photo avatar created in your account.\n\n**Q: What is upload-post.com?**\nA: A third-party service that handles posting video content to Instagram and Facebook on your behalf. You need an account connected to your social profiles.\n\n**Q: Can I change the AI persona?**\nA: Yes. Edit the system prompt in the `Generate Script` node to use any persona, tone, or style you want.\n\n**Q: Can I post to TikTok or YouTube Shorts?**\nA: upload-post.com supports other platforms. You can add additional HTTP request nodes following the same pattern as the `instagram` node and change the `platform[]` parameter.\n\n**Q: How do I add more content?**\nA: Add rows to the `Workbook Content` tab in Google Sheets and set `Status` = `Idea`. The rotation automatically picks them up.\n\n**Q: What happens if HeyGen fails?**\nA: The workflow detects failure or timeout and writes the reason to the Production Logs sheet. A separate n8n error workflow handles unexpected crashes.\n\n**Q: How long does one execution take?**\nA: Typically 5 to 15 minutes end-to-end, depending on HeyGen render time.\n\n---\n\n## Join the Community\n\n- [Other free n8n workflows](https://n8n.io/creators/jay-emp0/)\n- [GitHub repository](https://github.com/Jharilela/n8n-workflows)\n- [Join AI + Automation Discord](https://discord.gg/qg3qVfFchV)\n- [Official website](https://emp0.com)\n- [Live example account](https://www.instagram.com/pinkmatchaprints/reels/)\n\n---\n\n*Powered by n8n • OpenAI • HeyGen • Google Sheets • upload-post.com*\n","workflow":{"id":"zH2888HsyPtX4Bdi56Bie","name":"Heygen Viral UGC generation","tags":[],"nodes":[{"id":"0d005363-17ba-43e8-8046-68845d1be070","name":"Code: Check HeyGen Status","type":"n8n-nodes-base.code","position":[416,176],"parameters":{"jsCode":"const pollResponse = $('HTTP: Poll HeyGen Status').first().json;\nconst state = $('Wait: HeyGen Processing').first().json || $('Code: Extract HeyGen Video ID').first().json;\n\nconst statusRaw = pollResponse.data?.status || pollResponse.status || 'unknown';\nconst status = String(statusRaw).toLowerCase();\nconst pollCount = (state.pollCount || 0) + 1;\nconst maxPolls = state.maxPolls || 20;\nconst pollIntervalSec = state.pollIntervalSec || 30;\n\nif (status === 'completed') {\n  return [{\n    json: {\n      ...state,\n      pollCount,\n      heygenStatus: status,\n      heygenRoute: 'completed'\n    }\n  }];\n}\n\nif (status === 'failed' || status === 'error' || status === 'canceled' || status === 'cancelled') {\n  return [{\n    json: {\n      ...state,\n      pollCount,\n      heygenStatus: status,\n      failStatus: 'Failed',\n      failReason: `HeyGen status: ${status}`,\n      heygenRoute: 'failed'\n    }\n  }];\n}\n\nif (pollCount >= maxPolls) {\n  return [{\n    json: {\n      ...state,\n      pollCount,\n      heygenStatus: status,\n      failStatus: 'Timed Out',\n      failReason: `Timed out after ${pollCount} polls (~${pollCount * pollIntervalSec}s)`,\n      heygenRoute: 'failed'\n    }\n  }];\n}\n\nreturn [{\n  json: {\n    ...state,\n    pollCount,\n    heygenStatus: status,\n    heygenRoute: 'retry'\n  }\n}];"},"typeVersion":2},{"id":"0912ba07-81f8-47f7-9875-9d9b9adb056c","name":"Google Sheets: Log Failure","type":"n8n-nodes-base.googleSheets","position":[-704,1072],"parameters":{"columns":{"value":{"Status":"={{ $json.failReason || $json.failStatus }}","row_number":"={{ $json.row_number }}"},"schema":[{"id":"Date","type":"string","display":true,"removed":true,"required":false,"displayName":"Date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Section Title","type":"string","display":true,"removed":true,"required":false,"displayName":"Section Title","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Script Text","type":"string","display":true,"removed":true,"required":false,"displayName":"Script Text","defaultMatch":false,"canBeUsedToMatch":true},{"id":"HeyGen Video ID","type":"string","display":true,"removed":true,"required":false,"displayName":"HeyGen Video ID","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Raw Video URL","type":"string","display":true,"removed":true,"required":false,"displayName":"Raw Video URL","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Final Video URL","type":"string","display":true,"removed":true,"required":false,"displayName":"Final Video URL","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Status","type":"string","display":true,"required":false,"displayName":"Status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"row_number","type":"number","display":true,"removed":false,"readOnly":true,"required":false,"displayName":"row_number","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["row_number"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update","sheetName":{"__rl":true,"mode":"list","value":2075799952,"cachedResultUrl":"https://docs.google.com/spreadsheets/d/1mL7ES9lKFd-WQKPe8b-LPufqRHBpOmlJaGkKuSy3lY4/edit#gid=2075799952","cachedResultName":"Production Logs"},"documentId":{"__rl":true,"mode":"list","value":"1mL7ES9lKFd-WQKPe8b-LPufqRHBpOmlJaGkKuSy3lY4","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1mL7ES9lKFd-WQKPe8b-LPufqRHBpOmlJaGkKuSy3lY4/edit?usp=drivesdk","cachedResultName":"AI Avatar - PinkMatcha"}},"typeVersion":4.4},{"id":"04668811-7ae7-4fa2-999c-35fa8bb58f87","name":"Code: Calculate Content Index","type":"n8n-nodes-base.code","position":[-528,-528],"parameters":{"jsCode":"// Get day of year (1-365)\nconst now = new Date();\nconst start = new Date(now.getFullYear(), 0, 0);\nconst diff = now - start;\nconst oneDay = 1000 * 60 * 60 * 24;\nconst dayOfYear = Math.floor(diff / oneDay);\n\n// Will use modulo with total workbook sections count in next node\nreturn [{\n  json: {\n    dayOfYear: dayOfYear,\n    date: now.toISOString().split('T')[0]\n  }\n}];"},"typeVersion":2},{"id":"0387f5dd-c55f-4118-a9e5-3d4cc7e72ad1","name":"Google Sheets: Get Workbook Content","type":"n8n-nodes-base.googleSheets","position":[-304,-528],"parameters":{"options":{},"filtersUI":{"values":[{"lookupValue":"Idea","lookupColumn":"Status"}]},"sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1mL7ES9lKFd-WQKPe8b-LPufqRHBpOmlJaGkKuSy3lY4/edit#gid=0","cachedResultName":"Workbook Content"},"documentId":{"__rl":true,"mode":"list","value":"1mL7ES9lKFd-WQKPe8b-LPufqRHBpOmlJaGkKuSy3lY4","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1mL7ES9lKFd-WQKPe8b-LPufqRHBpOmlJaGkKuSy3lY4/edit?usp=drivesdk","cachedResultName":"AI Avatar - PinkMatcha"}},"typeVersion":4.4},{"id":"6005b492-ca52-4646-a64f-9f0d5bfa50c1","name":"Code: Select Today's Section","type":"n8n-nodes-base.code","position":[-80,-528],"parameters":{"jsCode":"// Get day of year from earlier node\nconst dayOfYear = $('Code: Calculate Content Index').first().json.dayOfYear;\nconst date = $('Code: Calculate Content Index').first().json.date;\n\n// Get all workbook sections from Google Sheets\nconst sections = $('Google Sheets: Get Workbook Content').all();\nconst totalSections = sections.length;\n\nif (totalSections === 0) {\n  throw new Error('Workbook Content is empty. Add at least one section before running the workflow.');\n}\n\n// Calculate which section to use today (day 1 should map to index 0)\nconst sectionIndex = (dayOfYear - 1) % totalSections;\nconst selectedSection = sections[sectionIndex].json;\n\nreturn [{\n  json: {\n    date: date,\n    dayOfYear: dayOfYear,\n    sectionIndex: sectionIndex,\n    totalSections: totalSections,\n    rowId: selectedSection.row_id || selectedSection.row_number,\n    sectionTitle: selectedSection.section_title,\n    workbookContent: selectedSection.workbook_content,\n    keyMessage: selectedSection.key_message\n  }\n}];"},"typeVersion":2},{"id":"6e44dd92-3fe6-4fd4-9d85-68989046f858","name":"Code: Select Random Avatar & Combine Data","type":"n8n-nodes-base.code","position":[128,-528],"parameters":{"jsCode":"// Get section data from earlier\nconst sectionData = $('Code: Select Today\\'s Section').first().json;\n\n// Avatar IDs list\nconst avatarIds = [\n  'f95484e160dd46d49bd3eff27a70efa0',\n  'ecc28e92ccda43039065e010f6b745e7',\n  'bbb7020a766f429e811c1b23fcecf987',\n  '7fe0025cb65741bcb4de30c5334e3e1e',\n  '7ca05b019f4641628f8ca7b2b28dd22c',\n  '67f62143cfb64b70a09f5e493dc9986b',\n  '65ff242eb2834888a0a25ddaf0d3fdd8',\n  '59ae496933a54670885354e0147e11f4',\n  '4e8149cc6be54a84b40b79a751d0c06e',\n  '38e03f446adb44ada5f510bb9809fdbf',\n  '2f02a0c1fa0b4595b94a9a1a075e73ab',\n  '29b98540e4974d43807d4ce6ee3d68cf',\n  '210d27cf1f8e428dbd01410a05ea4dd2',\n  '1c8b64b6925340f597cc6521d1c7abfd'\n];\n\n// Select random avatar for background variation\nconst randomIndex = Math.floor(Math.random() * avatarIds.length);\nconst selectedAvatarId = avatarIds[randomIndex];\n\nreturn [{\n  json: {\n    date: sectionData.date,\n    rowId: sectionData.rowId,\n    sectionTitle: sectionData.sectionTitle,\n    workbookContent: sectionData.workbookContent,\n    keyMessage: sectionData.keyMessage,\n    avatarId: selectedAvatarId,\n    avatarIndex: randomIndex\n  }\n}];"},"typeVersion":2},{"id":"a9016ce7-dc0d-48a4-9213-620bc46ebe9f","name":"Code: Parse AI Response","type":"n8n-nodes-base.code","position":[-416,-176],"parameters":{"jsCode":"// Get the response from the generator node\nconst response = $('Generate Script').first().json;\n\n// Recursive function to find the JSON string containing \"script\"\nfunction findJsonRecursive(obj, depth = 0) {\n    if (depth > 5) return null;\n    if (obj === null || typeof obj !== 'object') return null;\n    for (const key of Object.keys(obj)) {\n        const val = obj[key];\n        if (typeof val === 'string') {\n            const trimmed = val.trim();\n            if (trimmed.includes('\"script\"') || trimmed.indexOf(\"'script'\") > -1) {\n                return trimmed;\n            }\n        }\n        if (typeof val === 'object') {\n            const result = findJsonRecursive(val, depth + 1);\n            if (result) return result;\n        }\n    }\n    return null;\n}\n\nlet content = response.message?.content || response.choices?.[0]?.message?.content;\nif (typeof content !== 'string') content = null;\n\nif (!content && Array.isArray(response.content) && response.content[0]?.text) {\n    content = response.content[0].text;\n}\n\nif (!content) {\n    content = findJsonRecursive(response);\n}\n\nif (!content && response.script) {\n    content = JSON.stringify(response);\n}\n\nif (!content) {\n    throw new Error('Could not find any string containing \"script\" in the response object. Please check the Input JSON. Structure: ' + JSON.stringify(response));\n}\n\nlet parsed;\ntry {\n  try {\n    parsed = JSON.parse(content);\n  } catch (e) {\n    const jsonMatch = content.match(/\\{[^{}]*\"script\"[^{}]*\\}/) || content.match(/\\{[\\s\\S]*\\}/);\n    if (jsonMatch) {\n      parsed = JSON.parse(jsonMatch[0]);\n    } else {\n      throw e;\n    }\n  }\n} catch (e) {\n  throw new Error('Found content string but failed to parse JSON: ' + e.message + ' | Content: ' + content.substring(0, 100));\n}\n\nif (!parsed || !parsed.script) {\n    if (parsed && typeof parsed === 'object' && !parsed.script) {\n         throw new Error('Parsed JSON is missing \"script\" property. Result: ' + JSON.stringify(parsed));\n    }\n}\n\nconst combinedData = $('Code: Select Random Avatar & Combine Data').first().json;\n\nreturn [{\n  json: {\n    date: combinedData.date,\n    rowId: combinedData.rowId,\n    sectionTitle: combinedData.sectionTitle,\n    avatarId: combinedData.avatarId,\n    script: parsed.script\n  }\n}];"},"typeVersion":2},{"id":"9a9bafc5-9d6f-4ed6-88ff-b5e1a8d0b5cb","name":"Google Sheets: Create Production Log","type":"n8n-nodes-base.googleSheets","position":[-192,-176],"parameters":{"columns":{"value":{"Date":"={{ $json.date }}","Status":"Generating","Script Text":"={{ $json.script }}","Section Title":"={{ $json.sectionTitle }}"},"schema":[{"id":"Date","type":"string","display":true,"required":false,"displayName":"Date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Section Title","type":"string","display":true,"required":false,"displayName":"Section Title","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Script Text","type":"string","display":true,"required":false,"displayName":"Script Text","defaultMatch":false,"canBeUsedToMatch":true},{"id":"HeyGen Video ID","type":"string","display":true,"removed":true,"required":false,"displayName":"HeyGen Video ID","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Raw Video URL","type":"string","display":true,"removed":true,"required":false,"displayName":"Raw Video URL","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Final Video URL","type":"string","display":true,"removed":true,"required":false,"displayName":"Final Video URL","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Status","type":"string","display":true,"required":false,"displayName":"Status","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"append","sheetName":{"__rl":true,"mode":"list","value":2075799952,"cachedResultUrl":"https://docs.google.com/spreadsheets/d/1mL7ES9lKFd-WQKPe8b-LPufqRHBpOmlJaGkKuSy3lY4/edit#gid=2075799952","cachedResultName":"Production Logs"},"documentId":{"__rl":true,"mode":"list","value":"1mL7ES9lKFd-WQKPe8b-LPufqRHBpOmlJaGkKuSy3lY4","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1mL7ES9lKFd-WQKPe8b-LPufqRHBpOmlJaGkKuSy3lY4/edit?usp=drivesdk","cachedResultName":"AI Avatar - PinkMatcha"}},"typeVersion":4.4},{"id":"a436d05f-16f9-48e9-9c43-c30da42a8452","name":"Google Sheets: Save HeyGen Video ID","type":"n8n-nodes-base.googleSheets","position":[-288,176],"parameters":{"columns":{"value":{"Status":"Processing","row_number":"={{ $('Code: Parse AI Response').item.json.rowId }}","HeyGen Video ID":"={{ $json.heygenVideoId }}"},"schema":[{"id":"Date","type":"string","display":true,"removed":true,"required":false,"displayName":"Date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Section Title","type":"string","display":true,"removed":true,"required":false,"displayName":"Section Title","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Script Text","type":"string","display":true,"removed":true,"required":false,"displayName":"Script Text","defaultMatch":false,"canBeUsedToMatch":true},{"id":"HeyGen Video ID","type":"string","display":true,"removed":false,"required":false,"displayName":"HeyGen Video ID","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Raw Video URL","type":"string","display":true,"removed":true,"required":false,"displayName":"Raw Video URL","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Final Video URL","type":"string","display":true,"removed":true,"required":false,"displayName":"Final Video URL","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Status","type":"string","display":true,"removed":true,"required":false,"displayName":"Status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"row_number","type":"number","display":true,"removed":false,"readOnly":true,"required":false,"displayName":"row_number","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["row_number"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update","sheetName":{"__rl":true,"mode":"list","value":2075799952,"cachedResultUrl":"https://docs.google.com/spreadsheets/d/1mL7ES9lKFd-WQKPe8b-LPufqRHBpOmlJaGkKuSy3lY4/edit#gid=2075799952","cachedResultName":"Production Logs"},"documentId":{"__rl":true,"mode":"list","value":"1mL7ES9lKFd-WQKPe8b-LPufqRHBpOmlJaGkKuSy3lY4","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1mL7ES9lKFd-WQKPe8b-LPufqRHBpOmlJaGkKuSy3lY4/edit?usp=drivesdk","cachedResultName":"AI Avatar - PinkMatcha"}},"typeVersion":4.4},{"id":"37aef713-65d0-4237-a821-2c28f301ef58","name":"Google Sheets: Save Raw Video URL","type":"n8n-nodes-base.googleSheets","position":[1184,176],"parameters":{"columns":{"value":{"Status":"Finalizing","row_number":"={{ $('Code: Parse AI Response').item.json.rowId }}","Raw Video URL":"={{ $json.rawVideoUrl }}"},"schema":[{"id":"Date","type":"string","display":true,"removed":true,"required":false,"displayName":"Date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Section Title","type":"string","display":true,"removed":true,"required":false,"displayName":"Section Title","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Script Text","type":"string","display":true,"removed":true,"required":false,"displayName":"Script Text","defaultMatch":false,"canBeUsedToMatch":true},{"id":"HeyGen Video ID","type":"string","display":true,"removed":true,"required":false,"displayName":"HeyGen Video ID","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Raw Video URL","type":"string","display":true,"required":false,"displayName":"Raw Video URL","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Final Video URL","type":"string","display":true,"removed":true,"required":false,"displayName":"Final Video URL","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Status","type":"string","display":true,"required":false,"displayName":"Status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"row_number","type":"number","display":true,"removed":false,"readOnly":true,"required":false,"displayName":"row_number","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["row_number"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update","sheetName":{"__rl":true,"mode":"list","value":2075799952,"cachedResultUrl":"https://docs.google.com/spreadsheets/d/1mL7ES9lKFd-WQKPe8b-LPufqRHBpOmlJaGkKuSy3lY4/edit#gid=2075799952","cachedResultName":"Production Logs"},"documentId":{"__rl":true,"mode":"list","value":"1mL7ES9lKFd-WQKPe8b-LPufqRHBpOmlJaGkKuSy3lY4","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1mL7ES9lKFd-WQKPe8b-LPufqRHBpOmlJaGkKuSy3lY4/edit?usp=drivesdk","cachedResultName":"AI Avatar - PinkMatcha"}},"typeVersion":4.4},{"id":"24eab730-94c9-41a7-93f3-f574b066e6dc","name":"Google Sheets: Update Complete","type":"n8n-nodes-base.googleSheets","position":[-672,688],"parameters":{"columns":{"value":{"Status":"Complete","row_number":"={{ $('Code: Parse AI Response').item.json.rowId }}","Final Video URL":"={{ $json.finalVideoUrl }}"},"schema":[{"id":"Date","type":"string","display":true,"removed":true,"required":false,"displayName":"Date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Section Title","type":"string","display":true,"removed":true,"required":false,"displayName":"Section Title","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Script Text","type":"string","display":true,"removed":true,"required":false,"displayName":"Script Text","defaultMatch":false,"canBeUsedToMatch":true},{"id":"HeyGen Video ID","type":"string","display":true,"removed":true,"required":false,"displayName":"HeyGen Video ID","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Raw Video URL","type":"string","display":true,"removed":true,"required":false,"displayName":"Raw Video URL","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Final Video URL","type":"string","display":true,"required":false,"displayName":"Final Video URL","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Status","type":"string","display":true,"required":false,"displayName":"Status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"row_number","type":"number","display":true,"removed":false,"readOnly":true,"required":false,"displayName":"row_number","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["row_number"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update","sheetName":{"__rl":true,"mode":"list","value":2075799952,"cachedResultUrl":"https://docs.google.com/spreadsheets/d/1mL7ES9lKFd-WQKPe8b-LPufqRHBpOmlJaGkKuSy3lY4/edit#gid=2075799952","cachedResultName":"Production Logs"},"documentId":{"__rl":true,"mode":"list","value":"1mL7ES9lKFd-WQKPe8b-LPufqRHBpOmlJaGkKuSy3lY4","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1mL7ES9lKFd-WQKPe8b-LPufqRHBpOmlJaGkKuSy3lY4/edit?usp=drivesdk","cachedResultName":"AI Avatar - PinkMatcha"}},"typeVersion":4.4},{"id":"8bd4bfce-9c10-48cd-b6cf-d3d223796010","name":"Google Sheets: Mark Posted","type":"n8n-nodes-base.googleSheets","position":[0,688],"parameters":{"columns":{"value":{"Status":"Posted","row_number":"={{ $('Code: Parse AI Response').item.json.rowId }}"},"schema":[{"id":"Date","type":"string","display":true,"removed":true,"required":false,"displayName":"Date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Section Title","type":"string","display":true,"removed":true,"required":false,"displayName":"Section Title","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Script Text","type":"string","display":true,"removed":true,"required":false,"displayName":"Script Text","defaultMatch":false,"canBeUsedToMatch":true},{"id":"HeyGen Video ID","type":"string","display":true,"removed":true,"required":false,"displayName":"HeyGen Video ID","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Raw Video URL","type":"string","display":true,"removed":true,"required":false,"displayName":"Raw Video URL","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Final Video URL","type":"string","display":true,"removed":true,"required":false,"displayName":"Final Video URL","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Status","type":"string","display":true,"required":false,"displayName":"Status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"row_number","type":"number","display":true,"removed":false,"readOnly":true,"required":false,"displayName":"row_number","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["row_number"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update","sheetName":{"__rl":true,"mode":"list","value":2075799952,"cachedResultUrl":"https://docs.google.com/spreadsheets/d/1mL7ES9lKFd-WQKPe8b-LPufqRHBpOmlJaGkKuSy3lY4/edit#gid=2075799952","cachedResultName":"Production Logs"},"documentId":{"__rl":true,"mode":"list","value":"1mL7ES9lKFd-WQKPe8b-LPufqRHBpOmlJaGkKuSy3lY4","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1mL7ES9lKFd-WQKPe8b-LPufqRHBpOmlJaGkKuSy3lY4/edit?usp=drivesdk","cachedResultName":"AI Avatar - PinkMatcha"}},"typeVersion":4.4},{"id":"844dcc78-47ae-4040-b270-f345929f2a12","name":"Schedule: Daily 9am","type":"n8n-nodes-base.scheduleTrigger","position":[-752,-528],"parameters":{"rule":{"interval":[{"triggerAtHour":12}]}},"typeVersion":1.2},{"id":"c0ad64e8-51c2-44a5-9c28-da26111f6658","name":"Code: Prepare HeyGen Request","type":"n8n-nodes-base.code","position":[32,-176],"parameters":{"jsCode":"// Get the created log record\nconst logRecord = $('Google Sheets: Create Production Log').first().json;\nconst contentData = $('Code: Parse AI Response').first().json;\n\nreturn [{\n  json: {\n    logRowNumber: logRecord.row_number || logRecord.rowNumber,\n    avatarId: contentData.avatarId,\n    script: contentData.script,\n    sectionTitle: contentData.sectionTitle\n  }\n}];"},"typeVersion":2},{"id":"1e748632-a584-47b2-b778-5e92880a9d39","name":"HTTP: HeyGen Generate Video","type":"n8n-nodes-base.httpRequest","position":[-720,176],"parameters":{"url":"https://api.heygen.com/v2/video/generate","method":"POST","options":{"timeout":60000},"jsonBody":"={{ JSON.stringify({\n  \"video_inputs\": [{\n    \"character\": {\n      \"type\": \"talking_photo\",\n      \"talking_photo_id\": $json.avatarId\n    },\n    \"voice\": {\n      \"type\": \"text\",\n      \"input_text\": $json.script,\n      \"voice_id\": \"ca320fd62b784352af74d06a16a6ef3d\"\n    }\n  }],\n  \"dimension\": {\n    \"width\": 720,\n    \"height\": 1280\n  },\n  \"test\": false,\n  \"caption\": false\n}) }}","sendBody":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"typeVersion":4.2},{"id":"8a64e175-4ead-439f-adb2-0e3ba78f4615","name":"Code: Extract HeyGen Video ID","type":"n8n-nodes-base.code","position":[-512,176],"parameters":{"jsCode":"const heygenResponse = $('HTTP: HeyGen Generate Video').first().json;\nconst prepData = $('Code: Prepare HeyGen Request').first().json;\n\nconst videoId = heygenResponse.data?.video_id || heygenResponse.video_id;\n\nif (!videoId) {\n  throw new Error('No video_id returned from HeyGen: ' + JSON.stringify(heygenResponse));\n}\n\nreturn [{\n  json: {\n    logRowNumber: prepData.logRowNumber,\n    heygenVideoId: videoId,\n    pollCount: 0,\n    maxPolls: 20,\n    pollIntervalSec: 30\n  }\n}];"},"typeVersion":2},{"id":"059dc443-3d50-4a2c-83f5-c625e647ad3a","name":"Wait: HeyGen Processing","type":"n8n-nodes-base.wait","position":[-48,176],"webhookId":"a109609c-b95f-4125-9838-d10068dae447","parameters":{"amount":50},"typeVersion":1.1},{"id":"8132f8a7-37fd-4b28-b9ab-bf6b4f4dff3f","name":"HTTP: Poll HeyGen Status","type":"n8n-nodes-base.httpRequest","position":[208,176],"parameters":{"url":"=https://api.heygen.com/v1/video_status.get?video_id={{ $json['HeyGen Video ID'] }}","options":{"timeout":30000},"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"typeVersion":4.2},{"id":"dd47044e-c6fe-40b2-84aa-74b2e6fc7380","name":"Code: Extract HeyGen Video URL","type":"n8n-nodes-base.code","position":[960,176],"parameters":{"jsCode":"const pollResponse = $('HTTP: Poll HeyGen Status').first().json;\nconst current = $input.first().json;\n\nconst videoUrl = pollResponse.data?.video_url || pollResponse.video_url;\n\nif (!videoUrl) {\n  throw new Error('No video URL in HeyGen response: ' + JSON.stringify(pollResponse));\n}\n\nreturn [{\n  json: {\n    logRowNumber: current.logRowNumber,\n    heygenVideoId: current.heygenVideoId,\n    rawVideoUrl: videoUrl\n  }\n}];"},"typeVersion":2},{"id":"d9102495-18e6-4e9c-a132-cd92de6c353f","name":"Code: Set Final Video URL","type":"n8n-nodes-base.code","position":[1408,176],"parameters":{"jsCode":"const heygenData = $('Code: Extract HeyGen Video URL').first().json;\n\nreturn [{\n  json: {\n    logRowNumber: heygenData.logRowNumber,\n    finalVideoUrl: heygenData.rawVideoUrl\n  }\n}];"},"typeVersion":2},{"id":"2f971e89-70bd-4203-9a39-9288e0ac7121","name":"facebook","type":"n8n-nodes-base.httpRequest","disabled":true,"position":[-448,592],"parameters":{"url":"https://api.upload-post.com/api/upload","method":"POST","options":{},"sendBody":true,"contentType":"multipart-form-data","authentication":"genericCredentialType","bodyParameters":{"parameters":[{"name":"user","value":"pink-matcha"},{"name":"platform[]","value":"facebook"},{"name":"video","value":"={{ $('Code: Set Final Video URL').first().json.finalVideoUrl }}"},{"name":"title","value":"={{ $('Code: Parse AI Response').first().json.sectionTitle.substring(0, 120) + ' - ' + $('Code: Parse AI Response').first().json.script.substring(0, 100) + '... Link in Bio' }}"}]},"genericAuthType":"httpHeaderAuth"},"typeVersion":4.3},{"id":"eb9eb797-a36c-4dcc-8567-201bd4aeb84e","name":"instagram","type":"n8n-nodes-base.httpRequest","position":[-448,768],"parameters":{"url":"https://api.upload-post.com/api/upload","method":"POST","options":{},"sendBody":true,"contentType":"multipart-form-data","authentication":"genericCredentialType","bodyParameters":{"parameters":[{"name":"user","value":"pink-matcha"},{"name":"platform[]","value":"instagram"},{"name":"video","value":"={{ $('Code: Set Final Video URL').first().json.finalVideoUrl }}"},{"name":"title","value":"={{ $('Code: Parse AI Response').first().json.sectionTitle.substring(0, 120) + ' - ' + $('Code: Parse AI Response').first().json.script.substring(0, 100) + '... Link in Bio' }}"}]},"genericAuthType":"httpHeaderAuth"},"typeVersion":4.3},{"id":"f54ea360-8c57-4c18-902d-49999821186c","name":"Merge","type":"n8n-nodes-base.merge","position":[-224,688],"parameters":{"mode":"combine","options":{},"combineBy":"combineByPosition"},"typeVersion":3.2},{"id":"9be10c2c-0c7b-41fd-acec-d13bc381ccc7","name":"Switch","type":"n8n-nodes-base.switch","position":[704,160],"parameters":{"rules":{"values":[{"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"9455b630-813e-47d0-9ba0-4a1c3750ee19","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.heygenRoute }}","rightValue":"retry"}]}},{"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"d1a191e1-f7cd-4722-a63f-83b50f6201c7","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.heygenRoute }}","rightValue":"completed"}]}},{"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"fd7b658a-5fe4-4953-84c1-e64207cc95b1","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.heygenRoute }}","rightValue":"failed"}]}}]},"options":{}},"typeVersion":3.4},{"id":"e000ac72-1068-44e4-ab0e-21fc93db491e","name":"Generate Script","type":"@n8n/n8n-nodes-langchain.openAi","position":[-704,-176],"parameters":{"modelId":{"__rl":true,"mode":"list","value":"gpt-4.1-mini","cachedResultName":"GPT-4.1-MINI"},"options":{},"responses":{"values":[{"content":"=Section Title: {{ $('Code: Select Random Avatar & Combine Data').first().json.sectionTitle }}\n\nWorkbook Content:\n{{ $('Code: Select Random Avatar & Combine Data').first().json.workbookContent }}\n\nKey Message:\n{{ $('Code: Select Random Avatar & Combine Data').first().json.keyMessage }}"},{"role":"system","content":"You are \"The Shepherd\", a wise, calm, and deeply compassionate spiritual guide. Your voice carries ancient wisdom but speaks in simple, accessible language. You help people find peace, purpose, and clarity.\n\nYour task is to create content for a short-form video (Instagram Reels, TikTok, YouTube Shorts).\n\nGenerate a SCRIPT based on the workbook section provided:\n\nDetailed instructions:\n- A spoken-word script of 75-90 words (~30 seconds when spoken). THIS IS CRITICAL - THE VIDEO MUST BE 30 SECONDS MAXIMUM.\n- The script should talk about the specific part of the workbook mentioned in the Section Title and Workbook Content.\n- Write ONLY what will be spoken, no stage directions, no timestamps, no scene descriptions.\n- The tone should be warm, grounded, and gently inspiring.\n- The video MUST END with the phrase: \"Visit the link in bio to learn more.\"\n- Keep it concise and within 30 seconds when spoken naturally.\n\nRespond in this exact JSON format:\n{\n  \"script\": \"Your full script here...\"\n}\n\nDo NOT include any preamble. Begin immediately with {"}]},"builtInTools":{}},"typeVersion":2.1},{"id":"82972bfd-5a43-4a3d-8dfa-060bd52eeb14","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-1408,-656],"parameters":{"color":7,"width":528,"height":288,"content":" # Overall Workflow Overview \n  This workflow runs daily, picks a content section from Google Sheets, generates a 30-second spoken script using GPT-4.1-mini, renders a talking-head video via HeyGen, then publishes it to Facebook and Instagram. All steps are logged in the \"Production Logs\" sheet."},"typeVersion":1},{"id":"e3e5d2d6-04db-445b-8d44-f1488b63c697","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-864,-656],"parameters":{"width":1168,"height":288,"content":"## 1. Content Selection\nPicks today's content using day-of-year modulo total sections, so content rotates automatically without repeating. Only rows with Status = \"Idea\" are eligible. Add new rows to the \"Workbook Content\" sheet to expand the content pool."},"typeVersion":1},{"id":"4220b5f6-01e7-4370-b5f9-a5f52d35b175","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[-864,-336],"parameters":{"color":2,"width":1184,"height":320,"content":"## 2. Script Generation\nUses GPT-4.1-mini with \"The Shepherd\" persona. Target: 75-90 words (~30 seconds spoken). Must end with \"Visit the link in bio to learn more.\" Output is strict JSON { \"script\": \"...\" } — the parse node handles markdown-wrapped or malformed responses."},"typeVersion":1},{"id":"d1c54f7c-1390-48da-9df2-7df43b7142a8","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[-864,16],"parameters":{"color":3,"width":2464,"height":384,"content":"## 3. HeyGen Polling Loop\nHeyGen video generation is async. This loop polls every 50 seconds, up to 20 times (~16 min max). Switch routes to: retry (still processing), completed (extract URL), or failed (log error). If it times out, it also routes to failed."},"typeVersion":1},{"id":"d9f6b768-3bc6-4d43-94fc-10a5e25e5b12","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[-864,448],"parameters":{"color":4,"width":1232,"height":480,"content":"## 4. Social Publishing\nPosts to Facebook and Instagram via upload-post.com API. The caption is auto-generated from the section title + first 100 chars of script + \"... Link in Bio\". Note: Facebook node is currently disabled — enable it when ready to go live on Facebook."},"typeVersion":1},{"id":"1da61638-53f7-48f8-838f-d29b615bb6aa","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[-864,976],"parameters":{"color":5,"width":1216,"height":304,"content":"## 5. Error Handling\nIf HeyGen fails or times out, the failure reason and status are written back to the Production Logs sheet. The workflow also has an error workflow configured for unexpected crashes."},"typeVersion":1}],"active":true,"settings":{"callerPolicy":"workflowsFromSameOwner","errorWorkflow":"kohRSFWsjOdaD1r7","timeSavedMode":"fixed","availableInMCP":true,"executionOrder":"v1"},"versionId":"91a8b7ad-f2ea-41d0-bfdd-e935757eaf8a","isArchived":false,"connections":{"Merge":{"main":[[{"node":"Google Sheets: Mark Posted","type":"main","index":0}]]},"Switch":{"main":[[{"node":"Wait: HeyGen Processing","type":"main","index":0}],[{"node":"Code: Extract HeyGen Video URL","type":"main","index":0}],[{"node":"Google Sheets: Log Failure","type":"main","index":0}]]},"facebook":{"main":[[{"node":"Merge","type":"main","index":0}]]},"instagram":{"main":[[{"node":"Merge","type":"main","index":1}]]},"Generate Script":{"main":[[{"node":"Code: Parse AI Response","type":"main","index":0}]]},"Schedule: Daily 9am":{"main":[[{"node":"Code: Calculate Content Index","type":"main","index":0}]]},"Code: Parse AI Response":{"main":[[{"node":"Google Sheets: Create Production Log","type":"main","index":0}]]},"Wait: HeyGen Processing":{"main":[[{"node":"HTTP: Poll HeyGen Status","type":"main","index":0}]]},"HTTP: Poll HeyGen Status":{"main":[[{"node":"Code: Check HeyGen Status","type":"main","index":0}]]},"Code: Check HeyGen Status":{"main":[[{"node":"Switch","type":"main","index":0}]]},"Code: Set Final Video URL":{"main":[[{"node":"Google Sheets: Update Complete","type":"main","index":0}]]},"HTTP: HeyGen Generate Video":{"main":[[{"node":"Code: Extract HeyGen Video ID","type":"main","index":0}]]},"Code: Prepare HeyGen Request":{"main":[[{"node":"HTTP: HeyGen Generate Video","type":"main","index":0}]]},"Code: Select Today's Section":{"main":[[{"node":"Code: Select Random Avatar & Combine Data","type":"main","index":0}]]},"Code: Calculate Content Index":{"main":[[{"node":"Google Sheets: Get Workbook Content","type":"main","index":0}]]},"Code: Extract HeyGen Video ID":{"main":[[{"node":"Google Sheets: Save HeyGen Video ID","type":"main","index":0}]]},"Code: Extract HeyGen Video URL":{"main":[[{"node":"Google Sheets: Save Raw Video URL","type":"main","index":0}]]},"Google Sheets: Update Complete":{"main":[[{"node":"facebook","type":"main","index":0},{"node":"instagram","type":"main","index":0}]]},"Google Sheets: Save Raw Video URL":{"main":[[{"node":"Code: Set Final Video URL","type":"main","index":0}]]},"Google Sheets: Get Workbook Content":{"main":[[{"node":"Code: Select Today's Section","type":"main","index":0}]]},"Google Sheets: Save HeyGen Video ID":{"main":[[{"node":"Wait: HeyGen Processing","type":"main","index":0}]]},"Google Sheets: Create Production Log":{"main":[[{"node":"Code: Prepare HeyGen Request","type":"main","index":0}]]},"Code: Select Random Avatar & Combine Data":{"main":[[{"node":"Generate Script","type":"main","index":0}]]}},"description":"Generate viral videos using Heygen and autopublish them directly to facebook and instagram"},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":31,"nodeTypes":{"n8n-nodes-base.code":{"count":9},"n8n-nodes-base.wait":{"count":1},"n8n-nodes-base.merge":{"count":1},"n8n-nodes-base.switch":{"count":1},"n8n-nodes-base.stickyNote":{"count":6},"n8n-nodes-base.httpRequest":{"count":4},"n8n-nodes-base.googleSheets":{"count":7},"n8n-nodes-base.scheduleTrigger":{"count":1},"@n8n/n8n-nodes-langchain.openAi":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Jay Emp0","username":"jay-emp0","bio":"AI and Automation developer. Im implementing n8n and ai tools to automate marketing and sales in companies","verified":true,"links":["https://www.skool.com/aia-ai-automation-2762"],"avatar":"https://gravatar.com/avatar/b5cb4e342c961c6d6761469dac68bb3794f94fe439d86ce46861527ea7c08e8f?r=pg&d=retro&size=200"},"nodes":[{"id":18,"icon":"file:googleSheets.svg","name":"n8n-nodes-base.googleSheets","codex":{"data":{"alias":["CSV","Sheet","Spreadsheet","GS"],"resources":{"generic":[{"url":"https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/","icon":"❤️","label":"Love at first sight: Ricardo’s n8n journey"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/","icon":"⏲","label":"Creating triggers for n8n workflows using polling"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/your-business-doesnt-need-you-to-operate/","icon":" 🖥️","label":"Hey founders! Your business doesn't need you to operate"},{"url":"https://n8n.io/blog/how-honest-burgers-use-automation-to-save-100k-per-year/","icon":"🍔","label":"How Honest Burgers Use Automation to Save $100k per year"},{"url":"https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/","icon":"💻","label":"How a digital strategist uses n8n for online marketing"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Data & Storage","Productivity"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\",\"output\"]","defaults":{"name":"Google Sheets"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="},"displayName":"Google Sheets","typeVersion":5,"nodeCategories":[{"id":3,"name":"Data & Storage"},{"id":4,"name":"Productivity"}]},{"id":19,"icon":"file:httprequest.svg","name":"n8n-nodes-base.httpRequest","codex":{"data":{"alias":["API","Request","URL","Build","cURL"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automate-designs-with-bannerbear-and-n8n/","icon":"🎨","label":"Automate Designs with Bannerbear and n8n"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/","icon":"🧰","label":"How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"output\"]","defaults":{"name":"HTTP Request","color":"#0004F5"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="},"displayName":"HTTP Request","typeVersion":4,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":24,"icon":"file:merge.svg","name":"n8n-nodes-base.merge","codex":{"data":{"alias":["Join","Concatenate","Wait"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-sync-data-between-two-systems/","icon":"🏬","label":"How to synchronize data between two systems (one-way vs. two-way sync"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"url":"https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/","icon":"👦","label":"Build your own virtual assistant with n8n: A step by step guide"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.merge/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Merge"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTc3XzUxOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTAgNDhDMCAyMS40OTAzIDIxLjQ5MDMgMCA0OCAwSDExMkMxMzguNTEgMCAxNjAgMjEuNDkwMyAxNjAgNDhWNTZIMTk2LjI1MkMyNDAuNDM1IDU2IDI3Ni4yNTIgOTEuODE3MiAyNzYuMjUyIDEzNlYxOTJDMjc2LjI1MiAyMTQuMDkxIDI5NC4xNjEgMjMyIDMxNi4yNTIgMjMySDM1MlYyMjRDMzUyIDE5Ny40OSAzNzMuNDkgMTc2IDQwMCAxNzZINDY0QzQ5MC41MSAxNzYgNTEyIDE5Ny40OSA1MTIgMjI0VjI4OEM1MTIgMzE0LjUxIDQ5MC41MSAzMzYgNDY0IDMzNkg0MDBDMzczLjQ5IDMzNiAzNTIgMzE0LjUxIDM1MiAyODhWMjgwSDMxNi4yNTJDMjk0LjE2MSAyODAgMjc2LjI1MiAyOTcuOTA5IDI3Ni4yNTIgMzIwVjM3NkMyNzYuMjUyIDQyMC4xODMgMjQwLjQzNSA0NTYgMTk2LjI1MiA0NTZIMTYwVjQ2NEMxNjAgNDkwLjUxIDEzOC41MSA1MTIgMTEyIDUxMkg0OEMyMS40OTAzIDUxMiAwIDQ5MC41MSAwIDQ2NFY0MDBDMCAzNzMuNDkgMjEuNDkwMyAzNTIgNDggMzUySDExMkMxMzguNTEgMzUyIDE2MCAzNzMuNDkgMTYwIDQwMFY0MDhIMTk2LjI1MkMyMTMuOTI1IDQwOCAyMjguMjUyIDM5My42NzMgMjI4LjI1MiAzNzZWMzIwQzIyOC4yNTIgMjk0Ljc4NCAyMzguODU5IDI3Mi4wNDQgMjU1Ljg1MyAyNTZDMjM4Ljg1OSAyMzkuOTU2IDIyOC4yNTIgMjE3LjIxNiAyMjguMjUyIDE5MlYxMzZDMjI4LjI1MiAxMTguMzI3IDIxMy45MjUgMTA0IDE5Ni4yNTIgMTA0SDE2MFYxMTJDMTYwIDEzOC41MSAxMzguNTEgMTYwIDExMiAxNjBINDhDMjEuNDkwMyAxNjAgMCAxMzguNTEgMCAxMTJWNDhaTTEwNCA0OEMxMDguNDE4IDQ4IDExMiA1MS41ODE3IDExMiA1NlYxMDRDMTEyIDEwOC40MTggMTA4LjQxOCAxMTIgMTA0IDExMkg1NkM1MS41ODE3IDExMiA0OCAxMDguNDE4IDQ4IDEwNFY1NkM0OCA1MS41ODE3IDUxLjU4MTcgNDggNTYgNDhIMTA0Wk00NTYgMjI0QzQ2MC40MTggMjI0IDQ2NCAyMjcuNTgyIDQ2NCAyMzJWMjgwQzQ2NCAyODQuNDE4IDQ2MC40MTggMjg4IDQ1NiAyODhINDA4QzQwMy41ODIgMjg4IDQwMCAyODQuNDE4IDQwMCAyODBWMjMyQzQwMCAyMjcuNTgyIDQwMy41ODIgMjI0IDQwOCAyMjRINDU2Wk0xMTIgNDA4QzExMiA0MDMuNTgyIDEwOC40MTggNDAwIDEwNCA0MDBINTZDNTEuNTgxNyA0MDAgNDggNDAzLjU4MiA0OCA0MDhWNDU2QzQ4IDQ2MC40MTggNTEuNTgxNyA0NjQgNTYgNDY0SDEwNEMxMDguNDE4IDQ2NCAxMTIgNDYwLjQxOCAxMTIgNDU2VjQwOFoiIGZpbGw9IiM1NEI4QzkiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTc3XzUxOCI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Merge","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":112,"icon":"fa:map-signs","name":"n8n-nodes-base.switch","codex":{"data":{"alias":["Router","If","Path","Filter","Condition","Logic","Branch","Case"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/","icon":"👦","label":"Build your own virtual assistant with n8n: A step by step guide"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.switch/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"Switch","color":"#506000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"Switch","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":514,"icon":"fa:pause-circle","name":"n8n-nodes-base.wait","codex":{"data":{"alias":["pause","sleep","delay","timeout"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.wait/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Wait","color":"#804050"},"iconData":{"icon":"pause-circle","type":"icon"},"displayName":"Wait","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":834,"icon":"file:code.svg","name":"n8n-nodes-base.code","codex":{"data":{"alias":["cpde","Javascript","JS","Python","Script","Custom Code","Function"],"details":"The Code node allows you to execute JavaScript in your workflow.","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Code"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Code","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":839,"icon":"fa:clock","name":"n8n-nodes-base.scheduleTrigger","codex":{"data":{"alias":["Time","Scheduler","Polling","Cron","Interval"],"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\",\"schedule\"]","defaults":{"name":"Schedule Trigger","color":"#31C49F"},"iconData":{"icon":"clock","type":"icon"},"displayName":"Schedule Trigger","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1250,"icon":"file:openAi.svg","name":"@n8n/n8n-nodes-langchain.openAi","codex":{"data":{"alias":["LangChain","ChatGPT","Sora","DallE","whisper","audio","transcribe","tts","assistant"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-langchain.openai/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Agents","Miscellaneous","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"OpenAI"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM2Ljg2NzEgMTYuMzcxOEMzNy43NzQ2IDEzLjY0OCAzNy40NjIxIDEwLjY2NDIgMzYuMDEwOCA4LjE4NjYxQzMzLjgyODIgNC4zODY1MyAyOS40NDA3IDIuNDMxNDkgMjUuMTU1NiAzLjM1MTUxQzIzLjI0OTMgMS4yMDM5NiAyMC41MTA1IC0wLjAxNzMxNDggMTcuNjM5MiAwLjAwMDE4NTUzM0MxMy4yNTkxIC0wLjAwOTgxNDY4IDkuMzcyNzMgMi44MTAyNSA4LjAyNTIgNi45Nzc4M0M1LjIxMTM5IDcuNTU0MSAyLjc4MjU4IDkuMzE1MzggMS4zNjEzIDExLjgxMTdDLTAuODM3NDkzIDE1LjYwMTggLTAuMzM2MjMyIDIwLjM3OTQgMi42MDEzMyAyMy42Mjk0QzEuNjkzODEgMjYuMzUzMiAyLjAwNjMyIDI5LjMzNzEgMy40NTc2IDMxLjgxNDZDNS42NDAxNSAzNS42MTQ3IDEwLjAyNzcgMzcuNTY5NyAxNC4zMTI4IDM2LjY0OTdDMTYuMjE3OSAzOC43OTczIDE4Ljk1NzkgNDAuMDE4NSAyMS44MjkyIDM5Ljk5OThDMjYuMjExOCA0MC4wMTEgMzAuMDk5NCAzNy4xODg1IDMxLjQ0NjkgMzMuMDE3MUMzNC4yNjA4IDMyLjQ0MDkgMzYuNjg5NiAzMC42Nzk2IDM4LjExMDggMjguMTgzM0M0MC4zMDcxIDI0LjM5MzIgMzkuODA0NiAxOS42MTk0IDM2Ljg2ODMgMTYuMzY5M0wzNi44NjcxIDE2LjM3MThaTTIxLjgzMTcgMzcuMzg2QzIwLjA3OCAzNy4zODg1IDE4LjM3OTIgMzYuNzc0NyAxNy4wMzI5IDM1LjY1MDlDMTcuMDk0MSAzNS42MTg1IDE3LjIwMDQgMzUuNTU5NyAxNy4yNjkxIDM1LjUxNzJMMjUuMjM0MyAzMC45MTcxQzI1LjY0MTggMzAuNjg1OCAyNS44OTE4IDMwLjI1MjEgMjUuODg5MyAyOS43ODMzVjE4LjU1NDNMMjkuMjU1NiAyMC40OTgxQzI5LjI5MTkgMjAuNTE1NiAyOS4zMTU3IDIwLjU1MDYgMjkuMzIwNyAyMC41OTA2VjI5Ljg4OTZDMjkuMzE1NyAzNC4wMjQ3IDI1Ljk2NjggMzcuMzc3MiAyMS44MzE3IDM3LjM4NlpNNS43MjY0IDMwLjUwNzFDNC44NDc2MyAyOC45ODk2IDQuNTMxMzcgMjcuMjEwOCA0LjgzMjYzIDI1LjQ4NDVDNC44OTEzOCAyNS41MTk1IDQuOTk1MTMgMjUuNTgzMiA1LjA2ODg4IDI1LjYyNTdMMTMuMDM0MSAzMC4yMjU4QzEzLjQzNzggMzAuNDYyMSAxMy45Mzc4IDMwLjQ2MjEgMTQuMzQyOCAzMC4yMjU4TDI0LjA2NjggMjQuNjEwN1YyOC40OTgzQzI0LjA2OTMgMjguNTM4MyAyNC4wNTA1IDI4LjU3NyAyNC4wMTkzIDI4LjYwMkwxNS45Njc5IDMzLjI1MDlDMTIuMzgxNSAzNS4zMTU5IDcuODAxNDQgMzQuMDg4NCA1LjcyNzY1IDMwLjUwNzFINS43MjY0Wk0zLjYzMDEgMTMuMTIwNUM0LjUwNTEyIDExLjYwMDQgNS44ODY0IDEwLjQzNzkgNy41MzE0NCA5LjgzNDE1QzcuNTMxNDQgOS45MDI5IDcuNTI3NjkgMTAuMDI0MSA3LjUyNzY5IDEwLjEwOTJWMTkuMzEwNkM3LjUyNTE5IDE5Ljc3ODEgNy43NzUxOSAyMC4yMTE5IDguMTgxNDUgMjAuNDQzMUwxNy45MDU0IDI2LjA1N0wxNC41MzkxIDI4LjAwMDhDMTQuNTA1MyAyOC4wMjMzIDE0LjQ2MjggMjguMDI3IDE0LjQyNTMgMjguMDEwOEw2LjM3MjY2IDIzLjM1ODJDMi43OTM4MyAyMS4yODU2IDEuNTY2MzEgMTYuNzA2OCAzLjYyODg1IDEzLjEyMTdMMy42MzAxIDEzLjEyMDVaTTMxLjI4ODIgMTkuNTU2OUwyMS41NjQyIDEzLjk0MTdMMjQuOTMwNiAxMS45OTkyQzI0Ljk2NDMgMTEuOTc2NyAyNS4wMDY4IDExLjk3MjkgMjUuMDQ0MyAxMS45ODkyTDMzLjA5NyAxNi42MzhDMzYuNjgyMSAxOC43MDkzIDM3LjkxMDggMjMuMjk1NyAzNS44Mzk1IDI2Ljg4MDhDMzQuOTYzMyAyOC4zOTgzIDMzLjU4MzIgMjkuNTYwOCAzMS45Mzk1IDMwLjE2NThWMjAuNjg5NEMzMS45NDMyIDIwLjIyMTkgMzEuNjk0NSAxOS43ODk0IDMxLjI4OTQgMTkuNTU2OUgzMS4yODgyWk0zNC42MzgzIDE0LjUxNDJDMzQuNTc5NSAxNC40NzggMzQuNDc1OCAxNC40MTU1IDM0LjQwMiAxNC4zNzNMMjYuNDM2OCA5Ljc3Mjg5QzI2LjAzMzEgOS41MzY2NCAyNS41MzMxIDkuNTM2NjQgMjUuMTI4MSA5Ljc3Mjg5TDE1LjQwNDEgMTUuMzg4VjExLjUwMDRDMTUuNDAxNiAxMS40NjA0IDE1LjQyMDQgMTEuNDIxNyAxNS40NTE2IDExLjM5NjdMMjMuNTAzIDYuNzUxNThDMjcuMDg5NCA0LjY4Mjc5IDMxLjY3NDUgNS45MTQwNiAzMy43NDIgOS41MDE2NEMzNC42MTU4IDExLjAxNjcgMzQuOTMyIDEyLjc5MDUgMzQuNjM1OCAxNC41MTQySDM0LjYzODNaTTEzLjU3NDEgMjEuNDQzMUwxMC4yMDY1IDE5LjQ5OTRDMTAuMTcwMiAxOS40ODE5IDEwLjE0NjUgMTkuNDQ2OCAxMC4xNDE1IDE5LjQwNjhWMTAuMTA3OUMxMC4xNDQgNS45Njc4MSAxMy41MDI4IDIuNjEyNzQgMTcuNjQyOSAyLjYxNTI0QzE5LjM5NDIgMi42MTUyNCAyMS4wODkyIDMuMjMwMjUgMjIuNDM1NSA0LjM1MDI4QzIyLjM3NDMgNC4zODI3OCAyMi4yNjkzIDQuNDQxNTMgMjIuMTk5MiA0LjQ4NDAzTDE0LjIzNDEgOS4wODQxM0MxMy44MjY2IDkuMzE1MzggMTMuNTc2NiA5Ljc0Nzg5IDEzLjU3OTEgMTAuMjE2N0wxMy41NzQxIDIxLjQ0MDZWMjEuNDQzMVpNMTUuNDAyOSAxNy41MDA2TDE5LjczNDIgMTQuOTk5M0wyNC4wNjU1IDE3LjQ5OTNWMjIuNTAwN0wxOS43MzQyIDI1LjAwMDdMMTUuNDAyOSAyMi41MDA3VjE3LjUwMDZaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4K"},"displayName":"OpenAI","typeVersion":2,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]}],"categories":[{"id":31,"name":"Content Creation"},{"id":51,"name":"Multimodal AI"}],"image":[]}}