This workflow follows the Form Trigger → HTTP Request 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 →
{
"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",
"complexity": "intermediate",
"nodeCount": 8,
"semanticLabel": "Data Sync & ETL",
"clusterId": 1,
"generated": true,
"sourceArchetype": "Formtrigger Workflow"
},
"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.dropbox",
"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\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,
"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_v96",
"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.
googleDocsOAuth2ApigoogleDriveOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Formtrigger Workflow_v96. Uses formTrigger, dropbox, httpRequest. Event-driven trigger; 8 nodes.
Source: https://github.com/Ker102/n8n-workflows-36k/blob/673814a4631d6479a7f3137fa3a744a79298ca58/workflows_ml/synthetic_v2/Data_Sync_and_ETL/archetype_4_data_etl_form_trigger_dat_var96.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.
How It Works This sub-workflow uploads files to Dropbox and returns a direct download link:
Formtrigger Workflow_v695. Uses formTrigger, dropbox, httpRequest. Event-driven trigger; 8 nodes.
Formtrigger Workflow_v2. Uses formTrigger, dropbox, httpRequest. Event-driven trigger; 8 nodes.
Formtrigger Workflow_v44. Uses formTrigger, dropbox, httpRequest. Event-driven trigger; 8 nodes.
Formtrigger Workflow_v28. Uses formTrigger, dropbox, httpRequest. Event-driven trigger; 8 nodes.