This workflow follows the Execute Workflow Trigger → Google Drive 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 →
{
"name": "Wattlift Onboarding - Sub-G - Drive Folders",
"nodes": [
{
"id": "trigger",
"name": "When called by orchestrator",
"type": "n8n-nodes-base.executeWorkflowTrigger",
"typeVersion": 1.1,
"position": [
240,
300
],
"parameters": {
"inputSource": "passthrough"
}
},
{
"id": "constants",
"name": "Set constants",
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
460,
300
],
"parameters": {
"assignments": {
"assignments": [
{
"id": "k1",
"name": "b2c_parent_folder_id",
"value": "REPLACE_WITH_B2C_FOLDER_ID",
"type": "string"
},
{
"id": "k2",
"name": "fiche_client_template_id",
"value": "",
"type": "string"
},
{
"id": "k3",
"name": "onboarding_template_id",
"value": "",
"type": "string"
},
{
"id": "k4",
"name": "formations_template_id",
"value": "",
"type": "string"
}
]
},
"options": {}
}
},
{
"id": "create_client_folder",
"name": "Create client folder",
"type": "n8n-nodes-base.googleDrive",
"typeVersion": 3,
"position": [
720,
300
],
"parameters": {
"resource": "folder",
"operation": "create",
"name": "={{ $('When called by orchestrator').first().json.client_business_name }}",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"folderId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.b2c_parent_folder_id }}"
},
"options": {}
}
},
{
"id": "if_fiche",
"name": "If fiche template set",
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
940,
80
],
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "loose"
},
"conditions": [
{
"id": "if1",
"leftValue": "={{ $('Set constants').first().json.fiche_client_template_id }}",
"rightValue": "",
"operator": {
"type": "string",
"operation": "notEmpty"
}
}
],
"combinator": "and"
}
}
},
{
"id": "if_onboarding",
"name": "If onboarding template set",
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
1380,
80
],
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "loose"
},
"conditions": [
{
"id": "if2",
"leftValue": "={{ $('Set constants').first().json.onboarding_template_id }}",
"rightValue": "",
"operator": {
"type": "string",
"operation": "notEmpty"
}
}
],
"combinator": "and"
}
}
},
{
"id": "if_formations",
"name": "If formations template set",
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
2040,
460
],
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "loose"
},
"conditions": [
{
"id": "if3",
"leftValue": "={{ $('Set constants').first().json.formations_template_id }}",
"rightValue": "",
"operator": {
"type": "string",
"operation": "notEmpty"
}
}
],
"combinator": "and"
}
}
},
{
"id": "copy_fiche_client",
"name": "Copy Fiche client doc",
"type": "n8n-nodes-base.googleDrive",
"typeVersion": 3,
"position": [
940,
180
],
"parameters": {
"resource": "file",
"operation": "copy",
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Set constants').first().json.fiche_client_template_id }}"
},
"name": "={{ 'Fiche client - ' + $('When called by orchestrator').first().json.client_business_name }}",
"options": {
"parents": [
"={{ $('Create client folder').first().json.id }}"
]
}
}
},
{
"id": "create_drive_partage",
"name": "Create Drive partag\u00e9 subfolder",
"type": "n8n-nodes-base.googleDrive",
"typeVersion": 3,
"position": [
940,
300
],
"parameters": {
"resource": "folder",
"operation": "create",
"name": "Drive partag\u00e9",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"folderId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Create client folder').first().json.id }}"
},
"options": {}
}
},
{
"id": "share_drive_partage",
"name": "Share Drive partag\u00e9 (anyone)",
"type": "n8n-nodes-base.googleDrive",
"typeVersion": 3,
"position": [
1160,
300
],
"parameters": {
"resource": "fileFolder",
"operation": "share",
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
},
"permissionsUi": {
"permissionsValues": {
"role": "writer",
"type": "anyone",
"allowFileDiscovery": false
}
},
"options": {}
}
},
{
"id": "copy_onboarding_doc",
"name": "Copy Onboarding doc",
"type": "n8n-nodes-base.googleDrive",
"typeVersion": 3,
"position": [
1380,
200
],
"parameters": {
"resource": "file",
"operation": "copy",
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Set constants').first().json.onboarding_template_id }}"
},
"name": "={{ 'Onboarding - ' + $('When called by orchestrator').first().json.client_business_name }}",
"options": {
"parents": [
"={{ $('Create Drive partag\u00e9 subfolder').first().json.id }}"
]
}
}
},
{
"id": "create_subfolders",
"name": "Create subfolders",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
1380,
360
],
"parameters": {
"language": "javaScript",
"jsCode": "const subfolders = ['Statiques', 'Ad copies', 'Scripts', 'Vid\u00e9os', 'Assets', 'Ressources (tuto, formations)'];\nreturn subfolders.map(name => ({ json: { folder_name: name, parent_id: $('Create Drive partag\u00e9 subfolder').first().json.id } }));"
}
},
{
"id": "create_subfolder_loop",
"name": "Create each subfolder",
"type": "n8n-nodes-base.googleDrive",
"typeVersion": 3,
"position": [
1600,
360
],
"parameters": {
"resource": "folder",
"operation": "create",
"name": "={{ $json.folder_name }}",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"folderId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.parent_id }}"
},
"options": {}
}
},
{
"id": "filter_ressources",
"name": "Filter Ressources folder",
"type": "n8n-nodes-base.filter",
"typeVersion": 2.2,
"position": [
1820,
360
],
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "loose"
},
"conditions": [
{
"id": "fr1",
"leftValue": "={{ $json.name }}",
"rightValue": "Ressources (tuto, formations)",
"operator": {
"type": "string",
"operation": "equals"
}
}
],
"combinator": "and"
}
}
},
{
"id": "copy_formations",
"name": "Copy Formations doc",
"type": "n8n-nodes-base.googleDrive",
"typeVersion": 3,
"position": [
2040,
360
],
"parameters": {
"resource": "file",
"operation": "copy",
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Set constants').first().json.formations_template_id }}"
},
"name": "Formations",
"options": {
"parents": [
"={{ $json.id }}"
]
}
}
},
{
"id": "aggregate_done",
"name": "Wait for all branches",
"type": "n8n-nodes-base.merge",
"typeVersion": 3,
"position": [
2260,
280
],
"parameters": {
"mode": "append"
}
},
{
"id": "update_sheet",
"name": "Update tracker (subG_status)",
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.5,
"position": [
2480,
280
],
"parameters": {
"operation": "update",
"documentId": {
"__rl": true,
"value": "1cgb85h7bC8LKtHtE2Xkah_B1816QyHHa1fRHW0s6zUw",
"mode": "id"
},
"sheetName": {
"__rl": true,
"value": "clients",
"mode": "name"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"client_id": "={{ $('When called by orchestrator').first().json.client_id }}",
"subG_status": "done",
"subG_completed_at": "={{ new Date().toISOString() }}",
"drive_folder_url": "={{ 'https://drive.google.com/drive/folders/' + $('Create client folder').first().json.id }}",
"last_updated": "={{ new Date().toISOString() }}"
},
"matchingColumns": [
"client_id"
],
"schema": []
},
"options": {}
}
},
{
"id": "sticky",
"name": "Sticky",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
200,
60
],
"parameters": {
"content": "## Sub-G: Drive Folders\n**Input**: `{ client_id, client_business_name }`\n\nCreates the per-client Drive structure exactly as the PDF describes:\n```\n[CLIENT NAME]/\n Fiche client - [CLIENT NAME] (copy of template doc)\n Drive partag\u00e9/ (shared: anyone with link \u2192 editor)\n Onboarding - [CLIENT NAME] (copy of template)\n Statiques/\n Ad copies/\n Scripts/\n Vid\u00e9os/\n Assets/\n Ressources (tuto, formations)/\n Formations (copy of template)\n```\n\n**BEFORE FIRST RUN \u2014 fill in the 4 IDs in 'Set constants':**\n- `b2c_parent_folder_id` \u2014 Drive folder ID of `Wattlift Europe > Client > B2C`\n- `fiche_client_template_id` \u2014 Doc ID of the Fiche client - Alpin Sun template\n- `onboarding_template_id` \u2014 Doc ID of the Onboarding - Alpin'Sun template\n- `formations_template_id` \u2014 Doc ID of the Formations doc\n\n(get IDs from the URL: `.../d/{ID}/edit` for docs or `.../folders/{ID}` for folders)",
"height": 480,
"width": 700,
"color": 6
}
}
],
"connections": {
"When called by orchestrator": {
"main": [
[
{
"node": "Set constants",
"type": "main",
"index": 0
}
]
]
},
"Set constants": {
"main": [
[
{
"node": "Create client folder",
"type": "main",
"index": 0
}
]
]
},
"Create client folder": {
"main": [
[
{
"node": "If fiche template set",
"type": "main",
"index": 0
},
{
"node": "Create Drive partag\u00e9 subfolder",
"type": "main",
"index": 0
}
]
]
},
"If fiche template set": {
"main": [
[
{
"node": "Copy Fiche client doc",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait for all branches",
"type": "main",
"index": 0
}
]
]
},
"Create Drive partag\u00e9 subfolder": {
"main": [
[
{
"node": "Share Drive partag\u00e9 (anyone)",
"type": "main",
"index": 0
}
]
]
},
"Share Drive partag\u00e9 (anyone)": {
"main": [
[
{
"node": "If onboarding template set",
"type": "main",
"index": 0
},
{
"node": "Create subfolders",
"type": "main",
"index": 0
}
]
]
},
"If onboarding template set": {
"main": [
[
{
"node": "Copy Onboarding doc",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait for all branches",
"type": "main",
"index": 1
}
]
]
},
"Create subfolders": {
"main": [
[
{
"node": "Create each subfolder",
"type": "main",
"index": 0
}
]
]
},
"Create each subfolder": {
"main": [
[
{
"node": "Filter Ressources folder",
"type": "main",
"index": 0
}
]
]
},
"Filter Ressources folder": {
"main": [
[
{
"node": "If formations template set",
"type": "main",
"index": 0
}
]
]
},
"If formations template set": {
"main": [
[
{
"node": "Copy Formations doc",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait for all branches",
"type": "main",
"index": 0
}
]
]
},
"Copy Fiche client doc": {
"main": [
[
{
"node": "Wait for all branches",
"type": "main",
"index": 0
}
]
]
},
"Copy Onboarding doc": {
"main": [
[
{
"node": "Wait for all branches",
"type": "main",
"index": 1
}
]
]
},
"Copy Formations doc": {
"main": [
[
{
"node": "Wait for all branches",
"type": "main",
"index": 0
}
]
]
},
"Wait for all branches": {
"main": [
[
{
"node": "Update tracker (subG_status)",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1"
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Wattlift Onboarding - Sub-G - Drive Folders. Uses executeWorkflowTrigger, googleDrive, googleSheets. Event-driven trigger; 17 nodes.
Source: https://github.com/malharlakdawala/n8n-builder/blob/8e56988946862490482d0a8c0b1cc029c341517f/workflows/G-drive.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.
Intelligent URL Validation - Validates PDF URLs before attempting download, extracting filenames from URLs and generating fallback names when needed, preventing wasted processing time Binary File Hand
Gdrive-Recursion. Uses executeWorkflowTrigger, googleSheets, googleDrive. Event-driven trigger; 19 nodes.
LINE Image Handler. Uses executeWorkflowTrigger, googleSheets, httpRequest, googleDrive. Event-driven trigger; 17 nodes.
__Create-doc. Uses executeWorkflowTrigger, googleDrive, googleSheets. Event-driven trigger; 5 nodes.
Smart-Folder2Table. Uses executeWorkflowTrigger, httpRequest, chainLlm, lmChatGroq. Event-driven trigger; 26 nodes.