8
n8n 中文网amn8n.com

品牌可见性检查 - AI实验室演示项目

高级

这是一个Market Research, AI Summarization领域的自动化工作流,包含 48 个节点。主要使用 If, Set, Limit, Perplexity, HttpRequest 等节点。 跨AI搜索工具的品牌可见性和情感分析 (OpenAI、Perplexity、ChatGPT)

前置要求
  • 可能需要目标 API 的认证凭证
  • Google Sheets API 凭证
  • OpenAI API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "eoiCUdr68Q41iEua",
  "meta": {
    "instanceId": "88b34e051213082619adc89dcb3c4c6a3611f57a17080c0af86efd3b8840b94f",
    "templateCredsSetupCompleted": true
  },
  "name": "LLMO Brand Visibility Check - AI Lab (28.08) Demo Project",
  "tags": [],
  "nodes": [
    {
      "id": "6023f97b-3528-4390-8e58-1c506dedc75d",
      "name": "手动触发器",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -2240,
        256
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "fc60def4-55f5-4838-bae8-ef18ab63730e",
      "name": "Response Sentiment Analyse1",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -528,
        -704
      ],
      "parameters": {
        "text": "=You task is to analyse the sentiment of a text message. Your input is the result of an Perplexity AI API Call in the JSON format. \nTake this message and evaluate its content: \"{{ $json.Message }} \"\n\nYour output is a JSON with three classifications:\n1. the Basic Polarity (KEY), with values from Positive, Neutral to Negative \n2. Emotion Category (Key) with values from Joy, Sadness,Anger,Fear, Disgust, Surprise.\n3. Third, Brand Hierachy (key), you evaluate the hierachy of brands mentioned in the LLM Response.\n\nExample Output for Brand Hierarchy: Nike>Adidas>Puma",
        "options": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "0baea2a7-b19a-4aa7-b121-f1455215102b",
      "name": "Sheet/Excel updaten",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        224,
        -704
      ],
      "parameters": {
        "columns": {
          "value": {
            "Response": "={{ $json.Message }}"
          },
          "schema": [
            {
              "id": "Prompt",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Prompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Brand Mentioning",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Brand Mentioning",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Response",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Response",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Emotion Category",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Emotion Category",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Basic Polarity",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Basic Polarity",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Quelle1",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Quelle1",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Quelle2",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Quelle2",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Quelle3",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Quelle3",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Quelle4",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Quelle4",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Quelle5",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Quelle5",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Message",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Message",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Tool",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Tool",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Anfrage",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Anfrage",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 568802405,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ObN4sF1fBBXsrg6aBayZdPXETRFNlAtp5H92mEiH33o/edit#gid=568802405",
          "cachedResultName": "Output"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1ObN4sF1fBBXsrg6aBayZdPXETRFNlAtp5H92mEiH33o",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ObN4sF1fBBXsrg6aBayZdPXETRFNlAtp5H92mEiH33o/edit?usp=drivesdk",
          "cachedResultName": "AI Lab Prompts"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "qdhEdg8zimJRSIxl",
          "name": "Google Sheets account (aoetesting gmail)"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "0dccf99d-c7ca-4a54-9f81-094b0cf61b15",
      "name": "便签 4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1152,
        -800
      ],
      "parameters": {
        "width": 464,
        "height": 416,
        "content": "## LLMO GEO Visibility Research"
      },
      "typeVersion": 1
    },
    {
      "id": "033a6e5a-4614-41b2-9055-91690ca20975",
      "name": "便签 5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -656,
        -800
      ],
      "parameters": {
        "width": 528,
        "height": 416,
        "content": "## Sentiment analysis und brand evaluation"
      },
      "typeVersion": 1
    },
    {
      "id": "0bf0f1c1-7faf-48a0-972a-7d38b1fa5c07",
      "name": "便签6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -80,
        -800
      ],
      "parameters": {
        "width": 496,
        "height": 416,
        "content": "## Reporting"
      },
      "typeVersion": 1
    },
    {
      "id": "7529683e-cc21-4351-b603-96c1ab5196a0",
      "name": "便签7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1472,
        -800
      ],
      "parameters": {
        "width": 288,
        "height": 416,
        "content": "## Data source"
      },
      "typeVersion": 1
    },
    {
      "id": "67a8ef42-42da-4729-8818-6782625e46b2",
      "name": "便签8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1936,
        -864
      ],
      "parameters": {
        "color": 7,
        "width": 2672,
        "height": 656,
        "content": "## Simplified Flow"
      },
      "typeVersion": 1
    },
    {
      "id": "0ce10377-ac99-4f8e-97de-407716b12053",
      "name": "LLM-Prompts",
      "type": "n8n-nodes-base.set",
      "position": [
        -1376,
        -704
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "306f8ce3-e140-4d8b-a8b4-a57c5c131066",
              "name": "Prompt",
              "type": "string",
              "value": "Are Asics running shoes any good"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "d76ce3fd-91cd-4c1c-9a4d-579b42b08123",
      "name": "聊天模型",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -528,
        -512
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini",
          "cachedResultName": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "M0gBX6dGinkN0Qym",
          "name": "OpenAi account (n8n project)"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "13244b6e-40b4-494c-b5b2-2c6693e3807f",
      "name": "Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -384,
        -512
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \n    \"Basic Polarity\": \"Negative\",\n    \"Emotion Category\": \"Anger\",\n    \"Brand Hierachy\": \"Nike>Adidas>Puma\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "f4455754-0af0-4ede-a0ab-eb6a77d1b6d5",
      "name": "在表格中添加行",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        928,
        304
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [
            {
              "id": "Prompt",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Prompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "LLM",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "LLM",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Response",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Response",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Brand mentioned",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Brand mentioned",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Brand Hierarchy",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Brand Hierarchy",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Basic Polarity",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Basic Polarity",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Emotion Category",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Emotion Category",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Source 1",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Source 1",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Source 2",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Source 2",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Source 3",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Source 3",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1051572958,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ObN4sF1fBBXsrg6aBayZdPXETRFNlAtp5H92mEiH33o/edit#gid=1051572958",
          "cachedResultName": "Output many models"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1ObN4sF1fBBXsrg6aBayZdPXETRFNlAtp5H92mEiH33o",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ObN4sF1fBBXsrg6aBayZdPXETRFNlAtp5H92mEiH33o/edit?usp=drivesdk",
          "cachedResultName": "AI Lab Prompts"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "qdhEdg8zimJRSIxl",
          "name": "Google Sheets account (aoetesting gmail)"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "fb6acc43-81a2-4b6f-85d9-74715960213d",
      "name": "### 工作原理",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        336,
        528
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "M0gBX6dGinkN0Qym",
          "name": "OpenAi account (n8n project)"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "f6d1180b-8dbc-4ae2-ad7d-02e3a17dbb7f",
      "name": "Response Sentiment Analyse3",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        320,
        320
      ],
      "parameters": {
        "text": "=Take this message and evaluate its content: \"{{ $json.Response }}\"\n",
        "options": {
          "systemMessage": "You task is to analyse the sentiment of a text message. Your input is the result of an Perplexity AI API Call in JSON format. \n\n--\n\n\nYour output is a JSON with three classifications:\n1. the Basic Polarity (KEY), with values from Positive, Neutral to Negative \n2. Emotion Category (Key) with values from Joy, Sadness,Anger,Fear, Disgust, Surprise.\n3. Third, Brand Hierachy (key), you evaluate the hierachy of brands mentioned in the LLM Response.\n\nExample Output for Brand Hierarchy: Nike>Adidas>Puma"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "c8786ef3-5147-4f02-9d71-bbee87d3a19d",
      "name": "结构化输出解析器 3",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        480,
        528
      ],
      "parameters": {
        "jsonSchemaExample": "{\n    \"Basic Polarity\": \"Negative\",\n    \"Emotion Category\": \"Anger\",\n    \"Brand Hierachy\": \"Nike>Adidas>Puma\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "e3398784-fe71-4d86-bfcd-96ec8ae6e816",
      "name": "便签10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2416,
        -208
      ],
      "parameters": {
        "color": 7,
        "width": 4000,
        "height": 1360,
        "content": "## multi-model prompting"
      },
      "typeVersion": 1
    },
    {
      "id": "89625abb-4027-42ea-83d0-b180b42bcd24",
      "name": "Sticky Note11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1168,
        -48
      ],
      "parameters": {
        "color": 2,
        "width": 1008,
        "height": 80,
        "content": "## LLMO GEO Brand Visibility Research"
      },
      "typeVersion": 1
    },
    {
      "id": "dfdf11bb-f6f3-4af9-93dd-8ccb540ea09b",
      "name": "便签12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -112,
        48
      ],
      "parameters": {
        "width": 704,
        "height": 640,
        "content": "## Sentiment Analysis and Brandevaluation"
      },
      "typeVersion": 1
    },
    {
      "id": "8125153b-44e3-4caf-b48e-966abc5f88a3",
      "name": "## 试试看!",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3360,
        -1280
      ],
      "parameters": {
        "color": 4,
        "width": 896,
        "height": 384,
        "content": "# Use Case Explanation\n\nUsers are continuously more and more using AI tools like ChatGPT, Perplexity etc to find what they need. Therefore, it's more and more important for brands and organization to be visible when users ask relevant questions. \n\nThe first step to optimize for visibility in these AI tools is to know where your brand stand. \n\nThis workflow helps in automating the analysis of the current visibility in tools like:\n- native open AI knowledge\n- Perplexity\n- chatGPT\n\nIt can be extended for more tools. See this workflow as a kickstart. There's much more you can do. The benefit of using a workflow for these analysis is that you can add your specific evaluations and your specific reasonings, even such as potential optimizations to increase visibility.\n\nInterested in professional AI automation - feel free to [check our services](https://www.aoe.com/de/services/automation-ai/n8n)"
      },
      "typeVersion": 1
    },
    {
      "id": "46cf70fd-a8f5-4310-b226-8f0bbca0519a",
      "name": "OpenAI Chat Model (GPT 5)",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -704,
        256
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-5",
          "cachedResultName": "gpt-5"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "M0gBX6dGinkN0Qym",
          "name": "OpenAi account (n8n project)"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "7260d41f-2349-45ab-bcec-6c8d73fab4e5",
      "name": "OpenAI Anfrage",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        -704,
        112
      ],
      "parameters": {
        "text": "={{ $json.Prompt }}",
        "batching": {},
        "promptType": "define"
      },
      "typeVersion": 1.7
    },
    {
      "id": "f83b4579-7eee-437c-bdc7-34273e19925b",
      "name": "OpenAI",
      "type": "n8n-nodes-base.set",
      "position": [
        -352,
        96
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "51253e72-9fc7-45de-bdfb-52087d1e6fc2",
              "name": "Response",
              "type": "string",
              "value": "={{ $json.text }}"
            },
            {
              "id": "1f6d60ae-2599-4371-baf9-d833bf03ad98",
              "name": "LLM",
              "type": "string",
              "value": "OpenAI"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "81b6c166-e656-45e1-a630-d899fe850841",
      "name": "便签 14",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1168,
        48
      ],
      "parameters": {
        "width": 1008,
        "height": 288,
        "content": "## OpenAI (API / LLM Knowledge)"
      },
      "typeVersion": 1
    },
    {
      "id": "a5778474-4314-4347-abd3-f13e095d4b39",
      "name": "便签15",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1968,
        -48
      ],
      "parameters": {
        "width": 752,
        "height": 624,
        "content": "## Input\n(Replace to your need)"
      },
      "typeVersion": 1
    },
    {
      "id": "7f4cb9f8-941f-42bd-aba5-833b15dee6d8",
      "name": "便签 16",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -112,
        -48
      ],
      "parameters": {
        "color": 2,
        "width": 704,
        "height": 80,
        "content": "## Result Evaluation"
      },
      "typeVersion": 1
    },
    {
      "id": "8f53dcf4-7957-478a-9f67-bf8b8b701775",
      "name": "近期交易",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        624,
        -48
      ],
      "parameters": {
        "color": 2,
        "width": 576,
        "height": 80,
        "content": "## Store Result"
      },
      "typeVersion": 1
    },
    {
      "id": "b997e680-41f9-4163-b6e3-47bb734b06b8",
      "name": "便利贴18",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1168,
        384
      ],
      "parameters": {
        "width": 1008,
        "height": 256,
        "content": "## Perplexity"
      },
      "typeVersion": 1
    },
    {
      "id": "44c0457c-ce38-4285-be10-13be5af2046e",
      "name": "便签 19",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1168,
        672
      ],
      "parameters": {
        "width": 1008,
        "height": 272,
        "content": "## ChatGPT\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "1fc655af-c428-4bad-8df3-7dbb193d8005",
      "name": "APIfy Call ChatGPT Scraper",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueRegularOutput",
      "position": [
        -864,
        736
      ],
      "parameters": {
        "url": "https://api.apify.com/v2/acts/automation_nerd~chatgpt-prompt-actor/run-sync-get-dataset-items",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n    \"prompts\": [{{ JSON.stringify($json[\"Prompt\"]) }}],\n    \"proxyCountry\": \"DE\"\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpQueryAuth"
      },
      "credentials": {
        "httpQueryAuth": {
          "id": "0jsRZDiuGwwQPHPB",
          "name": "APIFy Token (Test account)"
        }
      },
      "retryOnFail": false,
      "typeVersion": 4.2,
      "alwaysOutputData": false
    },
    {
      "id": "0c0d89a3-8c5a-4d18-82af-2c0cf3129e85",
      "name": "便签20",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1168,
        992
      ],
      "parameters": {
        "color": 3,
        "width": 464,
        "height": 256,
        "content": "Use this node with care - only for testing and to your own risk. \nIt's using an APIfy actor that tries to prompt ChatGPT through the web interface.\n\nOpen AI might restrict access and you might violate usage conditions. \nSo use at your own risk and check the APIfy documentations for more details on how to use this.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "a66095ef-09fd-4d7e-a33c-ea7ac731fc4a",
      "name": "final mapping",
      "type": "n8n-nodes-base.set",
      "position": [
        16,
        -704
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "81d3aa0e-4db1-4a08-9d17-a2e88708a262",
              "name": "source #1",
              "type": "string",
              "value": "={{ $('Map LLM Output').item.json.Citation1 }}"
            },
            {
              "id": "ec22de77-1bb3-4acd-889a-23866068014f",
              "name": "source #2",
              "type": "string",
              "value": "={{ $('Map LLM Output').item.json.Citation2 }}"
            },
            {
              "id": "d8ada9a6-8be5-4042-928b-f88364fe6c20",
              "name": "source #3",
              "type": "string",
              "value": "={{ $('Map LLM Output').item.json.Citation3 }}"
            },
            {
              "id": "30a63ecd-ab3d-4de5-9a9e-0010f40beb4d",
              "name": "source #4",
              "type": "string",
              "value": "={{ $('Map LLM Output').item.json.Citation4 }}"
            },
            {
              "id": "e87fcbbd-a77d-408b-a27d-ecec890d0cc1",
              "name": "source #5",
              "type": "string",
              "value": "={{ $('Map LLM Output').item.json.Citation5 }}"
            },
            {
              "id": "0972cb5b-a561-44a3-8872-477a54c4d64e",
              "name": "Message",
              "type": "string",
              "value": "={{ $('Map LLM Output').item.json.Message }}"
            },
            {
              "id": "ac0895c7-df51-46a4-b6bd-6a736ecd4eea",
              "name": "Emotion Category",
              "type": "string",
              "value": "={{ $json.output['Emotion Category'] }}"
            },
            {
              "id": "dd9c8884-b58d-4d01-b5c1-a1d1b9b38ac4",
              "name": "Basic Polarity",
              "type": "string",
              "value": "={{ $json.output['Basic Polarity'] }}"
            },
            {
              "id": "e47cbb34-9bfe-4a5f-8ade-80754a9e9d1a",
              "name": "Brand Hierachy",
              "type": "string",
              "value": "={{ $json.output[\"Brand Hierachy\"] }}"
            },
            {
              "id": "11e7f8c8-e965-4cbb-8d48-ec59b95eb7b6",
              "name": "Prompt",
              "type": "string",
              "value": "={{ $('LLM-Prompts').item.json.Prompt }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "ec91e5db-13ab-4c68-91d3-c15fbd391c57",
      "name": "Perplexity 请求",
      "type": "n8n-nodes-base.perplexity",
      "position": [
        -656,
        464
      ],
      "parameters": {
        "model": "sonar",
        "options": {},
        "messages": {
          "message": [
            {
              "content": "={{ $json.Prompt }}"
            }
          ]
        },
        "requestOptions": {}
      },
      "credentials": {
        "perplexityApi": {
          "id": "hGRSmzGiDNMOmljL",
          "name": "LLM-SEO PoC Key"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "8912b8d9-266c-4b9f-9e4e-d12dd5c7a97d",
      "name": "Perplexity Request1",
      "type": "n8n-nodes-base.perplexity",
      "position": [
        -1072,
        -704
      ],
      "parameters": {
        "model": "sonar",
        "options": {},
        "messages": {
          "message": [
            {
              "content": "={{ $json.Prompt }}"
            }
          ]
        },
        "requestOptions": {}
      },
      "credentials": {
        "perplexityApi": {
          "id": "hGRSmzGiDNMOmljL",
          "name": "LLM-SEO PoC Key"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "410190c4-513c-4524-b8ca-1383bd00f8fe",
      "name": "Map LLM Output",
      "type": "n8n-nodes-base.set",
      "position": [
        -864,
        -704
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "81d3aa0e-4db1-4a08-9d17-a2e88708a262",
              "name": "Citation1",
              "type": "string",
              "value": "={{ $json.citations[0] }}"
            },
            {
              "id": "ec22de77-1bb3-4acd-889a-23866068014f",
              "name": "Citation2",
              "type": "string",
              "value": "={{ $json.citations[1] }}"
            },
            {
              "id": "d8ada9a6-8be5-4042-928b-f88364fe6c20",
              "name": "Citation3",
              "type": "string",
              "value": "={{ $json.citations[2] }}"
            },
            {
              "id": "30a63ecd-ab3d-4de5-9a9e-0010f40beb4d",
              "name": "Citation4",
              "type": "string",
              "value": "={{ $json.citations[3] }}"
            },
            {
              "id": "e87fcbbd-a77d-408b-a27d-ecec890d0cc1",
              "name": "Citation5",
              "type": "string",
              "value": "={{ $json.citations[4] }}"
            },
            {
              "id": "0972cb5b-a561-44a3-8872-477a54c4d64e",
              "name": "Message",
              "type": "string",
              "value": "={{ $json.choices[0].message.content }}"
            },
            {
              "id": "d06c8225-5bfe-41a8-8d56-06201c5de6c7",
              "name": "Prompt",
              "type": "string",
              "value": "={{ $('LLM-Prompts').item.json.Prompt }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "b1b67d26-323f-43d6-af99-6a751e7dc75e",
      "name": "便利贴21",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3328,
        -848
      ],
      "parameters": {
        "color": 4,
        "width": 896,
        "height": 384,
        "content": "# Using the simple Perplexity Flow\n\nThe simple flow calls the Perplexity API with the hardcoded Prompt in the first node. \n\nTo use it, just connect your openAI credentials and create a Google Sheet in your Google account with the proper fields to collect the result. \n\nThis simple flow acts as a demo. Use it to extend with your logic.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "a3fac816-4abc-4869-9ab1-19ffa4f5a53a",
      "name": "Sticky Note22",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3360,
        -144
      ],
      "parameters": {
        "color": 4,
        "width": 896,
        "height": 480,
        "content": "# Using the multi model flow\n\nThis flow uses a Google Sheet to get the input prompts and then executes that prompts towards three different AI tools:\n\n1) just the openAI API to check the basic knowledge.\n2) Perplexity \n3) Uses APIfy to call a chatGPT scraping actor (use at own risk)\n\n--\n## To use the flow:\n\n- Connect your google sheet and prepare two sheets: \n    - one with the input prompts (containing just one Column \"Prompt\")\n    - and one for the output w\n\n\n- Create apify credential: \"Generic Credential Type\" > \"Query Auth\". Use Name \"token\" and paste the \nt te Column \"Prompt\tLLM\tResponse\tBrand mentioned\tBrand Hierarchy\tBasic Polarity\tEmotion Category\tSource 1\tSource 2\tSource 3\tSource4\""
      },
      "typeVersion": 1
    },
    {
      "id": "84a55a32-071a-43c6-a8c8-6e50dc31c705",
      "name": "Read Prompts1",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -1936,
        240
      ],
      "parameters": {
        "range": "A1:A100",
        "options": {},
        "sheetId": "1ObN4sF1fBBXsrg6aBayZdPXETRFNlAtp5H92mEiH33o"
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "qdhEdg8zimJRSIxl",
          "name": "Google Sheets account (aoetesting gmail)"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "d22d72c3-9a88-4fa9-8e13-4f6c84100ae6",
      "name": "Loop Over prompts",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -1456,
        240
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "67f32fd1-5f4a-40d9-825c-a90157dae006",
      "name": "before-loop-input",
      "type": "n8n-nodes-base.noOp",
      "position": [
        -1616,
        240
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "f92edafd-a458-42f5-acfc-c2a0e9eae6af",
      "name": "manual input",
      "type": "n8n-nodes-base.set",
      "position": [
        -1904,
        448
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "05e2a95b-2e64-43c1-873d-744a9fd4b656",
              "name": "Prompt",
              "type": "string",
              "value": "Was sind die besten Laufschuhe?"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "53519447-0bb2-4975-8c91-2b3b729f837c",
      "name": "Limit for testing",
      "type": "n8n-nodes-base.limit",
      "position": [
        -1792,
        240
      ],
      "parameters": {
        "maxItems": 2
      },
      "typeVersion": 1
    },
    {
      "id": "438305e4-b1e0-4ce9-b54e-86c93ea850b7",
      "name": "Perplexity Mapper",
      "type": "n8n-nodes-base.set",
      "position": [
        -336,
        480
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "44594b4e-0665-4a34-b7af-9eb8993dca3e",
              "name": "Response",
              "type": "string",
              "value": "={{ $json.choices[0].message.content }}"
            },
            {
              "id": "1add090f-9bc2-44ba-b996-7946ffb0fc17",
              "name": "LLM",
              "type": "string",
              "value": "Perplexity"
            },
            {
              "id": "bb33a029-c428-490d-a51b-0e11556a04bf",
              "name": "Source1",
              "type": "string",
              "value": "={{ $json.citations[0]}}"
            },
            {
              "id": "71b8cc6a-f6a7-484e-ab76-8b20a15217d6",
              "name": "Source2",
              "type": "string",
              "value": "={{ $json.citations[1]}}"
            },
            {
              "id": "512b2a94-91c7-4046-be6f-ffee545a8502",
              "name": "Source3",
              "type": "string",
              "value": "={{ $json.citations[3]}}"
            },
            {
              "id": "13e874d5-bbb1-4624-809b-2631f2e915ad",
              "name": "Source4",
              "type": "string",
              "value": "={{ $json.citations[3]}}"
            },
            {
              "id": "85f0a9a3-22ac-482d-9ba6-31cf18a33af9",
              "name": "Source5",
              "type": "string",
              "value": "={{ $json.citations[4]}}"
            },
            {
              "id": "0d7bfe8c-a9de-442d-a186-1d10bdf31985",
              "name": "Source6",
              "type": "string",
              "value": "={{ $json.citations[5]}}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "4086a4bc-527c-41ad-8f46-7e9ab78f30f5",
      "name": "ChatGPT Mapper",
      "type": "n8n-nodes-base.set",
      "position": [
        -320,
        688
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "44594b4e-0665-4a34-b7af-9eb8993dca3e",
              "name": "Response",
              "type": "string",
              "value": "={{ $json.response }}"
            },
            {
              "id": "1add090f-9bc2-44ba-b996-7946ffb0fc17",
              "name": "LLM",
              "type": "string",
              "value": "ChatGPT"
            },
            {
              "id": "bb33a029-c428-490d-a51b-0e11556a04bf",
              "name": "Source1",
              "type": "string",
              "value": "={{ $json.citations[0].url}}"
            },
            {
              "id": "71b8cc6a-f6a7-484e-ab76-8b20a15217d6",
              "name": "Source2",
              "type": "string",
              "value": "={{ $json.citations[1].url}}"
            },
            {
              "id": "512b2a94-91c7-4046-be6f-ffee545a8502",
              "name": "Source3",
              "type": "string",
              "value": "={{ $json.citations[3].url}}"
            },
            {
              "id": "13e874d5-bbb1-4624-809b-2631f2e915ad",
              "name": "Source4",
              "type": "string",
              "value": "={{ $json.citations[3].url}}"
            },
            {
              "id": "85f0a9a3-22ac-482d-9ba6-31cf18a33af9",
              "name": "Source5",
              "type": "string",
              "value": "={{ $json.citations[4].url}}"
            },
            {
              "id": "0d7bfe8c-a9de-442d-a186-1d10bdf31985",
              "name": "Source6",
              "type": "string",
              "value": "={{ $json.citations[5].url}}"
            },
            {
              "id": "998de421-8d87-4f4b-a605-e7cc54dc7872",
              "name": "NewsListing1",
              "type": "string",
              "value": "={{ $json.newsListing[0].url}}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "cbe3ef1b-49c9-438f-bcdb-96476e293cd9",
      "name": "Prepare Sheet Columns",
      "type": "n8n-nodes-base.set",
      "position": [
        704,
        304
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "08e610b4-563f-4f6d-b79e-cfc40b0d2f81",
              "name": "Prompt",
              "type": "string",
              "value": "={{ $('loop-input').item.json.Prompt }}"
            },
            {
              "id": "d34deaf5-2918-4afa-911c-d0922dcd7925",
              "name": "Response",
              "type": "string",
              "value": "={{ $('normalized-tool-response').item.json.Response }}"
            },
            {
              "id": "9f4ccf36-cfe0-4920-8f72-5c683a345806",
              "name": "Brand mentioned",
              "type": "string",
              "value": "={{ $('normalized-tool-response').item.json.Response.toLowerCase().includes(\"asics\") }}"
            },
            {
              "id": "b8b67f47-747b-41f7-9e8c-e31ac5f8047f",
              "name": "Brand Hierarchy",
              "type": "string",
              "value": "={{ $json.output['Brand Hierachy'] || \"\" }}"
            },
            {
              "id": "f954ed8a-d432-4a30-bbc5-2d864901b356",
              "name": "Basic Polarity",
              "type": "string",
              "value": "={{ $json.output['Basic Polarity'] || \"\" }}"
            },
            {
              "id": "817ce1aa-f913-4933-9646-340ff66c784b",
              "name": "Emotion Category",
              "type": "string",
              "value": "={{ $json.output['Emotion Category'] || \"\"}}"
            },
            {
              "id": "25feac61-7a0d-469b-ba5f-061e75a66c99",
              "name": "Source 1",
              "type": "string",
              "value": "={{ $('normalized-tool-response').item.json.Source1?$('normalized-tool-response').item.json.Source1:\"\" }}"
            },
            {
              "id": "9d7b5abd-64ac-4032-a765-d8d995a898e4",
              "name": "Source 2",
              "type": "string",
              "value": "={{ $('normalized-tool-response').item.json.Source2?$('normalized-tool-response').item.json.Source2:\"\" }}"
            },
            {
              "id": "d1bd2690-777b-419d-9b8c-e3d746525fe0",
              "name": "Source 3",
              "type": "string",
              "value": "={{ $('normalized-tool-response').item.json.Source3?$('normalized-tool-response').item.json.Source3:\"\" }}"
            },
            {
              "id": "7b53cb12-1e02-4ce3-ad0a-6c4f930eeb6c",
              "name": "Source4",
              "type": "string",
              "value": "={{ $('normalized-tool-response').item.json.Source4?$('normalized-tool-response').item.json.Source4:\"\" }}"
            },
            {
              "id": "e3bf318d-5986-451c-9a5c-e4d46055951b",
              "name": "LLM",
              "type": "string",
              "value": "={{ $('normalized-tool-response').item.json.LLM }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "ad845eea-f2ae-48a2-ae5f-ddf050ee648a",
      "name": "normalized-tool-response",
      "type": "n8n-nodes-base.noOp",
      "position": [
        32,
        336
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "24cd700e-5ff1-4a5a-9564-0857046347d5",
      "name": "loop-input",
      "type": "n8n-nodes-base.noOp",
      "position": [
        -1296,
        320
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "67ab9566-baa4-4cc6-ba9f-598919abf806",
      "name": "If sucessfull",
      "type": "n8n-nodes-base.if",
      "position": [
        -656,
        736
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "221e7600-61b9-4f53-a904-a04bacc391f9",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $json.prompt }}",
              "rightValue": 0
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "f5329382-468c-4a50-ba99-c941693fcf54",
      "name": "loop-end",
      "type": "n8n-nodes-base.noOp",
      "position": [
        1136,
        704
      ],
      "parameters": {},
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "f43370b9-890c-4081-8787-39ac1033a57c",
  "connections": {
    "OpenAI": {
      "main": [
        [
          {
            "node": "normalized-tool-response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "loop-end": {
      "main": [
        [
          {
            "node": "Loop Over prompts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Response Sentiment Analyse1",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "loop-input": {
      "main": [
        [
          {
            "node": "OpenAI Anfrage",
            "type": "main",
            "index": 0
          },
          {
            "node": "Perplexity Request",
            "type": "main",
            "index": 0
          },
          {
            "node": "APIfy Call ChatGPT Scraper",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "LLM-Prompts": {
      "main": [
        [
          {
            "node": "Perplexity Request1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "manual input": {
      "main": [
        [
          {
            "node": "before-loop-input",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If sucessfull": {
      "main": [
        [
          {
            "node": "ChatGPT Mapper",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "loop-end",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Response Sentiment Analyse1",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Read Prompts1": {
      "main": [
        [
          {
            "node": "Limit for testing",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "final mapping": {
      "main": [
        [
          {
            "node": "Sheet/Excel updaten",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ChatGPT Mapper": {
      "main": [
        [
          {
            "node": "normalized-tool-response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Manual Trigger": {
      "main": [
        [
          {
            "node": "Read Prompts1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Map LLM Output": {
      "main": [
        [
          {
            "node": "Response Sentiment Analyse1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Anfrage": {
      "main": [
        [
          {
            "node": "OpenAI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Limit for testing": {
      "main": [
        [
          {
            "node": "before-loop-input",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over prompts": {
      "main": [
        [],
        [
          {
            "node": "loop-input",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Perplexity Mapper": {
      "main": [
        [
          {
            "node": "normalized-tool-response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "before-loop-input": {
      "main": [
        [
          {
            "node": "Loop Over prompts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "Response Sentiment Analyse3",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Perplexity Request": {
      "main": [
        [
          {
            "node": "Perplexity Mapper",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Append row in sheet": {
      "main": [
        [
          {
            "node": "loop-end",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Perplexity Request1": {
      "main": [
        [
          {
            "node": "Map LLM Output",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Sheet Columns": {
      "main": [
        [
          {
            "node": "Append row in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "normalized-tool-response": {
      "main": [
        [
          {
            "node": "Response Sentiment Analyse3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model (GPT 5)": {
      "ai_languageModel": [
        [
          {
            "node": "OpenAI Anfrage",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser3": {
      "ai_outputParser": [
        [
          {
            "node": "Response Sentiment Analyse3",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "APIfy Call ChatGPT Scraper": {
      "main": [
        [
          {
            "node": "If sucessfull",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Response Sentiment Analyse1": {
      "main": [
        [
          {
            "node": "final mapping",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Response Sentiment Analyse3": {
      "main": [
        [
          {
            "node": "Prepare Sheet Columns",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

高级 - 市场调研, AI 摘要总结

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量48
分类2
节点类型14
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
AOE Agent Lab

AOE Agent Lab

@aoepeople

We are AOE’s AI & Automation Team – engineers, architects, and AI specialists. We build production-ready, agent-based automation using n8n, LLMs, vector stores, and secure toolchains. Our focus: ideation, evaluation-driven development, and scalable AI architecture. All workflows are modular, reusable, and built for real-world application – by practitioners

外部链接
在 n8n.io 查看

分享此工作流