AutomationFlows β€Ί AI & RAG β€Ί Automate Ugc Video Creation with Gemini and Google Veo 3 & Upload to…

Automate Ugc Video Creation with Gemini and Google Veo 3 & Upload to…

Original n8n title: Automate Ugc Video Creation with Gemini and Google Veo 3 & Upload to Instagram via Postiz

ByDavide Boizza @n3witaliaβœ“ on n8n.io

πŸŽ₯πŸ€– This workflow automates the creation and publishing of UGC (User-Generated Content) videos using Google Gemini and Google Veo 3, then uploads them directly to Instagram with Postiz.

Event triggerβ˜…β˜…β˜…β˜…β˜† complexityAI-powered13 nodesGoogle GeminiHTTP RequestN8N Nodes PostizGoogle Drive
AI & RAG Trigger: Event Nodes: 13 Complexity: β˜…β˜…β˜…β˜…β˜† AI nodes: yes Added:

This workflow corresponds to n8n.io template #8115 β€” we link there as the canonical source.

This workflow follows the Google Drive β†’ Googlegemini recipe pattern β€” see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide β†’

Download .json
{
  "id": "do1L9CqbuXctQa2p",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Create UGC video with Gemini and Google Veo 3 & Upload to Instagram",
  "tags": [],
  "nodes": [
    {
      "id": "6fdbd728-25ac-4250-b3cd-4dac65626800",
      "name": "When clicking \u2018Execute workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -384,
        0
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "3f0de1b4-8049-4d75-9261-3089ac6badef",
      "name": "Analyze image",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        64,
        0
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "models/gemini-2.5-pro",
          "cachedResultName": "models/gemini-2.5-pro"
        },
        "options": {},
        "resource": "image",
        "imageUrls": "={{ $json.image_url }}",
        "operation": "analyze"
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "c48ffb11-8364-4cd1-b08b-99c5f1be4467",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        1520,
        0
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineAll"
      },
      "typeVersion": 3.2
    },
    {
      "id": "c136c427-848c-46f0-b73b-baa3770e89fd",
      "name": "Upload Video to Postiz",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1168,
        -64
      ],
      "parameters": {
        "url": "https://api.postiz.com/public/v1/upload",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "file",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "data"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "4aac7e3e-07b3-4ce1-9cd3-5cd7cb4a0ce7",
      "name": "Instagram",
      "type": "n8n-nodes-postiz.postiz",
      "position": [
        1776,
        0
      ],
      "parameters": {
        "date": "={{ $now.format('yyyy-LL-dd') }}T{{ $now.format('HH:ii:ss') }}",
        "type": "schedule",
        "posts": {
          "post": [
            {
              "value": {
                "contentItem": [
                  {
                    "image": {
                      "imageItem": [
                        {
                          "id": "={{ $json.id }}",
                          "path": "={{ $json.path }}"
                        }
                      ]
                    },
                    "content": "={{ $json.caption }}"
                  }
                ]
              },
              "settings": {
                "setting": [
                  {
                    "key": "post_type",
                    "stringValue": "post"
                  }
                ]
              },
              "integrationId": "XXXXXXX"
            }
          ]
        },
        "shortLink": true
      },
      "credentials": {
        "postizApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "755a7866-a9dd-4656-81ce-2df79c3de207",
      "name": "Set image",
      "type": "n8n-nodes-base.set",
      "position": [
        -160,
        0
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "7c1cd08f-845c-4e81-8a15-fe8ed4f1c8eb",
              "name": "image_url",
              "type": "string",
              "value": "https://n3wstorage.b-cdn.net/n3witalia/image_ugc.png"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "75b7b9cd-15cf-4b46-81e0-cad8c3c14ff4",
      "name": "Generate UGC Video",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        800,
        -176
      ],
      "parameters": {
        "prompt": "={{ $json.content.parts[0].text }}.\nProduct Image: {{ $('Set image').item.json.image_url }}",
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "models/veo-3.0-generate-preview",
          "cachedResultName": "models/veo-3.0-generate-preview"
        },
        "options": {
          "aspectRatio": "16:9"
        },
        "resource": "video"
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "a7822306-1f3f-41b3-a145-2ed118d05a3c",
      "name": "Social Media Manager",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        768,
        160
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "models/gemini-2.5-pro",
          "cachedResultName": "models/gemini-2.5-pro"
        },
        "options": {
          "systemMessage": "=You are an expert social media manager. When provided with a scene description, you must write compelling copy for an Instagram advertising video. Write only the copy without any preambles or introductory text."
        },
        "messages": {
          "values": [
            {
              "content": "={{ $json.content.parts[0].text }}"
            }
          ]
        }
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "05b83ebe-d8cf-412d-8637-4902b3d54821",
      "name": "Creative director",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        336,
        0
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "models/gemini-2.5-pro",
          "cachedResultName": "models/gemini-2.5-pro"
        },
        "options": {
          "systemMessage": "=You are an expert advertising video creator. When given a product image description, you must write a detailed prompt describing how to create an 8-second commercial spot using that image. Your response should include the setting, people involved, and specific actions that take place. Focus solely on describing the visual scene without any introductory text or explanations."
        },
        "messages": {
          "values": [
            {
              "content": "=Image description: {{ $json.content.parts[0].text }}"
            }
          ]
        }
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "29dc4ab9-f37a-4800-8304-1868bf3ab5ca",
      "name": "Set caption",
      "type": "n8n-nodes-base.set",
      "position": [
        1200,
        160
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "308eed8b-5893-4663-b5ea-c6203b2eebd6",
              "name": "caption",
              "type": "string",
              "value": "={{ $json.content.parts[0].text }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "c5a6ed15-9973-4511-ab19-4456beba928a",
      "name": "Upload video",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1168,
        -320
      ],
      "parameters": {
        "name": "={{$now.format('yyyyLLdd')}}-{{ $json.fileName }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "1U_5X1tYUZ7NYp9BMQB11z7J-pFMTW8HX",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1U_5X1tYUZ7NYp9BMQB11z7J-pFMTW8HX",
          "cachedResultName": "Video ads"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "04b3492e-ee42-4d00-b436-e49a819ea227",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -400,
        -432
      ],
      "parameters": {
        "color": 3,
        "width": 736,
        "height": 176,
        "content": "## Automate UGC video creation with Gemini and Google Veo 3 & upload to Instagram\n\nThis workflow automates the **creation and publishing of UGC (User-Generated Content) videos** using **Google Gemini** and **Google Veo 3**, then uploads them directly to **Instagram** with [Postiz](https://postiz.com/?ref=n3witalia)\n"
      },
      "typeVersion": 1
    },
    {
      "id": "a6291bf3-29aa-4820-b14d-64842a192cf5",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -400,
        -224
      ],
      "parameters": {
        "width": 736,
        "height": 192,
        "content": "## STEP \n- In the \"Set image\" node, replace the default `image_url` value with yours\n- Create a FREE account on [Postiz](https://postiz.com/?ref=n3witalia)\n- Install \"Postiz\" node\n- Set Header Auth in the node \"Upload Video to Postiz\"\n- In **\"Postiz\"** node, set your `Channel ID`.\n- Execute Workflow"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "timezone": "Europe/Rome",
    "callerPolicy": "workflowsFromSameOwner",
    "executionOrder": "v1"
  },
  "versionId": "e0d183cd-15cb-4a44-af6a-6bec82399bba",
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "Instagram",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Instagram": {
      "main": [
        []
      ]
    },
    "Set image": {
      "main": [
        [
          {
            "node": "Analyze image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set caption": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Analyze image": {
      "main": [
        [
          {
            "node": "Creative director",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Creative director": {
      "main": [
        [
          {
            "node": "Generate UGC Video",
            "type": "main",
            "index": 0
          },
          {
            "node": "Social Media Manager",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate UGC Video": {
      "main": [
        [
          {
            "node": "Upload video",
            "type": "main",
            "index": 0
          },
          {
            "node": "Upload Video to Postiz",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Social Media Manager": {
      "main": [
        [
          {
            "node": "Set caption",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload Video to Postiz": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "Set image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing β€” you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

πŸŽ₯πŸ€– This workflow automates the creation and publishing of UGC (User-Generated Content) videos using Google Gemini and Google Veo 3, then uploads them directly to Instagram with Postiz.

Source: https://n8n.io/workflows/8115/ β€” original creator credit. Request a take-down β†’

More AI & RAG workflows β†’ Β· Browse all categories β†’

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

This workflow automates the creation of AI-generated viral selfie images with celebrities using Nano Banana Pro Edit via RunPod, generates engaging social media captions, and publishes the content to

HTTP Request, Form Trigger, N8N Nodes Postiz +2
AI & RAG

Monitor a Google Drive folder, process each image based on the prompt defined in and save the new image to the specified output Google Drive folder. Maintain a processing log in Google Sheets.

Google Drive Trigger, Google Drive, HTTP Request +2
AI & RAG

Understand your customers before you build for them. This workflow, Market Segmentation: Buyer Persona Pain Point Report, automates the grueling process of primary market research. By scraping real-wo

Form Trigger, Google Gemini, N8N Nodes Olostep +3
AI & RAG

Stop spending hours manually repurposing long-form content. The Content Atomizer.json workflow takes a single article URL and automatically "atomizes" it into high-authority LinkedIn posts, Twitter (X

Form Trigger, Google Gemini, N8N Nodes Olostep +2
AI & RAG

Automate your product visuals! This n8n workflow instantly processes new product photography requests from Jotform or Google Sheets, uses an AI agent (Gemini Nano Banana) to generate professional AI p

Google Sheets, Google Gemini, Google Drive +2