AutomationFlowsWeb Scraping › Formtrigger Workflow

Formtrigger Workflow

Formtrigger Workflow. Uses formTrigger, googleDrive, httpRequest, stopAndError. Event-driven trigger; 28 nodes.

Event trigger★★★★☆ complexity28 nodesForm TriggerGoogle DriveHTTP RequestStop And Error
Web Scraping Trigger: Event Nodes: 28 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
{
  "meta": {
    "versionId": "1.0.0",
    "createdAt": "2025-09-29T07:07:42.918095",
    "updatedAt": "2025-09-29T07:07:42.918182",
    "owner": "n8n-user",
    "license": "MIT",
    "category": "automation",
    "status": "active",
    "priority": "high",
    "environment": "production"
  },
  "nodes": [
    {
      "id": "56e70371-54a2-4421-9ce2-e626d9c6ef60",
      "name": "Form",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -440,
        -120
      ],
      "parameters": {
        "options": {},
        "formTitle": "Form",
        "formFields": {
          "values": [
            {
              "fieldLabel": "name",
              "requiredField": true
            }
          ]
        }
      },
      "typeVersion": 2.2,
      "notes": "This formTrigger node performs automated tasks as part of the workflow."
    },
    {
      "id": "7cbd263e-ca5b-436e-bdce-c30a66df73a6",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -440,
        100
      ],
      "parameters": {
        "color": 3,
        "width": 320,
        "content": "# \ud83d\udc46\nPlease add authentication to form by selecting Basic Auth to prevent unauthorized access to the form.\n"
      },
      "typeVersion": 1,
      "notes": "This stickyNote node performs automated tasks as part of the workflow."
    },
    {
      "id": "e1c4d0a8-6e48-45d9-bec6-ee8bb3751b4f",
      "name": "Copy template file",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -220,
        -120
      ],
      "parameters": {
        "name": "={{ $json.name }}",
        "fileId": {
          "__rl": true,
          "mode": "list",
          "value": "1KyR0UMIOpEkjwa6o1gTggNBP2A6EWwppV59Y6NQuDYw",
          "cachedResultUrl": "{{ $env.WEBHOOK_URL }}",
          "cachedResultName": "Szablon: Dokument testowy"
        },
        "options": {},
        "operation": "copy"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3,
      "notes": "This googleDrive node performs automated tasks as part of the workflow."
    },
    {
      "id": "52a27a15-ca68-4381-9a0d-faa1127d7de9",
      "name": "Format form data",
      "type": "n8n-nodes-base.code",
      "position": [
        0,
        -120
      ],
      "parameters": {
        "jsCode": "const data = [];\n\nObject.keys($('Form').all().map((item) => {\n  Object.keys(item.json).map((bodyProperty) => {\n    data.push({\n      key: bodyProperty,\n      value: item.json[bodyProperty],\n    });\n  })\n}));\n\nreturn {\n  webhook_data: data,\n  pairedItem: 0,\n};"
      },
      "typeVersion": 2,
      "notes": "This code node performs automated tasks as part of the workflow."
    },
    {
      "id": "08dbeb42-16f6-4771-bbf8-a358fda54097",
      "name": "Format form data to Google Doc API",
      "type": "n8n-nodes-base.code",
      "position": [
        220,
        -120
      ],
      "parameters": {
        "jsCode": "const result = [];\n\n$('Format form data').all().map((item) => {\n  item.json.webhook_data.map((data) => {\n    if (\"submittedAt\" !== data.key && \"formMode\" !== data.key) {\n      result.push({\n        \"replaceAllText\": {\n            \"containsText\": {\n              \"text\": `{{${data.key}}}`, \n              \"matchCase\": true\n            },\n            \"replaceText\": `${data.value}`\n        },\n      });\n    }\n  });\n})\n\nreturn {\n  data: result,\n  pairedItem: 0,\n};"
      },
      "typeVersion": 2,
      "notes": "This code node performs automated tasks as part of the workflow."
    },
    {
      "id": "99b03034-8c9b-4e23-8cc9-bf9960a4e06a",
      "name": "Replace data in Google Doc",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        440,
        -120
      ],
      "parameters": {
        "url": "{{ $env.BASE_URL }}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "authentication": "{{ $credentials.predefinedCredentialType }}",
        "bodyParameters": {
          "parameters": [
            {
              "name": "requests",
              "value": "={{ $json.data }}"
            }
          ]
        },
        "nodeCredentialType": "YOUR_CREDENTIAL_HERE"
      },
      "credentials": {
        "googleDocsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2,
      "notes": "This httpRequest node performs automated tasks as part of the workflow."
    },
    {
      "id": "204b57da-2791-40e3-84f5-23a0ed5c8beb",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -440,
        -420
      ],
      "parameters": {
        "color": 6,
        "width": 520,
        "height": 180,
        "content": "# \ud83d\ude4b\u2642\ufe0f\nThe workflow automatically fetches all form fields and converts them into variables in Google Doc. For example, if you add a text field to the form called \"address,\" you can use the variable {{address}} in the Google Doc template."
      },
      "typeVersion": 1,
      "notes": "This stickyNote node performs automated tasks as part of the workflow."
    },
    {
      "id": "fa17044d-191e-45eb-9559-563889ad2aef",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        440,
        100
      ],
      "parameters": {
        "color": 3,
        "content": "# \ud83d\udc46\nIn Authentication, you need to select Predefined Credential Type and then choose Google Docs OAuth API."
      },
      "typeVersion": 1,
      "notes": "This stickyNote node performs automated tasks as part of the workflow."
    }
  ],
  "connections": {
    "99b03034-8c9b-4e23-8cc9-bf9960a4e06a": {
      "main": [
        [
          {
            "node": "error-handler-99b03034-8c9b-4e23-8cc9-bf9960a4e06a",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-99b03034-8c9b-4e23-8cc9-bf9960a4e06a-4961a7ef",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-99b03034-8c9b-4e23-8cc9-bf9960a4e06a-4125e76c",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-99b03034-8c9b-4e23-8cc9-bf9960a4e06a-f70dce2f",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-99b03034-8c9b-4e23-8cc9-bf9960a4e06a-2a68a6b5",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-99b03034-8c9b-4e23-8cc9-bf9960a4e06a-b5eb72cd",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-99b03034-8c9b-4e23-8cc9-bf9960a4e06a-1ced0bac",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-99b03034-8c9b-4e23-8cc9-bf9960a4e06a-b04c77e2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-99b03034-8c9b-4e23-8cc9-bf9960a4e06a-7f1bb374",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e1c4d0a8-6e48-45d9-bec6-ee8bb3751b4f": {
      "main": [
        [
          {
            "node": "error-handler-e1c4d0a8-6e48-45d9-bec6-ee8bb3751b4f-25182da5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "name": "Formtrigger Workflow",
  "settings": {
    "executionOrder": "v1",
    "saveManualExecutions": true,
    "callerPolicy": "workflowsFromSameOwner",
    "errorWorkflow": null,
    "timezone": "UTC",
    "executionTimeout": 3600,
    "maxExecutions": 1000,
    "retryOnFail": true,
    "retryCount": 3,
    "retryDelay": 1000
  },
  "description": "Automated workflow: Formtrigger Workflow. This workflow integrates 6 different services: stickyNote, httpRequest, formTrigger, code, googleDrive. It contains 11 nodes and follows best practices for error handling and security.",
  "tags": [
    "automation",
    "n8n",
    "production-ready",
    "excellent",
    "optimized"
  ],
  "notes": "Excellent quality workflow: Formtrigger Workflow. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."
}

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

Formtrigger Workflow. Uses formTrigger, googleDrive, httpRequest, stopAndError. Event-driven trigger; 28 nodes.

Source: https://github.com/OSOSerious/everything-n8n/blob/02ec8081ee227eaa73bb7e35626e17faac897582/Code/0784_Code_Form_Automation_Webhook.json — original creator credit. Request a take-down →

More Web Scraping workflows → · Browse all categories →

Related workflows

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

Web Scraping

Formtrigger Workflow. Uses formTrigger, googleDrive, httpRequest, stopAndError. Event-driven trigger; 28 nodes.

Form Trigger, Google Drive, HTTP Request +1
Web Scraping

Formtrigger Workflow. Uses formTrigger, googleDrive, httpRequest, stopAndError. Event-driven trigger; 12 nodes.

Form Trigger, Google Drive, HTTP Request +1
Web Scraping

[n8n] Advanced URL Parsing and Shortening Workflow - Switchy.io Integration. Uses splitInBatches, stickyNote, httpRequest, html. Event-driven trigger; 56 nodes.

HTTP Request, GitHub, Stop And Error +1
Web Scraping

[](https://youtu.be/c7yCZhmMjtI)

HTTP Request, GitHub, Stop And Error +1
Web Scraping

The Sora 2 API allows seamless generation of CGI ads, turning text prompts into stunning videos. This workflow automates the entire process from video generation to upload, notification, and file shar

Form Trigger, HTTP Request, Email Send +1