{
  "id": "zdld4EKAqUQqPvpf",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Automate B2B lead research from Google Sheets to Airtable With BrowserAct",
  "tags": [],
  "nodes": [
    {
      "id": "57d15707-3da2-4ea8-9fc8-9013ff05179c",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -176,
        32
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "0372d7ec-0aa5-4a34-8ea2-6834b89e35ae",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        288,
        224
      ],
      "parameters": {
        "autoFix": true,
        "jsonSchemaExample": "{\n  \"data_type\": \"News\",\n  \"company_name\": \"Ghost\",\n  \"primary_date\": \"2026-01-14\",\n  \"core_summary\": \"Ghost recently introduced email clipping warnings to help newsletter creators avoid Gmail truncation. They also launched a discovery engine to promote independent publishers.\",\n  \"key_entities\": \"Entri, .link, Ghost 6.0\",\n  \"strategic_focus\": \"Focusing on newsletter optimization and creator growth/discovery.\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "e8fa3ab2-79ac-48d1-bb0b-7d8ded71ccae",
      "name": "OpenRouter Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        160,
        224
      ],
      "parameters": {
        "model": "openai/gpt-5",
        "options": {}
      },
      "credentials": {
        "openRouterApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "a7630002-fbfa-47a7-873a-c313f0d5ec02",
      "name": "Aggregate",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        304,
        -416
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "b09ef1d8-05d9-4350-8e66-283791b549c2",
      "name": "Structured Output Parser1",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        672,
        -192
      ],
      "parameters": {
        "autoFix": true,
        "jsonSchemaExample": "{\n  \"Name\": \"Ghost\",\n  \"Notes\": \"**Company Persona:**\\nNon-profit, open-source organization building technology for modern publishing. Positioned as an independent alternative to Substack and WordPress.\\n\\n**Strategic Focus:**\\nPrioritizing creator monetization, growth tools (memberships/newsletters), and strengthening the open-source developer ecosystem. Actively promoting the launch of Ghost 6.0.\\n\\n**Recent Activities:**\\n- **2026-01-29:** Shipped improvements to paid member analytics and a new Growth tab to break down subscriptions by tier.\\n- **2026-01-22:** Added chainable filters for traffic analytics and full UTM support.\\n- **2026-01-14:** Launched email clipping warnings to prevent newsletter truncation in Gmail.\\n\\n**Key Entities & Tech:**\\nGhost 6.0, Tinybird, API, Ghost(Pro), Theme Marketplace, Open Subscription Platforms.\",\n  \"Assignee\": \"AI Agent\",\n  \"Status\": \"Todo\",\n  \"Attachments\": [],\n  \"Attachment Summary\": \"Ghost is a non-profit open-source publishing platform currently prioritizing first-party analytics and creator growth tools alongside the launch of Ghost 6.0.\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "4e701483-b428-46c3-bc9d-49a929d3e7c5",
      "name": "OpenRouter Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        496,
        -192
      ],
      "parameters": {
        "model": "google/gemini-3-flash-preview",
        "options": {}
      },
      "credentials": {
        "openRouterApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "ea6246f0-c50e-40f7-9d94-ffaa8ab1a56a",
      "name": "Create a record",
      "type": "n8n-nodes-base.airtable",
      "position": [
        864,
        -416
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appGWdWTgqsbIVXP3",
          "cachedResultUrl": "https://airtable.com/appGWdWTgqsbIVXP3",
          "cachedResultName": "BrowserAct_Test"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblMT3dO4qmf0GpRU",
          "cachedResultUrl": "https://airtable.com/appGWdWTgqsbIVXP3/tblMT3dO4qmf0GpRU",
          "cachedResultName": "Table 1"
        },
        "columns": {
          "value": {
            "Name": "={{ $json.output.Name }}",
            "Notes": "={{ $json.output.Notes }}",
            "Status": "={{ $json.output.Status }}",
            "Attachments": "={{ $json.output.Attachments }}",
            "Attachment Summary": "={{ $json.output[\"Attachment Summary\"] }}"
          },
          "schema": [
            {
              "id": "Name",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Notes",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Notes",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Assignee",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Assignee",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Todo",
                  "value": "Todo"
                },
                {
                  "name": "In progress",
                  "value": "In progress"
                },
                {
                  "name": "Done",
                  "value": "Done"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Attachments",
              "type": "array",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Attachments",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Attachment Summary",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Attachment Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {
          "typecast": true
        },
        "operation": "create",
        "authentication": "airtableOAuth2Api"
      },
      "credentials": {
        "airtableOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "ed390722-64d9-41bc-8b25-3824e0cb041c",
      "name": "Manual execution",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -528,
        32
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "6a7374cc-93d2-4441-9573-4c30eaca6c0c",
      "name": "Extract Target Page Data",
      "type": "n8n-nodes-browseract.browserAct",
      "position": [
        0,
        32
      ],
      "parameters": {
        "type": "WORKFLOW",
        "workflowId": "77103692630144570",
        "workflowConfig": {
          "value": {
            "input-Opponent_Page": "={{ $json[\"Page URL\"] }}"
          },
          "schema": [
            {
              "id": "input-Opponent_Page",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "description": "If left blank, the default value defined in BrowserAct will be used.",
              "displayName": "Opponent_Page",
              "defaultMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "input-Opponent_Page"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "credentials": {
        "browserActApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "8119059d-5dd6-4f39-96f0-df002c610f65",
      "name": "Analyze the Company Page",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        160,
        32
      ],
      "parameters": {
        "text": "={{ $json.output.string }}",
        "options": {
          "systemMessage": "### ROLE\nYou are a Senior B2B Market Analyst. Your job is to ingest raw JSON data scraped from company websites, analyze the semantic meaning, and normalize it into a structured summary for a CRM and Content Generation pipeline.\n\n### INPUT CONTEXT\nYou will receive one of two types of JSON datasets:\n1. **News/Changelog Data:** Contains fields like 'page_title', 'main_heading', 'newsletter_title', 'content_paragraph', 'date', etc.\n2. **Company Profile Data:** Contains fields like 'headline', 'subheadline', 'founders', 'nav_links', 'mission', etc.\n\n### PROCESSING LOGIC\nYour first task is to **DETECT** which type of data you have received based on the keys present.\n\n#### IF DATA IS \"NEWS / CHANGELOG\":\n1.  **Sort:** Identify the most recent significant update based on the dates provided.\n2.  **Summarize:** Create a concise summary of the latest 3 updates combined. Focus on *what* changed and *why* it matters (value proposition).\n3.  **Strategic Analysis:** Infer the company's current focus (e.g., \"They are pivoting to security,\" \"They are focusing on AI,\" \"They are scaling growth tools\").\n4.  **Extraction:**\n    * `latest_update_title`: The specific headline of the newest item.\n    * `latest_update_date`: The date of that item.\n\n#### IF DATA IS \"COMPANY PROFILE / ABOUT\":\n1.  **Identity:** Extract the core mission statement.\n2.  **Leadership:** Extract founder names (if present) or key team info.\n3.  **Keywords:** Extract industry keywords (e.g., \"Open Source,\" \"Non-profit,\" \"SaaS\").\n4.  **Links:** Parse the 'nav_links' or 'footer_links' to find the \"Careers\" or \"Pricing\" page if available, otherwise just list the main domain.\n\n### OUTPUT SCHEMA (Strict JSON)\nYou must output a **FLAT JSON** object. Do not use nested arrays or objects, as this data is going directly into a Google Sheet (spreadsheet). If a list exists, join it with commas or pipe symbols (|).\n\n{\n  \"data_type\": \"News\" OR \"Profile\",\n  \"company_name\": \"String (Infer from content, e.g., 'Ghost')\",\n  \"primary_date\": \"YYYY-MM-DD (Date of scrape or latest news item)\",\n  \"core_summary\": \"String (A 2-3 sentence summary of the input data suitable for a briefing)\",\n  \"key_entities\": \"String (Founders, Feature Names, or Partners mentioned - comma separated)\",\n  \"strategic_focus\": \"String (One sentence on what the company is currently prioritizing)\",\n  \"raw_content_snippet\": \"String (The first 500 characters of the most relevant text, cleaned of newlines)\",\n  \"source_url\": \"String (If a URL is detected in the text, otherwise 'N/A')\"\n}"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 3
    },
    {
      "id": "4e8bfa9a-d899-4436-8519-c2995a0bf231",
      "name": "Update Database",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        608,
        192
      ],
      "parameters": {
        "columns": {
          "value": {
            "Page URL": "={{ $('Loop Over Items').item.json[\"Page URL\"] }}",
            "Page Data": "={{ $json.output }}",
            "row_number": "={{ $('Loop Over Items').item.json.row_number }}"
          },
          "schema": [
            {
              "id": "Page URL",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Page URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Page Data",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Page Data",
              "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": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Y8B9xauKL-_xiJ5nIPr3Sk-yJKjnCQi16Kb7kEovj7E/edit#gid=0",
          "cachedResultName": "DataBase"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1Y8B9xauKL-_xiJ5nIPr3Sk-yJKjnCQi16Kb7kEovj7E",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Y8B9xauKL-_xiJ5nIPr3Sk-yJKjnCQi16Kb7kEovj7E/edit?usp=drivesdk",
          "cachedResultName": "B2B Contact Research"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "f36fb29f-0fbf-4808-9202-d4e10fe2ab9a",
      "name": "Retrieve Input Data",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -368,
        32
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Y8B9xauKL-_xiJ5nIPr3Sk-yJKjnCQi16Kb7kEovj7E/edit#gid=0",
          "cachedResultName": "DataBase"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1Y8B9xauKL-_xiJ5nIPr3Sk-yJKjnCQi16Kb7kEovj7E",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Y8B9xauKL-_xiJ5nIPr3Sk-yJKjnCQi16Kb7kEovj7E/edit?usp=drivesdk",
          "cachedResultName": "B2B Contact Research"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "d037a078-430e-48e6-aeab-c80ae8c12e5b",
      "name": "Retrieve Stored Data",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        128,
        -416
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Y8B9xauKL-_xiJ5nIPr3Sk-yJKjnCQi16Kb7kEovj7E/edit#gid=0",
          "cachedResultName": "DataBase"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1Y8B9xauKL-_xiJ5nIPr3Sk-yJKjnCQi16Kb7kEovj7E",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Y8B9xauKL-_xiJ5nIPr3Sk-yJKjnCQi16Kb7kEovj7E/edit?usp=drivesdk",
          "cachedResultName": "B2B Contact Research"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "executeOnce": true,
      "typeVersion": 4.7
    },
    {
      "id": "f252c0f0-263a-45cb-8b47-b36879f40d37",
      "name": "Analyze data and create an Airtable record",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        512,
        -416
      ],
      "parameters": {
        "text": "= array of data: {{ JSON.stringify($json.data, null, 2) }}",
        "options": {
          "systemMessage": "### ROLE\nYou are an Expert B2B Lead Researcher & Data Synthesizer.\n\n### INPUT CONTEXT\nYou will receive data array.\nInside this array, each item has a field called `Page Data`.\n**IMPORTANT:** The `Page Data` field is a STRINGIFIED JSON object (a JSON string inside a JSON field). You must mentally parse this string to extract the actual content (Company Profile, News, About Us info).\n\n### YOUR GOAL\nAggregating all the parsed data from the array into a **SINGLE** comprehensive \"Research Record\" for Airtable. You must structure the output to highlight **Personas (Company Type), Responsibilities (Strategic Focus), and Recent Activities (News)**.\n\n### PROCESSING INSTRUCTIONS\n1.  **Parse & Merge:** Iterate through every item in the `data` array. Parse the `Page Data` string.\n2.  **Extract Company Name:** Identify the consistent company name (e.g., \"Ghost\").\n3.  **Synthesize \"Notes\" (The Deep Dive):**\n    * **Strategic Focus:** Combine the `strategic_focus` fields. What is their main goal right now? (e.g., \"Monetization,\" \"Analytics\").\n    * **Recent Activities:** meaningful summary of the `Page Data` tagged as \"News\". Include dates if available.\n    * **Key Entities/Tech:** Compile a clean list of `key_entities` (e.g., \"Ghost 6.0, Tinybird, API\").\n    * **Company Persona:** Describe the organization type (e.g., \"Non-profit open-source foundation\").\n4.  **Synthesize \"Attachment Summary\":** Write a high-impact 1-sentence pitch describing who they are and their #1 current priority.\n5.  **Formatting:** Use Markdown (bolding, bullet points) inside the `Notes` field so it looks clean in Airtable.\n\n### OUTPUT SCHEMA (Strict JSON for Airtable)\nYou must output a single JSON object. Keys must match exactly.\n\n{\n  \"Name\": \"String (Company Name)\",\n  \"Notes\": \"String (Use Markdown:\\n\\n**Strategic Focus:**\\n[Summary]\\n\\n**Recent Activities:**\\n- [Activity 1]\\n- [Activity 2]\\n\\n**Tech & Entities:**\\n[List])\",\n  \"Assignee\": \"AI Agent\",\n  \"Status\": \"Todo\",\n  \"Attachments\": [],\n  \"Attachment Summary\": \"String (The 1-sentence executive bio)\"\n}"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 3
    },
    {
      "id": "86957e01-814f-45be-b003-510d7946e84d",
      "name": "Documentation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -944,
        -384
      ],
      "parameters": {
        "width": 380,
        "height": 424,
        "content": "## \u26a1 Workflow Overview & Setup\n\n**Summary:** Automate B2B lead research by scraping company profiles and news from a list of URLs, synthesizing the data with AI, and organizing it into a structured Airtable database.\n\n### Requirements\n* **Credentials:** BrowserAct, OpenRouter, Google Sheets, Airtable.\n* **Mandatory:** BrowserAct API (Template: **B2B Contact Research**)\n\n### How to Use\n1.  **Credentials:** Configure your API keys for all services.\n2.  **BrowserAct Template:** Ensure the **B2B Contact Research** template is active in your account.\n3.  **Google Sheet:** Prepare a sheet with a column `Page URL` containing the target company websites.\n4.  **Airtable:** Set up a base with fields matching the output schema (`Name`, `Notes`, `Status`, etc.).\n\n### Need Help?\n[How to Find Your BrowserAct API Key & Workflow ID](https://docs.browseract.com)\n[How to Connect n8n to BrowserAct](https://docs.browseract.com)\n[How to Use & Customize BrowserAct Templates](https://docs.browseract.com)"
      },
      "typeVersion": 1
    },
    {
      "id": "8f22f9ef-f27f-40d7-919b-8c310bcf2a2b",
      "name": "Step 1 Explanation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -528,
        400
      ],
      "parameters": {
        "color": 7,
        "width": 1276,
        "height": 96,
        "content": "### \ud83c\udf10 Step 1: Automated Scraping\n\nThe workflow reads a list of URLs from Google Sheets. For each URL, it triggers a BrowserAct task to scrape key company data (profile info, news, etc.) and updates the sheet with the raw JSON results."
      },
      "typeVersion": 1
    },
    {
      "id": "3e669c2f-1e6a-40dd-bc94-451fb6a9097e",
      "name": "Step 3 Explanation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        128,
        -560
      ],
      "parameters": {
        "color": 7,
        "width": 904,
        "height": 120,
        "content": "### \ud83d\udcc2 Step 3: Database Entry\n\nOnce all scraping is complete, the data is aggregated. The structured AI output is formatted into strict JSON compatible with Airtable. The workflow then creates a new record in the Airtable base, populating all relevant fields for your CRM pipeline."
      },
      "typeVersion": 1
    },
    {
      "id": "7d18a588-60e2-4ddf-8b48-bc7cb510f73e",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -544,
        -384
      ],
      "parameters": {
        "color": 6,
        "width": 496,
        "height": 288,
        "content": "@[youtube](mLCuN9Of6EM)"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "f5ebc2e8-ea2c-4361-bcdb-84c5e33f031e",
  "connections": {
    "Aggregate": {
      "main": [
        [
          {
            "node": "Analyze data and create an Airtable record",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [
          {
            "node": "Retrieve Stored Data",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Extract Target Page Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Database": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Manual execution": {
      "main": [
        [
          {
            "node": "Retrieve Input Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Retrieve Input Data": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Retrieve Stored Data": {
      "main": [
        [
          {
            "node": "Aggregate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Analyze the Company Page",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Structured Output Parser",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "Analyze data and create an Airtable record",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Structured Output Parser1",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Analyze the Company Page": {
      "main": [
        [
          {
            "node": "Update Database",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Target Page Data": {
      "main": [
        [
          {
            "node": "Analyze the Company Page",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Analyze the Company Page",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser1": {
      "ai_outputParser": [
        [
          {
            "node": "Analyze data and create an Airtable record",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Analyze data and create an Airtable record": {
      "main": [
        [
          {
            "node": "Create a record",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}