This workflow corresponds to n8n.io template #7334 — we link there as the canonical source.
This workflow follows the Google Drive → Google Sheets 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 →
{
"meta": {
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "1c13de38-0a50-44a4-b7b1-6d6ff00757d7",
"name": "Start Workflow",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-1680,
736
],
"parameters": {},
"typeVersion": 1
},
{
"id": "cc6edc5b-5b6e-4de9-9437-6fd38c050ff5",
"name": "Convert to File",
"type": "n8n-nodes-base.convertToFile",
"position": [
-160,
640
],
"parameters": {
"options": {},
"operation": "toBinary",
"sourceProperty": "base64"
},
"typeVersion": 1.1
},
{
"id": "b0070e99-0397-4ead-a28e-9457c1fa8770",
"name": "Create Image",
"type": "n8n-nodes-base.httpRequest",
"position": [
-672,
640
],
"parameters": {
"url": "https://api.freepik.com/v1/ai/text-to-image",
"method": "POST",
"options": {},
"sendBody": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "prompt",
"value": "={{ $json.Prompt }}"
}
]
},
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "c5880a1b-d473-4218-a313-465112afb793",
"name": "Split Responses",
"type": "n8n-nodes-base.splitOut",
"position": [
-400,
640
],
"parameters": {
"options": {},
"fieldToSplitOut": "data"
},
"typeVersion": 1
},
{
"id": "fc353193-177e-4f63-8056-b7e3a7c00dc5",
"name": "Upload Image to Google Drive",
"type": "n8n-nodes-base.googleDrive",
"position": [
96,
688
],
"parameters": {
"name": "=Image - {{ $('Get Prompt from Google Sheet').item.json.Name }} - {{ $('Double Output').item.json.run }}",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive",
"cachedResultUrl": "https://drive.google.com/drive/my-drive",
"cachedResultName": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "list",
"value": "1TnDibwPPPUm3VbmETiqWDVhtaUTLJ6mn",
"cachedResultUrl": "https://drive.google.com/drive/folders/1TnDibwPPPUm3VbmETiqWDVhtaUTLJ6mn",
"cachedResultName": "n8n workflows"
}
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "55e34b0d-31ab-4f88-b5b5-b1f8ea9c819f",
"name": "Get Prompt from Google Sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
-1488,
608
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1_u9IxEZINcwKQB15Rfx7C1hM71zeDST58Fz3nRHTCUY/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1_u9IxEZINcwKQB15Rfx7C1hM71zeDST58Fz3nRHTCUY",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1_u9IxEZINcwKQB15Rfx7C1hM71zeDST58Fz3nRHTCUY/edit?usp=drivesdk",
"cachedResultName": "freepik prompts"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "46ebdba5-bacd-4726-8837-0ebf6a45c25d",
"name": "Double Output",
"type": "n8n-nodes-base.code",
"position": [
-1312,
752
],
"parameters": {
"jsCode": "const original = items[0].json;\n\nreturn [\n { json: { ...original, run: 1 } },\n { json: { ...original, run: 2 } },\n];\n"
},
"typeVersion": 2
},
{
"id": "80e8b545-92ba-493d-a3ce-55a2ee886b6b",
"name": "Loop",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-992,
656
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "a35010e4-19cc-44f9-b918-7ed8e5504c80",
"name": "Sticky Note16",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1744,
-128
],
"parameters": {
"width": 2032,
"content": "## \ud83d\udcec Need Help or Want to Customize This?\n\ud83d\udce7 [robert@ynteractive.com](mailto:robert@ynteractive.com) \n\ud83d\udd17 [LinkedIn](https://www.linkedin.com/in/robert-breen-29429625/)"
},
"typeVersion": 1
},
{
"id": "422257a0-78a4-4d23-ab5b-3f06859de59c",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1744,
48
],
"parameters": {
"color": 5,
"width": 600,
"height": 860,
"content": "\n#### Node Configuration Details:\n\n##### Start Workflow (Manual Trigger)\n- No configuration needed\n- Used to manually start the workflow\n\n##### Get Prompt from Google Sheet (Google Sheets)\n- **Document ID**: Your Google Sheet ID (from Step 3)\n- **Sheet Name**: `Sheet1` (or your sheet name)\n- **Operation**: Read\n- **Credentials**: Select your \"Google Sheets account\"\n\n##### Double Output (Code Node)\n- **Purpose**: Creates multiple variations of each prompt\n- **JavaScript Code**:\n```javascript\nconst original = items[0].json;\n\nreturn [\n { json: { ...original, run: 1 } },\n { json: { ...original, run: 2 } },\n];\n```\nGoogle sheet to copy: https://docs.google.com/spreadsheets/d/1_u9IxEZINcwKQB15Rfx7C1hM71zeDST58Fz3nRHTCUY/edit?usp=sharing"
},
"typeVersion": 1
},
{
"id": "a7497ee2-35ea-417d-a36d-70c5680f46ef",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1120,
48
],
"parameters": {
"color": 6,
"width": 1400,
"height": 860,
"content": "##### Create Image (HTTP Request)\n- **Method**: `POST`\n- **URL**: `https://api.freepik.com/v1/ai/text-to-image`\n- **Authentication**: Generic \u2192 HTTP Header Auth\n- **Credentials**: Select your \"Header Auth account\"\n- **Send Body**: `true`\n- **Body Parameters**:\n - **Name**: `prompt`\n - **Value**: `={{ $json.Prompt }}`\n\n##### Split Responses (Split Out)\n- **Field to Split Out**: `data`\n- **Purpose**: Separates multiple images from API response\n\n##### Convert to File (Convert to File)\n- **Operation**: `toBinary`\n- **Source Property**: `base64`\n- **Purpose**: Converts base64 image data to file format\n\n##### Upload Image to Google Drive (Google Drive)\n- **Operation**: Upload\n- **Name**: `=Image - {{ $('Get Prompt from Google Sheet').item.json.Name }} - {{ $('Double Output').item.json.run }}`\n- **Drive ID**: `My Drive`\n- **Folder ID**: Your Google Drive folder ID (from Step 4)\n- **Credentials**: Select your \"Google Drive account\""
},
"typeVersion": 1
}
],
"connections": {
"Loop": {
"main": [
[],
[
{
"node": "Create Image",
"type": "main",
"index": 0
}
]
]
},
"Create Image": {
"main": [
[
{
"node": "Split Responses",
"type": "main",
"index": 0
}
]
]
},
"Double Output": {
"main": [
[
{
"node": "Loop",
"type": "main",
"index": 0
}
]
]
},
"Start Workflow": {
"main": [
[
{
"node": "Get Prompt from Google Sheet",
"type": "main",
"index": 0
}
]
]
},
"Convert to File": {
"main": [
[
{
"node": "Upload Image to Google Drive",
"type": "main",
"index": 0
}
]
]
},
"Split Responses": {
"main": [
[
{
"node": "Convert to File",
"type": "main",
"index": 0
}
]
]
},
"Get Prompt from Google Sheet": {
"main": [
[
{
"node": "Double Output",
"type": "main",
"index": 0
}
]
]
},
"Upload Image to Google Drive": {
"main": [
[
{
"node": "Loop",
"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.
googleDriveOAuth2ApigoogleSheetsOAuth2ApihttpHeaderAuth
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This n8n workflow automates bulk AI image generation using Freepik's Text-to-Image API. It reads prompts from a Google Sheet, generates multiple variations of each image using Freepik's AI, and automatically uploads the results to Google Drive with organized file names. This is…
Source: https://n8n.io/workflows/7334/ — 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.
PCN. Uses googleSheets, httpRequest, @n-octo-n/n8n-nodes-json-database, itemLists. Event-driven trigger; 60 nodes.
The workflow automates the process of gathering extensive keyword data for a "Main Keyword." It starts by reading initial parameters from a Google Sheets template, creates a new dedicated Google Sheet
🔥 March Sale – n8n Community Members Get ideoGener8r for Just $27! (Reg. $47) Use Coupon Code: (Valid until 3/31/2025 for n8n community members)
📄 Documentation: Notion Guide
Overview