{
  "name": "Generate UGC video ads from product images with Kie.ai Sora 2 + Tavily Research",
  "nodes": [
    {
      "id": "cb38c489-7d45-4ac9-b003-73a08c0117e2",
      "name": "When clicking ‘Execute workflow’",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        0,
        512
      ]
    },
    {
      "id": "cb306801-963d-44b1-9387-ee69e96740cc",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        1024,
        512
      ]
    },
    {
      "id": "e0ae6f4c-bc54-4f11-a44a-5285d2edb429",
      "name": "Edit Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        1696,
        416
      ]
    },
    {
      "id": "764c6ae0-2ca4-433a-9261-b791b009ba2a",
      "name": "Switch",
      "type": "n8n-nodes-base.switch",
      "position": [
        1472,
        496
      ]
    },
    {
      "id": "d920b33d-c6ce-4e5e-ba8d-80f7f3870ead",
      "name": "Error Message",
      "type": "n8n-nodes-base.set",
      "position": [
        1696,
        608
      ]
    },
    {
      "id": "4f4c54da-1c0d-42ae-b861-b8269d729614",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        448,
        512
      ]
    },
    {
      "id": "12397d56-63df-4660-971b-d1582dd54638",
      "name": "Get row(s) in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        224,
        512
      ]
    },
    {
      "id": "abfed898-fc53-4c35-b92a-8bed78e9e604",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        464,
        736
      ]
    },
    {
      "id": "5c9e70b6-4416-4641-b9c6-b22749e53a84",
      "name": "Tavily",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        592,
        736
      ]
    },
    {
      "id": "6beba205-b322-40f3-bff9-80a17a164e28",
      "name": "Append or update row in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1920,
        416
      ]
    },
    {
      "id": "7520e83f-69ea-4b9f-b3df-18019fdf6be9",
      "name": "Create Video",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        800,
        512
      ]
    },
    {
      "id": "e03fe823-fe4c-4a9f-9bb7-2a7d893964df",
      "name": "Grab Video",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1248,
        448
      ]
    },
    {
      "id": "e0c97b3a-3a5e-4643-8a44-05376a2cea43",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -864,
        592
      ],
      "parameters": {
        "width": 688,
        "height": 528,
        "content": "## How to set it up\n1. Open **n8n** (Cloud or Self-Hosted).\n2. Import the workflow file: Sora 2 UGC Video Generator.json.\n3. Create and connect these credentials:\n   - Google Sheets OAuth 2.0\n   - Tav"
      }
    },
    {
      "id": "2f8f8977-99da-43f8-9f65-52afed1c7f4e",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        384,
        320
      ],
      "parameters": {
        "width": 336,
        "height": 560,
        "content": "## Prompt Modification\nGood prompting is very important when using this system. This is because the outcome of your video depends on your prompt. As a result, you are welcome to modify or change the A"
      }
    },
    {
      "id": "9e62325a-f2f4-4094-828c-d0c9865651cf",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -864,
        -16
      ],
      "parameters": {
        "width": 688,
        "height": 592,
        "content": "## ⚙️ How It Works\n1. **Manual Trigger**\nExecute this to start the workflow.\n2. **Fetch Info from Google Sheets CRM**\nThis gets product information from an unprocessed row.\n3. **AI Agent**\nThis acts a"
      }
    },
    {
      "id": "903dc41f-5f5c-4ea8-a62f-114ae5609596",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        736,
        320
      ],
      "parameters": {
        "width": 896,
        "height": 432,
        "content": "## Sora 2 UGC Video Generation\nThis is where the actual video generation occurs.   The **Wait** node is added after the **Create video** node to give Sora 2 enough time to finish the video creation be"
      }
    },
    {
      "id": "10b8e3e0-8eac-4401-b08a-731bbdb7882a",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1664,
        320
      ],
      "parameters": {
        "width": 448,
        "height": 240,
        "content": "## CRM Update\nThe video link is stored in our Google Sheets, and other necessary columns updated."
      }
    },
    {
      "id": "f8a001e5-35b3-482f-8220-2744b42740a5",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1920,
        592
      ],
      "parameters": {
        "width": 192,
        "height": null,
        "content": "## Error Message\nThis is for **Sora 2 Internal server error.**"
      }
    },
    {
      "id": "e312230a-2a72-4fae-8e4b-5b59d4074286",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1664,
        592
      ],
      "parameters": {
        "width": 448,
        "height": null,
        "content": ""
      }
    },
    {
      "id": "2cccf7f8-7081-429a-b4ee-d9a5d37b42e6",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -80,
        320
      ],
      "parameters": {
        "width": 432,
        "height": 432,
        "content": "## Start workflow with Product Info\nWhen the workflow is manually started (executed), it grabs the product information (Name, Prompt, Image Link, Processed Status) from the CRM.\nIt grabs these informa"
      }
    }
  ],
  "connections": {
    "Wait": {
      "main": [
        [
          {
            "node": "Grab Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Switch": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Error Message",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Tavily": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "Create Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Grab Video": {
      "main": [
        [
          {
            "node": "Switch",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "Append or update row in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Video": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Get row(s) in sheet": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Execute workflow’": {
      "main": [
        [
          {
            "node": "Get row(s) in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}