使用 GPT-4o、Fal.ai 和人工监督生成产品 AI 宣传视频
高级
这是一个Content Creation, Multimodal AI领域的自动化工作流,包含 72 个节点。主要使用 If, Set, Code, Wait, Switch 等节点。 使用 GPT-4o、Fal.ai 和人工监督生成产品 AI 宣传视频
前置要求
- •HTTP Webhook 端点(n8n 会自动生成)
- •可能需要目标 API 的认证凭证
- •OpenAI API Key
使用的节点 (72)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"meta": {
"instanceId": "5ec543f78db8e552b46818580d4137dda2f58675a1a45426c44ae175fc35ac62"
},
"nodes": [
{
"id": "0b4de412-a17e-4ba8-8edb-6d86a5229b2d",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
1600,
272
],
"parameters": {
"rule": {
"interval": [
{
"field": "weeks",
"triggerAtDay": [
4
],
"triggerAtHour": 12
}
]
}
},
"typeVersion": 1.2
},
{
"id": "9363d3d6-ef9a-4bc5-9418-8f0887549e20",
"name": "AI Agent: Generate Topic ideas",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1952,
336
],
"parameters": {
"text": "=I'm running an online store for ceramics.\nPlease come up with 5 ideas for a topic for a short social media marketing post.\nPrimarily adjust it to the current season, considering the current month (Today is {{ $today.format('dd/LL/yyyy') }}) and our customers are in the northern hemisphere.\n\nCome up with a background scenery (e.g. beach, city, park, garden, cabin, office,...), a specific situation (e.g. picnic, day at the beach, party, regular office day,..) and a target audience (e.g. families, party singles, outdoor couples,startups,..)",
"options": {},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.9
},
{
"id": "aff6dd98-6667-4da5-8b6d-732551e639b9",
"name": "AI: Generate Tag Lines",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
2352,
1152
],
"parameters": {
"text": "={{ $json.prompt }}",
"options": {},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.9
},
{
"id": "27f11b17-8575-4ea2-b75f-f6f0190cf76f",
"name": "LLM",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1920,
592
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "gpt-4o-mini"
},
"options": {}
},
"typeVersion": 1.2
},
{
"id": "67b8909a-b459-4a4c-aaff-17890ffe368e",
"name": "LLM1",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
2352,
1376
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "gpt-4o-mini"
},
"options": {
"temperature": 0.9
}
},
"typeVersion": 1.2
},
{
"id": "e931c247-83c9-4313-a334-7c7224344738",
"name": "Thinking",
"type": "@n8n/n8n-nodes-langchain.toolThink",
"position": [
2048,
592
],
"parameters": {},
"typeVersion": 1
},
{
"id": "370b2f6e-3de9-43b3-a375-075d8dc758fd",
"name": "Thinking1",
"type": "@n8n/n8n-nodes-langchain.toolThink",
"position": [
2448,
1376
],
"parameters": {},
"typeVersion": 1
},
{
"id": "c3bafdc2-d550-4e6c-9fd0-a037daeacae4",
"name": "Extract JSON",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
2176,
592
],
"parameters": {
"jsonSchemaExample": "[\n {\n \"scenery\": \"lorem ipsum\",\n \"activity\": \"lorem ipsum\",\n \"audience\": \"lorem ipsum\"\n }\n]\n"
},
"typeVersion": 1.2
},
{
"id": "99281da0-7453-4c6a-847c-2bb1042a41b8",
"name": "Extract JSON1",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
2560,
1376
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"tagLine\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t}\n}"
},
"typeVersion": 1.2
},
{
"id": "844a4693-4548-48e0-8e6f-729dfa250234",
"name": "Fetch Status1",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueErrorOutput",
"position": [
2464,
1904
],
"parameters": {
"url": "=https://queue.fal.run/fal-ai/flux/requests/{{ $json.request_id }}/status",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"typeVersion": 4.2
},
{
"id": "be7a4fd6-fcf8-4784-9ac1-0503805ca388",
"name": "Wait1",
"type": "n8n-nodes-base.wait",
"position": [
2864,
2000
],
"webhookId": "150069ed-885b-497f-a32a-09e7088136e6",
"parameters": {
"amount": 1
},
"typeVersion": 1.1
},
{
"id": "37b96d9a-a388-42de-92a4-fe67328f5df3",
"name": "Fetch Result1",
"type": "n8n-nodes-base.httpRequest",
"position": [
2864,
1872
],
"parameters": {
"url": "={{ $json.response_url }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"typeVersion": 4.2
},
{
"id": "9111812d-361d-40d6-9a62-284078a317ee",
"name": "Fal.ai Image Gen",
"type": "n8n-nodes-base.httpRequest",
"position": [
2272,
1904
],
"parameters": {
"url": "https://queue.fal.run/fal-ai/flux-pro/kontext",
"method": "POST",
"options": {},
"jsonBody": "={{$json}}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "b1811460-de61-4096-88d6-32db3f9d39a3",
"name": "gotoHuman - Content",
"type": "@gotohuman/n8n-nodes-gotohuman.gotoHuman",
"position": [
2960,
1152
],
"webhookId": "bd084af6-4f7e-4084-bd75-66fe43dd069f",
"parameters": {
"fields": {
"value": {
"scenery": "={{ $json.scenery }}",
"tagLine": "={{ $json.tagLine }}",
"activity": "={{ $json.activity }}",
"audience": "={{ $json.audience }}",
"products": "={{ $json.products }}"
},
"schema": [
{
"id": "audience",
"type": "string",
"display": true,
"required": false,
"displayName": "audience (textShort)",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "scenery",
"type": "string",
"display": true,
"required": false,
"displayName": "scenery (textShort)",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "activity",
"type": "string",
"display": true,
"required": false,
"displayName": "activity (textShort)",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "style",
"type": "object",
"display": true,
"removed": true,
"required": false,
"displayName": "style (checkboxes)",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "products",
"type": "array",
"display": true,
"required": false,
"displayName": "products (imageGrid)",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "tagLine",
"type": "string",
"display": true,
"required": false,
"displayName": "tagLine (textShort)",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"metaJson": "={{ $json.metaJson }}",
"metaSelect": "json",
"additionalFields": {
"updateForReviewId": "={{ $json.reviewToUpdate }}"
},
"reviewTemplateID": {
"__rl": true,
"mode": "list"
}
},
"typeVersion": 1
},
{
"id": "08ca1a40-709c-4d86-b4f3-7d78ead1af58",
"name": "Rerun input",
"type": "n8n-nodes-base.set",
"position": [
3344,
1328
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "18a68238-8c1e-4fbd-abdf-b4866fac4f9a",
"name": "reviewToUpdate",
"type": "string",
"value": "={{ $json.reviewId }}"
},
{
"id": "6639c2fc-8b32-4f78-9869-b38e680bd2a3",
"name": "prompt",
"type": "string",
"value": "={{ ($json.messages || [])?.[0]?.content || $('Tagline Prompt').item.json.prompt }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "3552fa2c-5e24-4798-98db-0ff6bf643d9d",
"name": "Is Ready?",
"type": "n8n-nodes-base.if",
"position": [
2704,
1888
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "ac50759b-e2f3-4efd-a2af-f28b7d209b45",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "COMPLETED"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "e355e2a4-94d9-407d-88d3-b269aad22ffa",
"name": "Tagline Prompt",
"type": "n8n-nodes-base.set",
"position": [
2144,
1152
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "467bbd06-d02f-4dc5-8597-573b2f762666",
"name": "prompt",
"type": "string",
"value": "=I'm running an online store for ceramics.\nPlease come up with a short tagline to use in a social media marketing post. I'll put it as a layer on top of an image. Again, can be really short!\nIt must not include commas!\nCampaign and image have the following attributes:\nTarget Audience: {{ $('gotoHuman - Topics').item.json.responseValues.topics.value[0].label.audience }}\nActivity Shown: {{ $('gotoHuman - Topics').item.json.responseValues.topics.value[0].label.activity }}\nImage Scenery: {{ $('gotoHuman - Topics').item.json.responseValues.topics.value[0].label.scenery }}\n\nExamples:\n\n{{ ($json.tagLine || [\"Summer Time!\"]).unique().join(\"\\n\") }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "b8af975a-fbc0-4b55-ba08-2c0ac8fffbfc",
"name": "Cloudinary upload",
"type": "n8n-nodes-base.httpRequest",
"position": [
3216,
1872
],
"parameters": {
"url": "=https://api.cloudinary.com/v1_1/{{ $json.environment }}/image/upload",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"bodyParameters": {
"parameters": [
{
"name": "file",
"value": "={{ $('Fetch Result1').item.json.images[0].url }}"
},
{
"name": "upload_preset",
"value": "={{ $json.uploadPreset }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "a54dad12-eb4c-4ec9-8324-b22d47f42938",
"name": "Homework: Post it",
"type": "n8n-nodes-base.noOp",
"position": [
1872,
3472
],
"parameters": {},
"typeVersion": 1
},
{
"id": "6158d06b-5b81-432f-a0cd-e16b740b227c",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
1840,
32
],
"parameters": {
"color": 5,
"width": 1100,
"height": 724,
"content": "## 1. Generate campaign ideas\nWe ask the LLM to generate ideas for our upcoming marketing campaign based on the current date/season.\nIn gotoHuman we choose our favorite and approve."
},
"typeVersion": 1
},
{
"id": "c75d5bb5-870f-4b11-a73f-88a6a41e4b55",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
2384,
208
],
"parameters": {
"color": 7,
"width": 308,
"height": 304,
"content": ""
},
"typeVersion": 1
},
{
"id": "b87823fe-e050-4b3b-9121-0f0749ecb487",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1840,
816
],
"parameters": {
"color": 5,
"width": 1756,
"height": 728,
"content": "## 2. Generate tag line (self-improving) & pick settings for image generation\nWe are going to place a text label (tag line) on top of our video and we ask AI to generate it for us.\nTo **allow our workflow to learn over time**, we are fetching previously approved tag lines from gotoHuman to incl. in our prompt as positive examples.\n\nIn gotoHuman we edit the scenery of the image, pick the desired style and product to show. We can also manually edit the tag line OR ask AI to retry (we can change the prompt as well)"
},
"typeVersion": 1
},
{
"id": "dce551be-7f46-4dd9-9353-b4bbcf3cf00f",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
2848,
1024
],
"parameters": {
"color": 7,
"width": 324,
"height": 304,
"content": ""
},
"typeVersion": 1
},
{
"id": "9c07b86a-e416-4305-a757-7ae2c9c87451",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1840,
1584
],
"parameters": {
"color": 5,
"width": 2516,
"height": 760,
"content": "## 3. Generate reference product image\nUsing the approved settings we ask Fal.ai to generate the image that our short video clip will be based on.\nWe then use Cloudinary to put the tag line as a boxed label on top of it.\nIn gotoHuman, we check the image and can ask for a retry. Clicking the chat button allows us to edit the prompt before retrying which is very useful with images."
},
"typeVersion": 1
},
{
"id": "15018783-9a60-462b-a9f9-04bbd105a797",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
3680,
1760
],
"parameters": {
"color": 7,
"width": 308,
"height": 320,
"content": ""
},
"typeVersion": 1
},
{
"id": "c7a635e5-d557-4dc1-91f3-262228cfb5c7",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
1840,
3200
],
"parameters": {
"color": 5,
"width": 360,
"height": 648,
"content": "## 5. Post to social media\nWe receive the URL of the final human-approved video clip in the response from gotoHuman and can now use it to publish it.\nAlternatively, you can download the video clip from gotoHuman and post it manually."
},
"typeVersion": 1
},
{
"id": "cfe4a9aa-d31d-4f9f-9c8a-9318ed46ae62",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
1856,
1040
],
"parameters": {
"color": 7,
"width": 228,
"height": 304,
"content": ""
},
"typeVersion": 1
},
{
"id": "2c5385cf-31b7-4ddb-aae2-0a836685caa7",
"name": "Fetch Status",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueErrorOutput",
"position": [
2480,
2720
],
"parameters": {
"url": "=https://queue.fal.run/fal-ai/flux/requests/{{ $json.request_id }}/status",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"typeVersion": 4.2
},
{
"id": "cb44f47a-fb6c-40ef-a0fc-2edcad10ec18",
"name": "Wait",
"type": "n8n-nodes-base.wait",
"position": [
2896,
2816
],
"webhookId": "150069ed-885b-497f-a32a-09e7088136e6",
"parameters": {
"amount": 1
},
"typeVersion": 1.1
},
{
"id": "78500e8d-4d77-4b7a-8927-df8d1a90a86c",
"name": "Fetch Result",
"type": "n8n-nodes-base.httpRequest",
"position": [
2896,
2688
],
"parameters": {
"url": "={{ $json.response_url }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"typeVersion": 4.2
},
{
"id": "94a4e219-e3b9-48e0-a74a-212c2a2d65cc",
"name": "Is Ready?1",
"type": "n8n-nodes-base.if",
"position": [
2720,
2704
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "ac50759b-e2f3-4efd-a2af-f28b7d209b45",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "COMPLETED"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "76b372f9-ded9-4004-979f-8792ffca7396",
"name": "Cloudinary upload1",
"type": "n8n-nodes-base.httpRequest",
"position": [
3200,
2688
],
"parameters": {
"url": "=https://api.cloudinary.com/v1_1/{{ $('Set Cloudinary options').item.json.environment }}/video/upload",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"bodyParameters": {
"parameters": [
{
"name": "file",
"value": "={{ $json.video.url }}"
},
{
"name": "upload_preset",
"value": "={{ $('Set Cloudinary options').item.json.uploadPreset }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "35c9e4ea-b95e-4d2f-b8b6-888a7da2533e",
"name": "Sticky Note8",
"type": "n8n-nodes-base.stickyNote",
"position": [
3680,
2560
],
"parameters": {
"color": 7,
"width": 308,
"height": 304,
"content": ""
},
"typeVersion": 1
},
{
"id": "788fd78c-32f9-4bd2-98fa-c1679e64f3d5",
"name": "gotoHuman - Video",
"type": "@gotohuman/n8n-nodes-gotohuman.gotoHuman",
"position": [
3792,
2688
],
"webhookId": "2a80c59b-c47c-46c5-95bf-bccc5c8b7d1c",
"parameters": {
"fields": {
"value": {
"video": "={{ $json.video }}"
},
"schema": [
{
"id": "video",
"type": "object",
"display": true,
"removed": false,
"required": false,
"displayName": "video (video)",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"refImage"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"metaJson": "={{ $json.metaJson }}",
"metaSelect": "json",
"additionalFields": {
"updateForReviewId": "={{ $json.reviewToUpdate }}"
},
"reviewTemplateID": {
"__rl": true,
"mode": "list"
}
},
"typeVersion": 1
},
{
"id": "da321f97-5080-4bd0-966c-a000c7dfb288",
"name": "Rerun Video",
"type": "n8n-nodes-base.set",
"position": [
4160,
2928
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "978b3fc1-f62d-4ab3-ac10-4cd55c1e7cba",
"name": "prompt",
"type": "string",
"value": "={{ ($json.messages || [])?.[0]?.content || $('Fetch Result1').item.json.prompt }}"
},
{
"id": "1e20d82c-e7d0-4449-8260-badca14041d5",
"name": "reviewToUpdate",
"type": "string",
"value": "={{ $json.reviewId }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "ddeefad3-16e7-4802-bfa0-6c67ba887e9f",
"name": "Sticky Note9",
"type": "n8n-nodes-base.stickyNote",
"position": [
1840,
2400
],
"parameters": {
"color": 5,
"width": 2512,
"height": 744,
"content": "## 4. Turn image into video clip\nWe use Fal.ai again to generate a short video clip based on our reference image, basically making it more vivid.\nAgain, we use Cloudinary to put the tag line on top of the video.\nIn gotoHuman, we check the video and again, can ask for a retry (also allowing prompt edits)"
},
"typeVersion": 1
},
{
"id": "ffe45096-6a0f-4455-a634-2c4d85c3adfc",
"name": "gotoHuman - Image",
"type": "@gotohuman/n8n-nodes-gotohuman.gotoHuman",
"position": [
3792,
1872
],
"webhookId": "2a80c59b-c47c-46c5-95bf-bccc5c8b7d1c",
"parameters": {
"fields": {
"value": {
"refImage": "={{ $json.refImage }}"
},
"schema": [
{
"id": "refImage",
"type": "array",
"display": true,
"removed": false,
"required": false,
"displayName": "refImage (imageGrid)",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"refImage"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"metaJson": "={{ $json.metaJson }}",
"metaSelect": "json",
"additionalFields": {
"updateForReviewId": "={{ $json.reviewToUpdate }}"
},
"reviewTemplateID": {
"__rl": true,
"mode": "list"
}
},
"typeVersion": 1
},
{
"id": "78a65ba0-135f-49a9-b63e-a5cad481dc1b",
"name": "Sticky Note10",
"type": "n8n-nodes-base.stickyNote",
"position": [
1536,
512
],
"parameters": {
"color": 7,
"width": 244,
"height": 256,
"content": ""
},
"typeVersion": 1
},
{
"id": "16bd1622-e025-420f-9d16-10a17231ac76",
"name": "Remote manual trigger",
"type": "n8n-nodes-base.webhook",
"position": [
1600,
624
],
"webhookId": "9cc44543-3b16-44bb-92e8-7c8bff09d8fe",
"parameters": {
"path": "9cc44543-3b16-44bb-92e8-7c8bff09d8fe",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 2
},
{
"id": "9d234743-ee8c-4f27-ac26-10b093ced6da",
"name": "Fal.ai Video Gen",
"type": "n8n-nodes-base.httpRequest",
"position": [
2272,
2720
],
"parameters": {
"url": "https://queue.fal.run/fal-ai/kling-video/v2.1/standard/image-to-video",
"method": "POST",
"options": {},
"jsonBody": "={{ $json }}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "be670590-b4c2-40c6-945f-446de81bedbe",
"name": "Set Initial Image Prompt",
"type": "n8n-nodes-base.code",
"position": [
1872,
1904
],
"parameters": {
"mode": "runOnceForEachItem",
"jsCode": "let style;\nswitch ($json.responseValues.style.value[0].id) {\n case \"interior\":\n style = \"Professional product photography in warm, natural lighting, shot with modern rustic furniture. If there is light, it is soft, diffused light creating gentle shadows and highlights. The composition has a casual, lived-in aesthetic with items arranged in an organic, unstaged manner. Color palette consists of warm neutrals - cream, beige, sage green, and natural wood tones. The lighting is soft and even with no harsh shadows, creating a cozy, authentic atmosphere. Shot from a slightly elevated angle looking down, with shallow depth of field keeping the background softly blurred. The overall mood is clean, contemporary farmhouse style with professional commercial photography quality but maintaining an approachable, everyday feel.\";\n break;\n case \"garden\":\n style = \"Bright, vibrant product photography shot in natural outdoor garden setting with soft, warm lighting. Product is placed on stone or concrete surface, surrounded by lush green lawn, blooming flowers (lavender or similar spiky blooms) in foreground, and other flowers in contrasting colors in raised wooden planters in the background. The lighting is soft and diffused, creating a pleasant golden hour glow with gentle shadows. The composition has shallow depth of field with the background slightly blurred, emphasizing the products while maintaining the beautiful garden context. The overall aesthetic is fresh, organic, and naturally lit with rich saturated colors. Professional commercial photography style with natural, lifestyle garden setting.\"\n break;\n default:\n style = \"Bright, cheerful overhead photography of the given scenery. Shot from shlightly above with even, natural lighting. Features colorful items arranged casually across the surface. Uses vibrant, saturated colors with a warm, sunny aesthetic. Clean, modern interior design photography style with high contrast and sharp detail. Playful, lifestyle-oriented composition that evokes outdoor eating and drinking and summer gatherings. Professional food styling with items arranged in an organic, lived-in manner rather than perfectly positioned.\"\n break;\n}\nconst scene = $json.responseValues.scenery.value\nconst activity = $json.responseValues.activity.value\nconst prompt = `Show the passed ceramics product in the following context. Only show it once and pay attention to show it in a realistic perspective when it's standing\\n\\n<Style>${style}</Style>\\n\\n<Scenery>${scene}</Scenery>\\n\\n<ActivityShown> ${activity}</ActivityShown>`\n\nreturn {\"prompt\": prompt}"
},
"typeVersion": 2
},
{
"id": "e7a9304a-8de8-4268-bc94-33fce6e4a6b1",
"name": "Set Initial Video Prompt",
"type": "n8n-nodes-base.code",
"position": [
1872,
2720
],
"parameters": {
"mode": "runOnceForEachItem",
"jsCode": "return {\n \"prompt\": \"Please put some natural movement to this image for a short clip. Only move what would be naturally moving, like plants gently moving in the wind, or very very slowly moving shadows of clouds (clouds not shown). If outdoors add 1-2 tiny insects flying around.\"\n}"
},
"typeVersion": 2
},
{
"id": "68571c4c-ae4b-44ea-b76a-86336e9fe3ab",
"name": "Set Image Request",
"type": "n8n-nodes-base.code",
"position": [
2080,
1904
],
"parameters": {
"mode": "runOnceForEachItem",
"jsCode": "return {\n \"prompt\": $json.prompt,\n \"image_url\": $('gotoHuman - Content').first().json.responseValues.products.selected[0],\n \"aspect_ratio\": \"3:4\"\n}"
},
"typeVersion": 2
},
{
"id": "4219c653-f1cc-42eb-a57f-e1964bfc4540",
"name": "Set Video Request",
"type": "n8n-nodes-base.code",
"position": [
2080,
2720
],
"parameters": {
"mode": "runOnceForEachItem",
"jsCode": "return {\n \"prompt\": $json.prompt,\n \"image_url\": $(\"Approved or Retry ?\").first().json.responseValues.refImage.value[0].url,\n}"
},
"typeVersion": 2
},
{
"id": "03360e1e-e677-4869-b198-e4693a59cbc2",
"name": "Rerun Image",
"type": "n8n-nodes-base.set",
"position": [
4176,
2128
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "324cc185-bac4-4ddd-a0ef-d1d33d6cb1a6",
"name": "prompt",
"type": "string",
"value": "={{ ($json.messages || [])?.[0]?.content || $('Fetch Result1').item.json.prompt }}"
},
{
"id": "1e20d82c-e7d0-4449-8260-badca14041d5",
"name": "reviewToUpdate",
"type": "string",
"value": "={{ $json.reviewId }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "26a54e6b-fb02-4605-afee-70bb04aea5f4",
"name": "Set Cloudinary options",
"type": "n8n-nodes-base.set",
"position": [
3040,
1872
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "231a5488-b990-403f-8b35-1864946060f7",
"name": "environment",
"type": "string",
"value": ""
},
{
"id": "7a3ca199-8b7f-4bd2-99c9-710cb3001b53",
"name": "uploadPreset",
"type": "string",
"value": ""
}
]
}
},
"typeVersion": 3.4
},
{
"id": "92c28c4f-89a9-4525-a92a-b82d9dbd54e3",
"name": "Image URL with Tag Line",
"type": "n8n-nodes-base.set",
"position": [
3392,
1872
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "2af40631-10e0-4dd2-8d9e-999d9f3fc242",
"name": "url",
"type": "string",
"value": "=https://res.cloudinary.com/{{ $('Set Cloudinary options').item.json.environment }}/image/upload/w_800,f_auto,q_auto/b_white,l_text:bungee_60_bold:{{$('gotoHuman - Content').item.json.responseValues.tagLine.value.urlEncode()}},g_center,y_40,w_600,c_fit,co_rgb:E26D5C/fl_layer_apply,bo_40px_solid_white,g_south,y_40/v{{ $json.version }}/{{ $json.public_id }}.{{ $json.format }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "abb9a9f3-4ea6-4615-8c95-6bc748541c64",
"name": "Data to send3",
"type": "n8n-nodes-base.set",
"position": [
3568,
1872
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "0a11b75c-8d6a-46f5-8c20-0d414b27ec09",
"name": "refImage",
"type": "object",
"value": "={{\n{\n ai: { prompt: $('Fetch Result1').item.json.prompt },\n content:[\n {\n \"url\": $json.url\n }\n ]\n}\n}}"
},
{
"id": "25d65a8b-6a69-4ff3-9f52-8d65a97900ba",
"name": "metaJson",
"type": "string",
"value": "={\n \"_gthWorkflow\": {\n \"runId\": \"{{ $('gotoHuman - Content').item.json.workflowRunId }}\",\n \"prevSteps\": [\"{{ $('gotoHuman - Content').item.json.reviewId }}\"]\n }\n}"
},
{
"id": "aef20fd5-1451-4b2d-99f6-e1cdf0c62f82",
"name": "reviewToUpdate",
"type": "string",
"value": "={{ $('Rerun Image').isExecuted ? $('Rerun Image').item.json.reviewToUpdate : null }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "48ddbcb6-2f40-4cdd-acf2-1c037c835c0e",
"name": "Clip URL with Tag Line",
"type": "n8n-nodes-base.set",
"position": [
3376,
2688
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "f3bf1bef-15ed-49f4-9c41-2d576cc2ee35",
"name": "url",
"type": "string",
"value": "=https://res.cloudinary.com/{{ $('Set Cloudinary options').item.json.environment }}/video/upload/w_800,f_auto,q_auto/b_white,l_text:bungee_60_bold:{{$('gotoHuman - Content').item.json.responseValues.tagLine.value.urlEncode()}},g_center,y_40,w_600,c_fit,co_rgb:E26D5C/fl_layer_apply,bo_40px_solid_white,g_south,y_40/v{{ $json.version }}/{{ $json.public_id }}.{{ $json.format }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "1ab3d4d9-0a3b-4a83-929f-d35e71c3c6e0",
"name": "Data to send4",
"type": "n8n-nodes-base.set",
"position": [
3552,
2688
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "955a0f62-741a-480c-ad24-c3c7fb69ddda",
"name": "video",
"type": "object",
"value": "={{\n{\n ai: { prompt: $('Set Initial Video Prompt').item.json.prompt },\n content:\n {\n \"url\": $json.url\n }\n}\n}}"
},
{
"id": "a1c343cd-90d2-4df7-bb10-7e59641aa518",
"name": "metaJson",
"type": "string",
"value": "={\n \"_gthWorkflow\": {\n \"runId\": \"{{ $('gotoHuman - Image').item.json.workflowRunId }}\",\n \"prevSteps\": [\"{{ $('gotoHuman - Image').item.json.reviewId }}\"]\n }\n}"
},
{
"id": "a44a817a-1a43-4544-b0d9-6debd1d321eb",
"name": "reviewToUpdate",
"type": "string",
"value": "={{ $('Rerun Video').isExecuted ? $('Rerun Video').item.json.reviewToUpdate : null }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "7cbfd32c-7e8c-415e-a942-1e16596c06aa",
"name": "gotoHuman - Topics",
"type": "@gotohuman/n8n-nodes-gotohuman.gotoHuman",
"position": [
2496,
336
],
"webhookId": "946e30b4-a7c4-4579-803a-5457cd4bf559",
"parameters": {
"fields": {
"value": {
"topics": "={{ $json.topics }}"
},
"schema": [
{
"id": "topics",
"type": "object",
"display": true,
"removed": false,
"required": false,
"displayName": "topics (checkboxes)",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"topics"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"metaJson": "={{ $json.metaJson }}",
"metaSelect": "json",
"additionalFields": {},
"reviewTemplateID": {
"__rl": true,
"mode": "list"
}
},
"typeVersion": 1
},
{
"id": "9d5231af-cfca-4e53-815a-c45e303412fc",
"name": "Sticky Note12",
"type": "n8n-nodes-base.stickyNote",
"position": [
3040,
96
],
"parameters": {
"color": 7,
"width": 960,
"height": 656,
"content": ""
},
"typeVersion": 1
},
{
"id": "08b74b94-a645-48c8-933b-94952e67ee2b",
"name": "Sticky Note13",
"type": "n8n-nodes-base.stickyNote",
"position": [
3680,
832
],
"parameters": {
"color": 7,
"width": 624,
"height": 752,
"content": ""
},
"typeVersion": 1
},
{
"id": "b3362a00-ab06-4d42-84e2-8b10b122f620",
"name": "Sticky Note14",
"type": "n8n-nodes-base.stickyNote",
"position": [
4464,
1664
],
"parameters": {
"color": 7,
"width": 1040,
"height": 672,
"content": ""
},
"typeVersion": 1
},
{
"id": "f1eca5be-d6ba-4cca-a516-a53b6dd4ee8f",
"name": "Sticky Note15",
"type": "n8n-nodes-base.stickyNote",
"position": [
4464,
2464
],
"parameters": {
"color": 7,
"width": 1040,
"height": 672,
"content": ""
},
"typeVersion": 1
},
{
"id": "e6394a0b-3046-42bf-ae49-41c921594307",
"name": "Sticky Note16",
"type": "n8n-nodes-base.stickyNote",
"position": [
5552,
1664
],
"parameters": {
"color": 7,
"width": 912,
"height": 672,
"content": ""
},
"typeVersion": 1
},
{
"id": "132ba3dd-668b-4033-a63e-41b980248131",
"name": "Sticky Note22",
"type": "n8n-nodes-base.stickyNote",
"position": [
3984,
2448
],
"parameters": {
"width": 256,
"content": "## ⚠️ Instructions\n[ ] Select your gotoHuman credentials from the list\n\n[ ] Select review template \"Review Clip\" from list"
},
"typeVersion": 1
},
{
"id": "c0311862-d85a-4708-bc66-05f47985d107",
"name": "Fetch approved examples",
"type": "n8n-nodes-base.httpRequest",
"position": [
1904,
1152
],
"parameters": {
"url": "https://api.gotohuman.com/queryResponses",
"options": {},
"sendQuery": true,
"authentication": "predefinedCredentialType",
"queryParameters": {
"parameters": [
{
"name": "formId"
},
{
"name": "fieldIds",
"value": "tagLine"
},
{
"name": "approvedValuesOnly",
"value": "true"
},
{
"name": "groupByField",
"value": "true"
}
]
},
"nodeCredentialType": "gotoHumanApi"
},
"typeVersion": 4.2
},
{
"id": "851f3fc3-1b22-482d-a2f8-f692dd753f6f",
"name": "Data to send",
"type": "n8n-nodes-base.set",
"position": [
2240,
336
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "18f6bd6c-398e-4d1d-9675-d5d9da6e36c0",
"name": "topics",
"type": "string",
"value": "={{ $json.output }}"
},
{
"id": "907f7a29-3989-48ad-9b51-1f2c5c1adef0",
"name": "metaJson",
"type": "string",
"value": "={ \"_gthWorkflow\": { \"runName\": \"{{ $('Remote manual trigger').isExecuted ? $('Remote manual trigger').item.json.body.responseValues.campaignName.value : \"Campaign \" + $('Schedule Trigger').item.json.Month + \" \" + $('Schedule Trigger').item.json.Year + \", \" + $('Schedule Trigger').item.json['Day of month'] }}\" } }"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "ea4b6668-03b9-44a5-9c73-2c94fa5d366f",
"name": "Data to send2",
"type": "n8n-nodes-base.set",
"position": [
2720,
1152
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "eaf1edaa-2b7b-442b-a580-9dc85718f09d",
"name": "audience",
"type": "string",
"value": "={{ $('gotoHuman - Topics').item.json.responseValues.topics.value[0].label.audience }}"
},
{
"id": "c8247039-cbc0-47a6-87f2-413e29662da9",
"name": "scenery",
"type": "string",
"value": "={{ $('gotoHuman - Topics').item.json.responseValues.topics.value[0].label.scenery }}"
},
{
"id": "23a332d1-bc17-48c5-96d1-8591df95baed",
"name": "activity",
"type": "string",
"value": "={{ $('gotoHuman - Topics').item.json.responseValues.topics.value[0].label.activity }}"
},
{
"id": "e2b16b68-cfc9-4ff6-8947-14b3d58eebb2",
"name": "products",
"type": "array",
"value": "={{ \n[\n{url: \"https://cdn.prod.website-files.com/6605a2979ff17b2cd1939cd4/6889f47fb9639ff10b8a1350_vasecolored.jpg\"},\n{url: \"https://cdn.prod.website-files.com/6605a2979ff17b2cd1939cd4/6889f4aa3875b777178936ab_vasegreen.webp\"},\n{url: \"https://cdn.prod.website-files.com/6605a2979ff17b2cd1939cd4/6889f4c8534e9193b60cc22f_vaseyellow.webp\"}\n]\n}}"
},
{
"id": "bfb472ad-4059-44a3-bc45-12a1536f2f92",
"name": "tagLine",
"type": "object",
"value": "={{\n{\nai: {prompt: $('Tagline Prompt').item.json.prompt},\ncontent: $json.output.tagLine\n}\n}}"
},
{
"id": "412dd833-bc29-41a4-ad53-0be4993b74d0",
"name": "metaJson",
"type": "string",
"value": "={\n \"_gthWorkflow\": {\n \"runId\": \"{{ $('gotoHuman - Topics').item.json.workflowRunId }}\",\n \"prevSteps\": [\"{{ $('gotoHuman - Topics').item.json.reviewId }}\"]\n }\n}"
},
{
"id": "228c5199-503a-43d8-8af8-4b8d064ab3b2",
"name": "reviewToUpdate",
"type": "string",
"value": "={{ $('Rerun input').isExecuted ? $('Rerun input').item.json.reviewToUpdate : null }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "061aed50-8abb-4e19-94d9-584431620442",
"name": "Approved?",
"type": "n8n-nodes-base.if",
"position": [
2784,
336
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "6d70d537-257b-4da9-8841-51e75472ae44",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.response }}",
"rightValue": "approved"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "7dcf5976-3db1-4ef7-b44e-0b6f3aa64b28",
"name": "Approved or Retry?",
"type": "n8n-nodes-base.switch",
"position": [
3216,
1152
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "Approved",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "0e1a0eaf-64e6-4004-952e-8d1b85c28fe8",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ ($json.response === \"approved\") }}",
"rightValue": "true"
}
]
},
"renameOutput": true
},
{
"outputKey": "Rerun tagline",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "3e87dd5e-ac87-4d1f-a3b6-f0a31ea1bab6",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ ($json.type === \"chat\") }}",
"rightValue": ""
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "87011dbc-b82b-4bf6-8cc7-c5fa84463013",
"name": "Approved or Retry ?",
"type": "n8n-nodes-base.switch",
"position": [
4032,
1872
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "Good",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "0e1a0eaf-64e6-4004-952e-8d1b85c28fe8",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ ($json.type === \"review\") && ($json.response === \"approved\") }}",
"rightValue": "true"
}
]
},
"renameOutput": true
},
{
"outputKey": "Rerun",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "3e87dd5e-ac87-4d1f-a3b6-f0a31ea1bab6",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ ($json.type === \"chat\") }}",
"rightValue": ""
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "4bd71e90-8f3c-4520-a3cd-e68a32d308df",
"name": "Approved or Retry ?",
"type": "n8n-nodes-base.switch",
"position": [
4032,
2688
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "Good",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "0e1a0eaf-64e6-4004-952e-8d1b85c28fe8",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ ($json.type === \"review\") && ($json.response === \"approved\") }}",
"rightValue": "true"
}
]
},
"renameOutput": true
},
{
"outputKey": "Rerun",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "3e87dd5e-ac87-4d1f-a3b6-f0a31ea1bab6",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ ($json.type === \"chat\") }}",
"rightValue": ""
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "2dd8fe28-83b2-442b-ada6-38663a836b5e",
"name": "Sticky Note25",
"type": "n8n-nodes-base.stickyNote",
"position": [
352,
48
],
"parameters": {
"width": 880,
"height": 1408,
"content": "## Create AI product videos with Fal.ai using [gotoHuman](https://www.gotohuman.com) for supervision\nLet's say we are a shop selling ceramics and want to showcase one of our products on social media each week.\nThis mainly demonstrates how to use **gotoHuman** to supervise each step of the workflow.\n\n@[youtube](mjjkPjCubns)\n\n### ⚠️ How to set up\n[ ] In n8n, install gotoHuman node **before** importing this template or some settings will be missing (Just add the node to a blank canvas before importing)\n\n[ ] Create gotoHuman account, copy API key\n\n[ ] In gotoHuman, import review templates from IDs: `Z7V1jyImY1pho9eY039R,0GBaOCWd27tqV562kkCL,E2wlCVPWmk2UnLHVt4uu,DitPdbIapS4rBxBTIYGt,Z2T7nFwkXVFQlD6z50eV`\n(copy&paste this whole comma-separated list of IDs)\n\n[ ] Follow further instructions in the yellow notes below\n\n### Requirements\n- gotoHuman account for human supervision\n- OpenAI account for ideation and tag line generation\n- Fal.ai account for image/video generation\n- Cloudinary account for adding a text layer on top of image/video\n\n### How to customize\n- Adjust/Replace the workflow triggers as needed\n- Change the prompt in the topics generation node\n- Replace the product image URLs used in the \"gotoHuman - Content\" node\n- Adjust the available styles for image generation in the gotoHuman review template and the prompts they link to in the \"Set Initial Image Prompt\" node\n- Remove Cloudinary if you do not need a text overlay\n- Adjust the prompt used for video generation in the \"Set Initial Video Prompt\" node"
},
"typeVersion": 1
},
{
"id": "d05548c1-463f-4082-982c-d074a9742e10",
"name": "Sticky Note21",
"type": "n8n-nodes-base.stickyNote",
"position": [
3984,
1664
],
"parameters": {
"width": 256,
"content": "## ⚠️ Instructions\n[ ] Select your gotoHuman credentials from the list\n\n[ ] Select review template \"Review Ref Image\" from list"
},
"typeVersion": 1
},
{
"id": "a0bda33c-c741-415d-896d-466558dd40a9",
"name": "Sticky Note23",
"type": "n8n-nodes-base.stickyNote",
"position": [
2192,
1744
],
"parameters": {
"width": 256,
"content": "## ⚠️ Instructions\n[ ] You need a Fal.ai account\n[ ] Choose \"Generic Credential Type\" > \"Header Auth\" > Name: `Authorization`, Value: `Key YOUR-API-KEY` "
},
"typeVersion": 1
},
{
"id": "7db74fa7-cd53-4878-9ea9-0834940b3dc1",
"name": "Sticky Note24",
"type": "n8n-nodes-base.stickyNote",
"position": [
2976,
1664
],
"parameters": {
"width": 336,
"height": 208,
"content": "## ⚠️ Instructions\n[ ] You need a cloudinary.com account\n[ ] In Cloudinary, find your environment/cloud name\n[ ] In Cloudinary, [add an upload preset](https://console.cloudinary.com/settings/upload/presets). Enter a name, set signing mode to **Unsigned** and enter asset folder name. Leave rest as is. Save.\n[ ] In this node, enter names of environment and upload preset (no credential req.)"
},
"typeVersion": 1
},
{
"id": "398ec2f5-e380-4ac4-9f67-70ad43853685",
"name": "Sticky Note20",
"type": "n8n-nodes-base.stickyNote",
"position": [
3168,
912
],
"parameters": {
"width": 256,
"content": "## ⚠️ Instructions\n[ ] Select your gotoHuman credentials from the list\n\n[ ] Select review template \"Product,...\" from list"
},
"typeVersion": 1
},
{
"id": "13b8c8d6-8939-4a95-9ff8-24ab5b9a63bb",
"name": "Sticky Note19",
"type": "n8n-nodes-base.stickyNote",
"position": [
1616,
1120
],
"parameters": {
"width": 256,
"height": 240,
"content": "## ⚠️ Instructions\n[ ] Select credential type \"gotoHuman API\"\n\n[ ] Select your gotoHuman credentials from the list\n\n[ ] For `formId` enter the ID of your gotoHuman review template \"Product,...\""
},
"typeVersion": 1
},
{
"id": "c37b2041-5d08-4298-b952-38524a2f040d",
"name": "Sticky Note17",
"type": "n8n-nodes-base.stickyNote",
"position": [
1312,
624
],
"parameters": {
"content": "## ⚠️ Instructions\n[ ] Add the webhook URL shown in this node to the settings of the review template \"Create Campaign\" in gotoHuman"
},
"typeVersion": 1
},
{
"id": "1f0b871b-f801-4518-9068-b8b9823e234a",
"name": "Sticky Note18",
"type": "n8n-nodes-base.stickyNote",
"position": [
2704,
128
],
"parameters": {
"width": 256,
"content": "## ⚠️ Instructions\n[ ] Add gotoHuman credentials with your API key\n\n[ ] Select review template \"Topic Ideas\" from list"
},
"typeVersion": 1
}
],
"pinData": {
"Remote manual trigger": [
{
"body": {
"type": "trigger",
"formId": "the-trigger-form-id",
"formName": "Create Campaign",
"reviewId": "the-trigger-id",
"accountId": "your-account-id",
"respondingUser": "hello@acme.org",
"responseValues": {
"campaignName": {
"value": "Late Summer Campaign"
}
}
},
"webhookUrl": "https://xxx.app.n8n.cloud/webhook-test/x-y-z",
"executionMode": "test"
}
]
},
"connections": {
"27f11b17-8575-4ea2-b75f-f6f0190cf76f": {
"ai_languageModel": [
[
{
"node": "9363d3d6-ef9a-4bc5-9418-8f0887549e20",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"67b8909a-b459-4a4c-aaff-17890ffe368e": {
"ai_languageModel": [
[
{
"node": "aff6dd98-6667-4da5-8b6d-732551e639b9",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"cb44f47a-fb6c-40ef-a0fc-2edcad10ec18": {
"main": [
[
{
"node": "2c5385cf-31b7-4ddb-aae2-0a836685caa7",
"type": "main",
"index": 0
}
]
]
},
"be7a4fd6-fcf8-4784-9ac1-0503805ca388": {
"main": [
[
{
"node": "844a4693-4548-48e0-8e6f-729dfa250234",
"type": "main",
"index": 0
}
]
]
},
"e931c247-83c9-4313-a334-7c7224344738": {
"ai_tool": [
[
{
"node": "9363d3d6-ef9a-4bc5-9418-8f0887549e20",
"type": "ai_tool",
"index": 0
}
]
]
},
"061aed50-8abb-4e19-94d9-584431620442": {
"main": [
[
{
"node": "c0311862-d85a-4708-bc66-05f47985d107",
"type": "main",
"index": 0
}
]
]
},
"3552fa2c-5e24-4798-98db-0ff6bf643d9d": {
"main": [
[
{
"node": "37b96d9a-a388-42de-92a4-fe67328f5df3",
"type": "main",
"index": 0
}
],
[
{
"node": "be7a4fd6-fcf8-4784-9ac1-0503805ca388",
"type": "main",
"index": 0
}
]
]
},
"370b2f6e-3de9-43b3-a375-075d8dc758fd": {
"ai_tool": [
[
{
"node": "aff6dd98-6667-4da5-8b6d-732551e639b9",
"type": "ai_tool",
"index": 0
}
]
]
},
"94a4e219-e3b9-48e0-a74a-212c2a2d65cc": {
"main": [
[
{
"node": "78500e8d-4d77-4b7a-8927-df8d1a90a86c",
"type": "main",
"index": 0
}
],
[
{
"node": "cb44f47a-fb6c-40ef-a0fc-2edcad10ec18",
"type": "main",
"index": 0
}
]
]
},
"03360e1e-e677-4869-b198-e4693a59cbc2": {
"main": [
[
{
"node": "68571c4c-ae4b-44ea-b76a-86336e9fe3ab",
"type": "main",
"index": 0
}
]
]
},
"da321f97-5080-4bd0-966c-a000c7dfb288": {
"main": [
[
{
"node": "4219c653-f1cc-42eb-a57f-e1964bfc4540",
"type": "main",
"index": 0
}
]
]
},
"08ca1a40-709c-4d86-b4f3-7d78ead1af58": {
"main": [
[
{
"node": "aff6dd98-6667-4da5-8b6d-732551e639b9",
"type": "main",
"index": 0
}
]
]
},
"851f3fc3-1b22-482d-a2f8-f692dd753f6f": {
"main": [
[
{
"node": "7cbfd32c-7e8c-415e-a942-1e16596c06aa",
"type": "main",
"index": 0
}
]
]
},
"c3bafdc2-d550-4e6c-9fd0-a037daeacae4": {
"ai_outputParser": [
[
{
"node": "9363d3d6-ef9a-4bc5-9418-8f0887549e20",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"78500e8d-4d77-4b7a-8927-df8d1a90a86c": {
"main": [
[
{
"node": "76b372f9-ded9-4004-979f-8792ffca7396",
"type": "main",
"index": 0
}
]
]
},
"2c5385cf-31b7-4ddb-aae2-0a836685caa7": {
"main": [
[
{
"node": "94a4e219-e3b9-48e0-a74a-212c2a2d65cc",
"type": "main",
"index": 0
}
]
]
},
"ea4b6668-03b9-44a5-9c73-2c94fa5d366f": {
"main": [
[
{
"node": "b1811460-de61-4096-88d6-32db3f9d39a3",
"type": "main",
"index": 0
}
]
]
},
"abb9a9f3-4ea6-4615-8c95-6bc748541c64": {
"main": [
[
{
"node": "ffe45096-6a0f-4455-a634-2c4d85c3adfc",
"type": "main",
"index": 0
}
]
]
},
"1ab3d4d9-0a3b-4a83-929f-d35e71c3c6e0": {
"main": [
[
{
"node": "788fd78c-32f9-4bd2-98fa-c1679e64f3d5",
"type": "main",
"index": 0
}
]
]
},
"99281da0-7453-4c6a-847c-2bb1042a41b8": {
"ai_outputParser": [
[
{
"node": "aff6dd98-6667-4da5-8b6d-732551e639b9",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"37b96d9a-a388-42de-92a4-fe67328f5df3": {
"main": [
[
{
"node": "26a54e6b-fb02-4605-afee-70bb04aea5f4",
"type": "main",
"index": 0
}
]
]
},
"844a4693-4548-48e0-8e6f-729dfa250234": {
"main": [
[
{
"node": "3552fa2c-5e24-4798-98db-0ff6bf643d9d",
"type": "main",
"index": 0
}
]
]
},
"e355e2a4-94d9-407d-88d3-b269aad22ffa": {
"main": [
[
{
"node": "aff6dd98-6667-4da5-8b6d-732551e639b9",
"type": "main",
"index": 0
}
]
]
},
"9111812d-361d-40d6-9a62-284078a317ee": {
"main": [
[
{
"node": "844a4693-4548-48e0-8e6f-729dfa250234",
"type": "main",
"index": 0
}
]
]
},
"9d234743-ee8c-4f27-ac26-10b093ced6da": {
"main": [
[
{
"node": "2c5385cf-31b7-4ddb-aae2-0a836685caa7",
"type": "main",
"index": 0
}
]
]
},
"0b4de412-a17e-4ba8-8edb-6d86a5229b2d": {
"main": [
[
{
"node": "9363d3d6-ef9a-4bc5-9418-8f0887549e20",
"type": "main",
"index": 0
}
]
]
},
"b8af975a-fbc0-4b55-ba08-2c0ac8fffbfc": {
"main": [
[
{
"node": "92c28c4f-89a9-4525-a92a-b82d9dbd54e3",
"type": "main",
"index": 0
}
]
]
},
"68571c4c-ae4b-44ea-b76a-86336e9fe3ab": {
"main": [
[
{
"node": "9111812d-361d-40d6-9a62-284078a317ee",
"type": "main",
"index": 0
}
]
]
},
"4219c653-f1cc-42eb-a57f-e1964bfc4540": {
"main": [
[
{
"node": "9d234743-ee8c-4f27-ac26-10b093ced6da",
"type": "main",
"index": 0
}
]
]
},
"ffe45096-6a0f-4455-a634-2c4d85c3adfc": {
"main": [
[
{
"node": "87011dbc-b82b-4bf6-8cc7-c5fa84463013",
"type": "main",
"index": 0
}
]
]
},
"788fd78c-32f9-4bd2-98fa-c1679e64f3d5": {
"main": [
[
{
"node": "4bd71e90-8f3c-4520-a3cd-e68a32d308df",
"type": "main",
"index": 0
}
]
]
},
"7dcf5976-3db1-4ef7-b44e-0b6f3aa64b28": {
"main": [
[
{
"node": "be670590-b4c2-40c6-945f-446de81bedbe",
"type": "main",
"index": 0
}
],
[
{
"node": "08ca1a40-709c-4d86-b4f3-7d78ead1af58",
"type": "main",
"index": 0
}
]
]
},
"76b372f9-ded9-4004-979f-8792ffca7396": {
"main": [
[
{
"node": "48ddbcb6-2f40-4cdd-acf2-1c037c835c0e",
"type": "main",
"index": 0
}
]
]
},
"7cbfd32c-7e8c-415e-a942-1e16596c06aa": {
"main": [
[
{
"node": "061aed50-8abb-4e19-94d9-584431620442",
"type": "main",
"index": 0
}
]
]
},
"87011dbc-b82b-4bf6-8cc7-c5fa84463013": {
"main": [
[
{
"node": "e7a9304a-8de8-4268-bc94-33fce6e4a6b1",
"type": "main",
"index": 0
}
],
[
{
"node": "03360e1e-e677-4869-b198-e4693a59cbc2",
"type": "main",
"index": 0
}
]
]
},
"b1811460-de61-4096-88d6-32db3f9d39a3": {
"main": [
[
{
"node": "7dcf5976-3db1-4ef7-b44e-0b6f3aa64b28",
"type": "main",
"index": 0
}
]
]
},
"4bd71e90-8f3c-4520-a3cd-e68a32d308df": {
"main": [
[
{
"node": "a54dad12-eb4c-4ec9-8324-b22d47f42938",
"type": "main",
"index": 0
}
],
[
{
"node": "da321f97-5080-4bd0-966c-a000c7dfb288",
"type": "main",
"index": 0
}
]
]
},
"16bd1622-e025-420f-9d16-10a17231ac76": {
"main": [
[
{
"node": "9363d3d6-ef9a-4bc5-9418-8f0887549e20",
"type": "main",
"index": 0
}
]
]
},
"aff6dd98-6667-4da5-8b6d-732551e639b9": {
"main": [
[
{
"node": "ea4b6668-03b9-44a5-9c73-2c94fa5d366f",
"type": "main",
"index": 0
}
]
]
},
"48ddbcb6-2f40-4cdd-acf2-1c037c835c0e": {
"main": [
[
{
"node": "1ab3d4d9-0a3b-4a83-929f-d35e71c3c6e0",
"type": "main",
"index": 0
}
]
]
},
"26a54e6b-fb02-4605-afee-70bb04aea5f4": {
"main": [
[
{
"node": "b8af975a-fbc0-4b55-ba08-2c0ac8fffbfc",
"type": "main",
"index": 0
}
]
]
},
"c0311862-d85a-4708-bc66-05f47985d107": {
"main": [
[
{
"node": "e355e2a4-94d9-407d-88d3-b269aad22ffa",
"type": "main",
"index": 0
}
]
]
},
"92c28c4f-89a9-4525-a92a-b82d9dbd54e3": {
"main": [
[
{
"node": "abb9a9f3-4ea6-4615-8c95-6bc748541c64",
"type": "main",
"index": 0
}
]
]
},
"be670590-b4c2-40c6-945f-446de81bedbe": {
"main": [
[
{
"node": "68571c4c-ae4b-44ea-b76a-86336e9fe3ab",
"type": "main",
"index": 0
}
]
]
},
"e7a9304a-8de8-4268-bc94-33fce6e4a6b1": {
"main": [
[
{
"node": "4219c653-f1cc-42eb-a57f-e1964bfc4540",
"type": "main",
"index": 0
}
]
]
},
"9363d3d6-ef9a-4bc5-9418-8f0887549e20": {
"main": [
[
{
"node": "851f3fc3-1b22-482d-a2f8-f692dd753f6f",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 内容创作, 多模态 AI
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
WordPress博客自动化专业版(深度研究)v2.1市场
使用GPT-4o、Perplexity AI和多语言支持自动化SEO优化的博客创建
If
Set
Xml
+
If
Set
Xml
125 节点Daniel Ng
内容创作
批量SEO内容生成与带AI图片的Webflow草稿创建(模板)
使用GPT、Gemini图片和Webflow草稿创建进行批量SEO内容生成
If
Set
Code
+
If
Set
Code
54 节点Dahiana
内容创作
完整的 B2B 销售流程
完整的 B2B 销售流程:Apollo 潜在客户生成、Mailgun 外展和 AI 回复管理
If
Set
Code
+
If
Set
Code
116 节点Paul
内容创作
每日 WhatsApp 群组智能分析:GPT-4.1 分析与语音消息转录
每日 WhatsApp 群组智能分析:GPT-4.1 分析与语音消息转录
If
Set
Code
+
If
Set
Code
52 节点Daniel Lianes
杂项
AI驱动博客自动化
AI驱动博客自动化:使用GPT-4生成并发布SEO文章至WordPress和Twitter
If
Set
Code
+
If
Set
Code
144 节点Jay Emp0
内容创作
从趋势电子表格生成SEO内容到存储(SharePoint/Drive/Dropbox)
使用GPT-4o、FAL AI和多存储支持从趋势自动生成SEO内容
If
Set
Code
+
If
Set
Code
47 节点plemeo
内容创作
工作流信息
难度等级
高级
节点数量72
分类2
节点类型15
作者
gotoHuman
@gotohumanApprove critical actions in gotoHuman’s customizable review interface and edit AI outputs manually or by looping back to your workflow. Ensure AI-generated content is on-brand, messages to customers are accurate, and high-stakes decisions are made by humans.
外部链接
在 n8n.io 查看 →
分享此工作流