This workflow corresponds to n8n.io template #14388 — we link there as the canonical source.
This workflow follows the Error Trigger → HTTP Request 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 →
{
"id": "UYhs9NB8dDXNTuOi",
"name": "Seedance AI FX Concept Pipeline with Multi-Variation Rendering, Notion Logging, and Slack Review",
"tags": [],
"nodes": [
{
"id": "df3f58e6-94c5-4487-ada2-f6793d8f551e",
"name": "Webhook: FX Brief Input",
"type": "n8n-nodes-base.webhook",
"position": [
704,
736
],
"parameters": {},
"typeVersion": 2
},
{
"id": "cc52ded5-7db3-439c-a5ae-b55a2b305046",
"name": "Validate & Extract FX Brief",
"type": "n8n-nodes-base.code",
"position": [
944,
736
],
"parameters": {},
"typeVersion": 2
},
{
"id": "d3ce9ef8-1deb-4b6a-9321-4854fc917d11",
"name": "Fan-Out: 4 FX Variations",
"type": "n8n-nodes-base.code",
"position": [
1184,
736
],
"parameters": {},
"typeVersion": 2
},
{
"id": "5b9b50a6-6d9d-43cf-829a-9c0c622ffa29",
"name": "Build FX Request Body",
"type": "n8n-nodes-base.code",
"position": [
1424,
736
],
"parameters": {},
"typeVersion": 2
},
{
"id": "526e7f8e-ee47-4513-8b73-4b180a0d473f",
"name": "Seedance: Generate FX Clip",
"type": "n8n-nodes-base.httpRequest",
"position": [
1664,
736
],
"parameters": {},
"typeVersion": 4.3
},
{
"id": "651e5bd0-148f-49dc-aa95-d34b871ddd01",
"name": "Merge FX Job ID + Metadata",
"type": "n8n-nodes-base.code",
"position": [
1904,
736
],
"parameters": {},
"typeVersion": 2
},
{
"id": "7ed4a3e7-0b0b-4bf4-8c0a-cea3e520648d",
"name": "Poll: Check FX Job Status",
"type": "n8n-nodes-base.httpRequest",
"position": [
2144,
736
],
"parameters": {},
"typeVersion": 4.3
},
{
"id": "fdfdeb3c-788d-43bb-96fc-669bc9e4ccb3",
"name": "Wait 20s",
"type": "n8n-nodes-base.wait",
"position": [
2736,
976
],
"parameters": {},
"typeVersion": 1.1
},
{
"id": "d6385580-2067-4307-880d-09070dd2e84b",
"name": "FX Render Complete?",
"type": "n8n-nodes-base.if",
"position": [
2384,
736
],
"parameters": {},
"typeVersion": 2
},
{
"id": "68def3f2-c9c0-4555-821d-8747f92aa260",
"name": "Build FX Asset Metadata",
"type": "n8n-nodes-base.code",
"position": [
2640,
720
],
"parameters": {},
"typeVersion": 2
},
{
"id": "98b4afc4-d628-45e6-8e97-e07e1a038bc0",
"name": "Download FX Video",
"type": "n8n-nodes-base.httpRequest",
"position": [
3104,
720
],
"parameters": {},
"typeVersion": 4.3
},
{
"id": "0dfa6038-3cea-488f-97a4-92ee2ef8c7c6",
"name": "Google Drive: Upload FX Clip",
"type": "n8n-nodes-base.googleDrive",
"position": [
3376,
720
],
"parameters": {},
"typeVersion": 3
},
{
"id": "2a3412bc-b9ab-49f1-a319-f1acd93993e5",
"name": "Notion: Save FX Asset Record",
"type": "n8n-nodes-base.notion",
"position": [
3232,
496
],
"parameters": {},
"typeVersion": 2.2
},
{
"id": "57ec581f-1d7b-42b1-9ad2-ac58ba3ad876",
"name": "Aggregate All FX Variations",
"type": "n8n-nodes-base.code",
"position": [
3648,
496
],
"parameters": {},
"typeVersion": 2
},
{
"id": "1b11118c-a91b-42b2-86e6-e14b4802809f",
"name": "Slack: Notify FX Team",
"type": "n8n-nodes-base.slack",
"position": [
3888,
496
],
"parameters": {},
"typeVersion": 2.3
},
{
"id": "c1a11620-5ef9-472a-8b4b-5eff17484ad5",
"name": "On Workflow Error",
"type": "n8n-nodes-base.errorTrigger",
"position": [
720,
1184
],
"parameters": {},
"typeVersion": 1
},
{
"id": "475ee660-25a5-4562-a678-96f25ea0bd0c",
"name": "Slack: Error Alert",
"type": "n8n-nodes-base.slack",
"position": [
976,
1184
],
"parameters": {},
"typeVersion": 2.3
},
{
"id": "82742c1d-8b14-4a51-adaf-5eb0c7553597",
"name": "Sticky: Workflow Overview",
"type": "n8n-nodes-base.stickyNote",
"position": [
-240,
-16
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "5aa697d1-591e-4c26-9a56-2fed17b205ea",
"name": "Sticky: Trigger & Validation",
"type": "n8n-nodes-base.stickyNote",
"position": [
640,
448
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "adeae621-baff-421f-b9e0-b99080339424",
"name": "Sticky: Prompt Fan-Out & Generation",
"type": "n8n-nodes-base.stickyNote",
"position": [
1120,
464
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "01a63c05-a0a1-468e-bd3a-90f1be082abf",
"name": "Sticky: Polling & Render Wait",
"type": "n8n-nodes-base.stickyNote",
"position": [
1872,
352
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "4e630637-64f6-4bf0-a5ba-fc8da2641ca9",
"name": "Sticky: Asset Storage & Logging",
"type": "n8n-nodes-base.stickyNote",
"position": [
2880,
288
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "65dc529a-6430-4d43-974f-3c33cd1ffb1a",
"name": "Sticky: Review Notification",
"type": "n8n-nodes-base.stickyNote",
"position": [
3584,
288
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "2a4c4b5f-29d3-4a7d-91f6-0cbf1266e7bc",
"name": "Sticky: Credentials & Security",
"type": "n8n-nodes-base.stickyNote",
"position": [
3952,
832
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "48a06b26-af0a-4f0c-998f-04fe08b0384e",
"name": "Section: Error Handler",
"type": "n8n-nodes-base.stickyNote",
"position": [
640,
1040
],
"parameters": {
"content": ""
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "dd645cb5-005d-4c33-9c0b-597ed84c17c9",
"connections": {
"Wait 20s": {
"main": [
[
{
"node": "Poll: Check FX Job Status",
"type": "main",
"index": 0
}
]
]
},
"Download FX Video": {
"main": [
[
{
"node": "Google Drive: Upload FX Clip",
"type": "main",
"index": 0
}
]
]
},
"On Workflow Error": {
"main": [
[
{
"node": "Slack: Error Alert",
"type": "main",
"index": 0
}
]
]
},
"FX Render Complete?": {
"main": [
[
{
"node": "Build FX Asset Metadata",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait 20s",
"type": "main",
"index": 0
}
]
]
},
"Build FX Request Body": {
"main": [
[
{
"node": "Seedance: Generate FX Clip",
"type": "main",
"index": 0
}
]
]
},
"Build FX Asset Metadata": {
"main": [
[
{
"node": "Notion: Save FX Asset Record",
"type": "main",
"index": 0
},
{
"node": "Download FX Video",
"type": "main",
"index": 0
}
]
]
},
"Webhook: FX Brief Input": {
"main": [
[
{
"node": "Validate & Extract FX Brief",
"type": "main",
"index": 0
}
]
]
},
"Fan-Out: 4 FX Variations": {
"main": [
[
{
"node": "Build FX Request Body",
"type": "main",
"index": 0
}
]
]
},
"Poll: Check FX Job Status": {
"main": [
[
{
"node": "FX Render Complete?",
"type": "main",
"index": 0
}
]
]
},
"Merge FX Job ID + Metadata": {
"main": [
[
{
"node": "Poll: Check FX Job Status",
"type": "main",
"index": 0
}
]
]
},
"Seedance: Generate FX Clip": {
"main": [
[
{
"node": "Merge FX Job ID + Metadata",
"type": "main",
"index": 0
}
]
]
},
"Aggregate All FX Variations": {
"main": [
[
{
"node": "Slack: Notify FX Team",
"type": "main",
"index": 0
}
]
]
},
"Validate & Extract FX Brief": {
"main": [
[
{
"node": "Fan-Out: 4 FX Variations",
"type": "main",
"index": 0
}
]
]
},
"Google Drive: Upload FX Clip": {
"main": [
[
{
"node": "Aggregate All FX Variations",
"type": "main",
"index": 0
}
]
]
},
"Notion: Save FX Asset Record": {
"main": [
[
{
"node": "Aggregate All FX Variations",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow is an AI-driven FX concept generation pipeline that transforms a single VFX brief into multiple high-quality simulation-ready video concepts. It automates ideation, rendering, storage, and team review—bridging the gap between creative direction and simulation…
Source: https://n8n.io/workflows/14388/ — 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 is an AI-assisted clean plate and object removal pipeline built for modern VFX production environments. It transforms a single plate image and removal brief into multiple high-quality cl
Automate end-to-end AI video creation by transforming text scripts into professional avatar videos with natural voiceovers. 🎬🤖 This workflow receives a script via webhook, generates realistic audio us
Are you tired of the repetitive dance between git push, creating a pull request in GitHub, updating the corresponding task in JIRA, and then manually notifying your team in Slack, or Notion?
This workflow is an AI-powered style look transfer and quality control pipeline designed for VFX and editorial production. It transforms a new shot brief and a hero reference image into multiple style
Invoice Data Extraction. Uses httpRequest, slack, googleSheets, errorTrigger. Webhook trigger; 16 nodes.