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 →
{
"createdAt": "2025-05-08T14:35:07.804Z",
"updatedAt": "2025-05-08T14:45:35.000Z",
"id": "ajQuTXa9pu65AdiK",
"name": "UpdateGame",
"active": false,
"nodes": [
{
"parameters": {
"mode": "combine",
"combineBy": "combineByPosition",
"options": {
"includeUnpaired": true
}
},
"type": "n8n-nodes-base.merge",
"typeVersion": 3.1,
"position": [
-520,
280
],
"id": "5fce3399-f840-4a45-ac2f-e195a817f469",
"name": "Merge"
},
{
"parameters": {},
"type": "n8n-nodes-base.limit",
"typeVersion": 1,
"position": [
-960,
220
],
"id": "17d51995-324a-4c8c-b13b-9ca560831617",
"name": "Limit"
},
{
"parameters": {
"mode": "combine",
"combineBy": "combineByPosition",
"options": {
"includeUnpaired": true
}
},
"type": "n8n-nodes-base.merge",
"typeVersion": 3.1,
"position": [
360,
140
],
"id": "9b57f607-63ac-433e-88d7-ab9d2a70914c",
"name": "Merge1"
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "f902f7c7-7c2f-485f-a71c-46083347cc87",
"leftValue": "={{ $json.folder }}",
"rightValue": "",
"operator": {
"type": "object",
"operation": "exists",
"singleValue": true
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
-300,
280
],
"id": "c88bb236-7e99-4e39-9071-7bb5a6f3bef2",
"name": "If folder exist"
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "f902f7c7-7c2f-485f-a71c-46083347cc87",
"leftValue": "={{ $json.file }}",
"rightValue": "",
"operator": {
"type": "object",
"operation": "exists",
"singleValue": true
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
580,
140
],
"id": "1f15ca37-ddd8-43cd-841d-241260e6f7c1",
"name": "If file exist"
},
{
"parameters": {
"mode": "raw",
"jsonOutput": "={\n \"folder\": {\n \"id\": \"{{ $json.id }}\",\n \"name\": \"{{ $json.name }}\"\n }\n}",
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
-740,
220
],
"id": "25af3a00-7ae4-442e-8646-80a3fd306a62",
"name": "Folder"
},
{
"parameters": {
"mode": "raw",
"jsonOutput": "={\n \"file\": {\n \"id\": \"{{ $json.id }}\",\n \"name\": \"{{ $json.name }}\"\n }\n}",
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
140,
60
],
"id": "d64e3823-9035-4048-ba7d-abcc3e3fbe67",
"name": "File"
},
{
"parameters": {
"inputSource": "jsonExample",
"jsonExample": "{\n \"folderName\": \"a string\",\n \"fileName\": \"a string\",\n \"jsonContent\": \"json\"\n}"
},
"type": "n8n-nodes-base.executeWorkflowTrigger",
"typeVersion": 1.1,
"position": [
-1540,
340
],
"id": "ab610146-3ec7-4931-88df-0cc04185ef4a",
"name": "When Executed by Another Workflow"
},
{
"parameters": {
"resource": "fileFolder",
"queryString": "={{ $json.fileName }}",
"filter": {
"whatToSearch": "files"
},
"options": {}
},
"type": "n8n-nodes-base.googleDrive",
"typeVersion": 3,
"position": [
-80,
60
],
"id": "fb0b9d13-1c8b-43ae-bf0e-06b925bf2271",
"name": "Get Game File",
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"resource": "fileFolder",
"queryString": "={{ $json.folderName }}",
"filter": {
"folderId": {
"mode": "list",
"value": "root",
"cachedResultName": "/ (Root folder)"
}
},
"options": {}
},
"type": "n8n-nodes-base.googleDrive",
"typeVersion": 3,
"position": [
-1180,
220
],
"id": "7bd30ff6-0cb5-41f8-8875-ace6651f96f4",
"name": "Get Folder",
"alwaysOutputData": false,
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "update",
"fileId": {
"__rl": true,
"value": "={{ $('File').item.json.file.id }}",
"mode": "id"
},
"changeFileContent": true,
"options": {}
},
"type": "n8n-nodes-base.googleDrive",
"typeVersion": 3,
"position": [
1380,
80
],
"id": "bdc5402d-14ad-49d0-b9a7-67e7db80bc35",
"name": "Update Game Data",
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "toJson",
"mode": "each",
"options": {
"format": true
}
},
"type": "n8n-nodes-base.convertToFile",
"typeVersion": 1.1,
"position": [
1120,
100
],
"id": "2febb946-e6db-4dc0-bdd5-4673d434df87",
"name": "Convert to File"
},
{
"parameters": {
"mode": "raw",
"jsonOutput": "={{ $json.jsonContent }}",
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
900,
120
],
"id": "e225bb9d-74f1-412b-b826-c5fab9a87234",
"name": "Set jsonContent"
}
],
"connections": {
"Merge": {
"main": [
[
{
"node": "If folder exist",
"type": "main",
"index": 0
}
]
]
},
"Limit": {
"main": [
[
{
"node": "Folder",
"type": "main",
"index": 0
}
]
]
},
"Merge1": {
"main": [
[
{
"node": "If file exist",
"type": "main",
"index": 0
}
]
]
},
"If folder exist": {
"main": [
[
{
"node": "Merge1",
"type": "main",
"index": 1
},
{
"node": "Get Game File",
"type": "main",
"index": 0
}
]
]
},
"If file exist": {
"main": [
[
{
"node": "Set jsonContent",
"type": "main",
"index": 0
}
]
]
},
"Folder": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"File": {
"main": [
[
{
"node": "Merge1",
"type": "main",
"index": 0
}
]
]
},
"When Executed by Another Workflow": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
},
{
"node": "Get Folder",
"type": "main",
"index": 0
}
]
]
},
"Get Game File": {
"main": [
[
{
"node": "File",
"type": "main",
"index": 0
}
]
]
},
"Get Folder": {
"main": [
[
{
"node": "Limit",
"type": "main",
"index": 0
}
]
]
},
"Update Game Data": {
"main": [
[]
]
},
"Convert to File": {
"main": [
[
{
"node": "Update Game Data",
"type": "main",
"index": 0
}
]
]
},
"Set jsonContent": {
"main": [
[
{
"node": "Convert to File",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1"
},
"staticData": null,
"meta": null,
"versionId": "e2b40e79-419d-45aa-9897-b028b3f475dd",
"triggerCount": 0,
"tags": [],
"fileName": "updategame.json",
"option": "updategame.json"
}
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.
googleDriveOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
How this works
This workflow streamlines the process of updating game-related files by automatically managing storage and organisation in Google Drive, saving you hours of manual uploads and version checks. It's ideal for game developers or content creators who frequently revise assets like scripts, artwork, or data files during iterative development cycles. The key step involves a conditional chain that checks for existing folders and files before setting new ones, ensuring seamless integration with external triggers from other workflows via the executeWorkflowTrigger node.
Use this workflow when you need event-driven automation for consistent file updates in collaborative projects, such as syncing changes from a build pipeline to a shared drive. Avoid it for one-off tasks or when dealing with non-file-based game data like database records, as it focuses solely on Drive operations. Common variations include adding email notifications after updates or integrating with version control tools like GitHub for broader asset management.
About this workflow
UpdateGame. Uses limit, executeWorkflowTrigger, googleDrive, convertToFile. Event-driven trigger; 13 nodes.
Source: https://github.com/CyrilDenoyelle/n8n_game_master_ai/blob/293a5c990f98d096130f9882990f186b3e52cb01/workflows/updategame.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.
Code. Uses manualTrigger, executeWorkflowTrigger, googleDrive, stickyNote. Event-driven trigger; 16 nodes.
This workflow creates nested Google Drive folders from a path string (like ). It automatically handles the necessary folder lookups and creation steps required by Google Drive, then outputs the final
Anyone who needs to recursively fetch all files from a specific Google Drive folder, including files inside all its nested (child) folders. Ideal for automation builders, admins, and integrators who w
🎯 Purpose: Generate audio files from text scripts stored in Google Drive.
google-drive. Uses executeWorkflowTrigger, n8n-nodes-evolution-api, googleDrive. Event-driven trigger; 10 nodes.