AutomationFlowsData & Sheets › Wattlift Onboarding - Sub-g - Drive Folders

Wattlift Onboarding - Sub-g - Drive Folders

Wattlift Onboarding - Sub-G - Drive Folders. Uses executeWorkflowTrigger, googleDrive, googleSheets. Event-driven trigger; 17 nodes.

Event trigger★★★★☆ complexity17 nodesExecute Workflow TriggerGoogle DriveGoogle Sheets
Data & Sheets Trigger: Event Nodes: 17 Complexity: ★★★★☆ Added:

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 →

Download .json
{
  "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"
  }
}
Pro

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 →

More Data & Sheets workflows → · Browse all categories →

Related workflows

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

Data & Sheets

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

Execute Workflow Trigger, Google Sheets, HTTP Request +1
Data & Sheets

Gdrive-Recursion. Uses executeWorkflowTrigger, googleSheets, googleDrive. Event-driven trigger; 19 nodes.

Execute Workflow Trigger, Google Sheets, Google Drive
Data & Sheets

LINE Image Handler. Uses executeWorkflowTrigger, googleSheets, httpRequest, googleDrive. Event-driven trigger; 17 nodes.

Execute Workflow Trigger, Google Sheets, HTTP Request +1
Data & Sheets

__Create-doc. Uses executeWorkflowTrigger, googleDrive, googleSheets. Event-driven trigger; 5 nodes.

Execute Workflow Trigger, Google Drive, Google Sheets
Data & Sheets

Smart-Folder2Table. Uses executeWorkflowTrigger, httpRequest, chainLlm, lmChatGroq. Event-driven trigger; 26 nodes.

Execute Workflow Trigger, HTTP Request, Chain Llm +4