This workflow corresponds to n8n.io template #12462 — we link there as the canonical source.
This workflow follows the Agent → Form Trigger recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "ZtcCMj69WUhc1BHs",
"name": "Generate product images with NanoBanana Pro to Veo videos and Blotato - vide 2 ok",
"tags": [],
"nodes": [
{
"id": "79e2d979-dfdf-423c-a120-640fa7a9ec64",
"name": "Set Image URL",
"type": "n8n-nodes-base.set",
"position": [
496,
1664
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "id-1",
"name": "image_url",
"type": "string",
"value": "={{ $json.image_contactsheet }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "7b222802-5e00-45ee-936f-3af163a3caac",
"name": "Download Image",
"type": "n8n-nodes-base.httpRequest",
"position": [
704,
1664
],
"parameters": {
"url": "={{ $json.image_url }}",
"options": {
"response": {
"response": {
"responseFormat": "file"
}
}
}
},
"typeVersion": 4.3
},
{
"id": "475a5f1d-8050-48c3-9a55-03de1d32630a",
"name": "Crop Top Left",
"type": "n8n-nodes-base.editImage",
"position": [
1456,
1184
],
"parameters": {
"width": "={{ Math.floor($json.size.width / 3) }}",
"height": "={{ Math.floor($json.size.height / 2) }}",
"options": {},
"operation": "crop"
},
"typeVersion": 1
},
{
"id": "9c3b49b8-3d1b-42c3-802c-2c9997be6321",
"name": "Crop Top Center",
"type": "n8n-nodes-base.editImage",
"position": [
1456,
1376
],
"parameters": {
"width": "={{ Math.floor($json.size.width / 3) }}\n",
"height": "={{ Math.floor($json.size.height / 2) }}\n",
"options": {},
"operation": "crop",
"positionX": "={{ Math.floor($json.size.width / 3) }}\n"
},
"typeVersion": 1
},
{
"id": "538e6079-1b0a-4ad2-9184-bb5e2ddd0002",
"name": "Crop Top Right",
"type": "n8n-nodes-base.editImage",
"position": [
1456,
1568
],
"parameters": {
"width": "={{ Math.floor($json.size.width / 3) }}\n",
"height": "={{ Math.floor($json.size.height / 2) }}\n",
"options": {},
"operation": "crop",
"positionX": "={{ Math.floor($json.size.width * 2 / 3) }}\n"
},
"typeVersion": 1
},
{
"id": "f7e83e97-b6d8-4147-b57f-8d4eeaf4d0ff",
"name": "Crop Bottom Left",
"type": "n8n-nodes-base.editImage",
"position": [
1456,
1760
],
"parameters": {
"width": "={{ Math.floor($json.size.width / 3) }}\n",
"height": "={{ Math.floor($json.size.height / 2) }}\n",
"options": {},
"operation": "crop",
"positionY": "={{ Math.floor($json.size.height / 2) }}\n"
},
"typeVersion": 1
},
{
"id": "6f21457a-f703-4cb9-a15a-71fc4c05bb7a",
"name": "Crop Bottom Center",
"type": "n8n-nodes-base.editImage",
"position": [
1456,
1952
],
"parameters": {
"width": "={{ Math.floor($json.size.width / 3) }}\n",
"height": "={{ Math.floor($json.size.height / 2) }}\n",
"options": {},
"operation": "crop",
"positionX": "={{ Math.floor($json.size.width / 3) }}\n",
"positionY": "={{ Math.floor($json.size.height / 2) }}\n"
},
"typeVersion": 1
},
{
"id": "6230b210-3637-4c9d-ba62-1d70ce6aa977",
"name": "Crop Bottom Right",
"type": "n8n-nodes-base.editImage",
"position": [
1456,
2144
],
"parameters": {
"width": "={{ Math.floor($json.size.width / 3) }}\n",
"height": "={{ Math.floor($json.size.height / 2) }}\n",
"options": {},
"operation": "crop",
"positionX": "={{ Math.floor($json.size.width * 2 / 3) }}\n",
"positionY": "={{ Math.floor($json.size.height / 2) }}\n"
},
"typeVersion": 1
},
{
"id": "d6b15a51-e5f7-460f-a5ec-3e96ae089ab6",
"name": "Upload to Google Drive",
"type": "n8n-nodes-base.googleDrive",
"position": [
1744,
1184
],
"parameters": {
"name": "={{ \n \"image_top_left_\" +\n new Date().toISOString()\n .slice(0,19)\n .replace(\"T\", \"_\")\n .replace(/:/g, \"-\")\n}}.png",
"driveId": {
"__rl": true,
"mode": "id",
"value": "=<__PLACEHOLDER_VALUE__Google DRIVE Document ID___>"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "id",
"value": "="
}
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "5e713b2d-6756-43c2-8c55-7dfa26797ea1",
"name": "Edit Image",
"type": "n8n-nodes-base.editImage",
"position": [
1008,
1664
],
"parameters": {
"operation": "information"
},
"typeVersion": 1
},
{
"id": "1feb8bed-9156-460a-91f0-40e0968fa77b",
"name": "Upload to Google Drive1",
"type": "n8n-nodes-base.googleDrive",
"position": [
1744,
1376
],
"parameters": {
"name": "={{ \n \"image_top_center_\" +\n new Date().toISOString()\n .slice(0,19)\n .replace(\"T\", \"_\")\n .replace(/:/g, \"-\")\n}}.png",
"driveId": {
"__rl": true,
"mode": "id",
"value": "=<__PLACEHOLDER_VALUE__Google DRIVE Document ID___>"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "id",
"value": "="
}
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "fc3cc7b3-9f4a-44a5-9dba-00e115b750d9",
"name": "Upload to Google Drive2",
"type": "n8n-nodes-base.googleDrive",
"position": [
1744,
1568
],
"parameters": {
"name": "={{ \n \"image_top_right_\" +\n new Date().toISOString()\n .slice(0,19)\n .replace(\"T\", \"_\")\n .replace(/:/g, \"-\")\n}}.png",
"driveId": {
"__rl": true,
"mode": "id",
"value": "=<__PLACEHOLDER_VALUE__Google DRIVE Document ID___>"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "id",
"value": "=<__PLACEHOLDER_VALUE__Google DRIVE Document ID___>"
}
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "314f4ca9-10a2-4110-8b4c-8ef426db8ca8",
"name": "Upload to Google Drive3",
"type": "n8n-nodes-base.googleDrive",
"position": [
1744,
1760
],
"parameters": {
"name": "={{ \n \"image_bottom_left_\" +\n new Date().toISOString()\n .slice(0,19)\n .replace(\"T\", \"_\")\n .replace(/:/g, \"-\")\n}}.png",
"driveId": {
"__rl": true,
"mode": "id",
"value": "=<__PLACEHOLDER_VALUE__Google DRIVE Document ID___>"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "id",
"value": "="
}
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "bde757be-c869-42ab-b4a5-ffc0b58f518f",
"name": "Upload to Google Drive4",
"type": "n8n-nodes-base.googleDrive",
"position": [
1744,
1952
],
"parameters": {
"name": "={{ \n \"image_bottom_center_\" +\n new Date().toISOString()\n .slice(0,19)\n .replace(\"T\", \"_\")\n .replace(/:/g, \"-\")\n}}.png",
"driveId": {
"__rl": true,
"mode": "id",
"value": "=<__PLACEHOLDER_VALUE__Google DRIVE Document ID___>"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "id",
"value": "="
}
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "3e24fa2c-0e84-49f4-acd8-8b40ce8d56d5",
"name": "Upload to Google Drive5",
"type": "n8n-nodes-base.googleDrive",
"position": [
1744,
2144
],
"parameters": {
"name": "={{ \n \"image_bottom_right_\" +\n new Date().toISOString()\n .slice(0,19)\n .replace(\"T\", \"_\")\n .replace(/:/g, \"-\")\n}}.png",
"driveId": {
"__rl": true,
"mode": "id",
"value": "=<__PLACEHOLDER_VALUE__Google DRIVE Document ID___>"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "id",
"value": "="
}
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "e218c4bf-7cc4-4a24-b787-d99ad4961f49",
"name": "Update url image_top_left",
"type": "n8n-nodes-base.googleSheets",
"position": [
1952,
1184
],
"parameters": {
"columns": {
"value": {
"new_image_1": "={{ $json.webContentLink }}",
"image_contactsheet": "={{ $('Set Image URL').first().json.image_url }}"
},
"schema": [
{
"id": "status",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_1",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_1",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_2",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_2",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_3",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_3",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "description_all",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "description_all",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_nanobanana",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_nanobanana",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_contactsheet",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "image_contactsheet",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_1",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "new_image_1",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_2",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_2",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_3",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_3",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_4",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_4",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_5",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_5",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_6",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_6",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"image_contactsheet"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "id",
"value": "=<__PLACEHOLDER_VALUE__Sheet Tab Name__>"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "=<__PLACEHOLDER_VALUE__Google Sheets Document ID__>"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "37cca6f3-f484-4cf6-9cfa-fbe3880d26da",
"name": "Update url image_top_center",
"type": "n8n-nodes-base.googleSheets",
"position": [
1952,
1376
],
"parameters": {
"columns": {
"value": {
"new_image_2": "={{ $json.webContentLink }}",
"image_contactsheet": "={{ $('Set Image URL').first().json.image_url }}"
},
"schema": [
{
"id": "status",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_1",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_1",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_2",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_2",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_3",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_3",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "description_all",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "description_all",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_nanobanana",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_nanobanana",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_contactsheet",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "image_contactsheet",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_1",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_1",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_2",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "new_image_2",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_3",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_3",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_4",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_4",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_5",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_5",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_6",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_6",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"image_contactsheet"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "id",
"value": "=<__PLACEHOLDER_VALUE__Sheet Tab Name__>"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "=<__PLACEHOLDER_VALUE__Google Sheets Document ID__>"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "925c029f-6a93-4c9c-bf04-4596dea35842",
"name": "Update url image_top_right",
"type": "n8n-nodes-base.googleSheets",
"position": [
1952,
1568
],
"parameters": {
"columns": {
"value": {
"new_image_3": "={{ $json.webContentLink }}",
"image_contactsheet": "={{ $('Set Image URL').first().json.image_url }}"
},
"schema": [
{
"id": "status",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_1",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_1",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_2",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_2",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_3",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_3",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "description_all",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "description_all",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_nanobanana",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_nanobanana",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_contactsheet",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "image_contactsheet",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_1",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_1",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_2",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_2",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_3",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "new_image_3",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_4",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_4",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_5",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_5",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_6",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_6",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"image_contactsheet"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "id",
"value": "=<__PLACEHOLDER_VALUE__Sheet Tab Name__>"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "=<__PLACEHOLDER_VALUE__Google Sheets Document ID__>"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "692d6144-0031-464e-90af-d2701cbb58b6",
"name": "Update url image_bottom_left",
"type": "n8n-nodes-base.googleSheets",
"position": [
1952,
1760
],
"parameters": {
"columns": {
"value": {
"new_image_4": "={{ $json.webContentLink }}",
"image_contactsheet": "={{ $('Set Image URL').first().json.image_url }}"
},
"schema": [
{
"id": "status",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_1",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_1",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_2",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_2",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_3",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_3",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "description_all",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "description_all",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_nanobanana",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_nanobanana",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_contactsheet",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "image_contactsheet",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_1",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_1",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_2",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_2",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_3",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_3",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_4",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "new_image_4",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_5",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_5",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_6",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_6",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"image_contactsheet"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "id",
"value": "=<__PLACEHOLDER_VALUE__Sheet Tab Name__>"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "=<__PLACEHOLDER_VALUE__Google Sheets Document ID__>"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "3fdea09a-5260-4342-a878-7bd99594933f",
"name": "Update url image_bottom_center",
"type": "n8n-nodes-base.googleSheets",
"position": [
1952,
1952
],
"parameters": {
"columns": {
"value": {
"new_image_5": "={{ $json.webContentLink }}",
"image_contactsheet": "={{ $('Set Image URL').first().json.image_url }}"
},
"schema": [
{
"id": "status",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_1",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_1",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_2",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_2",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_3",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_3",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "description_all",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "description_all",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_nanobanana",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_nanobanana",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_contactsheet",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "image_contactsheet",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_1",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_1",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_2",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_2",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_3",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_3",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_4",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_4",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_5",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "new_image_5",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_6",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_6",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"image_contactsheet"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "id",
"value": "=<__PLACEHOLDER_VALUE__Sheet Tab Name__>"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "=<__PLACEHOLDER_VALUE__Google Sheets Document ID__>"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "4bff23d7-e944-4aff-95bd-b1911aa535fc",
"name": "Update url image_bottom_right",
"type": "n8n-nodes-base.googleSheets",
"position": [
1952,
2144
],
"parameters": {
"columns": {
"value": {
"new_image_6": "={{ $json.webContentLink }}",
"image_contactsheet": "={{ $('Set Image URL').first().json.image_url }}"
},
"schema": [
{
"id": "status",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_1",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_1",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_2",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_2",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_3",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_3",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "description_all",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "description_all",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_nanobanana",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_nanobanana",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_contactsheet",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "image_contactsheet",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_1",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_1",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_2",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_2",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_3",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_3",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_4",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_4",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_5",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_5",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_6",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "new_image_6",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"image_contactsheet"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "id",
"value": "=<__PLACEHOLDER_VALUE__Sheet Tab Name__>"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "=<__PLACEHOLDER_VALUE__Google Sheets Document ID__>"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "067f6811-230d-4723-ac2d-7575f9898241",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
80,
1664
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1.3
},
{
"id": "3e0483ab-180c-4d45-a05f-2dc852ecce66",
"name": "Merge1",
"type": "n8n-nodes-base.merge",
"position": [
2240,
1264
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3.2
},
{
"id": "d39d26a4-3103-429b-aab5-0922cfdefa2f",
"name": "Veo Generation",
"type": "n8n-nodes-base.httpRequest",
"position": [
2528,
1264
],
"parameters": {
"url": "https://fal.run/fal-ai/veo3.1/first-last-frame-to-video",
"method": "POST",
"options": {
"timeout": 600000,
"response": {
"response": {
"responseFormat": "json"
}
}
},
"jsonBody": "={\n \"prompt\": \"The camera very slowly and smoothly lowers on a boom. The subject barely moves, and is extremely deliberate and thoughtful in movement.\",\n \"first_frame_url\": \"{{ $json.new_image_1 }}\",\n \"last_frame_url\": \"{{ $json.new_image_2 }}\",\n \"aspect_ratio\": \"auto\",\n \"duration\": \"4s\",\n \"resolution\": \"720p\",\n \"generate_audio\": false,\n \"auto_fix\": true\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "=<__PLACEHOLDER_VALUE__fal Key__>"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "3e558904-7e9f-4c6b-b3b0-397aa1e55025",
"name": "Merge2",
"type": "n8n-nodes-base.merge",
"position": [
2240,
1472
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3.2
},
{
"id": "bfe0e601-96bd-48e0-ae49-9079470eda73",
"name": "Veo Generation1",
"type": "n8n-nodes-base.httpRequest",
"position": [
2528,
1472
],
"parameters": {
"url": "https://fal.run/fal-ai/veo3.1/first-last-frame-to-video",
"method": "POST",
"options": {
"timeout": 600000,
"response": {
"response": {
"responseFormat": "json"
}
}
},
"jsonBody": "={\n \"prompt\": \"The camera very slowly and smoothly lowers on a boom. The subject barely moves, and is extremely deliberate and thoughtful in movement. Audio: soft cinematic ambient music, very subtle, calm pads, no vocals, low volume. Add gentle room tone.\",\n \"first_frame_url\": \"{{ $json.new_image_2 }}\",\n \"last_frame_url\": \"{{ $json.new_image_3 }}\",\n \"aspect_ratio\": \"auto\",\n \"duration\": \"4s\",\n \"resolution\": \"720p\",\n \"generate_audio\": false,\n \"auto_fix\": true\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "=<__PLACEHOLDER_VALUE__fal Key__>"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "70ecd07d-93fc-4204-b9fe-78ca46134147",
"name": "Merge3",
"type": "n8n-nodes-base.merge",
"position": [
2240,
1664
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3.2
},
{
"id": "9c72142f-e781-418c-9479-7e2445e4ef8c",
"name": "Veo Generation2",
"type": "n8n-nodes-base.httpRequest",
"position": [
2528,
1664
],
"parameters": {
"url": "https://fal.run/fal-ai/veo3.1/first-last-frame-to-video",
"method": "POST",
"options": {
"timeout": 600000,
"response": {
"response": {
"responseFormat": "json"
}
}
},
"jsonBody": "={\n \"prompt\": \"The camera very slowly and smoothly lowers on a boom. The subject barely moves, and is extremely deliberate and thoughtful in movement.\",\n \"first_frame_url\": \"{{ $json.new_image_3 }}\",\n \"last_frame_url\": \"{{ $json.new_image_4 }}\",\n \"aspect_ratio\": \"auto\",\n \"duration\": \"4s\",\n \"resolution\": \"720p\",\n \"generate_audio\": false,\n \"auto_fix\": true\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "=<__PLACEHOLDER_VALUE__fal Key__>"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "18bcc8ec-85f3-4f1b-b53e-1ad1005a01f8",
"name": "Merge4",
"type": "n8n-nodes-base.merge",
"position": [
2240,
1872
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3.2
},
{
"id": "ce7d1299-3d78-41d7-8883-e433aecdd710",
"name": "Veo Generation3",
"type": "n8n-nodes-base.httpRequest",
"position": [
2528,
1872
],
"parameters": {
"url": "https://fal.run/fal-ai/veo3.1/first-last-frame-to-video",
"method": "POST",
"options": {
"timeout": 600000,
"response": {
"response": {
"responseFormat": "json"
}
}
},
"jsonBody": "={\n \"prompt\": \"The camera very slowly and smoothly lowers on a boom. The subject barely moves, and is extremely deliberate and thoughtful in movement.\",\n \"first_frame_url\": \"{{ $json.new_image_4 }}\",\n \"last_frame_url\": \"{{ $json.new_image_5 }}\",\n \"aspect_ratio\": \"auto\",\n \"duration\": \"4s\",\n \"resolution\": \"720p\",\n \"generate_audio\": false,\n \"auto_fix\": true\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "=<__PLACEHOLDER_VALUE__fal Key__>"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "fef23731-0f15-4680-915c-13228b23148e",
"name": "Merge5",
"type": "n8n-nodes-base.merge",
"position": [
2240,
2080
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3.2
},
{
"id": "87840840-ac7e-4877-b376-c7211793f427",
"name": "Veo Generation4",
"type": "n8n-nodes-base.httpRequest",
"position": [
2528,
2080
],
"parameters": {
"url": "https://fal.run/fal-ai/veo3.1/first-last-frame-to-video",
"method": "POST",
"options": {
"timeout": 600000,
"response": {
"response": {
"responseFormat": "json"
}
}
},
"jsonBody": "={\n \"prompt\": \"The camera very slowly and smoothly lowers on a boom. The subject barely moves, and is extremely deliberate and thoughtful in movement.\",\n \"first_frame_url\": \"{{ $json.new_image_5 }}\",\n \"last_frame_url\": \"{{ $json.new_image_6 }}\",\n \"aspect_ratio\": \"auto\",\n \"duration\": \"4s\",\n \"resolution\": \"720p\",\n \"generate_audio\": false,\n \"auto_fix\": true\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "=<__PLACEHOLDER_VALUE__fal Key__>"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "7d98612b-7643-46b4-abff-8e2f94f1640b",
"name": "Update video 2",
"type": "n8n-nodes-base.googleSheets",
"position": [
3072,
1472
],
"parameters": {
"columns": {
"value": {
"video_2": "={{ $json.video.url }}",
"image_contactsheet": "={{ $('Set Image URL').first().json.image_url }}"
},
"schema": [
{
"id": "status",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_1",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_1",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_2",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_2",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_3",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_3",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "description_all",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "description_all",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_nanobanana",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_nanobanana",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_contactsheet",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "image_contactsheet",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_1",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_1",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_2",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_2",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_3",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_3",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_4",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_4",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_5",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_5",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "new_image_6",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "new_image_6",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "video_1",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "video_1",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "video_2",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "video_2",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "video_3",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "video_3",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "video_4",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "video_4",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "video_5",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "video_5",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "video_6",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "video_6",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"image_contactsheet"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "id",
"value": "=<__PLACEHOLDER_VALUE__Sheet Tab Name__>"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "=<__PLACEHOLDER_VALUE__Google Sheets Document ID__>"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "6a3e34fe-2697-4175-8bb9-6f3e93f7e6d4",
"name": "Update video 5",
"type": "n8n-nodes-base.googleSheets",
"position": [
3072,
2080
],
"parameters": {
"columns": {
"value": {
"video_5": "={{ $json.video.url }}",
"image_contactsheet": "={{ $('Set Image URL').first().json.image_url }}"
},
"schema": [
{
"id": "status",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_1",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "image_1",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
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.
blotatoApigoogleDriveOAuth2ApigoogleSheetsOAuth2ApiopenAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
How this works
This workflow generates professional product images and marketing videos for content creators, e-commerce teams and agencies. It takes a single product image, creates multiple cropped versions using AI editing tools, then produces short promotional videos with Nanobanana Pro and Veo 3.1 before posting them directly to social platforms through Blotato. The core value is turning one asset into a full set of ready-to-use visuals without manual editing or separate tools.
Use it when you need consistent product visuals on a schedule, such as weekly social campaigns or new product launches. It suits teams that already have a product image ready but skips setups requiring real-time customer uploads or complex brand guidelines. Variations include changing the crop ratios or video length to fit different platforms.
About this workflow
This workflow is designed for: Content creators and marketers E-commerce and product-based businesses Agencies producing social media visuals and videos Automation builders looking for AI-powered creative pipelines
Source: https://n8n.io/workflows/12462/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This n8n automation workflow automates the creation, scripting, production, and posting of YouTube videos. It leverages AI (OpenAI), image generation (PIAPI), video rendering (Shotstack), and platform
This n8n workflow turns a script and character/setting description from Google Sheets into a complete stitched UGC-style video ad, fully automated from intake to final delivery.
This workflow automates the creation, rendering, approval, and posting of TikTok-style POV (Point of View) videos to Instagram, with cross-posting to Facebook and YouTube. It eliminates manual video p
YOUTUBE GUIDE 📣 This template generates up to 2,000 AI-based stock images per day for under $4. It includes prompt generation, image creation, metadata enrichment, upload to Google Drive, and error lo
Content marketers and SEO specialists who need to generate multiple SEO-optimized articles targeting keyword variations. Ideal for affiliate sites, niche blogs, or service-based businesses creating lo