OpenRouter AIとGoogle Sheetsを使ってブラウジング履歴を分析し、自動化された提案を生成する

中級

これはPersonal Productivity, AI Summarization分野の自動化ワークフローで、12個のノードを含みます。主にCode, Filter, GoogleSheets, ManualTrigger, SplitInBatchesなどのノードを使用。 OpenRouter AIとGoogle Sheetsを使用して閲覧履歴を分析し、自動化された提案を生成

前提条件
  • Google Sheets API認証情報
  • ターゲットAPIの認証情報が必要な場合あり
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "meta": {
    "instanceId": "9e2be6ba5ff8dd7a908d0b8006c046764e7b3f15c79d121bf914d51a0b406e85",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "0b829d80-6090-460d-bc0e-5d0ff925251b",
      "name": "ワークフロー実行時('Execute workflow'クリック時)",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -380,
        -20
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "b2114f33-6fab-4e0b-9c03-63b54faf166f",
      "name": "シート内の行を取得",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -160,
        -20
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1592379591,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1V26KDJLBZno6e_VxaBqhsK_JOOOn_5N6uww2apcAeoc/edit#gid=1592379591",
          "cachedResultName": "history"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1V26KDJLBZno6e_VxaBqhsK_JOOOn_5N6uww2apcAeoc",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1V26KDJLBZno6e_VxaBqhsK_JOOOn_5N6uww2apcAeoc/edit?usp=drivesdk",
          "cachedResultName": "Untitled spreadsheet"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "c7TYv7ZcF6y7LGEQ",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "a81bbc84-5d25-42fa-b8d5-0ef4d97517b2",
      "name": "不要なドメインを除外",
      "type": "n8n-nodes-base.filter",
      "position": [
        280,
        -20
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "5d9d468c-cdc3-40c8-94ac-05260397ff1e",
              "operator": {
                "type": "string",
                "operation": "notRegex"
              },
              "leftValue": "={{ $json.group[0].domain }}",
              "rightValue": "=/(?:youtube\\.com|google\\.(com|[a-z]{2})|chatgpt\\.com|openai\\.com|chromewebstore.google.com)/i"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "323337f3-3aec-4b25-9777-e50ce77d088f",
      "name": "ドメインごとに履歴をグループ化",
      "type": "n8n-nodes-base.code",
      "position": [
        60,
        -20
      ],
      "parameters": {
        "jsCode": "const items = $input.all();\nconst grouped = {};\n\n// Group items by domain\nfor (const item of items) {\n  const url = item.json.url;\n  const domain = url.split(\"/\")[2]; // Extract domain\n  item.json.domain = domain;\n\n  if (!grouped[domain]) {\n    grouped[domain] = [];\n  }\n\n  grouped[domain].push(item.json); // Store just the data part\n}\n\n// Convert grouped object to n8n-friendly format\nconst result = [];\n\nfor (const group of Object.values(grouped)) {\n  result.push({\n   \n      group: group, // Now `group` is the array under an object\n    \n  });\n}\n\nreturn result;\n"
      },
      "typeVersion": 2
    },
    {
      "id": "dfa4698f-ced5-48ff-89db-c8f15705aeda",
      "name": "AIエージェント",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1000,
        0
      ],
      "parameters": {
        "text": "=Here is a grouped browsing history from one domain. Analyze whether it's automatable and why.\n\nHistory:{{ $json.prompt }}\n\n\nPlease analyze and tell me:\n- Is this automatable?\n- What should be automated?\n- What is the automation rating?\n-save result on google sheet",
        "options": {
          "systemMessage": "You are an expert automation analyst AI that uses tools to analyze web browsing history and determine if tasks can be automated.\n\nYou have access to tools such as:\n- Google Sheets (to save recommendations)\n- Web automation platforms (e.g., browser scripts, Apify, Puppeteer, n8n)\n- APIs and schedulers (to trigger tasks periodically)\n-search n8n templates\n\nYour responsibilities:\n1. Analyze the user's browsing history grouped by domain.\n2. Identify repetitive, frequent, or structured browsing behavior.\n3. Determine whether automation is possible.\n4. If yes, describe the specific action(s) to automate using available tools.\n5. Record your output in a structured format for use with Google Sheets.\n\nUse your tools wisely:\n- Save automation suggestions into a structured row (domain, automatable, what to automate, reason, automation rating).\n- Suggest appropriate tools (e.g., \"Use Apify to scrape dashboard\", \"Use n8n to schedule login\").\n\nOutput format:\n```json\n{\n  \"domain\": \"<example.com>\",\n  \"automatable\": true,\n  \"what_to_automate\": \"<Brief, tool-aware suggestion>\",\n  \"reason\": \"<Why it's suitable or not>\",\n  \"tool\": \"<Suggested tool: n8n, Apify, Google Apps Script, etc.>\",\n  \"automation_rating\": \"High\" // Or Medium, Low, Not Automatable,\nn8n_template:templates urls\n}\n"
        },
        "promptType": "define"
      },
      "typeVersion": 2
    },
    {
      "id": "01bc75db-8254-4165-96f5-06a0c4bd682f",
      "name": "アイテムをループ処理",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        500,
        -20
      ],
      "parameters": {
        "options": {},
        "batchSize": "={{ $input.all().length }}"
      },
      "typeVersion": 3
    },
    {
      "id": "b9d674fe-6c2e-4359-a415-98233caaa342",
      "name": "OpenRouterチャットモデル",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        1000,
        340
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openRouterApi": {
          "id": "tC9q2VizRVbSvlww",
          "name": "OpenRouter account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "8833b3b4-36c6-4ab9-a72a-5955b7d4427d",
      "name": "コード",
      "type": "n8n-nodes-base.code",
      "position": [
        760,
        0
      ],
      "parameters": {
        "mode": "runOnceForEachItem",
        "jsCode": "// Loop over input items and add a new field called 'myNewField' to the JSON of each one\nreturn {\n  prompt:JSON.stringify($json)}"
      },
      "typeVersion": 2
    },
    {
      "id": "1ea2312d-5b13-4d7c-971c-81ac6598f1de",
      "name": "シンプルメモリ",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        1280,
        240
      ],
      "parameters": {
        "sessionKey": "={{ $('Loop Over Items').item.json.group[0].domain }}",
        "sessionIdType": "customKey"
      },
      "typeVersion": 1.3
    },
    {
      "id": "ca69ff37-653a-4d40-b030-3439735e9289",
      "name": "Google シートに行を追加",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        1160,
        480
      ],
      "parameters": {
        "columns": {
          "value": {
            "domain": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('domain__using_to_match_', ``, 'string') }}",
            "reason": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('reason', ``, 'string') }}",
            "automatable": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('automatable', ``, 'string') }}",
            "n8n_template": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('n8n_template', ``, 'string') }}",
            "what_to_automate": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('what_to_automate', ``, 'string') }}",
            "automation_rating": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('automation_rating', ``, 'string') }}"
          },
          "schema": [
            {
              "id": "domain",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "domain",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "automatable",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "automatable",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "what_to_automate",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "what_to_automate",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "reason",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "reason",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "automation_rating",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "automation_rating",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "n8n_template",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "n8n_template",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "domain"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1970061780,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1V26KDJLBZno6e_VxaBqhsK_JOOOn_5N6uww2apcAeoc/edit#gid=1970061780",
          "cachedResultName": "automations"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1V26KDJLBZno6e_VxaBqhsK_JOOOn_5N6uww2apcAeoc",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1V26KDJLBZno6e_VxaBqhsK_JOOOn_5N6uww2apcAeoc/edit?usp=drivesdk",
          "cachedResultName": "history"
        },
        "descriptionType": "manual",
        "toolDescription": "use this to save analyse result to google sheet "
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "c7TYv7ZcF6y7LGEQ",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "0e2fceb0-4498-4ee3-8a72-0611d7ba5afd",
      "name": "HTTP リクエスト",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        1300,
        440
      ],
      "parameters": {
        "url": "https://n8n.io/workflows/?sort=views:desc",
        "options": {},
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "q",
              "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('parameters0_Value', ``, 'string') }}"
            }
          ]
        },
        "toolDescription": "get n8n template list from search page"
      },
      "typeVersion": 4.2
    },
    {
      "id": "93f68db2-7ba5-4ade-941d-d5309a70fb78",
      "name": "付箋メモ",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -460,
        180
      ],
      "parameters": {
        "width": 740,
        "height": 2440,
        "content": "# 🧠 Browsing History Automation Analyzer – Automation Toolkit (Google Sheets + AI)\n\nThis **n8n workflow** analyzes your browsing history to identify opportunities for automation. It reads history from a Google Sheet, groups visits by domain, filters out irrelevant entries, and uses AI to recommend what can be automated — including how and why.\n\n---\n\n## 📌 What It Does\n\n- 📄 **Reads** your browsing history from Google Sheets\n- 🌐 **Groups** history by domain\n- 🚫 **Filters out** common non-actionable domains (e.g., YouTube, Google)\n- 🤖 **Uses AI** to analyze whether your activity on each site is automatable\n- 💡 **Provides suggestions** including what to automate, how to do it, and which tools to use\n- 📝 **Saves results** into a new tab in the same Google Sheet\n- 🔍 **Searches for n8n workflow templates** related to the suggested automation\n\n---\n\n## 📊 Demo Sheet\n\nInput + output are handled via the following Google Sheet:\n\n**📎 Spreadsheet**:  \n[View on Google Sheets](https://docs.google.com/spreadsheets/d/1V26KDJLBZno6e_VxaBqhsK_JOOOn_5N6uww2apcAeoc/edit?usp=drivesdk)\n\n- **Sheet: `history`** → Input browsing history\n- **Sheet: `automations`** → Output AI automation suggestions\n\n---\n\n## 🧠 AI Analysis Logic\n\nThe AI agent receives each domain's browsing history and responds with:\n- `domain`: The website domain\n- `automatable`: true/false\n- `what_to_automate`: Specific actions that can be automated\n- `reason`: Why it's suitable (or not) for automation\n- `tool`: Suggested automation tool (e.g., n8n, Apify)\n- `automation_rating`: High, Medium, Low, or Not Automatable\n- `n8n_template`: Relevant automation template (if found)\n\n---\n\n## 🔧 Technologies Used\n\n| Tool                     | Purpose                             |\n|--------------------------|-------------------------------------|\n| **n8n**                  | Workflow automation                 |\n| **LangChain AI Agent**  | AI-based analysis                   |\n| **Google Sheets Node**   | Input/output data handling          |\n| **OpenRouter (LLM)**     | Language model for intelligent reasoning |\n| **JavaScript Code Node** | Grouping and formatting logic       |\n| **Filter Node**          | Remove unwanted domains             |\n| **HTTP Request Node**    | Search n8n.io templates             |\n\n---\n\n## 💻 Chrome History Export\n\nYou can use this Chrome extension to export your browsing history in a format compatible with the workflow:\n\n🔗 [Export Chrome History Extension](https://chromewebstore.google.com/detail/export-chrome-history/dihloblpkeiddiaojbagoecedbfpifdj?pli=1)\n\n---\n\n## 📧 Want Personalized Automation Advice?\n\nIf you'd like **personalized automation recommendations** based on your browsing history—just like what this workflow provides—feel free to contact me directly:\n\n> 📩 **msaidwolfltd@gmail.com**\n\nI'll help you discover what tasks you can automate to save time and boost productivity.\n\n---\n\n## 🚀 Example Use Cases\n\n- Automate daily logins to dashboards\n- Auto-fill forms on repetitive websites\n- Schedule data exports from web portals\n- Trigger reminders based on recurring visits\n- Discover opportunities for scraping and integration\n\n---\n\n## 📜 License\n\nThis workflow is provided as-is for educational and personal use. For commercial or customized use, contact the author.\n\n---\n\n"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "8833b3b4-36c6-4ab9-a72a-5955b7d4427d": {
      "main": [
        [
          {
            "node": "dfa4698f-ced5-48ff-89db-c8f15705aeda",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "dfa4698f-ced5-48ff-89db-c8f15705aeda": {
      "main": [
        [
          {
            "node": "01bc75db-8254-4165-96f5-06a0c4bd682f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0e2fceb0-4498-4ee3-8a72-0611d7ba5afd": {
      "ai_tool": [
        [
          {
            "node": "dfa4698f-ced5-48ff-89db-c8f15705aeda",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "1ea2312d-5b13-4d7c-971c-81ac6598f1de": {
      "ai_memory": [
        [
          {
            "node": "dfa4698f-ced5-48ff-89db-c8f15705aeda",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "01bc75db-8254-4165-96f5-06a0c4bd682f": {
      "main": [
        [],
        [
          {
            "node": "8833b3b4-36c6-4ab9-a72a-5955b7d4427d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b2114f33-6fab-4e0b-9c03-63b54faf166f": {
      "main": [
        [
          {
            "node": "323337f3-3aec-4b25-9777-e50ce77d088f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b9d674fe-6c2e-4359-a415-98233caaa342": {
      "ai_languageModel": [
        [
          {
            "node": "dfa4698f-ced5-48ff-89db-c8f15705aeda",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "a81bbc84-5d25-42fa-b8d5-0ef4d97517b2": {
      "main": [
        [
          {
            "node": "01bc75db-8254-4165-96f5-06a0c4bd682f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "323337f3-3aec-4b25-9777-e50ce77d088f": {
      "main": [
        [
          {
            "node": "a81bbc84-5d25-42fa-b8d5-0ef4d97517b2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ca69ff37-653a-4d40-b030-3439735e9289": {
      "ai_tool": [
        [
          {
            "node": "dfa4698f-ced5-48ff-89db-c8f15705aeda",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "0b829d80-6090-460d-bc0e-5d0ff925251b": {
      "main": [
        [
          {
            "node": "b2114f33-6fab-4e0b-9c03-63b54faf166f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

このワークフローの使い方は?

上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。

このワークフローはどんな場面に適していますか?

中級 - 個人の生産性, AI要約

有料ですか?

このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。

ワークフロー情報
難易度
中級
ノード数12
カテゴリー2
ノードタイプ11
難易度説明

経験者向け、6-15ノードの中程度の複雑さのワークフロー

作成者
Msaid Mohamed el hadi

Msaid Mohamed el hadi

@mohamedgb00714

Hi! I’m Mohamed El Hadi, a passionate developer and automation expert from Algeria. I specialize in building smart, scalable workflows using n8n to streamline business operations, save time, and drive innovation. 🌍 Open to collaborations | 🤖 Automation lover | 💼 Founder of EcoPetDZ & AADL Auto Reload

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34