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",
"defaultMa
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 creates multiple product images from a single source file and converts them into short promotional videos ready for social media. It is ideal for e-commerce sellers and marketers who need consistent visuals across platforms without manual editing. The process starts by downloading the original image, cropping it into nine variations, then passing each version through Nanobanana Pro and Veo to generate video clips that are finally posted via Blotato.
Use it when you need a repeatable batch of product videos on a schedule, but avoid it for one-off campaigns or highly custom edits. A common variation replaces the scheduled trigger with a form submission so teams can upload new products on demand.
About this workflow
Generate product images with NanoBanana Pro to Veo videos and Blotato - vide 2 ok. Uses httpRequest, editImage, googleDrive, googleSheets. Scheduled trigger; 76 nodes.
Source: https://github.com/murtazabaig/create-ai-product-images-and-marketing-videos-with-nanobanana-pro-veo-and-blotato/blob/bde696143209014952f6b1a904c34b97e00177f8/workflow.json — 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 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 crea
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