AutomationFlowsData & Sheets › Document Review Approval to Google Drive

Document Review Approval to Google Drive

Original n8n title: Wf04-명세서검수

WF04-명세서검수. Uses formTrigger, googleDrive, googleSheets. Webhook trigger; 15 nodes.

Webhook trigger★★★★☆ complexity15 nodesForm TriggerGoogle DriveGoogle Sheets
Data & Sheets Trigger: Webhook Nodes: 15 Complexity: ★★★★☆ Added:

This workflow follows the Form 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": "WF04-\uba85\uc138\uc11c\uac80\uc218",
  "id": "zSXpWko9op4hnSBr",
  "description": "Human-in-the-loop \ud2b9\ud5c8 \uba85\uc138\uc11c \uac80\uc218 \uc6cc\ud06c\ud50c\ub85c\uc6b0 - \uc2b9\uc778/\uc218\uc815\uc694\uccad/\ubc18\ub824 \ucc98\ub9ac",
  "active": false,
  "nodes": [
    {
      "id": "webhook-trigger",
      "name": "\uac80\uc218 \uc694\uccad Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        0,
        0
      ],
      "parameters": {
        "httpMethod": "POST",
        "path": "wf04-review-request",
        "responseMode": "onReceived"
      }
    },
    {
      "id": "prepare-review",
      "name": "\uac80\uc218 \ub370\uc774\ud130 \uc900\ube44",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        220,
        0
      ]
    },
    {
      "id": "review-form",
      "name": "\uac80\uc218 Form",
      "type": "n8n-nodes-base.formTrigger",
      "typeVersion": 2.2,
      "position": [
        440,
        0
      ],
      "parameters": {
        "formTitle": "\ud2b9\ud5c8 \uba85\uc138\uc11c \uac80\uc218",
        "formFields": [
          "\uac80\uc218 ID",
          "\uc2b9\uc778 \uc0c1\ud0dc",
          "\uccad\uad6c\ud56d \ud53c\ub4dc\ubc31",
          "\uc0c1\uc138\uc124\uba85 \ud53c\ub4dc\ubc31",
          "\ub3c4\uba74\uc124\uba85 \ud53c\ub4dc\ubc31",
          "\uc804\uccb4 \uc758\uacac",
          "\uc218\uc815 \uc6b0\uc120\uc21c\uc704"
        ]
      }
    },
    {
      "id": "check-approval",
      "name": "\uc2b9\uc778 \uc5ec\ubd80 \ud655\uc778",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        660,
        0
      ]
    },
    {
      "id": "process-approval",
      "name": "\uc2b9\uc778 \ucc98\ub9ac",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        880,
        -100
      ]
    },
    {
      "id": "process-revision",
      "name": "\uc218\uc815 \uc694\uccad \ucc98\ub9ac",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        880,
        100
      ]
    },
    {
      "id": "set-approved-output",
      "name": "\uc2b9\uc778 \uc644\ub8cc \ucd9c\ub825",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        1100,
        -100
      ]
    },
    {
      "id": "google-drive-upload-approved",
      "name": "Google Drive \uc5c5\ub85c\ub4dc (\uc2b9\uc778\ubb38\uc11c)",
      "type": "n8n-nodes-base.googleDrive",
      "typeVersion": 3,
      "position": [
        1320,
        -100
      ],
      "parameters": {
        "operation": "upload",
        "folderId": {
          "__rl": true,
          "value": "={{ $vars.GOOGLE_DRIVE_APPROVED_FOLDER_ID }}",
          "mode": "id"
        },
        "name": "=\uc2b9\uc778_{{ $json.patent_id }}_{{ $now.format('yyyyMMdd') }}.md",
        "options": {
          "mimeType": "text/markdown"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "id": "google-sheets-approved",
      "name": "Google Sheets \uc2b9\uc778 \uc5c5\ub370\uc774\ud2b8",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        1540,
        -100
      ],
      "parameters": {
        "operation": "appendOrUpdate",
        "documentId": {
          "__rl": true,
          "value": "={{ $vars.GOOGLE_SHEETS_TRACKING_ID }}",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": "\uc81c\ucd9c\uc774\ub825",
          "mode": "name"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Patent ID": "={{ $json.patent_id }}",
            "\uc0c1\ud0dc": "approved",
            "\ucd5c\uc885\ubb38\uc11c URL": "={{ $('Google Drive \uc5c5\ub85c\ub4dc (\uc2b9\uc778\ubb38\uc11c)').item.json.webViewLink }}",
            "\uac80\uc218\uc644\ub8cc\uc77c": "={{ $now.format('yyyy-MM-dd') }}"
          }
        },
        "options": {
          "updateLookupColumn": "Patent ID"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "id": "set-revision-output",
      "name": "\uc218\uc815 \uc694\uccad \ucd9c\ub825",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        1100,
        100
      ]
    },
    {
      "id": "check-rejection",
      "name": "\ubc18\ub824 \uc5ec\ubd80 \ud655\uc778",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        1320,
        100
      ],
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict"
          },
          "conditions": [
            {
              "id": "rejection-check",
              "leftValue": "={{ $json.status }}",
              "rightValue": "rejected",
              "operator": {
                "type": "string",
                "operation": "equals"
              }
            }
          ],
          "combinator": "and"
        }
      }
    },
    {
      "id": "google-drive-upload-rejected",
      "name": "Google Drive \uc5c5\ub85c\ub4dc (\ubc18\ub824\ubb38\uc11c)",
      "type": "n8n-nodes-base.googleDrive",
      "typeVersion": 3,
      "position": [
        1540,
        50
      ],
      "parameters": {
        "operation": "upload",
        "folderId": {
          "__rl": true,
          "value": "={{ $vars.GOOGLE_DRIVE_REJECTED_FOLDER_ID }}",
          "mode": "id"
        },
        "name": "=\ubc18\ub824_{{ $json.patent_id }}_{{ $now.format('yyyyMMdd') }}.md",
        "options": {
          "mimeType": "text/markdown"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "id": "google-sheets-rejected",
      "name": "Google Sheets \ubc18\ub824 \uc5c5\ub370\uc774\ud2b8",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        1760,
        50
      ],
      "parameters": {
        "operation": "appendOrUpdate",
        "documentId": {
          "__rl": true,
          "value": "={{ $vars.GOOGLE_SHEETS_TRACKING_ID }}",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": "\uc81c\ucd9c\uc774\ub825",
          "mode": "name"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Patent ID": "={{ $json.patent_id }}",
            "\uc0c1\ud0dc": "rejected",
            "\ucd5c\uc885\ubb38\uc11c URL": "={{ $('Google Drive \uc5c5\ub85c\ub4dc (\ubc18\ub824\ubb38\uc11c)').item.json.webViewLink }}",
            "\ubc18\ub824\uc0ac\uc720": "={{ $json.rejection_reason }}",
            "\uac80\uc218\uc644\ub8cc\uc77c": "={{ $now.format('yyyy-MM-dd') }}"
          }
        },
        "options": {
          "updateLookupColumn": "Patent ID"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "id": "google-sheets-revision",
      "name": "Google Sheets \uc218\uc815\uc694\uccad \uc5c5\ub370\uc774\ud2b8",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        1540,
        150
      ],
      "parameters": {
        "operation": "appendOrUpdate",
        "documentId": {
          "__rl": true,
          "value": "={{ $vars.GOOGLE_SHEETS_TRACKING_ID }}",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": "\uc81c\ucd9c\uc774\ub825",
          "mode": "name"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Patent ID": "={{ $json.patent_id }}",
            "\uc0c1\ud0dc": "revision_requested",
            "\uc218\uc815\uc694\uccad\uc0ac\ud56d": "={{ $json.revision_comments }}"
          }
        },
        "options": {
          "updateLookupColumn": "Patent ID"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "id": "merge-output",
      "name": "\uacb0\uacfc \ubcd1\ud569",
      "type": "n8n-nodes-base.merge",
      "typeVersion": 3,
      "position": [
        1980,
        0
      ],
      "parameters": {
        "mode": "combine",
        "options": {}
      }
    }
  ],
  "connections": {
    "\uac80\uc218 \uc694\uccad Webhook": {
      "main": [
        [
          {
            "node": "\uac80\uc218 \ub370\uc774\ud130 \uc900\ube44",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\uac80\uc218 Form": {
      "main": [
        [
          {
            "node": "\uc2b9\uc778 \uc5ec\ubd80 \ud655\uc778",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\uc2b9\uc778 \uc5ec\ubd80 \ud655\uc778": {
      "main": [
        [
          {
            "node": "\uc2b9\uc778 \ucc98\ub9ac",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "\uc218\uc815 \uc694\uccad \ucc98\ub9ac",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\uc2b9\uc778 \ucc98\ub9ac": {
      "main": [
        [
          {
            "node": "\uc2b9\uc778 \uc644\ub8cc \ucd9c\ub825",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\uc2b9\uc778 \uc644\ub8cc \ucd9c\ub825": {
      "main": [
        [
          {
            "node": "Google Drive \uc5c5\ub85c\ub4dc (\uc2b9\uc778\ubb38\uc11c)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive \uc5c5\ub85c\ub4dc (\uc2b9\uc778\ubb38\uc11c)": {
      "main": [
        [
          {
            "node": "Google Sheets \uc2b9\uc778 \uc5c5\ub370\uc774\ud2b8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets \uc2b9\uc778 \uc5c5\ub370\uc774\ud2b8": {
      "main": [
        [
          {
            "node": "\uacb0\uacfc \ubcd1\ud569",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\uc218\uc815 \uc694\uccad \ucc98\ub9ac": {
      "main": [
        [
          {
            "node": "\uc218\uc815 \uc694\uccad \ucd9c\ub825",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\uc218\uc815 \uc694\uccad \ucd9c\ub825": {
      "main": [
        [
          {
            "node": "\ubc18\ub824 \uc5ec\ubd80 \ud655\uc778",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ubc18\ub824 \uc5ec\ubd80 \ud655\uc778": {
      "main": [
        [
          {
            "node": "Google Drive \uc5c5\ub85c\ub4dc (\ubc18\ub824\ubb38\uc11c)",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Google Sheets \uc218\uc815\uc694\uccad \uc5c5\ub370\uc774\ud2b8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive \uc5c5\ub85c\ub4dc (\ubc18\ub824\ubb38\uc11c)": {
      "main": [
        [
          {
            "node": "Google Sheets \ubc18\ub824 \uc5c5\ub370\uc774\ud2b8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets \ubc18\ub824 \uc5c5\ub370\uc774\ud2b8": {
      "main": [
        [
          {
            "node": "\uacb0\uacfc \ubcd1\ud569",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Google Sheets \uc218\uc815\uc694\uccad \uc5c5\ub370\uc774\ud2b8": {
      "main": [
        [
          {
            "node": "\uacb0\uacfc \ubcd1\ud569",
            "type": "main",
            "index": 2
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "meta": {
    "version": "1.1.0",
    "created": "2026-01-10",
    "updated": "2026-01-13",
    "project": "MAIPatent",
    "workflow_sequence": 4,
    "review_options": [
      "\uc2b9\uc778",
      "\uc218\uc815 \ud544\uc694",
      "\ubc18\ub824"
    ],
    "feedback_fields": [
      "\uccad\uad6c\ud56d",
      "\uc0c1\uc138\uc124\uba85",
      "\ub3c4\uba74\uc124\uba85",
      "\uc804\uccb4 \uc758\uacac"
    ]
  }
}

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.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

WF04-명세서검수. Uses formTrigger, googleDrive, googleSheets. Webhook trigger; 15 nodes.

Source: https://github.com/jini92/MAIPatent/blob/c9040f7443cbcd6380a646aa203f93d3b4f15767/workflows/WF04-human-review.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

Transform your n8n instance management with this advanced automation system featuring artificial intelligence-driven workflow selection. This template provides comprehensive maintenance operations wit

n8n, HTTP Request, Google Sheets +1
Data & Sheets

Convalidaciones Académicas - Estructura Base. Uses googleSheets, emailSend, googleDrive, httpRequest. Webhook trigger; 35 nodes.

Google Sheets, Email Send, Google Drive +2
Data & Sheets

TrackCollect. Uses googleSheets, httpRequest, @n-octo-n/n8n-nodes-json-database, moveBinaryData. Webhook trigger; 31 nodes.

Google Sheets, HTTP Request, @N Octo N/N8N Nodes Json Database +2
Data & Sheets

This workflow automatically saves files received via LINE Messaging API into Google Drive and logs the file details into a Google Sheet. It checks the file type against allowed types, organizes files

Google Sheets, Google Drive, HTTP Request
Data & Sheets

Description: The Spotify Music Downloader is an automation flow that allows users to easily download music from Spotify tracks. By leveraging the powerful Spotify Downloader API, the flow downloads Sp

Form Trigger, HTTP Request, Google Drive +1