Créer un annuaire d'éducateurs YouTube consultable avec une correspondance de mots-clés intelligente

Intermédiaire

Ceci est unInternal Wikiworkflow d'automatisation du domainecontenant 13 nœuds.Utilise principalement des nœuds comme Set, Code, Webhook, DataTable, ManualTrigger. Créer un annuaire consultable d'éducateurs YouTube avec correspondance intelligente de mots-clés

Prérequis
  • Point de terminaison HTTP Webhook (généré automatiquement par n8n)

Catégorie

Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "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": "Obtenir la/les ligne(s)",
      "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": "Répondre à Webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        1392,
        416
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.4
    },
    {
      "id": "7ff4e2fc-78ea-414b-a957-910590055016",
      "name": "Définir le message",
      "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": "Au clic sur 'Exécuter le workflow'",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        576,
        720
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "6b95ed0f-35f7-486a-a6ed-9087b3e5dc50",
      "name": "Boucler sur les éléments",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1008,
        720
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "def3f50d-5702-4dbb-89be-1b09f0893748",
      "name": "Vue d'ensemble principale",
      "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": "Insérer une ligne",
      "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": "Section 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": "Section 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": "Section 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": "Charger la base de données vidéo",
      "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": "Traiter le terme de recherche",
      "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
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Intermédiaire - Wiki interne

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Informations sur le workflow
Niveau de difficulté
Intermédiaire
Nombre de nœuds13
Catégorie1
Types de nœuds8
Description de la difficulté

Adapté aux utilisateurs expérimentés, avec des workflows de complexité moyenne contenant 6-15 nœuds

Auteur
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

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34