This workflow follows the Form Trigger → Googlegemini recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"name": "Level 2",
"nodes": [
{
"parameters": {
"formTitle": "youtube",
"formDescription": "videoId",
"formFields": {
"values": [
{
"fieldLabel": "videoId"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.formTrigger",
"typeVersion": 2.3,
"position": [
-480,
32
],
"id": "435285c6-1b0e-4b76-96ab-64f18c857de6",
"name": "On form submission"
},
{
"parameters": {
"url": "https://api.supadata.ai/v1/transcript",
"sendQuery": true,
"specifyQuery": "json",
"jsonQuery": "={\n \"url\": \"https://www.youtube.com/watch?v={{ $json.videoId }}\",\n \"lang\": \"ko\",\n \"text\": true,\n \"mode\": \"auto\",\n \"chunkSize\": 4000\n}\n",
"sendHeaders": true,
"specifyHeaders": "json",
"jsonHeaders": "{\n \"x-api-key\": \"{supadata API\ud0a4}\",\n \"accept\": \"application/json\"\n}",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
-272,
32
],
"id": "90e15b51-2491-428b-810d-4c5e33dc2a67",
"name": "HTTP Request"
},
{
"parameters": {
"modelId": {
"__rl": true,
"value": "models/gemini-2.5-flash",
"mode": "list",
"cachedResultName": "models/gemini-2.5-flash"
},
"messages": {
"values": [
{
"content": "=YouTube \uc601\uc0c1 \uc790\ub9c9\uc744 \ubd84\uc11d\ud558\uc5ec \ud575\uc2ec \uc778\uc0ac\uc774\ud2b8\ub97c \uad6c\uc870\ud654\ub41c JSON \ud615\uc2dd\uc73c\ub85c \ucd94\ucd9c\ud558\uc138\uc694. \uc790\ub9c9\uc5d0 \uba85\uc2dc\ub41c \ub0b4\uc6a9\ub9cc \uc0ac\uc6a9\ud558\uc138\uc694.\n\n\ucd9c\ub825 JSON \ud615\uc2dd:\n{\n \"category\": \"string\",\n \"summary\": [\"string\", \"string\", \"string\"],\n \"insights\": [\"string\", \"string\", \"string\"],\n \"actions\": [\"string\", \"string\", \"string\"],\n \"keywords\": [\"string\", \"string\", \"string\", \"string\", \"string\"]\n}\n\n\uc694\uad6c\uc0ac\ud56d:\n- summary: \uc815\ud655\ud788 3\uac1c \ud56d\ubaa9, \uad6c\uccb4\uc801 \uc218\uce58 \ud3ec\ud568 (\ud37c\uc13c\ud2b8, \ubc30\uc218, \uae08\uc561 \ub4f1)\n- insights: \uc790\ub9c9 \ub370\uc774\ud130 \uae30\ubc18 \uc2e4\ud589 \uac00\ub2a5\ud55c \uc778\uc0ac\uc774\ud2b8 3-5\uac1c\n- actions: \uc989\uc2dc \uc2e4\ud589 \uac00\ub2a5\ud55c \uc561\uc158 \uc544\uc774\ud15c 3\uac1c\n- keywords: \uc815\ud655\ud788 5\uac1c \ud575\uc2ec \ud0a4\uc6cc\ub4dc\n- \uc790\ub9c9 \ub0b4\uc6a9\ub9cc \uc0ac\uc6a9, \ucd94\uce21 \uae08\uc9c0\n\n\uc608\uc2dc:\n\n\uc790\ub9c9: \"\"\"2025\ub144 \ud2f1\ud1a1 \ub9c8\ucf00\ud305 \uc608\uc0b0\uc744 30% \ub298\ub824\uc57c \ud569\ub2c8\ub2e4. 15\ucd08 \uc20f\ud3fc \uc601\uc0c1\uc758 \uc804\ud658\uc728\uc774 \uc77c\ubc18 \uc601\uc0c1 \ub300\ube44 3\ubc30 \ub192\uc2b5\ub2c8\ub2e4. AI \uc601\uc0c1 \ud3b8\uc9d1 \ud234\ub85c \uc81c\uc791\ube44 50% \uc808\uac10 \uac00\ub2a5\ud569\ub2c8\ub2e4.\"\"\"\n\ucd9c\ub825:\n{\n \"category\": \"\ub9c8\ucf00\ud305\",\n \"summary\": [\n \"2025\ub144 \ud2f1\ud1a1 \ub9c8\ucf00\ud305 \uc608\uc0b0 30% \uc99d\uc561 \uad8c\uc7a5\",\n \"15\ucd08 \uc20f\ud3fc \uc601\uc0c1 \uc804\ud658\uc728\uc774 \uc77c\ubc18 \ub300\ube44 3\ubc30\",\n \"AI \ud234\ub85c \uc81c\uc791\ube44 50% \uc808\uac10\"\n ],\n \"insights\": [\n \"\ud2f1\ud1a1 \ud22c\uc790 \ud6a8\uc728\uc774 \ud0c0 \ucc44\ub110 \ub300\ube44 \ucd5c\uace0\",\n \"\uc9e7\uc740 \uc601\uc0c1\uc77c\uc218\ub85d \uc804\ud658\uc728 \ub192\uc74c\",\n \"AI \ud234 \ud65c\uc6a9\uc73c\ub85c \ube44\uc6a9 \uc808\uac10 \uac00\ub2a5\"\n ],\n \"actions\": [\n \"\ud2f1\ud1a1 \ube44\uc988\ub2c8\uc2a4 \uacc4\uc815 \uac1c\uc124\",\n \"15\ucd08 \uc601\uc0c1 \ud15c\ud50c\ub9bf 5\uac1c \uc81c\uc791\",\n \"\ub9c8\ucf00\ud305 \uc608\uc0b0 \uc7ac\ubc30\ubd84 \uac80\ud1a0\"\n ],\n \"keywords\": [\"\ud2f1\ud1a1\ub9c8\ucf00\ud305\", \"\uc20f\ud3fc\", \"\uc804\ud658\uc728\", \"AI\ud3b8\uc9d1\", \"2025\uc804\ub7b5\"]\n}\n\n\uc790\ub9c9: \"\"\"React 19\uc758 use() \ud6c5\uc73c\ub85c \ube44\ub3d9\uae30 \ud398\uce6d\uc774 \uac04\ub2e8\ud574\uc9d1\ub2c8\ub2e4. \ucf54\ub4dc\ub7c9 40% \uac10\uc18c, \uac1c\ubc1c \uc2dc\uac04 30% \ub2e8\ucd95.\"\"\"\n\ucd9c\ub825:\n{\n \"category\": \"\uae30\uc220\",\n \"summary\": [\n \"React 19 use() \ud6c5\uc73c\ub85c \ube44\ub3d9\uae30 \ucc98\ub9ac \uac04\uc18c\ud654\",\n \"\uae30\uc874 \ub300\ube44 \ucf54\ub4dc\ub7c9 40% \uac10\uc18c\",\n \"\uac1c\ubc1c \uc2dc\uac04 30% \ub2e8\ucd95\"\n ],\n \"insights\": [\n \"use() \ud6c5\uc774 \ube44\ub3d9\uae30 \ub85c\uc9c1\uc758 \uc0c8 \ud45c\uc900\",\n \"\ucf54\ub4dc \ubcf5\uc7a1\ub3c4 \uac10\uc18c\ub85c \uc720\uc9c0\ubcf4\uc218\uc131 \ud5a5\uc0c1\",\n \"\uc0dd\uc0b0\uc131 30% \uc99d\uac00\"\n ],\n \"actions\": [\n \"React 19 \ubca0\ud0c0 \ubb38\uc11c \uc77d\uae30\",\n \"\ud1a0\uc774 \ud504\ub85c\uc81d\ud2b8\ub85c use() \ud6c5 \uc2e4\uc2b5\",\n \"\uae30\uc874 \ucf54\ub4dc \ub9ac\ud329\ud1a0\ub9c1 \uacc4\ud68d\"\n ],\n \"keywords\": [\"React19\", \"use\ud6c5\", \"\ube44\ub3d9\uae30\", \"\ucd5c\uc801\ud654\", \"\uc0dd\uc0b0\uc131\"]\n}\n\n\uc774\uc81c \ub2e4\uc74c \uc790\ub9c9\uc744 \ub3d9\uc77c\ud55c \ud615\uc2dd\uc73c\ub85c \ubd84\uc11d\ud558\uc138\uc694:\n\n\uc790\ub9c9: \"\"\"\n{{ $json.content }}\n\"\"\""
}
]
},
"jsonOutput": true,
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.googleGemini",
"typeVersion": 1,
"position": [
-64,
32
],
"id": "a7a889e7-870a-4738-bd90-a4e042cd6725",
"name": "Message a model",
"credentials": {
"googlePalmApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"jsCode": "const raw = $json?.content?.parts?.[0]?.text ?? \"\";\nconst block = raw.match(/```(?:json)?\\s*([\\s\\S]*?)```/i);\nconst candidate = block ? block[1] : raw;\nconst brace = candidate.match(/{[\\s\\S]*}/);\nconst jsonStr = brace ? brace[0] : candidate;\n\nlet obj;\ntry { obj = JSON.parse(jsonStr); } catch { obj = null; }\n\nreturn { json: obj };\n"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
256,
32
],
"id": "2c63556f-6eae-47f1-b49a-6e06ca245543",
"name": "Code in JavaScript"
}
],
"connections": {
"On form submission": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "Message a model",
"type": "main",
"index": 0
}
]
]
},
"Message a model": {
"main": [
[
{
"node": "Code in JavaScript",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "66bc8379-f210-42a7-b8f7-36e68587b6df",
"meta": {
"templateCredsSetupCompleted": true
},
"id": "FypfsOJ8rSFWGWiX",
"tags": []
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
googlePalmApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Level 2. Uses formTrigger, httpRequest, googleGemini. Event-driven trigger; 4 nodes.
Source: https://github.com/Nhahan/n8n-lecture/blob/874c13c8b46b9b8f136fd807f72b398e5a4bf0f4/level2.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow empowers marketing teams, agencies and solopreneurs to instantly generate on-brand, platform-optimized social media ads — without designers or complex setup. Running performance marketin
[](https://drive.google.com/file/d/1Cl0KwgRgcuBPVdGgL-nqAcheyvfVXttD/view) Click on the image to see the Example output in google drive
Understand your customers before you build for them. This workflow, Market Segmentation: Buyer Persona Pain Point Report, automates the grueling process of primary market research. By scraping real-wo
Stop spending hours manually repurposing long-form content. The Content Atomizer.json workflow takes a single article URL and automatically "atomizes" it into high-authority LinkedIn posts, Twitter (X
This n8n template automatically generates high-quality sales battle cards for any prospect company using real-time research and AI. It analyzes company news, website content, and your product’s value