8
n8n 中文网amn8n.com

使用VEO 3、OpenAI和Airtable的产品营销素材生成器

高级

这是一个Content Creation, Multimodal AI领域的自动化工作流,包含 47 个节点。主要使用 If, Code, Wait, Limit, Switch 等节点。 使用VEO 3、OpenAI和Airtable的产品营销素材生成器

前置要求
  • HTTP Webhook 端点(n8n 会自动生成)
  • Airtable API Key
  • 可能需要目标 API 的认证凭证
  • OpenAI API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "meta": {
    "instanceId": "fbc83cebaa69a3c183d3b7588ce0bba87431a0babc33a24f85800f22f9e86149",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "1d997e1f-83ba-4b13-89e4-037bbe762462",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -240,
        272
      ],
      "webhookId": "ead5af4f-b799-4fa9-a4c6-5f44be974553",
      "parameters": {
        "path": "test-button",
        "options": {}
      },
      "typeVersion": 2.1
    },
    {
      "id": "4bfe1dc6-813f-48be-9fcf-c326759d75bc",
      "name": "Switch",
      "type": "n8n-nodes-base.switch",
      "position": [
        -64,
        272
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "imageGeneration",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "bd840893-2fbd-48b2-a6c9-791a7a248579",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.query.action }}",
                    "rightValue": "imageGeneration"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "videoGeneration",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "bda6d21c-3bd3-4624-b9e0-c581a481edcc",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.query.action }}",
                    "rightValue": "videoGeneration"
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "928ae0c9-d721-4480-81a1-0d15449b9b82",
      "name": "获取概念记录ID - 图像生成",
      "type": "n8n-nodes-base.airtable",
      "position": [
        48,
        112
      ],
      "parameters": {
        "id": "={{ $json.query.recordId }}",
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appH2OEGW78g0qSOw",
          "cachedResultUrl": "https://airtable.com/appH2OEGW78g0qSOw",
          "cachedResultName": "AI-powered campaign concept generation"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tbliQfQHTLEw6henQ",
          "cachedResultUrl": "https://airtable.com/appH2OEGW78g0qSOw/tbliQfQHTLEw6henQ",
          "cachedResultName": "Concept Generation"
        },
        "options": {}
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "rNwaess4ztozMIcw",
          "name": "Airtable Agenia Outbound"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "afa89c67-b217-439e-99bb-15236a629661",
      "name": "获取所有 img_url",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        656,
        112
      ],
      "parameters": {
        "text": "Describe the product and brand in this image in full detail. Fully ignore the background. Focus ONLY on the product.",
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "chatgpt-4o-latest",
          "cachedResultName": "CHATGPT-4O-LATEST"
        },
        "options": {},
        "resource": "image",
        "imageUrls": "={{ $json.url }}",
        "operation": "analyze"
      },
      "credentials": {
        "openAiApi": {
          "id": "0rtpbZXfylvSTq46",
          "name": "OpenAi account 2"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "78e4c04c-b58d-48f2-98a9-c9752b6fdd90",
      "name": "分离上传的资源",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        256,
        112
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "['Upload Assets']"
      },
      "typeVersion": 1
    },
    {
      "id": "85d13c1f-b41f-4f12-91d9-e868bed021e7",
      "name": "循环处理图像资源",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        480,
        112
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "6328b318-b2ad-45d3-8d13-a70296fa04d8",
      "name": "代码",
      "type": "n8n-nodes-base.code",
      "position": [
        1600,
        112
      ],
      "parameters": {
        "jsCode": "// Get the URL string from the aggregate node\nconst urlString = $json.url;\n\n// Split the comma-separated URLs and format each with quotes\nconst formattedUrls = urlString\n  .flatMap(urlString => {\n    if (typeof urlString === \"string\") {\n      return urlString.split(',');\n    }\n    return [];\n  })\n  .map(url => `\"${url.trim()}\"`)\n  .join(',\\n');\n\n// Return the formatted result\nreturn {\n  formattedUrls: formattedUrls\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "bd2173af-e924-408f-9d9c-a06e898d7acb",
      "name": "生成系统提示图像 GPT-Image",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        1760,
        112
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-5",
          "cachedResultName": "GPT-5"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "=Here is the user request for the Images to be created:\n{{ $('Get Concept Record ID - Image Generation - 2').item.json['AI Images instructions'] }}\n\nHere is the Campaign Objective:\n{{ $('Get Concept Record ID - Image Generation').first().json.Description }}\n\nDescription of the Products seen in various images submitted by the user:\n{{ $('Aggregate Content Output').item.json.content }}\n\nUse the Think tool to double check your output"
            },
            {
              "role": "system",
              "content": "=You are an expert image generation prompt engineer specializing in OpenAI's GPT-4o image generation capabilities. Your role is to analyze campaign concepts and product reference images to create detailed, structured prompts that will generate high-quality marketing visuals.\n\nTASK: Transform the provided creative brief and product descriptions into a comprehensive image generation prompt formatted as stringified JSON that will work alongside user-provided reference images.\n\nINPUT ANALYSIS:\n- Campaign Concept: Carefully analyze the creative brief to understand the marketing goals, target audience, brand tone, and desired visual style\n- Product References: Examine the product descriptions from submitted images to identify key visual elements, packaging details, branding elements, colors, and design features\n- Reference Integration: The prompt will be used by an image generation API that will receive BOTH your text prompt AND the user's reference images simultaneously\n\nPROMPT LENGTH OPTIMIZATION:\nGPT Image 1 (GPT-4o) handles longer prompts better than DALL-E 3 but still benefits from concise, focused descriptions. Target 400-800 characters for optimal results - detailed enough for quality but not overly verbose.\n\nESSENTIAL ELEMENTS (prioritize in order):\n1. CORE SCENE: Main subject + setting + reference integration\n2. VISUAL STYLE: Photography style, lighting, composition  \n3. QUALITY SPECIFICATIONS: Technical details (realistic, sharp, etc.)\n4. FALLBACK: Alternative if no reference images provided\n\nKEY ADVANTAGES OF GPT IMAGE 1:\n- Excellent text rendering and product detail preservation\n- Strong prompt adherence and contextual understanding\n- Natural language processing (conversational prompts work well)\n- Superior handling of detailed technical specifications\n\nREFERENCE IMAGE INTEGRATION STRATEGY:\nYour prompt must describe a SCENARIO where the user's reference images (products, objects, people, etc.) will be seamlessly integrated. Structure your prompt to:\n- Define the ENVIRONMENT and CONTEXT where reference elements should be placed\n- Specify how reference elements should INTERACT with the scene\n- Provide fallback descriptions in case reference images are not provided\n- Use phrases like \"incorporate the provided reference elements,\" \"integrate the uploaded objects,\" or \"place the reference items\"\n\nPROMPT QUALITY STANDARDS:\n- Be highly specific and detailed - vague prompts produce poor results\n- Use descriptive adjectives and precise terminology\n- Include technical photography terms for professional quality\n- Specify exact colors, materials, textures, and finishes\n- Define spatial relationships between elements\n- Account for brand guidelines and marketing objectives from the brief\n\nOUTPUT FORMAT:\nReturn only a valid stringified JSON object:\n{\"image_prompt\": \"Your comprehensive image generation prompt here...\"}\n\nOPTIMIZED SINGLE PARAGRAPH FORMAT:\nYour image_prompt should be ONE well-structured paragraph (1000-1500 characters) that creates a comprehensive scenario for integrating reference images while providing fallback descriptions.\n\nEXAMPLE STRUCTURE:\n\"Create a professional commercial photograph of [REFERENCE ITEMS/fallback description] positioned in [SPECIFIC SETTING] with [DETAILED LIGHTING DESCRIPTION], featuring [COMPOSITION DETAILS] that showcases [KEY VISUAL ELEMENTS], captured with [CAMERA/STYLE SPECIFICATIONS] to achieve [QUALITY/EFFECTS] aesthetic, ensuring any product packaging, labels, and logos remain crystal clear and sharp, with colors that complement the overall scene and realistic depth of field.\"\n\nADVANCED PROMPTING TIPS:\n- GPT Image 1 excels at understanding conversational, detailed prompts\n- Include specific technical photography terms for professional results\n- Mention text rendering requirements explicitly for product shots\n- Use descriptive adjectives for materials, textures, and finishes\n\nRemember: The more detailed and specific your single-paragraph prompt, the better GPT-4o will understand and execute your vision. Ensure all technical and creative elements flow seamlessly in one continuous description."
            }
          ]
        },
        "jsonOutput": true
      },
      "credentials": {
        "openAiApi": {
          "id": "0rtpbZXfylvSTq46",
          "name": "OpenAi account 2"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "742238c2-1c73-4f6f-81b9-407ae3491761",
      "name": "获取概念记录ID - 图像生成 - 2",
      "type": "n8n-nodes-base.airtable",
      "position": [
        1040,
        112
      ],
      "parameters": {
        "id": "={{ $('Get Concept Record ID - Image Generation').first().json.id }}",
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appH2OEGW78g0qSOw",
          "cachedResultUrl": "https://airtable.com/appH2OEGW78g0qSOw",
          "cachedResultName": "AI-powered campaign concept generation"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tbliQfQHTLEw6henQ",
          "cachedResultUrl": "https://airtable.com/appH2OEGW78g0qSOw/tbliQfQHTLEw6henQ",
          "cachedResultName": "Concept Generation"
        },
        "options": {}
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "rNwaess4ztozMIcw",
          "name": "Airtable Agenia Outbound"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "e75dfe1d-c050-406f-af84-ee47f25748d1",
      "name": "分离 - 上传资源",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1248,
        112
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "['Upload Assets']"
      },
      "typeVersion": 1
    },
    {
      "id": "a81e90b4-e7fc-454a-8119-48e2935c8ce9",
      "name": "聚合内容输出",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        848,
        112
      ],
      "parameters": {
        "options": {},
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "fieldToAggregate": "content"
            },
            {
              "fieldToAggregate": "url"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "636ef5bd-a91b-4843-ade7-4264e810f6e9",
      "name": "聚合图像URL",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        1440,
        112
      ],
      "parameters": {
        "options": {},
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "fieldToAggregate": "url"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "1551847b-acea-4105-b93a-a4af4c8f21b1",
      "name": "检索 4o 图像",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2624,
        112
      ],
      "parameters": {
        "url": "https://api.kie.ai/api/v1/gpt4o-image/record-info",
        "options": {},
        "sendQuery": true,
        "sendHeaders": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "taskId",
              "value": "={{ $json.data.taskId }}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "=Bearer {{ $('Get Concept Record ID - Image Generation - 2').item.json['API Key (from API Services) (from Agency)'][0] }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "548f5ff0-37c9-4b50-8fae-7d8579c8b8fc",
      "name": "如果成功",
      "type": "n8n-nodes-base.if",
      "position": [
        2272,
        112
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "f8fc1069-c56a-483d-9257-6669d9eb9031",
              "operator": {
                "type": "number",
                "operation": "equals"
              },
              "leftValue": "={{ $json.code }}",
              "rightValue": 200
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "623be8ce-9cb8-4d93-92ad-7d038d7f0747",
      "name": "创建或更新记录",
      "type": "n8n-nodes-base.airtable",
      "position": [
        2816,
        112
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appH2OEGW78g0qSOw",
          "cachedResultUrl": "https://airtable.com/appH2OEGW78g0qSOw",
          "cachedResultName": "AI-powered campaign concept generation"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tbliQfQHTLEw6henQ",
          "cachedResultUrl": "https://airtable.com/appH2OEGW78g0qSOw/tbliQfQHTLEw6henQ",
          "cachedResultName": "Concept Generation"
        },
        "columns": {
          "value": {
            "id": "={{ $('Get Concept Record ID - Image Generation - 2').first().json.id }}",
            "Run": false,
            "Image Status": "Success",
            "Images Assets": "={{ $json.data.response.resultUrls.map(url => ({ url })) }}",
            "Images Prompt ": "={{ $('Generate System Prompt Images GPT-Image').item.json.message.content.image_prompt }}",
            "Images Description": "={{ String($('Aggregate Content Output').item.json.content) }}"
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "id",
              "defaultMatch": true
            },
            {
              "id": "Campaign",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Campaign",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Description",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Upload Assets",
              "type": "array",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Upload Assets",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Images Description",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Images Description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Run",
              "type": "boolean",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Run",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Details Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Start",
                  "value": "Start"
                },
                {
                  "name": "Generating",
                  "value": "Generating"
                },
                {
                  "name": "Completed",
                  "value": "Completed"
                },
                {
                  "name": "Error",
                  "value": "Error"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Details Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Personas",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Personas",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Key messages",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Key messages",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Brand touchpoints",
              "type": "array",
              "display": true,
              "options": [],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Brand touchpoints",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "AI Images instructions",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "AI Images instructions",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "AI Videos instructions",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "AI Videos instructions",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Number of Images",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "1",
                  "value": "1"
                },
                {
                  "name": "2",
                  "value": "2"
                },
                {
                  "name": "4",
                  "value": "4"
                },
                {
                  "name": "choose number",
                  "value": "choose number"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Number of Images",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Image Size",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "1:1",
                  "value": "1:1"
                },
                {
                  "name": "3:2",
                  "value": "3:2"
                },
                {
                  "name": "2:3",
                  "value": "2:3"
                },
                {
                  "name": "choose size",
                  "value": "choose size"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Image Size",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Image Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Generating",
                  "value": "Generating"
                },
                {
                  "name": "Failed",
                  "value": "Failed"
                },
                {
                  "name": "Success",
                  "value": "Success"
                },
                {
                  "name": "waiting",
                  "value": "waiting"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Image Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Images Prompt ",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Images Prompt ",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Images Assets",
              "type": "array",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Images Assets",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "AI Model",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "veo3",
                  "value": "veo3"
                },
                {
                  "name": "veo3_fast",
                  "value": "veo3_fast"
                },
                {
                  "name": "choose model",
                  "value": "choose model"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "AI Model",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Aspect Ratio",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "16:9",
                  "value": "16:9"
                },
                {
                  "name": "9:16",
                  "value": "9:16"
                },
                {
                  "name": "choose aspect ratio",
                  "value": "choose aspect ratio"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Aspect Ratio",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Video Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "waiting",
                  "value": "waiting"
                },
                {
                  "name": "generating",
                  "value": "generating"
                },
                {
                  "name": "failed",
                  "value": "failed"
                },
                {
                  "name": "success",
                  "value": "success"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Video Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Videos Assets",
              "type": "array",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Videos Assets",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Record ID",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "Record ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Agency",
              "type": "array",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Agency",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Created Time",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "Created Time",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Last Modified Time",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "Last Modified Time",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "API Key (from API Services) (from Agency)",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "API Key (from API Services) (from Agency)",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "upsert"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "rNwaess4ztozMIcw",
          "name": "Airtable Agenia Outbound"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "b2b223f6-66b7-43bc-b621-70ad10f555a5",
      "name": "获取概念记录ID - 视频生成",
      "type": "n8n-nodes-base.airtable",
      "position": [
        48,
        416
      ],
      "parameters": {
        "id": "={{ $json.query.recordId }}",
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appH2OEGW78g0qSOw",
          "cachedResultUrl": "https://airtable.com/appH2OEGW78g0qSOw",
          "cachedResultName": "AI-powered campaign concept generation"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tbliQfQHTLEw6henQ",
          "cachedResultUrl": "https://airtable.com/appH2OEGW78g0qSOw/tbliQfQHTLEw6henQ",
          "cachedResultName": "Concept Generation"
        },
        "options": {}
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "rNwaess4ztozMIcw",
          "name": "Airtable Agenia Outbound"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "20726688-a8bc-4c76-82e9-2157b6c1057f",
      "name": "更新图像生成失败状态",
      "type": "n8n-nodes-base.airtable",
      "position": [
        3008,
        112
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appH2OEGW78g0qSOw",
          "cachedResultUrl": "https://airtable.com/appH2OEGW78g0qSOw",
          "cachedResultName": "AI-powered campaign concept generation"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tbliQfQHTLEw6henQ",
          "cachedResultUrl": "https://airtable.com/appH2OEGW78g0qSOw/tbliQfQHTLEw6henQ",
          "cachedResultName": "Concept Generation"
        },
        "columns": {
          "value": {
            "id": "={{ $('Webhook').item.json.query.recordId }}",
            "Run": false,
            "Image Status": "Failed"
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "id",
              "defaultMatch": true
            },
            {
              "id": "Campaign",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Campaign",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Description",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Upload Assets",
              "type": "array",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Upload Assets",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Images Description",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Images Description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Run",
              "type": "boolean",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Run",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Details Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Start",
                  "value": "Start"
                },
                {
                  "name": "Generating",
                  "value": "Generating"
                },
                {
                  "name": "Completed",
                  "value": "Completed"
                },
                {
                  "name": "Error",
                  "value": "Error"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Details Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Personas",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Personas",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Key messages",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Key messages",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Brand touchpoints",
              "type": "array",
              "display": true,
              "options": [],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Brand touchpoints",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "AI Images instructions",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "AI Images instructions",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "AI Videos instructions",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "AI Videos instructions",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Number of Images",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "1",
                  "value": "1"
                },
                {
                  "name": "2",
                  "value": "2"
                },
                {
                  "name": "4",
                  "value": "4"
                },
                {
                  "name": "choose number",
                  "value": "choose number"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Number of Images",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Image Size",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "1:1",
                  "value": "1:1"
                },
                {
                  "name": "3:2",
                  "value": "3:2"
                },
                {
                  "name": "2:3",
                  "value": "2:3"
                },
                {
                  "name": "choose size",
                  "value": "choose size"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Image Size",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Image Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Generating",
                  "value": "Generating"
                },
                {
                  "name": "Failed",
                  "value": "Failed"
                },
                {
                  "name": "Success",
                  "value": "Success"
                },
                {
                  "name": "waiting",
                  "value": "waiting"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Image Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Images Prompt ",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Images Prompt ",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Images Assets",
              "type": "array",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Images Assets",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "AI Model",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "veo3",
                  "value": "veo3"
                },
                {
                  "name": "veo3_fast",
                  "value": "veo3_fast"
                },
                {
                  "name": "choose model",
                  "value": "choose model"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "AI Model",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Aspect Ratio",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "16:9",
                  "value": "16:9"
                },
                {
                  "name": "9:16",
                  "value": "9:16"
                },
                {
                  "name": "choose aspect ratio",
                  "value": "choose aspect ratio"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Aspect Ratio",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Video Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "waiting",
                  "value": "waiting"
                },
                {
                  "name": "generating",
                  "value": "generating"
                },
                {
                  "name": "failed",
                  "value": "failed"
                },
                {
                  "name": "success",
                  "value": "success"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Video Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Videos Assets",
              "type": "array",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Videos Assets",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Record ID",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "Record ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Agency",
              "type": "array",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Agency",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Created Time",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "Created Time",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Last Modified Time",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "Last Modified Time",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "API Key (from API Services) (from Agency)",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "API Key (from API Services) (from Agency)",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "rNwaess4ztozMIcw",
          "name": "Airtable Agenia Outbound"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "642daf47-858f-44bc-8902-05c8cbee3e00",
      "name": "分离 - 图像资源",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        256,
        416
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "['Images Assets']"
      },
      "typeVersion": 1
    },
    {
      "id": "c4887877-8be7-4f3c-bc97-29e05e49d3e9",
      "name": "聚合 - 图像URL",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        656,
        416
      ],
      "parameters": {
        "options": {},
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "fieldToAggregate": "url"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "224f74db-e7fa-48a3-8f77-ddea7e9f6949",
      "name": "代码 - 格式化URL",
      "type": "n8n-nodes-base.code",
      "position": [
        864,
        416
      ],
      "parameters": {
        "jsCode": "// Get the URL string from the aggregate node\nconst urlString = $json.url;\n\n// Split the comma-separated URLs and format each with quotes\nconst formattedUrls = urlString\n  .flatMap(urlString => {\n    if (typeof urlString === \"string\") {\n      return urlString.split(',');\n    }\n    return [];\n  })\n  .map(url => `\"${url.trim()}\"`)\n  .join(',\\n');\n\n// Return the formatted result\nreturn {\n  formattedUrls: formattedUrls\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "45fbf8d0-3aba-4932-9cba-2f3048eb46e0",
      "name": "生成系统提示视频 VEO3",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        1072,
        416
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-5-2025-08-07",
          "cachedResultName": "GPT-5-2025-08-07"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "=Here is the user request of the video generation:\n{{ $('Get a Concept Record ID - Video Generation').item.json['AI Videos instructions'] }}\n\nHere is the Campaign objectives:\n{{ $('Get a Concept Record ID - Video Generation').item.json.Campaign }}\n\n{{ $('Get a Concept Record ID - Video Generation').item.json.Description }}\n\nHere is the Images Description inputed by the user:\n{{ $('Get a Concept Record ID - Video Generation').item.json['Images Description'] }}\n\nHere is the requested aspect ratio by the user:\n{{ $('Get a Concept Record ID - Video Generation').item.json['Aspect Ratio'] }}\n\nUse the Think tool to double check your output"
            },
            {
              "role": "system",
              "content": "=# Veo3 Video Generation System Prompt\n\nYou are an expert video prompt engineer specializing in creating detailed, cinematic prompts for Veo3 video generation. Your role is to analyze user inputs and transform them into comprehensive video generation instructions that produce high-quality, engaging content.\n\n## Input Analysis\nYou will receive the following user inputs:\n- **AI Videos instructions**: The core user request for video generation\n- **Campaign objectives**: The marketing campaign goals and description\n- **Images Description**: Visual context provided by the user\n- **Aspect Ratio**: Requested video dimensions\n\n## Output Format\nYou must output ONLY a stringified JSON object with this exact structure:\n```json\n{\"Video_prompt\": \"{\\\"description\\\": \\\"your detailed scene description here\\\", \\\"setting\\\": \\\"environment and background details\\\", \\\"camera_type\\\": \\\"technical camera specifications\\\", \\\"camera_movement\\\": \\\"camera motion and framing\\\", \\\"action\\\": \\\"specific movements and timing\\\", \\\"lighting\\\": \\\"lighting setup and mood\\\", \\\"other_details\\\": \\\"additional production notes\\\", \\\"ending\\\": \\\"final shot and resolution\\\", \\\"keywords\\\": [\\\"relevant\\\", \\\"search\\\", \\\"terms\\\"]}\"}\n```\n\n**CRITICAL**: The Video_prompt value must be a stringified JSON object (JSON within JSON as a string). Ensure all quotes inside the stringified JSON are properly escaped with backslashes.\n\n## Prompt Construction Guidelines\n\n### Core Elements to Include:\n1. **Visual Description**: Detailed scene composition, subjects, and visual elements\n2. **Setting/Environment**: Location, atmosphere, and background details\n3. **Camera Work**: Shot type, movement, angles, and technical specifications\n4. **Lighting**: Mood, direction, and quality of light\n5. **Motion/Action**: Specific movements, transitions, and timing\n6. **Style**: Cinematic approach, visual aesthetic, and production quality\n7. **Technical Details**: Frame rate, resolution hints, and aspect ratio integration\n\n### Quality Standards:\n- Use cinematic, professional language\n- Include specific technical details (camera specs, lighting setup)\n- Describe motion and timing precisely\n- Maintain brand consistency with campaign objectives\n- Ensure visual coherence with provided image descriptions\n- Incorporate the requested aspect ratio naturally\n\n### Example Prompt Patterns:\nReference these successful structures:\n\n**High-Quality Commercial Example (Kellogg's Nutri-Grain) - Expected Output Format:**\n```json\n{\"Video_prompt\": \"{\\\"description\\\": \\\"Open on the Kellogg's Nutri-Grain Choc Malt Flavour box, placed centrally and heroically on a glossy surface. Product box is 100% sharp, all labels clear. Instantly, bursts of chocolate pieces, malt balls, cereal flakes, and dramatic milk splashes explode upward and outward from behind and around the box in cinematic slow motion, emphasizing the natural flavours and ingredients. Pieces freeze and suspend at peak motion, reveling in vibrant energy.\\\", \\\"setting\\\": \\\"Commercial studio scene matching the image, vibrant gold-red gradient background reflecting the packaging color scheme.\\\", \\\"camera_type\\\": \\\"Cinematic 4K broadcast camera, 50mm lens, 120fps slow-motion, f/5.6, ISO 200.\\\", \\\"camera_movement\\\": \\\"Slow, controlled dolly-in toward the box as ingredients explode, ending in a tight hero shot.\\\", \\\"action\\\": \\\"Bursts of real chocolate, malt, flakes, and milk erupt in slow motion from the background, swirling around before freezing midair, creating a spectacle around the box.\\\", \\\"lighting\\\": \\\"Bold studio lighting with bright frontal illumination, strong backlights to make the splashes pop and add glossy highlights.\\\", \\\"other_details\\\": \\\"All text on the box always kept readable; the explosion is energetic pop soundtrack underscoring the explosive freshness and power.\\\", \\\"ending\\\": \\\"The video ends with the suspended explosion around the box, tagline \\\\\\\"Fuels Active Bodies\\\\\\\" animating on-screen, all in sync with the music hit.\\\", \\\"keywords\\\": [\\\"Kellogg's Nutri-Grain Choc Malt\\\", \\\"explosive ingredients\\\", \\\"slow motion\\\", \\\"dynamic commercial\\\", \\\"16:9\\\", \\\"commercial lighting\\\"]}\"}\n```\n\n**Commercial Product Focus Pattern:**\n\"Cinematic 4K shot of [PRODUCT] placed heroically on [SURFACE]. [DYNAMIC ELEMENTS] explode/burst/emerge in slow motion, creating [VISUAL SPECTACLE]. Camera: [TECHNICAL SPECS]. Lighting: [SETUP]. Motion: [DETAILED ACTION]. Ending: [RESOLUTION].\"\n\n**Transformation/Assembly Pattern:**\n\"Fixed wide-angle shot of [ENVIRONMENT]. [CONTAINER/BOX] sits centrally and [INITIAL ACTION]. [TRANSFORMATION SEQUENCE] with precise timing. Elements: [LIST]. Motion: [ASSEMBLY DETAILS]. Style: cinematic, photorealistic.\"\n\n**Epic Reveal Pattern:**\n\"Epic cinematic shot in [LOCATION]. [CONTAINER] mechanically opens revealing [HERO PRODUCT]. Camera: [MOVEMENT]. Lighting: [DRAMATIC SETUP]. Environment: [ATMOSPHERE]. Motion: [REVEAL SEQUENCE].\"\n\n## Processing Instructions:\n1. Analyze the campaign objectives to understand the brand message and tone\n2. Incorporate the user's video instructions as the core creative direction\n3. Use the images description to inform visual style and composition\n4. Integrate the aspect ratio requirement seamlessly into camera and framing descriptions\n5. Create a cohesive narrative that serves the campaign goals\n6. Ensure all technical specifications support professional video production quality\n\n## Output Requirements:\n- Maximum prompt length: 500 words\n- Include specific technical details (camera, lighting, motion)\n- Maintain cinematic language and professional terminology\n- Ensure brand alignment with campaign objectives\n- Specify aspect ratio integration\n- Include timing and sequence details for complex actions\n- End with clear resolution or call-to-action alignment\n\n## Quality Checklist:\n- [ ] Cinematic and professional language used\n- [ ] Technical camera specifications included\n- [ ] Lighting setup described\n- [ ] Motion/action clearly detailed\n- [ ] Aspect ratio properly integrated\n- [ ] Campaign objectives reflected\n- [ ] Visual coherence with image descriptions\n- [ ] Professional production quality indicators included\n- [ ] Timing and sequence properly structured\n- [ ] Brand-appropriate tone maintained\n\nRemember: Your output must be ONLY the stringified JSON object with the Video_prompt containing a stringified JSON structure. Do not include any other text, explanations, or formatting outside of the required JSON structure. The Video_prompt value should be a complete JSON object converted to a string with properly escaped quotes."
            }
          ]
        },
        "jsonOutput": true
      },
      "credentials": {
        "openAiApi": {
          "id": "0rtpbZXfylvSTq46",
          "name": "OpenAi account 2"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "4ddf5722-41ec-46a9-9859-3eccf5b724e8",
      "name": "思考 - VEO3",
      "type": "@n8n/n8n-nodes-langchain.toolThink",
      "position": [
        1152,
        528
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "c9824eed-7328-4c35-adea-7eab9c7fe9d1",
      "name": "思考 - GPT IMAG1",
      "type": "@n8n/n8n-nodes-langchain.toolThink",
      "position": [
        1840,
        224
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "771367bf-3c1c-49ce-baf2-d940305fcbb6",
      "name": "如果成功",
      "type": "n8n-nodes-base.if",
      "position": [
        1632,
        416
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "42ce1435-74b7-41c6-9a20-1017dc048a35",
              "operator": {
                "type": "number",
                "operation": "equals"
              },
              "leftValue": "={{ $json.code }}",
              "rightValue": 200
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "327cb892-e136-421b-b5da-553507d1741b",
      "name": "限制1张图像 - API限制",
      "type": "n8n-nodes-base.limit",
      "position": [
        464,
        416
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "6e291e3f-572b-4c72-8314-bf66a9ab677c",
      "name": "检索视频 - 1080p - 视频",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2016,
        416
      ],
      "parameters": {
        "url": "https://api.kie.ai/api/v1/veo/record-info",
        "options": {},
        "sendQuery": true,
        "sendHeaders": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "taskId",
              "value": "={{ $json.data.taskId }}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "=Bearer {{ $('Get a Concept Record ID - Video Generation').item.json['API Key (from API Services) (from Agency)'][0] }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "86efc895-d870-4fb1-82a0-6cdf35e7b63b",
      "name": "更新视频资源结果",
      "type": "n8n-nodes-base.airtable",
      "position": [
        2400,
        416
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appH2OEGW78g0qSOw",
          "cachedResultUrl": "https://airtable.com/appH2OEGW78g0qSOw",
          "cachedResultName": "AI-powered campaign concept generation"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tbliQfQHTLEw6henQ",
          "cachedResultUrl": "https://airtable.com/appH2OEGW78g0qSOw/tbliQfQHTLEw6henQ",
          "cachedResultName": "Concept Generation"
        },
        "columns": {
          "value": {
            "id": "={{ $('Webhook').item.json.query.recordId }}",
            "Run": false,
            "Video Status": "success",
            "Videos Assets": "={{ [ { \"url\": $json.data.response.resultUrls[0] } ] }}"
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "id",
              "defaultMatch": true
            },
            {
              "id": "Campaign",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Campaign",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Description",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Upload Assets",
              "type": "array",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Upload Assets",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Images Description",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Images Description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Run",
              "type": "boolean",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Run",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Details Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Start",
                  "value": "Start"
                },
                {
                  "name": "Generating",
                  "value": "Generating"
                },
                {
                  "name": "Completed",
                  "value": "Completed"
                },
                {
                  "name": "Error",
                  "value": "Error"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Details Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Personas",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Personas",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Key messages",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Key messages",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Brand touchpoints",
              "type": "array",
              "display": true,
              "options": [],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Brand touchpoints",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "AI Images instructions",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "AI Images instructions",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "AI Videos instructions",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "AI Videos instructions",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Number of Images",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "1",
                  "value": "1"
                },
                {
                  "name": "2",
                  "value": "2"
                },
                {
                  "name": "4",
                  "value": "4"
                },
                {
                  "name": "choose number",
                  "value": "choose number"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Number of Images",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Image Size",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "1:1",
                  "value": "1:1"
                },
                {
                  "name": "3:2",
                  "value": "3:2"
                },
                {
                  "name": "2:3",
                  "value": "2:3"
                },
                {
                  "name": "choose size",
                  "value": "choose size"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Image Size",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Image Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Generating",
                  "value": "Generating"
                },
                {
                  "name": "Failed",
                  "value": "Failed"
                },
                {
                  "name": "Success",
                  "value": "Success"
                },
                {
                  "name": "waiting",
                  "value": "waiting"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Image Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Images Prompt ",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Images Prompt ",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Images Assets",
              "type": "array",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Images Assets",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "AI Model",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "veo3",
                  "value": "veo3"
                },
                {
                  "name": "veo3_fast",
                  "value": "veo3_fast"
                },
                {
                  "name": "choose model",
                  "value": "choose model"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "AI Model",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Aspect Ratio",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "16:9",
                  "value": "16:9"
                },
                {
                  "name": "9:16",
                  "value": "9:16"
                },
                {
                  "name": "choose aspect ratio",
                  "value": "choose aspect ratio"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Aspect Ratio",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Video Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "waiting",
                  "value": "waiting"
                },
                {
                  "name": "generating",
                  "value": "generating"
                },
                {
                  "name": "failed",
                  "value": "failed"
                },
                {
                  "name": "success",
                  "value": "success"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Video Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Videos Assets",
              "type": "array",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Videos Assets",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Record ID",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "Record ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Agency",
              "type": "array",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Agency",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Created Time",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "Created Time",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Last Modified Time",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "Last Modified Time",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "API Key (from API Services) (from Agency)",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "API Key (from API Services) (from Agency)",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "rNwaess4ztozMIcw",
          "name": "Airtable Agenia Outbound"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "08a77927-8dc3-4ee1-8cbf-fd55860082e2",
      "name": "如果视频成功",
      "type": "n8n-nodes-base.if",
      "position": [
        2208,
        416
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "c1a499eb-dfc2-4da3-ac3c-064daa941f46",
              "operator": {
                "type": "number",
                "operation": "equals"
              },
              "leftValue": "={{ $json.code }}",
              "rightValue": 200
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "c89e2dad-3323-4ea0-b9d8-86e798769fc4",
      "name": "更新获取失败状态",
      "type": "n8n-nodes-base.airtable",
      "position": [
        2208,
        544
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appH2OEGW78g0qSOw",
          "cachedResultUrl": "https://airtable.com/appH2OEGW78g0qSOw",
          "cachedResultName": "AI-powered campaign concept generation"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tbliQfQHTLEw6henQ",
          "cachedResultUrl": "https://airtable.com/appH2OEGW78g0qSOw/tbliQfQHTLEw6henQ",
          "cachedResultName": "Concept Generation"
        },
        "columns": {
          "value": {
            "id": "={{ $('Webhook').item.json.query.recordId }}",
            "Run": false,
            "Video Status": "failed"
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "id",
              "defaultMatch": true
            },
            {
              "id": "Campaign",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Campaign",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Description",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Upload Assets",
              "type": "array",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Upload Assets",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Images Description",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Images Description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Run",
              "type": "boolean",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Run",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Details Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Start",
                  "value": "Start"
                },
                {
                  "name": "Generating",
                  "value": "Generating"
                },
                {
                  "name": "Completed",
                  "value": "Completed"
                },
                {
                  "name": "Error",
                  "value": "Error"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Details Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Personas",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Personas",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Key messages",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Key messages",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Brand touchpoints",
              "type": "array",
              "display": true,
              "options": [],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Brand touchpoints",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "AI Images instructions",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "AI Images instructions",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "AI Videos instructions",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "AI Videos instructions",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Number of Images",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "1",
                  "value": "1"
                },
                {
                  "name": "2",
                  "value": "2"
                },
                {
                  "name": "4",
                  "value": "4"
                },
                {
                  "name": "choose number",
                  "value": "choose number"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Number of Images",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Image Size",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "1:1",
                  "value": "1:1"
                },
                {
                  "name": "3:2",
                  "value": "3:2"
                },
                {
                  "name": "2:3",
                  "value": "2:3"
                },
                {
                  "name": "choose size",
                  "value": "choose size"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Image Size",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Image Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Generating",
                  "value": "Generating"
                },
                {
                  "name": "Failed",
                  "value": "Failed"
                },
                {
                  "name": "Success",
                  "value": "Success"
                },
                {
                  "name": "waiting",
                  "value": "waiting"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Image Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Images Prompt ",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Images Prompt ",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Images Assets",
              "type": "array",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Images Assets",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "AI Model",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "veo3",
                  "value": "veo3"
                },
                {
                  "name": "veo3_fast",
                  "value": "veo3_fast"
                },
                {
                  "name": "choose model",
                  "value": "choose model"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "AI Model",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Aspect Ratio",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "16:9",
                  "value": "16:9"
                },
                {
                  "name": "9:16",
                  "value": "9:16"
                },
                {
                  "name": "choose aspect ratio",
                  "value": "choose aspect ratio"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Aspect Ratio",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Video Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "waiting",
                  "value": "waiting"
                },
                {
                  "name": "generating",
                  "value": "generating"
                },
                {
                  "name": "failed",
                  "value": "failed"
                },
                {
                  "name": "success",
                  "value": "success"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Video Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Videos Assets",
              "type": "array",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Videos Assets",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Record ID",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "Record ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Agency",
              "type": "array",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Agency",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Created Time",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "Created Time",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Last Modified Time",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "Last Modified Time",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "API Key (from API Services) (from Agency)",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "API Key (from API Services) (from Agency)",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "rNwaess4ztozMIcw",
          "name": "Airtable Agenia Outbound"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "f1c53ff4-824e-48f6-b0d6-605edc76ccdb",
      "name": "更新视频生成失败状态",
      "type": "n8n-nodes-base.airtable",
      "position": [
        1632,
        544
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appH2OEGW78g0qSOw",
          "cachedResultUrl": "https://airtable.com/appH2OEGW78g0qSOw",
          "cachedResultName": "AI-powered campaign concept generation"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tbliQfQHTLEw6henQ",
          "cachedResultUrl": "https://airtable.com/appH2OEGW78g0qSOw/tbliQfQHTLEw6henQ",
          "cachedResultName": "Concept Generation"
        },
        "columns": {
          "value": {
            "id": "={{ $('Webhook').item.json.query.recordId }}",
            "Run": false,
            "Video Status": "failed"
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "id",
              "defaultMatch": true
            },
            {
              "id": "Campaign",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Campaign",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Description",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Upload Assets",
              "type": "array",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Upload Assets",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Images Description",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Images Description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Run",
              "type": "boolean",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Run",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Details Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Start",
                  "value": "Start"
                },
                {
                  "name": "Generating",
                  "value": "Generating"
                },
                {
                  "name": "Completed",
                  "value": "Completed"
                },
                {
                  "name": "Error",
                  "value": "Error"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Details Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Personas",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Personas",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Key messages",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Key messages",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Brand touchpoints",
              "type": "array",
              "display": true,
              "options": [],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Brand touchpoints",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "AI Images instructions",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "AI Images instructions",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "AI Videos instructions",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "AI Videos instructions",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Number of Images",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "1",
                  "value": "1"
                },
                {
                  "name": "2",
                  "value": "2"
                },
                {
                  "name": "4",
                  "value": "4"
                },
                {
                  "name": "choose number",
                  "value": "choose number"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Number of Images",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Image Size",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "1:1",
                  "value": "1:1"
                },
                {
                  "name": "3:2",
                  "value": "3:2"
                },
                {
                  "name": "2:3",
                  "value": "2:3"
                },
                {
                  "name": "choose size",
                  "value": "choose size"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Image Size",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Image Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Generating",
                  "value": "Generating"
                },
                {
                  "name": "Failed",
                  "value": "Failed"
                },
                {
                  "name": "Success",
                  "value": "Success"
                },
                {
                  "name": "waiting",
                  "value": "waiting"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Image Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Images Prompt ",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Images Prompt ",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Images Assets",
              "type": "array",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Images Assets",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "AI Model",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "veo3",
                  "value": "veo3"
                },
                {
                  "name": "veo3_fast",
                  "value": "veo3_fast"
                },
                {
                  "name": "choose model",
                  "value": "choose model"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "AI Model",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Aspect Ratio",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "16:9",
                  "value": "16:9"
                },
                {
                  "name": "9:16",
                  "value": "9:16"
                },
                {
                  "name": "choose aspect ratio",
                  "value": "choose aspect ratio"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Aspect Ratio",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Video Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "waiting",
                  "value": "waiting"
                },
                {
                  "name": "generating",
                  "value": "generating"
                },
                {
                  "name": "failed",
                  "value": "failed"
                },
                {
                  "name": "success",
                  "value": "success"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Video Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Videos Assets",
              "type": "array",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Videos Assets",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Record ID",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "Record ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Agency",
              "type": "array",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Agency",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Created Time",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "Created Time",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Last Modified Time",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "Last Modified Time",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "API Key (from API Services) (from Agency)",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "API Key (from API Services) (from Agency)",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "rNwaess4ztozMIcw",
          "name": "Airtable Agenia Outbound"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "57ec3575-bd31-4719-a620-6dfd8d8c6d29",
      "name": "等待180秒",
      "type": "n8n-nodes-base.wait",
      "position": [
        2448,
        112
      ],
      "webhookId": "8f6a7bec-abd2-48b8-b79d-4235051beda1",
      "parameters": {
        "amount": 180
      },
      "typeVersion": 1.1
    },
    {
      "id": "10ed8096-031d-4f25-8681-5edd419c233a",
      "name": "等待300秒 视频",
      "type": "n8n-nodes-base.wait",
      "position": [
        1824,
        416
      ],
      "webhookId": "8f6a7bec-abd2-48b8-b79d-4235051beda1",
      "parameters": {
        "amount": 240
      },
      "typeVersion": 1.1
    },
    {
      "id": "a109dacb-8fbd-4a3f-bac5-c566666aca31",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        416,
        48
      ],
      "parameters": {
        "color": 4,
        "width": 400,
        "height": 288,
        "content": "图像分析 LLM"
      },
      "typeVersion": 1
    },
    {
      "id": "7d320b00-ff2c-48b6-87ff-0318d4fc1418",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1744,
        48
      ],
      "parameters": {
        "color": 6,
        "width": 256,
        "height": 288,
        "content": "图像提示生成器"
      },
      "typeVersion": 1
    },
    {
      "id": "ef5713d3-cdf4-4246-bc97-3a496cd5e1aa",
      "name": "便签2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2016,
        48
      ],
      "parameters": {
        "color": 5,
        "width": 192,
        "height": 288,
        "content": "KIE AI 图像"
      },
      "typeVersion": 1
    },
    {
      "id": "64b24550-08fa-4f9b-bd38-bc38bc1cc868",
      "name": "便签3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2560,
        32
      ],
      "parameters": {
        "color": 5,
        "width": 208,
        "height": 320,
        "content": "KIE AI 图像"
      },
      "typeVersion": 1
    },
    {
      "id": "c2734cbf-8ad5-455a-a32b-da7ab577ee4a",
      "name": "便签4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1056,
        336
      ],
      "parameters": {
        "color": 6,
        "width": 272,
        "height": 320,
        "content": "视频提示生成器"
      },
      "typeVersion": 1
    },
    {
      "id": "b4c9a95c-efd2-4d73-9c0e-4710d586865f",
      "name": "便签5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1360,
        336
      ],
      "parameters": {
        "color": 5,
        "width": 224,
        "height": 256,
        "content": "KIE AI 视频"
      },
      "typeVersion": 1
    },
    {
      "id": "ce5a942c-4f9d-44fb-99a1-6efad300a1ce",
      "name": "便签6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1952,
        352
      ],
      "parameters": {
        "color": 5,
        "width": 224,
        "height": 240,
        "content": "KIE AI 视频"
      },
      "typeVersion": 1
    },
    {
      "id": "2e50a9a9-d882-4566-b287-54b68b3f2223",
      "name": "便签7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        192,
        352
      ],
      "parameters": {
        "color": 7,
        "width": 816,
        "height": 224,
        "content": "图像文件处理"
      },
      "typeVersion": 1
    },
    {
      "id": "40989e69-205d-4b14-80d4-12179d1d7591",
      "name": "便签8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        816,
        48
      ],
      "parameters": {
        "color": 7,
        "width": 928,
        "height": 224,
        "content": "图像文件处理"
      },
      "typeVersion": 1
    },
    {
      "id": "d5668629-8fdd-4188-a0da-43a82820dd6e",
      "name": "生成 4o 图像 -",
      "type": "n8n-nodes-base.httpRequest",
      "disabled": true,
      "position": [
        2800,
        416
      ],
      "parameters": {
        "url": "https://api.kie.ai/api/v1/gpt4o-image/generate",
        "method": "POST",
        "options": {
          "response": {
            "response": {}
          }
        },
        "jsonBody": "={\n  \"filesUrl\": [\n{{ $('Code').item.json.formattedUrls }}\n  ],\n  \"prompt\": \"Take the product in the image and place it in this scenario: {{ $json.message.content.image_prompt }}\",\n  \"size\": \"{{ $('Get Concept Record ID - Image Generation - 2').item.json['Image Size'] }}\",\n  \"nVariants\": {{ $('Get Concept Record ID - Image Generation - 2').item.json['Number of Images'] }}\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "=Bearer {{ $('Get Concept Record ID - Image Generation - 2').item.json['API Key (from API Services) (from Agency)'][0] }}"
            }
          ]
        }
      },
      "typeVersion": 4.2,
      "alwaysOutputData": false
    },
    {
      "id": "727a6c19-0dcd-48ba-ba12-c8bb7a433e7e",
      "name": "生成 4o 图像",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2064,
        112
      ],
      "parameters": {
        "url": "https://api.kie.ai/api/v1/gpt4o-image/generate",
        "method": "POST",
        "options": {
          "response": {
            "response": {}
          }
        },
        "sendBody": true,
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "filesUrl",
              "value": "={{ $('Code').item.json.formattedUrls }}"
            },
            {
              "name": "prompt",
              "value": "=Take the product in the image and place it in this scenario: {{ $json.message.content.image_prompt }}"
            },
            {
              "name": "size",
              "value": "={{ $('Get Concept Record ID - Image Generation - 2').item.json['Image Size'] }}"
            },
            {
              "name": "nVariants",
              "value": "={{ $('Get Concept Record ID - Image Generation - 2').item.json['Number of Images'] }}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "=Bearer {{ $('Get Concept Record ID - Image Generation - 2').item.json['API Key (from API Services) (from Agency)'][0] }}"
            }
          ]
        }
      },
      "typeVersion": 4.2,
      "alwaysOutputData": false
    },
    {
      "id": "61d2b0ea-a7f1-477a-adad-664a6eaa911e",
      "name": "生成视频 VEO 3",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1424,
        416
      ],
      "parameters": {
        "url": "https://api.kie.ai/api/v1/veo/generate",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"prompt\": {{ $json.message.content.Video_prompt }},\n  \"imageUrls\": [\n{{ $('Code - Format URLs').item.json.formattedUrls }}\n  ],\n  \"model\": \"{{ $('Get a Concept Record ID - Video Generation').item.json['AI Model'] }}\",\n  \"watermark\": \"agenia\",\n  \"aspectRatio\": \"{{ $('Get a Concept Record ID - Video Generation').item.json['Aspect Ratio'] }}\"\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "=Bearer {{ $('Get a Concept Record ID - Video Generation').item.json['API Key (from API Services) (from Agency)'][0] }}"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "6e1043d7-4028-46f8-a8ba-98202c96f9e2",
      "name": "生成视频 VEO3",
      "type": "n8n-nodes-base.httpRequest",
      "disabled": true,
      "position": [
        2624,
        416
      ],
      "parameters": {
        "url": "https://api.kie.ai/api/v1/veo/generate",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "prompt",
              "value": "={{ $json.message.content.Video_Prompt }}"
            },
            {
              "name": "imageUrls",
              "value": "={{ $('Code - Format URLs').item.json.formattedUrls }}"
            },
            {
              "name": "model",
              "value": "={{ $('Get a Concept Record ID - Video Generation').item.json['AI Model'] }}"
            },
            {
              "name": "aspectRatio",
              "value": "={{ $('Get a Concept Record ID - Video Generation').item.json['Aspect Ratio'] }}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "=Bearer {{ $('Get a Concept Record ID - Video Generation').item.json['API Key (from API Services) (from Agency)'][0] }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "b4d37b7b-303e-4ea2-aa9b-1bd6ef584b0f",
      "name": "便签9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        16,
        -352
      ],
      "parameters": {
        "color": 7,
        "width": 1312,
        "height": 368,
        "content": "[![AI驱动广告概念生成横幅.png](https://i.postimg.cc/ZngnWjcH/AI-powered-campaign-concept-generation-banner.png)](https://postimg.cc/D4rnDrR4)"
      },
      "typeVersion": 1
    },
    {
      "id": "97601238-8ee6-4aa9-ab85-5c9e777ca709",
      "name": "便签 26",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1344,
        -352
      ],
      "parameters": {
        "color": 5,
        "width": 272,
        "height": 360,
        "content": "## Airtable 数据库"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {
    "Webhook": [
      {
        "body": {},
        "query": {
          "action": "videoGeneration",
          "recordId": "recFIygYdj50hYtXH"
        },
        "params": {},
        "headers": {
          "host": "shopymate.app.n8n.cloud",
          "accept": "*/*",
          "cf-ray": "9706095d97313aff-IAD",
          "cdn-loop": "cloudflare; loops=1; subreqs=1",
          "cf-ew-via": "15",
          "cf-worker": "n8n.cloud",
          "x-real-ip": "54.152.245.184",
          "cf-visitor": "{\"scheme\":\"https\"}",
          "user-agent": "Mozilla/5.0 (compatible; AirtableScripting; +https://airtable.com/developers/scripting;)",
          "cf-ipcountry": "US",
          "x-is-trusted": "yes",
          "accept-encoding": "gzip, br",
          "x-forwarded-for": "54.152.245.184, 162.158.152.141",
          "cf-connecting-ip": "54.152.245.184",
          "x-forwarded-host": "shopymate.app.n8n.cloud",
          "x-forwarded-port": "443",
          "x-airtable-source": "appH2OEGW78g0qSOw/wflas8IS98Jnnf9Dz",
          "x-forwarded-proto": "https",
          "x-forwarded-server": "traefik-prod-users-gwc-13-6db466c7ff-svdn2"
        },
        "webhookUrl": "https://shopymate.app.n8n.cloud/webhook/test-button",
        "executionMode": "production"
      }
    ]
  },
  "connections": {
    "Code": {
      "main": [
        [
          {
            "node": "Generate System Prompt Images GPT-Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Switch": {
      "main": [
        [
          {
            "node": "Get Concept Record ID - Image Generation",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Get a Concept Record ID - Video Generation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook": {
      "main": [
        [
          {
            "node": "Switch",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 180s": {
      "main": [
        [
          {
            "node": "Retrieve 4o Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If Success": {
      "main": [
        [
          {
            "node": "Wait 180s",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Update Image Generation Failed",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If success": {
      "main": [
        [
          {
            "node": "Wait 300s Videos",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Update Status Video Generation Failed",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Think - VEO3": {
      "ai_tool": [
        [
          {
            "node": "Generate System Prompt Video VEO3",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Analyze image": {
      "main": [
        [
          {
            "node": "Loop Over Image Asset",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If Success Video": {
      "main": [
        [
          {
            "node": "Update Video Assets Results",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Update Getting Failed",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 300s Videos": {
      "main": [
        [
          {
            "node": "Retrieve Video - 1080p - video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Retrieve 4o Image": {
      "main": [
        [
          {
            "node": "Create or update a record",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Think - GPT IMAG1": {
      "ai_tool": [
        [
          {
            "node": "Generate System Prompt Images GPT-Image",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Code - Format URLs": {
      "main": [
        [
          {
            "node": "Generate System Prompt Video VEO3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate 4o Images": {
      "main": [
        [
          {
            "node": "If Success",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate Image URLs": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate 4o Images -": {
      "main": [
        []
      ]
    },
    "Generate Videos VEO3": {
      "main": [
        []
      ]
    },
    "Generate Videos VEO 3": {
      "main": [
        [
          {
            "node": "If success",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Image Asset": {
      "main": [
        [
          {
            "node": "Aggregate Content Output",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Analyze image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate - Images URLs": {
      "main": [
        [
          {
            "node": "Code - Format URLs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate Content Output": {
      "main": [
        [
          {
            "node": "Get Concept Record ID - Image Generation - 2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out Uploaded Asset": {
      "main": [
        [
          {
            "node": "Loop Over Image Asset",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Limit 1 Image - API Limit": {
      "main": [
        [
          {
            "node": "Aggregate - Images URLs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out - Images Assets": {
      "main": [
        [
          {
            "node": "Limit 1 Image - API Limit",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out - Upload Assets": {
      "main": [
        [
          {
            "node": "Aggregate Image URLs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Retrieve Video - 1080p - video": {
      "main": [
        [
          {
            "node": "If Success Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate System Prompt Video VEO3": {
      "main": [
        [
          {
            "node": "Generate Videos VEO 3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate System Prompt Images GPT-Image": {
      "main": [
        [
          {
            "node": "Generate 4o Images",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Concept Record ID - Image Generation": {
      "main": [
        [
          {
            "node": "Split Out Uploaded Asset",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get a Concept Record ID - Video Generation": {
      "main": [
        [
          {
            "node": "Split Out - Images Assets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Concept Record ID - Image Generation - 2": {
      "main": [
        [
          {
            "node": "Split Out - Upload Assets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

高级 - 内容创作, 多模态 AI

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量47
分类2
节点类型14
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
Ruben AI

Ruben AI

@rubenai

I build AI-powered products. Copy, Setup, Use, and Sell. It is all yours!!

外部链接
在 n8n.io 查看

分享此工作流