AutomationFlowsAI & RAG › Template 3145

Template 3145

Template 3145. Uses formTrigger, googleDrive, httpRequest. Event-driven trigger; 8 nodes.

Event trigger★★★★☆ complexity8 nodesForm TriggerGoogle DriveHTTP Request
AI & RAG Trigger: Event Nodes: 8 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
{
  "template_id": 3145,
  "template_name": "Replace Data in Google Docs from n8n Form",
  "source": "n8n_official_api",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "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
    },
    {
      "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
    },
    {
      "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": "https://docs.google.com/document/d/1KyR0UMIOpEkjwa6o1gTggNBP2A6EWwppV59Y6NQuDYw/edit?usp=drivesdk",
          "cachedResultName": "Szablon: Dokument testowy"
        },
        "options": {},
        "operation": "copy"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "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
    },
    {
      "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
    },
    {
      "id": "99b03034-8c9b-4e23-8cc9-bf9960a4e06a",
      "name": "Replace data in Google Doc",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        440,
        -120
      ],
      "parameters": {
        "url": "=https://docs.googleapis.com/v1/documents/{{ $('Copy template file').first().json.id }}:batchUpdate",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "authentication": "predefinedCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "requests",
              "value": "={{ $json.data }}"
            }
          ]
        },
        "nodeCredentialType": "googleDocsOAuth2Api"
      },
      "credentials": {
        "googleDocsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "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\u200d\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
    },
    {
      "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
    }
  ],
  "connections": {
    "Form": {
      "main": [
        [
          {
            "node": "Copy template file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format form data": {
      "main": [
        [
          {
            "node": "Format form data to Google Doc API",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Copy template file": {
      "main": [
        [
          {
            "node": "Format form data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Replace data in Google Doc": {
      "main": [
        []
      ]
    },
    "Format form data to Google Doc API": {
      "main": [
        [
          {
            "node": "Replace data in Google Doc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

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

Template 3145. Uses formTrigger, googleDrive, httpRequest. Event-driven trigger; 8 nodes.

Source: https://github.com/alihussain6692/agentilizer/blob/cac0e7b8ce9f32ae913d94ba5e21fff661c0cedd/data/workflows/official_n8n/template_3145.json — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

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

AI & RAG

🤹🤖 This workflow (AI Document Generator with Anthropic Agent Skills and Uploading to Google Drive) automates the process of generating, downloading, and storing professionally formatted files (PDF, DO

HTTP Request, Form Trigger, Google Drive
AI & RAG

🎯 Create viral TikToks, Shorts, Reels, podcasts, and ASMR videos in minutes — all on autopilot.

OpenAI, HTTP Request, Form Trigger +7
AI & RAG

My workflow 4. Uses formTrigger, httpRequest, googleDrive, agent. Event-driven trigger; 48 nodes.

Form Trigger, HTTP Request, Google Drive +6
AI & RAG

This workflow transforms product images into professional marketing visuals by combining AI background generation, intelligent copywriting, and automated design templating. Upload a product photo, des

HTTP Request, Agent, OpenAI Chat +3
AI & RAG

This workflow is designed for marketers, founders, agencies, and content teams who want to generate static ad creatives faster from minimal brand input.

HTTP Request, Output Parser Structured, Google Drive +3