検索可能なYouTube教育者ディレクトリの構築(スマートキーワードマッチング機能付き)

中級

これはInternal Wiki分野の自動化ワークフローで、13個のノードを含みます。主にSet, Code, Webhook, DataTable, ManualTriggerなどのノードを使用。 YouTube教育者のディレクトリを検索可能にし、スマートなキーワードマッチングを実現

前提条件
  • HTTP Webhookエンドポイント(n8nが自動生成)

カテゴリー

ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "meta": {
    "instanceId": "2000c64071c20843606b95c63795bb0797c41036047055a6586498e855b96efc"
  },
  "nodes": [
    {
      "id": "a547a1f6-8c4d-41dc-8fb0-61f94b882533",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        576,
        416
      ],
      "webhookId": "1799531d-7245-422a-b069-c76ca29bdda2",
      "parameters": {
        "path": "1799531d-7245-422a-b069-c76ca29bdda2",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "lastNode"
      },
      "typeVersion": 2.1
    },
    {
      "id": "562d6892-cdfa-4670-9f61-333f090587ef",
      "name": "行を取得",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        1024,
        416
      ],
      "parameters": {
        "filters": {
          "conditions": [
            {
              "keyName": "Description",
              "keyValue": "={{ $json[\"topic\"] }}",
              "condition": "like"
            }
          ]
        },
        "matchType": "allConditions",
        "operation": "get",
        "dataTableId": {
          "__rl": true,
          "mode": "list",
          "value": "SsbDaSjBiIsUNxQA",
          "cachedResultUrl": "/projects/NkfS7q6flnrTbJ9e/datatables/SsbDaSjBiIsUNxQA",
          "cachedResultName": "n8n_Educator_Videos"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e0078b00-477e-4df5-99f2-b24428903309",
      "name": "Webhookに返信",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        1392,
        416
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.4
    },
    {
      "id": "7ff4e2fc-78ea-414b-a957-910590055016",
      "name": "メッセージ設定",
      "type": "n8n-nodes-base.set",
      "position": [
        1232,
        416
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "f9cd1364-e892-4289-949f-ecb0893eade4",
              "name": "Message",
              "type": "string",
              "value": "={{  $json[\"data\"]   .map(v =>      `🎥 *${v[\"Video Title\"]}*   👤 ${v[\"Educator\"]}   🧩 Difficulty: ${v[\"Difficulty\"]}   🔗 ${v[\"YouTube Link\"]}   📝 ${v[\"Description\"]}`   )   .join(\"\\n\\n\") }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "b5289988-ae88-4875-a8cb-cc6608a969b2",
      "name": "'ワークフロー実行'クリック時",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        576,
        720
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "6b95ed0f-35f7-486a-a6ed-9087b3e5dc50",
      "name": "アイテムをループ処理",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1008,
        720
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "def3f50d-5702-4dbb-89be-1b09f0893748",
      "name": "メイン概要",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        32,
        240
      ],
      "parameters": {
        "color": 4,
        "width": 400,
        "height": 700,
        "content": "## 🎓 n8n Learning Hub - YouTube Educator Search\n\nSearch a curated database of n8n tutorial videos by topic using Data Tables and webhooks.\n\n## How it works\n\n**Search API** (top branch): Webhook receives search queries → normalizes keywords → queries Data Table → formats results → returns matching videos\n\n**Database Setup** (bottom branch): Manual trigger → loads 10 video records → loops through each → inserts into Data Table\n\n## Setup steps\n\n1. Create a Data Table named \"n8n_Educator_Videos\" with columns: Educator, video_title, Difficulty, YouTubeLink, Description\n2. Run the bottom branch first by clicking \"Execute workflow\" on the manual trigger node\n3. Verify 10 videos inserted into your Data Table\n4. Activate the workflow and copy the webhook Production URL\n5. Test with POST request: `{\"topic\": \"voice\"}` or `{\"topic\": \"scraping\"}`\n\nConnect your own frontend or use tools like Postman to query the API."
      },
      "typeVersion": 1
    },
    {
      "id": "214bad22-5d24-41b9-8667-343fa9276289",
      "name": "行を挿入",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        1264,
        736
      ],
      "parameters": {
        "columns": {
          "value": {
            "Educator": "={{ $json.Educator }}",
            "Difficulty": "={{ $json.Difficulty }}",
            "Description": "={{ $json.Description }}",
            "YouTubeLink": "={{ $json['YouTube Link'] }}",
            "video_title": "={{ $json['Video Title'] }}"
          },
          "schema": [
            {
              "id": "Educator",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Educator",
              "defaultMatch": false
            },
            {
              "id": "video_title",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "video_title",
              "defaultMatch": false
            },
            {
              "id": "Difficulty",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Difficulty",
              "defaultMatch": false
            },
            {
              "id": "YouTubeLink",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "YouTubeLink",
              "defaultMatch": false
            },
            {
              "id": "Description",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Description",
              "defaultMatch": false
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "dataTableId": {
          "__rl": true,
          "mode": "list",
          "value": "SsbDaSjBiIsUNxQA",
          "cachedResultUrl": "/projects/NkfS7q6flnrTbJ9e/datatables/SsbDaSjBiIsUNxQA",
          "cachedResultName": "n8n_Educator_Videos"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "a37f689d-27e9-4692-bd9e-7482b5d44704",
      "name": "セクション1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        544,
        256
      ],
      "parameters": {
        "width": 256,
        "height": 144,
        "content": "## Search API\n\nReceives POST requests with search topic, normalizes keywords, queries the Data Table, and returns formatted results."
      },
      "typeVersion": 1
    },
    {
      "id": "c97717c5-fadd-4293-b8dd-d61473f320d7",
      "name": "セクション2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1120,
        272
      ],
      "parameters": {
        "width": 256,
        "height": 128,
        "content": "## Format Response\n\nTransforms query results into user-friendly format with emojis and returns via webhook."
      },
      "typeVersion": 1
    },
    {
      "id": "8275cf1a-fa9d-4f2f-9920-2fdb7df994eb",
      "name": "セクション3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1408,
        736
      ],
      "parameters": {
        "width": 256,
        "height": 176,
        "content": "## Database Initialization\n\nOne-time setup to populate the Data Table with video records. Run this before using the search API."
      },
      "typeVersion": 1
    },
    {
      "id": "236def7b-93a6-41ed-9150-86f516860706",
      "name": "動画データベース読み込み",
      "type": "n8n-nodes-base.code",
      "position": [
        800,
        720
      ],
      "parameters": {
        "jsCode": "// Define your YouTube videos data here\nconst videos = [\n  {\n    Educator: \"Nate Herk\",\n    \"Video Title\": \"Eleven Labs Voice Agent\",\n    Difficulty: \"Intermediate\",\n    \"YouTube Link\": \"https://www.youtube.com/watch?v=Je4EAscnKK0\",\n    Description: \"Build a voice-powered AI agent in n8n using ElevenLabs.\"\n  },\n  {\n    Educator: \"Jack Roberts\",\n    \"Video Title\": \"The Most Profitable AI Skill in 2026 (RAG Masterclass)\",\n    Difficulty: \"Advanced\",\n    \"YouTube Link\": \"https://www.youtube.com/watch?v=dxeCH2duhMo\",\n    Description: \"Learn how to build advanced RAG workflows inside n8n.\"\n  },\n  {\n    Educator: \"Nate Herk\",\n    \"Video Title\": \"Run ALL Your AI Locally in Minutes (LLMs, RAG, and more)\",\n    Difficulty: \"Advanced\",\n    \"YouTube Link\": \"https://www.youtube.com/watch?v=V_0dNE-H2gw\",\n    Description: \"Tutorial on local AI setup with n8n, covering LLMs and RAG.\"\n  },\n  {\n    Educator: \"Cole Medin\",\n    \"Video Title\": \"n8n + Crawl4AI - Scrape ANY Website in Minutes with NO Code\",\n    Difficulty: \"Intermediate\",\n    \"YouTube Link\": \"https://www.youtube.com/watch?v=c5dw_jsGNBk\",\n    Description: \"Use Crawl4AI with n8n to scrape any website easily.\"\n  },\n  {\n    Educator: \"Nick Saraev\",\n    \"Video Title\": \"The 9 Best Ways to Scrape Any Website in N8N\",\n    Difficulty: \"Intermediate\",\n    \"YouTube Link\": \"https://www.youtube.com/watch?v=y-eEbmNeFZo\",\n    Description: \"Discover top scraping strategies for n8n workflows.\"\n  },\n  {\n    Educator: \"Nick Saraev\",\n    \"Video Title\": \"Every N8N JavaScript Function Explained (106 + 7 Extras)\",\n    Difficulty: \"Advanced\",\n    \"YouTube Link\": \"https://www.youtube.com/watch?v=Ksr_H30Oris\",\n    Description: \"Full breakdown of n8n's JavaScript function capabilities.\"\n  },\n  {\n    Educator: \"Sabrina Romanov\",\n    \"Video Title\": \"This n8n AI Agent Avatar will AUTOMATE your Social Media\",\n    Difficulty: \"Beginner\",\n    \"YouTube Link\": \"https://www.youtube.com/watch?v=8sPYxqU1SoQ\",\n    Description: \"Create an AI avatar automation system for social media with n8n.\"\n  },\n  {\n    Educator: \"Sabrina Romanov\",\n    \"Video Title\": \"n8n AI Avatar System for TikTok, Reels, and Shorts\",\n    Difficulty: \"Intermediate\",\n    \"YouTube Link\": \"https://www.youtube.com/watch?v=0T3FjaxDISI\",\n    Description: \"Build a full video automation workflow for TikTok and Reels using n8n.\"\n  },\n  {\n    Educator: \"n8n Team (Max Tkacz)\",\n    \"Video Title\": \"Making n8n AI Agents Reliable (Human-in-the-Loop Demo)\",\n    Difficulty: \"Advanced\",\n    \"YouTube Link\": \"https://www.youtube.com/watch?v=NG9bFFNNmQg\",\n    Description: \"Demonstration of human-in-the-loop reliability features for n8n AI agents.\"\n  },\n  {\n    Educator: \"David Olusola\",\n    \"Video Title\": \"Automate Lead Import from Google Sheets to Instantly Using N8N Data Table\",\n    Difficulty: \"Intermediate\",\n    \"YouTube Link\": \"https://youtu.be/c8iv1u_jxDY\",\n    Description: \"Learn how to automate lead generation workflows using n8n Data Tables, Google Sheets, and Instantly for email outreach.\"\n  }\n];\n\n// Convert each video to an individual item so n8n loops them automatically\nreturn videos.map(v => ({ json: v }));"
      },
      "typeVersion": 2
    },
    {
      "id": "080ca0fd-af0a-4770-b692-6b31bef7fe86",
      "name": "検索語を処理",
      "type": "n8n-nodes-base.code",
      "position": [
        800,
        416
      ],
      "parameters": {
        "jsCode": "let topic = $json.topic || \"\";\ntopic = topic.trim().toLowerCase();\n\n// Optional simple keyword logic\nif (topic.includes(\"talk\") || topic.includes(\"audio\") || topic.includes(\"voice\")) {\n  topic = \"voice\";\n} else if (topic.includes(\"lead\")) {\n  topic = \"lead gen\";\n} else if (topic.includes(\"scrape\") || topic.includes(\"data\")) {\n  topic = \"scraping\";\n}\n\nreturn [{ topic }];\n"
      },
      "typeVersion": 2
    }
  ],
  "pinData": {},
  "connections": {
    "a547a1f6-8c4d-41dc-8fb0-61f94b882533": {
      "main": [
        [
          {
            "node": "080ca0fd-af0a-4770-b692-6b31bef7fe86",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "562d6892-cdfa-4670-9f61-333f090587ef": {
      "main": [
        [
          {
            "node": "7ff4e2fc-78ea-414b-a957-910590055016",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "214bad22-5d24-41b9-8667-343fa9276289": {
      "main": [
        [
          {
            "node": "236def7b-93a6-41ed-9150-86f516860706",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7ff4e2fc-78ea-414b-a957-910590055016": {
      "main": [
        [
          {
            "node": "e0078b00-477e-4df5-99f2-b24428903309",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6b95ed0f-35f7-486a-a6ed-9087b3e5dc50": {
      "main": [
        [],
        [
          {
            "node": "214bad22-5d24-41b9-8667-343fa9276289",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "236def7b-93a6-41ed-9150-86f516860706": {
      "main": [
        [
          {
            "node": "6b95ed0f-35f7-486a-a6ed-9087b3e5dc50",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "080ca0fd-af0a-4770-b692-6b31bef7fe86": {
      "main": [
        [
          {
            "node": "562d6892-cdfa-4670-9f61-333f090587ef",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b5289988-ae88-4875-a8cb-cc6608a969b2": {
      "main": [
        [
          {
            "node": "236def7b-93a6-41ed-9150-86f516860706",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

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

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

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

中級 - 内部Wiki

有料ですか?

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

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

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

作成者
David Olusola

David Olusola

@dae221

I design enterprise-grade automation systems that eliminate bottlenecks, cut manual work by 70%+, and unlock millions in lost revenue opportunities. My clients — typically achieve 5–10x ROI within the first 90 days. Currently partnering with select high-growth companies ready to scale faster with AI automation. david@daexai.com

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34