{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "db27ba69-f1f4-4891-8a8a-6b25c2338228",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        3024,
        1904
      ],
      "parameters": {
        "text": "=This is the text that you have to check  {{ $json.text_content }}{{ $json.created_at }}{{ $json.username }}{{ $json.profile_url }}{{ $json.post_url }}",
        "options": {
          "systemMessage": "=<goal> You are Hiring Post Classifier & Extractor. Read short social posts and return only posts where the author is hiring an n8n automation engineer in allowed geographies. Deduplicate against Google Sheets before output. If non-passing or duplicate \u2192 output nothing. </goal>\n\n<format_rules>\nInput (exact shape) is provided as:\n{\n\"text_content\": \"{{ $json.text_content }}\",\n\"created_at\": \"{{ $json.created_at }}\",\n\"post_url\": \"{{ $json.post_url }}\",\n\"username\": \"{{ $json.username }}\",\n\"profile_url\": \"{{ $json.profile_url }}\"\n}\n\nOutput: strict JSON in the same shape (see <output>), or no output (empty response) if rejected/duplicate.\n\nNo extra fields, no prose, no arrays, no explanations.\n</format_rules>\n\n<restrictions> - No separate bio/location field exists. Infer geography **only from `text_content`** (explicit city/country names found there). - If no location signal appears \u2192 treat as **unknown** and **allow** geo rule to pass. - Never fabricate locations. If ambiguous (e.g., \u201cBirmingham\u201d), **do not assume**. </restrictions>\n\n<geo_rules>\nAllowed countries (normalized): [\"US\",\"UK\",\"UAE\",\"CA\"]\n\nAliases:\nUS \u2192 [\"US\",\"USA\",\"United States\"]\nUK \u2192 [\"UK\",\"United Kingdom\",\"England\",\"Scotland\",\"Wales\",\"Northern Ireland\"]\nUAE \u2192 [\"UAE\",\"United Arab Emirates\"]\nCA \u2192 [\"CA\",\"Canada\"]\n\nStrong city\u2192country inference (examples):\nUS: NYC/New York, Los Angeles/LA, Austin, SF/San Francisco, Chicago\nUK: London, Manchester, Bristol, Leeds\nUAE: Dubai, Abu Dhabi, Sharjah\nCA: Toronto, Vancouver, Montreal, Calgary, Ottawa\n</geo_rules>\n\n<decision_rules>\nHire-only (author as hirer; no replies/retweets unless restated by author as hirer).\nAccept if text clearly signals an open n8n automation engineer role.\nStrong cues (any): hiring, we\u2019re hiring, hiring:, opening, role, position, join our team, bring on an n8n engineer, seeking an n8n automation engineer, need an automation engineer (n8n), apply, send your portfolio/resume, email to, link to job.\nHelpful (not required): full-time, part-time, contract, paid, salary, compensation.\n\nRole scope:\nAccept when automation duties are explicit with n8n (e.g., n8n engineer, n8n workflow engineer, AI automation engineer with n8n, workflow/no-code/low-code automation engineer mentioning n8n).\nExclude generic software/IT roles without n8n, RPA-only with no n8n mention, \u201cconsultant available\u201d posts, and unrelated roles (e.g., videographer, designer).\n\nExclude self-promotion/service ads/bait.\nReject if the author markets themselves/services (e.g., \u201chire me,\u201d \u201cavailable for automation projects,\u201d \u201cmy rates,\u201d \u201cportfolio,\u201d \u201cbook me,\u201d \u201cservices,\u201d \u201cI build automations for you\u201d).\nIf the author appears to be a freelancer for hire and the post is ambiguous \u2192 treat as self-promo \u2192 exclude.\n\nGeography filter.\n\nExplicit location outside allowed set \u2192 exclude.\n\nExplicit allowed country/city or strong city signal \u2192 pass.\n\nNo location present \u2192 pass (unknown).\n\nMultiple locations \u2192 pass if any are allowed.\n\nDeduplication via Google Sheets.\nAfter passing 1\u20133, query the sheet for post_url. If found \u2192 output nothing. If not found \u2192 proceed to output.\n</decision_rules>\n\n<tools_and_usage>\n<google_sheets access=\"read-only\">\nmethod: find(post_url) \u2192 returns match if post_url already exists\n</google_sheets>\n</tools_and_usage>\n\n<planning_guidance>\nValidate hire intent (author hiring an n8n automation engineer) and exclude replies/retweets unless author restates as hirer.\nScreen out self-promo/service ads.\nApply geo rules using only text_content.\nIf pass, call Google Sheets to check post_url.\nIf duplicate \u2192 no output.\nIf unique \u2192 emit strict JSON (exact fields only).\n</planning_guidance>\n\n<output> For passing, non-duplicate posts, return **only**: { \"text_content\": \"{{ $json.text_content }}\", \"created_at\": \"{{ $json.created_at }}\", \"post_url\": \"{{ $json.post_url }}\", \"username\": \"{{ $json.username }}\", \"profile_url\": \"{{ $json.profile_url }}\" } Otherwise, **return nothing**. </output>"
        },
        "promptType": "define"
      },
      "typeVersion": 2.2
    },
    {
      "id": "8af119cd-a57b-4ab8-b1cf-043b8863d6b6",
      "name": "If",
      "type": "n8n-nodes-base.if",
      "position": [
        3376,
        1904
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "d6b35f7a-4b86-4aa0-a826-c6992ad15da2",
              "operator": {
                "type": "string",
                "operation": "notEquals"
              },
              "leftValue": "={{ $json.output }}",
              "rightValue": "={}"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "257a6531-8381-4360-9792-ce6b347d3c60",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        3024,
        2128
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini",
          "cachedResultName": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "d4f04e25-b69f-47bd-81cf-4f55d62c5094",
      "name": "Append or update row in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        3824,
        1808
      ],
      "parameters": {
        "columns": {
          "value": {
            "Post": "={{ $json.text_content }}",
            "Author": "={{ $json.username }}",
            "Post URL": "={{ $json.post_url }}",
            "Created at": "={{ $json.created_at }}",
            "Profile URL": "={{ $json.profile_url }}"
          },
          "schema": [
            {
              "id": "Post",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Post",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Created at",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Created at",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Author",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Author",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Post URL",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Post URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Profile URL",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Profile URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Post"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 294603718,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1b87NBYctXlv5e-cfjF8XrGgtfLElgnELyDBcumoM2bE/edit#gid=294603718",
          "cachedResultName": "Thread"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1b87NBYctXlv5e-cfjF8XrGgtfLElgnELyDBcumoM2bE",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1b87NBYctXlv5e-cfjF8XrGgtfLElgnELyDBcumoM2bE/edit?usp=drivesdk",
          "cachedResultName": "X and threads"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "4c12607c-22dd-450c-9884-b731066140c8",
      "name": "Code",
      "type": "n8n-nodes-base.code",
      "position": [
        3600,
        1904
      ],
      "parameters": {
        "jsCode": "const results = [];\n\nfor (const item of $input.all()) {\n  const data = item.json.output; // This is the string field to be parsed\n\n  // Check if data is a valid string before trying to parse\n  if (typeof data === 'string' && data.trim() !== '') {\n    try {\n      const obj = JSON.parse(data); // Attempt to parse the string into a JSON object\n      results.push({ json: obj });   // If successful, add it to the results\n    } catch (e) {\n      // If parsing fails, this block catches the error.\n      // We do nothing, effectively skipping the invalid item.\n    }\n  }\n}\n\nreturn results;\n"
      },
      "typeVersion": 2
    },
    {
      "id": "cfef3a89-a750-4e58-a1d3-93c0b4db9f2a",
      "name": "Get row(s) in sheet in Google Sheets",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        3152,
        2128
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1b87NBYctXlv5e-cfjF8XrGgtfLElgnELyDBcumoM2bE/edit#gid=0",
          "cachedResultName": "X"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1b87NBYctXlv5e-cfjF8XrGgtfLElgnELyDBcumoM2bE",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1b87NBYctXlv5e-cfjF8XrGgtfLElgnELyDBcumoM2bE/edit?usp=drivesdk",
          "cachedResultName": "X and threads"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "1dafc4ff-5e4f-41dd-a57f-e054f0b5150b",
      "name": "3 hours1",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        2128,
        1904
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "hours",
              "hoursInterval": 12
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "5d8b8491-a548-4cea-bfdb-af5dfe8ccd6c",
      "name": "Edit Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        2800,
        1904
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "773b819d-5075-45d7-9385-3c1522d1d75e",
              "name": "text_content",
              "type": "string",
              "value": "={{ $json.text_content }}"
            },
            {
              "id": "5a86b5a5-f555-46d0-9548-73f06a5fd76e",
              "name": "created_at",
              "type": "string",
              "value": "={{ $json.created_at }}"
            },
            {
              "id": "c26f0ddd-7b57-49de-980d-aa253ed4a242",
              "name": "post_url",
              "type": "string",
              "value": "={{ $json.post_url }}"
            },
            {
              "id": "1930f26c-1b3e-4797-9b94-8f599c9bf7f1",
              "name": "username",
              "type": "string",
              "value": "={{ $json.username }}"
            },
            {
              "id": "54930669-f800-43fa-a9bd-cd152c91fc59",
              "name": "profile_url",
              "type": "string",
              "value": "={{ $json.profile_url }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "9e2eeae8-a23a-456e-9465-527bdee7eef9",
      "name": "HTTP Request2",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2352,
        1520
      ],
      "parameters": {
        "url": "https://api.apify.com/v2/acts/futurizerush~meta-threads-scraper/run-sync-get-dataset-items?",
        "method": "POST",
        "options": {
          "redirect": {
            "redirect": {}
          }
        },
        "jsonBody": "{\n    \"headless\": true,\n    \"keyword\": \"AI automation expert\",\n    \"limit\": 50,\n    \"mode\": \"keyword\",\n    \"searchFilter\": \"recent\"\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Accept",
              "value": "application/json"
            },
            {
              "name": "Authorization",
              "value": "Bearer YOUR_TOKEN_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "72d439a3-14f6-4136-97d9-49996ebe7fbb",
      "name": "HTTP Request7",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2352,
        1904
      ],
      "parameters": {
        "url": "https://api.apify.com/v2/acts/futurizerush~meta-threads-scraper/run-sync-get-dataset-items?",
        "method": "POST",
        "options": {
          "redirect": {
            "redirect": {}
          }
        },
        "jsonBody": "{\n    \"headless\": true,\n    \"keyword\": \"n8n freelance projects\",\n    \"limit\": 50,\n    \"mode\": \"keyword\",\n    \"searchFilter\": \"recent\"\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Accept",
              "value": "application/json"
            },
            {
              "name": "Authorization",
              "value": "Bearer YOUR_TOKEN_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "05b7851e-c398-4abc-b226-9f31ae19de46",
      "name": "HTTP Request8",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2352,
        2096
      ],
      "parameters": {
        "url": "https://api.apify.com/v2/acts/futurizerush~meta-threads-scraper/run-sync-get-dataset-items?",
        "method": "POST",
        "options": {
          "redirect": {
            "redirect": {}
          }
        },
        "jsonBody": "{\n    \"headless\": true,\n    \"keyword\": \"n8n\",\n    \"limit\": 50,\n    \"mode\": \"keyword\",\n    \"searchFilter\": \"recent\"\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Accept",
              "value": "application/json"
            },
            {
              "name": "Authorization",
              "value": "Bearer YOUR_TOKEN_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "d3e5fdfd-4430-4a20-bcdf-43c227ee6a49",
      "name": "HTTP Request9",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2352,
        2288
      ],
      "parameters": {
        "url": "https://api.apify.com/v2/acts/futurizerush~meta-threads-scraper/run-sync-get-dataset-items?",
        "method": "POST",
        "options": {
          "redirect": {
            "redirect": {}
          }
        },
        "jsonBody": "{\n    \"headless\": true,\n    \"keyword\": \"hire n8n\",\n    \"limit\": 50,\n    \"mode\": \"keyword\",\n    \"searchFilter\": \"recent\"\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Accept",
              "value": "application/json"
            },
            {
              "name": "Authorization",
              "value": "Bearer YOUR_TOKEN_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "d2ffa80e-fc05-4cac-98f4-950c375668b2",
      "name": "Merge1",
      "type": "n8n-nodes-base.merge",
      "position": [
        2576,
        1840
      ],
      "parameters": {
        "numberInputs": 6
      },
      "typeVersion": 3.2
    },
    {
      "id": "d4ad287f-2b72-4be5-b25a-f0657587f4af",
      "name": "HTTP Request10",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2352,
        1712
      ],
      "parameters": {
        "url": "https://api.apify.com/v2/acts/futurizerush~meta-threads-scraper/run-sync-get-dataset-items?",
        "method": "POST",
        "options": {
          "redirect": {
            "redirect": {}
          }
        },
        "jsonBody": "{\n    \"headless\": true,\n    \"keyword\": \"n8n expert\",\n    \"limit\": 50,\n    \"mode\": \"keyword\",\n    \"searchFilter\": \"recent\"\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Accept",
              "value": "application/json"
            },
            {
              "name": "Authorization",
              "value": "Bearer"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "18ed42a7-22b4-4c6b-99bc-12ba43feadfd",
      "name": "Send a text message1",
      "type": "n8n-nodes-base.telegram",
      "position": [
        3824,
        2000
      ],
      "parameters": {
        "text": "=Post (using to match): {{ $json.text_content }},   \nCreated at: {{ $json.created_at }},   \nAuthor: {{ $json.username }},   \nPost URL: {{ $json.post_url }},   \nProfile URL: {{ $json.profile_url }}",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "967f0073-b839-4114-ab88-485c07f90ffb",
      "name": "HTTP Request11",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2352,
        2464
      ],
      "parameters": {
        "url": "https://api.apify.com/v2/acts/futurizerush~meta-threads-scraper/run-sync-get-dataset-items?",
        "method": "POST",
        "options": {
          "redirect": {
            "redirect": {}
          }
        },
        "jsonBody": "{\n    \"headless\": true,\n    \"keyword\": \"AI automation developer\",\n    \"limit\": 50,\n    \"mode\": \"keyword\",\n    \"searchFilter\": \"recent\"\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Accept",
              "value": "application/json"
            },
            {
              "name": "Authorization",
              "value": "Bearer "
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "5d94ab04-3e50-49aa-8ebe-d7ee97b4e2a7",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1296,
        1456
      ],
      "parameters": {
        "color": 5,
        "width": 672,
        "height": 1184,
        "content": "Automatically scrape Meta Threads for posts hiring specific roles (e.g. automation engineers, video editors, graphic designers), filter true hiring intent, deduplicate, and send alerts.\n\nWe are taking automation roles as an example for now.\n\n## What it does\n\nThis workflow continuously scans Threads for fresh posts mentioning the roles you care about. It uses AI to filter out self-promotion and service ads, keeping only posts where the author is hiring. Qualified posts are saved into Google Sheets for tracking and sent to Telegram for instant alerts.\n\nIt\u2019s ideal for freelancers, agencies, and job seekers who want a steady radar of opportunities.\n\n## How it works (Step by Step)\n\n1. **Schedule trigger** \u2013 Runs on a set interval (e.g. every 12 hours).\n\n2. **Scrape Threads posts** \u2013 Fetches recent posts from multiple keywords (e.g., \u201cn8n expert\u201d, \u201chire video editor\u201d, \u201cgraphic designer\u201d, etc.) via Apify.\n\n3. **Merge results** \u2013 Combines posts into a single stream.\n\n4. **Normalize fields** \u2013 Maps raw data into clean fields: text, author, URL, timestamp, profile link.\n\n5. **AI filter** \u2013 Uses an AI Agent to:\n\n- Accept only posts where someone is hiring (rejects \u201chire me\u201d style self-promo).\n- Apply simple geography rules (e.g., allow US, UK, UAE, CA; pass unknowns).\n- Exclude roles outside your scope.\n- Deduplication \u2013 Checks Google Sheets to skip posts already seen.\n\n6. **Save to Google Sheets** \u2013 Writes qualified posts with full details.\n\n7. **Telegram alerts** \u2013 Sends you the matched post instantly so you can act.\n\n## **Who it\u2019s for**\n\n**Freelancers:** Get first dibs on gigs before others spot them.\n\n**Agencies:** Build a client pipeline by tracking hiring signals.\n\n**Job seekers:** Spot hidden opportunities in your target field.\n\n## Customization Ideas\n\nSwap keywords to monitor roles you care about (e.g., \u201cUI/UX designer\u201d, \u201cmotion graphics editor\u201d, \u201ccopywriter\u201d).\n\nAdd Slack or Discord notifications instead of Telegram.\n\nExpand geo rules to match your region.\n\nUse Sheets as a CRM\u2014add columns for status, outreach date, etc"
      },
      "typeVersion": 1
    },
    {
      "id": "f7504095-a0d2-4024-a9b5-01648f0ebb1e",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1296,
        2688
      ],
      "parameters": {
        "width": 672,
        "height": 256,
        "content": "# Looking for tailored workflows? Book through my Reddit or website\u2014and follow for future templates.\n## Reddit: https://www.reddit.com/user/designbyaze/\n## Website: https://hushtech.io/"
      },
      "typeVersion": 1
    },
    {
      "id": "944e6461-ea83-46bc-a14d-c0a24ba58556",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2560,
        1456
      ],
      "parameters": {
        "color": 5,
        "width": 672,
        "height": 256,
        "content": "## 1. Replace the API keys in each Https node\n## 2. Add the specified role in the json part \n## 3, The apify actor used: https://apify.com/futurizerush/meta-threads-scraper\n"
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code": {
      "main": [
        [
          {
            "node": "Append or update row in sheet",
            "type": "main",
            "index": 0
          },
          {
            "node": "Send a text message1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge1": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3 hours1": {
      "main": [
        [
          {
            "node": "HTTP Request2",
            "type": "main",
            "index": 0
          },
          {
            "node": "HTTP Request10",
            "type": "main",
            "index": 0
          },
          {
            "node": "HTTP Request7",
            "type": "main",
            "index": 0
          },
          {
            "node": "HTTP Request8",
            "type": "main",
            "index": 0
          },
          {
            "node": "HTTP Request9",
            "type": "main",
            "index": 0
          },
          {
            "node": "HTTP Request11",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request2": {
      "main": [
        [
          {
            "node": "Merge1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request7": {
      "main": [
        [
          {
            "node": "Merge1",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "HTTP Request8": {
      "main": [
        [
          {
            "node": "Merge1",
            "type": "main",
            "index": 3
          }
        ]
      ]
    },
    "HTTP Request9": {
      "main": [
        [
          {
            "node": "Merge1",
            "type": "main",
            "index": 4
          }
        ]
      ]
    },
    "HTTP Request10": {
      "main": [
        [
          {
            "node": "Merge1",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "HTTP Request11": {
      "main": [
        [
          {
            "node": "Merge1",
            "type": "main",
            "index": 5
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Get row(s) in sheet in Google Sheets": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  }
}