{
  "nodes": [
    {
      "id": "83d280fb-dd81-4336-abe6-2e6629d65da8",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "width": 480,
        "height": 896,
        "content": "## Workflow\n\n### How it works\n\n1. The workflow is manually triggered.\n2. Criteria are retrieved and processed from Google Sheets.\n3. Prompts are fetched from Google Sheets based on processed criteria.\n4. AI requests are sent to OpenAI, Google Gemini, and Perplexity, and results are merged.\n5. AI agents evaluate the merged results and store them in Google Sheets.\n\n### Setup steps\n\n- [ ] Connect Google Sheets node with appropriate access permissions.\n- [ ] Configure OpenAI and Google Gemini credentials.\n- [ ] Ensure Perplexity API access is set up.\n- [ ] Map Google Sheets fields to workflow variables for prompts and criteria.\n\nGoogle Sheet Example: https://docs.google.com/spreadsheets/d/1q9-LcZ_BNQ7PTEKuJ6T4j3HffYn23Co_mO5R-c8C0XY/edit"
      },
      "typeVersion": 1
    },
    {
      "id": "2e040f22-4c79-455c-8056-65ca0b977312",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        560,
        512
      ],
      "parameters": {
        "color": 7,
        "height": 304,
        "content": "## Manual trigger\n\nInitialize the workflow manually."
      },
      "typeVersion": 1
    },
    {
      "id": "15365bcf-1f89-4758-bbe1-993be135ebb2",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        832,
        528
      ],
      "parameters": {
        "color": 7,
        "width": 640,
        "height": 272,
        "content": "## Fetch and process criteria\n\nRetrieve and prepare criteria from Google Sheets for processing."
      },
      "typeVersion": 1
    },
    {
      "id": "15a2b127-375a-41e7-8fab-97ab6193b74b",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1504,
        480
      ],
      "parameters": {
        "color": 7,
        "height": 320,
        "content": "## Fetch prompts\n\nRetrieve prompt data from Google Sheets to be used in AI requests."
      },
      "typeVersion": 1
    },
    {
      "id": "5c7b6cc3-e3e6-4e2f-988e-9917410fab86",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1776,
        32
      ],
      "parameters": {
        "color": 7,
        "width": 544,
        "height": 1184,
        "content": "## AI requests and merging\n\nSend prompts to OpenAI, Google Gemini, and Perplexity, then merge the results for evaluation."
      },
      "typeVersion": 1
    },
    {
      "id": "1b294325-6650-4292-867c-1e16163b4a2f",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2352,
        0
      ],
      "parameters": {
        "color": 7,
        "width": 368,
        "height": 1424,
        "content": "## Evaluate and write results\n\nEvaluate the AI responses and write the results back to Google Sheets."
      },
      "typeVersion": 1
    },
    {
      "id": "5810adfb-c9e9-483f-a653-2d7e9909c2df",
      "name": "Manual Trigger Execute Workflow",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        608,
        640
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "b5ecfcda-868e-4b86-b9df-82035ed306ab",
      "name": "Read Prompts from Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1552,
        640
      ],
      "parameters": {
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "",
          "cachedResultUrl": "",
          "cachedResultName": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "url",
          "value": ""
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "629a0236-2f9c-4605-9055-fa17ab43bed7",
      "name": "Read Criteria from Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        880,
        640
      ],
      "parameters": {
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "",
          "cachedResultUrl": "",
          "cachedResultName": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "90c6d80f-85d1-4ee6-a3d2-d1b2dfece53c",
      "name": "Set Criteria Line",
      "type": "n8n-nodes-base.set",
      "position": [
        1104,
        640
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "criteria_line",
              "name": "criteria_line",
              "type": "string",
              "value": "={{ $itemIndex + 1 }}. {{ $json.criteria }}: {{ $json.instruction }} Example: {{ $json.example }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "1181ea07-090a-4790-9fa5-2f43ffcd080f",
      "name": "Aggregate Criteria Data",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        1328,
        640
      ],
      "parameters": {
        "options": {},
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "fieldToAggregate": "criteria_line"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "ebc0d88b-7d46-43e2-ac14-936a5449af39",
      "name": "OpenAI GPT Model Request",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        1824,
        160
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-5.2",
          "cachedResultName": "GPT-5.2"
        },
        "options": {},
        "simplify": false,
        "responses": {
          "values": [
            {
              "content": "={{ $json.Prompt }}"
            }
          ]
        },
        "builtInTools": {}
      },
      "typeVersion": 2.1
    },
    {
      "id": "83fbf69f-5514-4d91-b254-bf683e86693e",
      "name": "Google Gemini Model Request",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        1824,
        512
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "models/gemini-2.5-flash",
          "cachedResultName": "models/gemini-2.5-flash"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "={{ $json.Prompt }}"
            }
          ]
        },
        "simplify": false,
        "builtInTools": {}
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "2f147b8e-fb55-4df6-8bef-3a5869243b3e",
      "name": "Post to Perplexity API",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1888,
        912
      ],
      "parameters": {
        "url": "https://api.perplexity.ai/chat/completions",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "model",
              "value": "=sonar"
            },
            {
              "name": "messages",
              "value": "=[   {     \"role\": \"user\",     \"content\": \"{{$json.Prompt}}\"   } ]"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth"
      },
      "typeVersion": 4.4
    },
    {
      "id": "15675cd7-4e65-484d-8792-1d5eb210a1dc",
      "name": "GPT Content Analyzer Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2400,
        128
      ],
      "parameters": {
        "text": "=You are an AI brand visibility evaluation agent.\n\nINPUTS\n\nOriginal prompt:\n{{ $json.Prompt }}\n\nTarget brand:\n{{ $json[\"Target Tool\"] }}\n\nAI answer:\n{{ $json.output[0].content[0].text }}\n\nUse Criteria:\n{{ $('Aggregate Criteria Data').item.json.criteria_line }}\n\nTASK\n\n1. Analyze the AI answer strictly according to criteria.\n2. Extract all explicit brand, app, website, platform, product, or service names mentioned in the AI answer.\n3. Write exactly one row using the tool \"Write Results\".\n\nIMPORTANT RULES\n\n- Use only explicit information from the AI answer.\n- Do not invent brands.\n- Keep the original order of mentioned brands.\n- Count only explicit brand/service/app/platform names.\n- Ignore generic categories like restaurants, events, tools, apps, or websites.\n- If a value does not exist, write Empty.\n- Keep descriptions short and factual.\n- Always call \"Write Results\".",
        "options": {},
        "promptType": "define"
      },
      "typeVersion": 3.1
    },
    {
      "id": "7a634e8c-2fa4-44a0-893d-384925c40ce8",
      "name": "Gemini Content Analyzer Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2400,
        528
      ],
      "parameters": {
        "text": "=You are an AI brand visibility evaluation agent.\n\nINPUTS\n\nOriginal prompt:\n{{ $json.Prompt }}\n\nTarget brand:\n{{ $json[\"Target Tool\"] }}\n\nAI answer:\n{{ $json.candidates[0].content.parts[0].text }}\n\nUse Criteria:\n{{ $('Aggregate Criteria Data').item.json.criteria_line }}\n\nTASK\n\n1. Analyze the AI answer strictly according to criteria.\n2. Extract all explicit brand, app, website, platform, product, or service names mentioned in the AI answer.\n3. Write exactly one row using the tool \"Write Results\".\n\nIMPORTANT RULES\n\n- Use only explicit information from the AI answer.\n- Do not invent brands.\n- Keep the original order of mentioned brands.\n- Count only explicit brand/service/app/platform names.\n- Ignore generic categories like restaurants, events, tools, apps, or websites.\n- If a value does not exist, write Empty.\n- Keep descriptions short and factual.\n- Always call \"Write Results\".",
        "options": {},
        "promptType": "define"
      },
      "typeVersion": 3.1
    },
    {
      "id": "a1458ca8-6dcc-4320-b54c-8f35f4cd0ce6",
      "name": "Perplexity Content Analyzer Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2400,
        1040
      ],
      "parameters": {
        "text": "=You are an AI brand visibility evaluation agent.\n\nINPUTS\n\nOriginal prompt:\n{{ $json.Prompt }}\n\nTarget brand:\n{{ $json[\"Target Tool\"] }}\n\nAI answer:\n{{ $json.choices[0].message.content }}\n\nUse Criteria:\n{{ $('Aggregate Criteria Data').item.json.criteria_line }}\n\nTASK\n\n1. Analyze the AI answer strictly according to criteria.\n2. Extract all explicit brand, app, website, platform, product, or service names mentioned in the AI answer.\n3. Write exactly one row using the tool \"Write Results\".\n\nIMPORTANT RULES\n\n- Use only explicit information from the AI answer.\n- Do not invent brands.\n- Keep the original order of mentioned brands.\n- Count only explicit brand/service/app/platform names.\n- Ignore generic categories like restaurants, events, tools, apps, or websites.\n- If a value does not exist, write Empty.\n- Keep descriptions short and factual.\n- Always call \"Write Results\".",
        "options": {},
        "promptType": "define"
      },
      "typeVersion": 3.1
    },
    {
      "id": "2da584d7-fae7-419c-a48e-68d871b7f52d",
      "name": "Write Gemini Results to Sheets",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        2592,
        752
      ],
      "parameters": {
        "columns": {
          "value": {
            "LLM": "=Gemini",
            "Date": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Date', ``, 'string') }}",
            "Model": "={{ $('Merge Gemini Data').item.json.modelVersion }}",
            "Prompt": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Prompt', ``, 'string') }}",
            "number": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('number', ``, 'string') }}",
            "mention": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('mention', ``, 'string') }}",
            "position": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('position', ``, 'string') }}",
            "brands name": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('brands_name', ``, 'string') }}",
            "description": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('description', ``, 'string') }}"
          },
          "schema": [
            {
              "id": "Date",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Prompt",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Prompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "mention",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "mention",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "brands name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "brands name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "number",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "position",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "position",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "description",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Model",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Model",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "LLM",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "LLM",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 968806322,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1wH6ZlDD5RcyapAbw3Tgb3tYp5vd6v5JhPC6VSo2B_4A/edit#gid=968806322",
          "cachedResultName": "Results"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1wH6ZlDD5RcyapAbw3Tgb3tYp5vd6v5JhPC6VSo2B_4A",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1wH6ZlDD5RcyapAbw3Tgb3tYp5vd6v5JhPC6VSo2B_4A/edit?usp=drivesdk",
          "cachedResultName": "LLM Brand Visibility"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "ed53a1c7-f987-48c9-997f-09218f001d7b",
      "name": "Write GPT Results to Sheets",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        2592,
        352
      ],
      "parameters": {
        "columns": {
          "value": {
            "LLM": "=GPT",
            "Date": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Date', ``, 'string') }}",
            "Model": "={{ $('Merge GPT Data').item.json.model }}",
            "Prompt": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Prompt', ``, 'string') }}",
            "number": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('number', ``, 'string') }}",
            "mention": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('mention', ``, 'string') }}",
            "position": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('position', ``, 'string') }}",
            "brands name": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('brands_name', ``, 'string') }}",
            "description": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('description', ``, 'string') }}"
          },
          "schema": [
            {
              "id": "Date",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Prompt",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Prompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "mention",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "mention",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "brands name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "brands name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "number",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "position",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "position",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "description",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Model",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Model",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "LLM",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "LLM",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 968806322,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1wH6ZlDD5RcyapAbw3Tgb3tYp5vd6v5JhPC6VSo2B_4A/edit#gid=968806322",
          "cachedResultName": "Results"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1wH6ZlDD5RcyapAbw3Tgb3tYp5vd6v5JhPC6VSo2B_4A",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1wH6ZlDD5RcyapAbw3Tgb3tYp5vd6v5JhPC6VSo2B_4A/edit?usp=drivesdk",
          "cachedResultName": "LLM Brand Visibility"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "b93fc95a-7d04-4b47-95a6-5fdd09262302",
      "name": "Write Perplexity Results to Sheets",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        2576,
        1264
      ],
      "parameters": {
        "columns": {
          "value": {
            "LLM": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('LLM', `example: GPT, Claude, Gemin, Perplexity`, 'string') }}",
            "Date": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Date', ``, 'string') }}",
            "Model": "={{ $('Merge Perplexity Data').item.json.model }}",
            "Prompt": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Prompt', ``, 'string') }}",
            "number": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('number', ``, 'string') }}",
            "mention": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('mention', ``, 'string') }}",
            "position": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('position', ``, 'string') }}",
            "brands name": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('brands_name', ``, 'string') }}",
            "description": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('description', ``, 'string') }}"
          },
          "schema": [
            {
              "id": "Date",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Prompt",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Prompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "mention",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "mention",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "brands name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "brands name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "number",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "position",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "position",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "description",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Model",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Model",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "LLM",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "LLM",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 968806322,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1wH6ZlDD5RcyapAbw3Tgb3tYp5vd6v5JhPC6VSo2B_4A/edit#gid=968806322",
          "cachedResultName": "Results"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1wH6ZlDD5RcyapAbw3Tgb3tYp5vd6v5JhPC6VSo2B_4A",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1wH6ZlDD5RcyapAbw3Tgb3tYp5vd6v5JhPC6VSo2B_4A/edit?usp=drivesdk",
          "cachedResultName": "LLM Brand Visibility"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "993085ca-2e8b-466b-aac9-8bd68945eeed",
      "name": "Merge Perplexity Data",
      "type": "n8n-nodes-base.merge",
      "position": [
        2176,
        1040
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineByPosition"
      },
      "typeVersion": 3.2
    },
    {
      "id": "f39c6b8e-931e-44b2-a72e-bd3998252c9a",
      "name": "Merge Gemini Data",
      "type": "n8n-nodes-base.merge",
      "position": [
        2176,
        640
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineByPosition"
      },
      "typeVersion": 3.2
    },
    {
      "id": "4e30a5f9-b0d3-46f4-8cc3-fe18a3ac97d1",
      "name": "Merge GPT Data",
      "type": "n8n-nodes-base.merge",
      "position": [
        2176,
        240
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineByPosition"
      },
      "typeVersion": 3.2
    },
    {
      "id": "5d337c5d-6510-469c-936b-b4acf436611f",
      "name": "OpenAI Perplexity Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2400,
        1264
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-5-mini"
        },
        "options": {},
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "5944c290-ee18-4f2a-8674-fe7146bf1f1f",
      "name": "OpenAI Gemini Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2400,
        752
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-5-mini"
        },
        "options": {},
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "1944f0d9-92db-4743-9d2a-5c06eb606570",
      "name": "OpenAI GPT Model Evaluator",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2400,
        352
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-5-mini"
        },
        "options": {},
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    }
  ],
  "connections": {
    "Merge GPT Data": {
      "main": [
        [
          {
            "node": "GPT Content Analyzer Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge Gemini Data": {
      "main": [
        [
          {
            "node": "Gemini Content Analyzer Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Criteria Line": {
      "main": [
        [
          {
            "node": "Aggregate Criteria Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Gemini Model": {
      "ai_languageModel": [
        [
          {
            "node": "Gemini Content Analyzer Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Merge Perplexity Data": {
      "main": [
        [
          {
            "node": "Perplexity Content Analyzer Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Post to Perplexity API": {
      "main": [
        [
          {
            "node": "Merge Perplexity Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate Criteria Data": {
      "main": [
        [
          {
            "node": "Read Prompts from Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Perplexity Model": {
      "ai_languageModel": [
        [
          {
            "node": "Perplexity Content Analyzer Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI GPT Model Request": {
      "main": [
        [
          {
            "node": "Merge GPT Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Prompts from Sheets": {
      "main": [
        [
          {
            "node": "OpenAI GPT Model Request",
            "type": "main",
            "index": 0
          },
          {
            "node": "Merge GPT Data",
            "type": "main",
            "index": 1
          },
          {
            "node": "Merge Gemini Data",
            "type": "main",
            "index": 1
          },
          {
            "node": "Google Gemini Model Request",
            "type": "main",
            "index": 0
          },
          {
            "node": "Post to Perplexity API",
            "type": "main",
            "index": 0
          },
          {
            "node": "Merge Perplexity Data",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Read Criteria from Sheets": {
      "main": [
        [
          {
            "node": "Set Criteria Line",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI GPT Model Evaluator": {
      "ai_languageModel": [
        [
          {
            "node": "GPT Content Analyzer Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Model Request": {
      "main": [
        [
          {
            "node": "Merge Gemini Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Write GPT Results to Sheets": {
      "ai_tool": [
        [
          {
            "node": "GPT Content Analyzer Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Write Gemini Results to Sheets": {
      "ai_tool": [
        [
          {
            "node": "Gemini Content Analyzer Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Write Perplexity Results to Sheets": {
      "ai_tool": [
        [
          {
            "node": "Perplexity Content Analyzer Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  }
}