Skip to content

Instantly share code, notes, and snippets.

@jordanwwoods
Created February 7, 2026 23:21
Show Gist options
  • Select an option

  • Save jordanwwoods/a7641821ed1cdbd916fa7e785d32362c to your computer and use it in GitHub Desktop.

Select an option

Save jordanwwoods/a7641821ed1cdbd916fa7e785d32362c to your computer and use it in GitHub Desktop.
{
"name": "N8N whitepaper",
"nodes": [
{
"parameters": {
"operation": "uploadUrl",
"indexId": "<YOUR_TWELVELABS_INDEX_ID>",
"videoUrl": "={{ $json.presignedUrl }}"
},
"type": "n8n-nodes-twelve-labs.twelveLabs",
"typeVersion": 1,
"position": [-672, 208],
"id": "b2d8feb7-6ab0-4959-98c3-95a1e3493803",
"name": "Index to TwelveLabs",
"credentials": {
"twelveLabsApi": {
"id": "<CREDENTIAL_ID>",
"name": "TwelveLabs API for N8N"
}
}
},
{
"parameters": {
"content": "# 📹 Index to TwelveLabs\n\n**Upload videos to TwelveLabs for multimodal AI analysis**\n\n**[📖 Documentation](https://docs.twelvelabs.io/v1.3/sdk-reference/node-js/upload-content/video-indexing-tasks)**",
"height": 400,
"width": 864,
"color": 6
},
"type": "n8n-nodes-base.stickyNote",
"position": [-1376, 16],
"typeVersion": 1,
"id": "c4e6a94d-8041-458e-8e5b-88aecf741e30",
"name": "Sticky Note"
},
{
"parameters": {
"jsCode": "// Parse the Lambda response and extract unique files\nconst seenKeys = new Set();\nconst results = [];\n\nfor (const item of $input.all()) {\n const response = JSON.parse(item.json.result.body);\n for (const file of response.files) {\n if (!seenKeys.has(file.Key)) {\n seenKeys.add(file.Key);\n results.push({\n json: {\n Key: file.Key,\n presignedUrl: file.presignedUrl,\n Size: file.Size,\n LastModified: file.LastModified,\n expiresIn: file.expiresIn\n }\n });\n }\n }\n}\n\nreturn results;"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [-896, 208],
"id": "f07674c1-6363-4b6f-87ff-91a8dd33ec03",
"name": "Get pre-signed URLs"
},
{
"parameters": {
"content": "# 🎯 Analyze Video with TwelveLabs\n\n**Generate insights from indexed videos using Pegasus**\n\n**[📖 Documentation](https://docs.twelvelabs.io/v1.3/sdk-reference/node-js/generate/video-analysis)**",
"height": 784,
"width": 864,
"color": 4
},
"type": "n8n-nodes-base.stickyNote",
"position": [-496, 16],
"typeVersion": 1,
"id": "65d32fd6-17fe-4619-9cc9-c656c6dfd2dd",
"name": "Sticky Note1"
},
{
"parameters": {
"resource": "analysis",
"indexId": "={{ $json.indexId }}",
"videoId": "={{ $json.videoId }}",
"prompt": "Analyze this video for content compliance using YouTube's ABCD framework:\n\n**A - Adult Content:**\n- Nudity or sexual content\n- Sexually suggestive content\n- Adult themes\n\n**B - Brand Safety:**\n- Inflammatory or demeaning content\n- Hateful content targeting protected groups\n- Harmful or dangerous acts\n- Shocking or graphic content\n- Profanity and crude language\n\n**C - Copyright:**\n- Copyrighted music, video, or images\n- Unlicensed third-party content\n\n**D - Dangerous/Harmful:**\n- Violence or graphic content\n- Drugs, dangerous products, or substances\n- Firearms and weapons\n- Misinformation (health, elections, etc.)\n\nFor each flagged issue, provide:\n1. **Timestamp**: When it appears\n2. **Category**: A, B, C, or D\n3. **Issue**: Brief description\n4. **Action**: Allow, Restrict (age-gate), Monetization off, or Remove\n\n**Output:**\n- Overall Status: Suitable / Needs Review / Not Suitable\n- Flagged Issues (if any)\n- Recommended Actions",
"additionalOptions": {
"temperature": 0.2
}
},
"type": "n8n-nodes-twelve-labs.twelveLabs",
"typeVersion": 1,
"position": [-224, 176],
"id": "77440a41-d7fe-4837-aa7e-e6996c07b7c3",
"name": "Analyze for compliance",
"credentials": {
"twelveLabsApi": {
"id": "<CREDENTIAL_ID>",
"name": "TwelveLabs API for N8N"
}
}
},
{
"parameters": {
"resource": "analysis",
"indexId": "={{ $json.indexId }}",
"videoId": "={{ $json.videoId }}",
"prompt": "Summarize this video in 3-4 paragraphs covering:\n- What happens in the video\n- Main topics or themes\n- Key moments or important details",
"additionalOptions": {
"temperature": 0.2
}
},
"type": "n8n-nodes-twelve-labs.twelveLabs",
"typeVersion": 1,
"position": [-224, 336],
"id": "4ea3a8e0-1a51-4910-9dac-bf0d6a6fa9ad",
"name": "Generate summary",
"credentials": {
"twelveLabsApi": {
"id": "<CREDENTIAL_ID>",
"name": "TwelveLabs API for N8N"
}
}
},
{
"parameters": {
"resource": "analysis",
"indexId": "={{ $json.indexId }}",
"videoId": "={{ $json.videoId }}",
"prompt": "Break this video into chapters with timestamps. For each chapter provide:\n- Timestamp (start time)\n- Chapter title\n- Brief description of what happens",
"additionalOptions": {
"temperature": 0.2
}
},
"type": "n8n-nodes-twelve-labs.twelveLabs",
"typeVersion": 1,
"position": [-224, 480],
"id": "e32b1209-1e01-4ba3-ae9f-edc6c9275d73",
"name": "Generate chapters",
"credentials": {
"twelveLabsApi": {
"id": "<CREDENTIAL_ID>",
"name": "TwelveLabs API for N8N"
}
}
},
{
"parameters": {
"resource": "analysis",
"indexId": "={{ $json.indexId }}",
"videoId": "={{ $json.videoId }}",
"prompt": "Identify the most important or interesting moments in this video. For each highlight provide:\n- Timestamp\n- Title of the moment\n- Why it's noteworthy",
"additionalOptions": {
"temperature": 0.2
}
},
"type": "n8n-nodes-twelve-labs.twelveLabs",
"typeVersion": 1,
"position": [-224, 640],
"id": "dace148a-0491-4133-9321-49b43dac7184",
"name": "Generate highlights",
"credentials": {
"twelveLabsApi": {
"id": "<CREDENTIAL_ID>",
"name": "TwelveLabs API for N8N"
}
}
},
{
"parameters": {
"numberInputs": 4
},
"type": "n8n-nodes-base.merge",
"typeVersion": 3.2,
"position": [-16, 368],
"id": "1a69f2ec-a620-4c90-9abb-cf860bda417d",
"name": "Merge TwelveLabs analysis"
},
{
"parameters": {},
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [-1552, 208],
"id": "cdeef633-90f9-4699-8584-7aee06216ae0",
"name": "When clicking 'Execute workflow'"
},
{
"parameters": {
"operation": "upsert",
"base": {
"__rl": true,
"value": "<YOUR_AIRTABLE_BASE_ID>",
"mode": "list",
"cachedResultName": "N8N",
"cachedResultUrl": "https://airtable.com/<YOUR_AIRTABLE_BASE_ID>"
},
"table": {
"__rl": true,
"value": "<YOUR_AIRTABLE_TABLE_ID>",
"mode": "list",
"cachedResultName": "Table 1",
"cachedResultUrl": "https://airtable.com/<YOUR_AIRTABLE_BASE_ID>/<YOUR_AIRTABLE_TABLE_ID>"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"id": "<YOUR_AIRTABLE_TABLE_ID>",
"Compliance report": "={{ $json[\"Compliance report\"] }}",
"Summary": "={{ $json.Summary }}",
"Chapters": "={{ $json.Chapters }}",
"Highlights": "={{ $json.Highlights }}",
"videoID": "={{ $json.videoID }}",
"Compliance": "={{ $json[\"Compliance Status\"] }}"
},
"matchingColumns": ["id"],
"schema": [
{
"id": "id",
"displayName": "id",
"required": false,
"defaultMatch": true,
"display": true,
"type": "string",
"readOnly": true,
"removed": false
},
{
"id": "videoID",
"displayName": "videoID",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "Compliance",
"displayName": "Compliance",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "options",
"options": [
{ "name": "PASS", "value": "PASS" },
{ "name": "FAILED", "value": "FAILED" },
{ "name": "NEEDS REVIEW", "value": "NEEDS REVIEW" }
],
"readOnly": false,
"removed": false
},
{
"id": "Compliance report",
"displayName": "Compliance report",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "Summary",
"displayName": "Summary",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "Chapters",
"displayName": "Chapters",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "Highlights",
"displayName": "Highlights",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.airtable",
"typeVersion": 2.1,
"position": [176, 544],
"id": "fa517b24-b77e-4203-9f9c-038e86dc4d4e",
"name": "Create or update a record",
"credentials": {
"airtableTokenApi": {
"id": "<CREDENTIAL_ID>",
"name": "Airtable Personal Access Token account"
}
}
},
{
"parameters": {
"jsCode": "// Organize TwelveLabs analysis results based on input order\nconst allItems = $input.all();\n\nconst videoId = allItems[0]?.json?.videoId || '';\n\n// Input 0 = Compliance, 1 = Summary, 2 = Chapters, 3 = Highlights\nconst complianceResponse = allItems[0]?.json?.response || '';\n\nlet complianceStatus = 'NEEDS REVIEW';\n\nif (complianceResponse.includes('Overall Status: Suitable')) {\n complianceStatus = 'PASS';\n} else if (complianceResponse.includes('Overall Status: Not Suitable')) {\n complianceStatus = 'FAILED';\n} else if (complianceResponse.includes('Overall Status: Needs Review')) {\n complianceStatus = 'NEEDS REVIEW';\n}\n\nconst result = {\n videoID: videoId,\n 'Compliance Status': complianceStatus,\n 'Compliance report': complianceResponse,\n 'Summary': allItems[1]?.json?.response || '',\n 'Chapters': allItems[2]?.json?.response || '',\n 'Highlights': allItems[3]?.json?.response || ''\n};\n\nreturn [{ json: result }];"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [192, 288],
"id": "e0c2f845-57d2-4b2c-a8fa-1f98d61932d3",
"name": "Clean TwelveLabs outputs"
},
{
"parameters": {
"content": "# 🔍 Semantic Search with TwelveLabs\n\n**Search videos using natural language queries**\n\n**[📖 Documentation](https://docs.twelvelabs.io/v1.3/sdk-reference/node-js/search/semantic-search)**",
"height": 368,
"width": 864
},
"type": "n8n-nodes-base.stickyNote",
"position": [-1376, 432],
"typeVersion": 1,
"id": "6cfa36e0-b64f-4a9d-bce3-85b4f52e0956",
"name": "Sticky Note2"
},
{
"parameters": {
"formTitle": "Semantic Search with TwelveLabs",
"formFields": {
"values": [
{
"fieldLabel": "Search Query",
"requiredField": true
}
]
},
"options": {
"customCss": ":root {\n\t--font-family: 'Inter', 'Open Sans', sans-serif;\n\t--color-background: #0A0B0D;\n\t--color-card-bg: #141518;\n\t--color-card-border: #2A2B30;\n\t--color-card-shadow: rgba(139, 92, 246, 0.15);\n\t--color-link: #8B5CF6;\n\t--color-header: #FFFFFF;\n\t--color-label: #E5E7EB;\n\t--color-submit-btn-bg: #8B5CF6;\n\t--color-submit-btn-text: #FFFFFF;\n\t--border-radius-card: 12px;\n\t--border-radius-input: 8px;\n\t--container-width: 520px;\n}\nbody {\n\tbackground: linear-gradient(135deg, #0A0B0D 0%, #1A1B1F 100%);\n\tmin-height: 100vh;\n}\nbutton[type=\"submit\"]:hover {\n\tbackground: #7C3AED;\n\ttransform: translateY(-1px);\n\tbox-shadow: 0 4px 12px rgba(139, 92, 246, 0.4);\n\ttransition: all 0.2s ease;\n}\ninput:focus, textarea:focus, select:focus {\n\tbox-shadow: 0 0 0 3px rgba(139, 92, 246, 0.2);\n\ttransition: box-shadow 0.2s ease;\n}"
}
},
"type": "n8n-nodes-base.formTrigger",
"typeVersion": 2.3,
"position": [-1312, 608],
"id": "b415acb0-a3da-4a36-8635-af6ab81d21a1",
"name": "On form submission",
"webhookId": "<WEBHOOK_ID>"
},
{
"parameters": {
"jsCode": "const searchData = $input.first().json.data;\nconst top10 = searchData.filter(result => result.rank <= 10);\n\nlet resultsHTML = `\n<table style=\"width: 100%; border-collapse: separate; border-spacing: 20px; margin: 20px 0;\">\n <tr>\n <td colspan=\"4\" style=\"text-align: center; padding-bottom: 20px;\">\n <h2 style=\"color: #8B5CF6; font-size: 28px; margin: 0;\">Search Results (Top ${top10.length})</h2>\n </td>\n </tr>\n`;\n\nfor (let i = 0; i < top10.length; i += 4) {\n resultsHTML += '<tr>';\n for (let j = 0; j < 4; j++) {\n if (i + j < top10.length) {\n const result = top10[i + j];\n resultsHTML += `\n <td style=\"width: 25%; vertical-align: top;\">\n <div style=\"background: #141518; border: 1px solid #2A2B30; border-radius: 12px; padding: 16px; box-shadow: 0px 4px 12px rgba(139, 92, 246, 0.1);\">\n <div style=\"position: relative; margin-bottom: 12px;\">\n <span style=\"position: absolute; top: 8px; left: 8px; background: #8B5CF6; color: #FFFFFF; padding: 6px 10px; border-radius: 6px; font-size: 14px; font-weight: 600; z-index: 10;\">#${result.rank}</span>\n <img src=\"${result.thumbnail_url}\" alt=\"Result ${result.rank}\" style=\"width: 100%; height: 140px; object-fit: cover; border-radius: 8px; display: block;\"/>\n </div>\n <div style=\"color: #FFFFFF; font-size: 13px; margin-bottom: 6px;\">\n <strong style=\"color: #FFFFFF;\">Video ID:</strong><br/>${result.video_id.substring(0, 12)}...\n </div>\n <div style=\"color: #E5E7EB; font-size: 12px; margin-bottom: 6px;\">\n <strong style=\"color: #FFFFFF;\">Time:</strong> ${result.start}s - ${result.end}s\n </div>\n ${result.transcription ? `\n <div style=\"color: #D1D5DB; font-size: 11px; font-style: italic; padding: 8px; background: #1A1B1F; border-radius: 6px; margin-top: 8px;\">\n \"${result.transcription}\"\n </div>\n ` : ''}\n </div>\n </td>\n `;\n } else {\n resultsHTML += '<td style=\"width: 25%;\"></td>';\n }\n }\n resultsHTML += '</tr>';\n}\n\nresultsHTML += '</table>';\nreturn [{ json: { html: resultsHTML } }];"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [-896, 608],
"id": "960a71bf-e6cf-45c1-955c-89354f9ee1e6",
"name": "Parse search results"
},
{
"parameters": {
"operation": "completion",
"completionTitle": "Search results",
"completionMessage": "={{ $json.html }}",
"options": {
"customCss": ":root {\n\t--font-family: 'Inter', 'Open Sans', sans-serif;\n\t--color-background: #0A0B0D;\n\t--color-card-bg: #141518;\n\t--color-header: #FFFFFF;\n\t--color-html-text: #FFFFFF;\n\t--container-width: 100% !important;\n}\nbody {\n\tbackground: linear-gradient(135deg, #0A0B0D 0%, #1A1B1F 100%);\n\tmin-height: 100vh;\n\tcolor: #FFFFFF;\n}\n.container, .form-container, .completion-container {\n\tmax-width: 100% !important;\n\twidth: 100% !important;\n}\ndiv, p, span, strong, h1, h2, h3 {\n\tcolor: inherit !important;\n}"
}
},
"type": "n8n-nodes-base.form",
"typeVersion": 2.3,
"position": [-688, 608],
"id": "3cc3a564-741f-4d58-96b1-37bd123a70a4",
"name": "Show results",
"webhookId": "<WEBHOOK_ID>"
},
{
"parameters": {
"function": "arn:aws:lambda:<YOUR_REGION>:<YOUR_AWS_ACCOUNT_ID>:function:tl-generate-pre-signed-urls",
"payload": "={{ JSON.stringify({ bucketName: \"<YOUR_S3_BUCKET>\", files: $input.all().map(item => item.json), expiresIn: 3600 }) }}"
},
"type": "n8n-nodes-base.awsLambda",
"typeVersion": 1,
"position": [-1120, 208],
"id": "4ec00502-b621-4d73-a3ef-b81d4aa41fad",
"name": "Generate pre-signed URLs",
"credentials": {
"aws": {
"id": "<CREDENTIAL_ID>",
"name": "AWS account"
}
}
},
{
"parameters": {
"operation": "search",
"indexId": "<YOUR_TWELVELABS_INDEX_ID>",
"queryText": "={{ $json[\"Search Query\"] }}",
"additionalOptions": {}
},
"type": "n8n-nodes-twelve-labs.twelveLabs",
"typeVersion": 1,
"position": [-1104, 608],
"id": "c70f784e-1525-4f66-add9-865610e619a7",
"name": "Search videos",
"credentials": {
"twelveLabsApi": {
"id": "<CREDENTIAL_ID>",
"name": "TwelveLabs API for N8N"
}
}
},
{
"parameters": {
"content": "# 🚀 TwelveLabs Workflows on SaaS\n\n**Multimodal Video AI Pipeline: End-to-end video indexing, search & analysis**\n\n**[📖 TwelveLabs Documentation](https://docs.twelvelabs.io)**",
"height": 976,
"width": 1792,
"color": 3
},
"type": "n8n-nodes-base.stickyNote",
"position": [-1392, -144],
"typeVersion": 1,
"id": "b4237691-6e29-4f85-a0ba-ea62f05131e8",
"name": "Sticky Note3"
},
{
"parameters": {
"operation": "getAll",
"bucketName": "<YOUR_S3_BUCKET>",
"returnAll": true,
"options": {}
},
"type": "n8n-nodes-base.awsS3",
"typeVersion": 2,
"position": [-1328, 208],
"id": "16dbfb0d-49be-4af0-9018-64dbbafeb684",
"name": "Get asset(s) from S3",
"credentials": {
"aws": {
"id": "<CREDENTIAL_ID>",
"name": "AWS account"
}
}
},
{
"parameters": {
"operation": "getAll",
"bucketName": "<YOUR_S3_BUCKET>",
"returnAll": true,
"options": {
"folderKey": "bedrock/"
}
},
"type": "n8n-nodes-base.awsS3",
"typeVersion": 2,
"position": [-1248, 1024],
"id": "ec6018bf-efac-4896-b354-88754d018455",
"name": "Get asset(s) from AWS S3",
"credentials": {
"aws": {
"id": "<CREDENTIAL_ID>",
"name": "AWS account"
}
}
},
{
"parameters": {
"function": "arn:aws:lambda:<YOUR_REGION>:<YOUR_AWS_ACCOUNT_ID>:function:bedrock-pegasus-video-analysis-n8n",
"payload": "={{ JSON.stringify({ s3Uri: $json.s3Uri, textPrompt: \"Summarize this video in detail\" }) }}"
},
"type": "n8n-nodes-base.awsLambda",
"typeVersion": 1,
"position": [-800, 1024],
"id": "e66afc69-1eba-4875-8ecb-9a189aa8b083",
"name": "Analyze with Bedrock Pegasus",
"credentials": {
"aws": {
"id": "<CREDENTIAL_ID>",
"name": "AWS account"
}
}
},
{
"parameters": {
"jsCode": "const bucketName = '<YOUR_S3_BUCKET>';\nconst results = [];\n\nfor (const item of $input.all()) {\n results.push({\n json: {\n Key: item.json.Key,\n s3Uri: `s3://${bucketName}/${item.json.Key}`\n }\n });\n}\n\nreturn results;"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [-1024, 1024],
"id": "91e16872-8137-4920-9bc0-ed370395dc52",
"name": "Build S3 URI for Bedrock"
},
{
"parameters": {
"content": "# 🎬 Analyze with AWS Bedrock Pegasus\n\n**Generate insights from videos using TwelveLabs Pegasus via AWS Bedrock**\n\n[📖 Documentation](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-pegasus.html)",
"height": 384,
"width": 896,
"color": 4
},
"type": "n8n-nodes-base.stickyNote",
"position": [-1392, 848],
"typeVersion": 1,
"id": "fc6d67c1-1b54-4786-a253-54b20bf0789d",
"name": "Sticky Note4"
},
{
"parameters": {
"operation": "getAll",
"bucketName": "<YOUR_S3_BUCKET>",
"returnAll": true,
"options": {
"folderKey": "bedrock/"
}
},
"type": "n8n-nodes-base.awsS3",
"typeVersion": 2,
"position": [-336, 1008],
"id": "046590c5-57b1-4d4c-8bf7-17fee19dd26f",
"name": "Get asset(s) from AWS S3 storage",
"credentials": {
"aws": {
"id": "<CREDENTIAL_ID>",
"name": "AWS account"
}
}
},
{
"parameters": {
"jsCode": "const bucketName = '<YOUR_S3_BUCKET>';\nconst results = [];\n\nfor (const item of $input.all()) {\n results.push({\n json: {\n Key: item.json.Key,\n s3Uri: `s3://${bucketName}/${item.json.Key}`\n }\n });\n}\n\nreturn results;"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [-112, 1008],
"id": "f4183446-ea78-4578-a22a-f7f612e90792",
"name": "Build AWS S3 URI for Bedrock"
},
{
"parameters": {
"function": "arn:aws:lambda:<YOUR_REGION>:<YOUR_AWS_ACCOUNT_ID>:function:bedrock-marengo-embeddings-n8n",
"payload": "={{ JSON.stringify({ s3Uri: $json.s3Uri }) }}"
},
"type": "n8n-nodes-base.awsLambda",
"typeVersion": 1,
"position": [96, 1008],
"id": "f0ee8b91-137f-4856-8b8c-a71d18727646",
"name": "Create embeddings with Bedrock Marengo",
"credentials": {
"aws": {
"id": "<CREDENTIAL_ID>",
"name": "AWS account"
}
}
},
{
"parameters": {
"content": "# 🧬 AWS Bedrock Marengo Embeddings\n\n**Generate video embeddings using TwelveLabs Marengo via AWS Bedrock**\n\n[📖 Marengo Documentation](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-marengo-3.html)",
"height": 384,
"width": 880,
"color": 5
},
"type": "n8n-nodes-base.stickyNote",
"position": [-480, 848],
"typeVersion": 1,
"id": "beac45d3-daf9-40fc-9a20-95d268d3b162",
"name": "Sticky Note5"
}
],
"pinData": {},
"connections": {
"Get pre-signed URLs": {
"main": [
[{ "node": "Index to TwelveLabs", "type": "main", "index": 0 }]
]
},
"Index to TwelveLabs": {
"main": [
[
{ "node": "Analyze for compliance", "type": "main", "index": 0 },
{ "node": "Generate summary", "type": "main", "index": 0 },
{ "node": "Generate chapters", "type": "main", "index": 0 },
{ "node": "Generate highlights", "type": "main", "index": 0 }
]
]
},
"Generate summary": {
"main": [
[{ "node": "Merge TwelveLabs analysis", "type": "main", "index": 1 }]
]
},
"Generate chapters": {
"main": [
[{ "node": "Merge TwelveLabs analysis", "type": "main", "index": 2 }]
]
},
"Analyze for compliance": {
"main": [
[{ "node": "Merge TwelveLabs analysis", "type": "main", "index": 0 }]
]
},
"Generate highlights": {
"main": [
[{ "node": "Merge TwelveLabs analysis", "type": "main", "index": 3 }]
]
},
"Merge TwelveLabs analysis": {
"main": [
[{ "node": "Clean TwelveLabs outputs", "type": "main", "index": 0 }]
]
},
"When clicking 'Execute workflow'": {
"main": [
[{ "node": "Get asset(s) from S3", "type": "main", "index": 0 }]
]
},
"Clean TwelveLabs outputs": {
"main": [
[{ "node": "Create or update a record", "type": "main", "index": 0 }]
]
},
"On form submission": {
"main": [
[{ "node": "Search videos", "type": "main", "index": 0 }]
]
},
"Parse search results": {
"main": [
[{ "node": "Show results", "type": "main", "index": 0 }]
]
},
"Generate pre-signed URLs": {
"main": [
[{ "node": "Get pre-signed URLs", "type": "main", "index": 0 }]
]
},
"Search videos": {
"main": [
[{ "node": "Parse search results", "type": "main", "index": 0 }]
]
},
"Get asset(s) from S3": {
"main": [
[{ "node": "Generate pre-signed URLs", "type": "main", "index": 0 }]
]
},
"Get asset(s) from AWS S3": {
"main": [
[{ "node": "Build S3 URI for Bedrock", "type": "main", "index": 0 }]
]
},
"Build S3 URI for Bedrock": {
"main": [
[{ "node": "Analyze with Bedrock Pegasus", "type": "main", "index": 0 }]
]
},
"Get asset(s) from AWS S3 storage": {
"main": [
[{ "node": "Build AWS S3 URI for Bedrock", "type": "main", "index": 0 }]
]
},
"Build AWS S3 URI for Bedrock": {
"main": [
[{ "node": "Create embeddings with Bedrock Marengo", "type": "main", "index": 0 }]
]
}
},
"active": true,
"settings": {
"executionOrder": "v1",
"timeSavedMode": "fixed",
"callerPolicy": "workflowsFromSameOwner",
"availableInMCP": true
},
"versionId": "<VERSION_ID>",
"meta": {
"templateCredsSetupCompleted": true,
"instanceId": "<INSTANCE_ID>"
},
"id": "<WORKFLOW_ID>",
"tags": []
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment