{ "meta": { "instanceId": "workflow-02343501", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:51.578366", "updatedAt": "2025-09-29T07:07:51.578380", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production" }, "nodes": [ { "id": "f80aceed-b676-42aa-bf25-f7a44408b1bc", "name": "Webhook", "type": "n8n-nodes-base.webhook", "position": [ 375, 115 ], "webhookId": "6f7b288e-1efe-4504-a6fd-660931327269", "parameters": { "path": "6f7b288e-1efe-4504-a6fd-660931327269", "options": {}, "responseMode": "responseNode" }, "typeVersion": 1, "notes": "This webhook node performs automated tasks as part of the workflow." }, { "id": "3b9ec913-0bbe-4906-bf8e-da352b556655", "name": "Note1", "type": "n8n-nodes-base.stickyNote", "position": [ 355, -25 ], "parameters": { "width": 600, "height": 280, "content": "## Create a simple API endpoint\n\nIn this workflow we show how to create a simple API endpoint with `Webhook` and `Respond to Webhook` nodes\n\n" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "9c36dae5-0700-450c-9739-e9f3eff31bfe", "name": "Respond to Webhook", "type": "n8n-nodes-base.respondToWebhook", "position": [ 815, 115 ], "parameters": { "options": {}, "respondWith": "text", "responseBody": "=The URL of the Google search query for the term \"{{$node[\"Webhook\"].json[\"query\"][\"first_name\"]}} {{$node[\"Webhook\"].json[\"query\"][\"last_name\"]}}\" is: {{$json[\"product\"]}}" }, "typeVersion": 1, "notes": "This respondToWebhook node performs automated tasks as part of the workflow." }, { "id": "5a228fcb-78b9-4a28-95d2-d7c9fdf1d4ea", "name": "Create URL string", "type": "n8n-nodes-base.set", "position": [ 595, 115 ], "parameters": { "values": { "string": [ { "name": "product", "value": "={{ $env.WEBHOOK_URL }}{{$json[\"query\"][\"first_name\"]}}+{{$json[\"query\"][\"last_name\"]}}" } ] }, "options": {}, "keepOnlySet": true }, "typeVersion": 1, "notes": "This set node performs automated tasks as part of the workflow." }, { "id": "e7971820-45a8-4dc8-ba4c-b3220d65307a", "name": "Note3", "type": "n8n-nodes-base.stickyNote", "position": [ 355, 275 ], "parameters": { "width": 600, "height": 220, "content": "### How to use it\n1. Execute the workflow so that the webhook starts listening\n2. Make a test request by pasting, **in a new browser tab**, the test URL from the `Webhook` node and appending the following test at the end `?first_name=bob&last_name=dylan`\n\nYou will receive the following output in the new tab `The URL of the Google search query for the term \"bob dylan\" is: {{ $env.WEBHOOK_URL }}`\n\n" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." } ], "connections": { "f80aceed-b676-42aa-bf25-f7a44408b1bc": { "main": [ [ { "node": "error-handler-f80aceed-b676-42aa-bf25-f7a44408b1bc", "type": "main", "index": 0 } ], [ { "node": "error-handler-f80aceed-b676-42aa-bf25-f7a44408b1bc-119c7fe9", "type": "main", "index": 0 } ], [ { "node": "error-handler-f80aceed-b676-42aa-bf25-f7a44408b1bc-ca4eb1de", "type": "main", "index": 0 } ], [ { "node": "error-handler-f80aceed-b676-42aa-bf25-f7a44408b1bc-902fb265", "type": "main", "index": 0 } ], [ { "node": "error-handler-f80aceed-b676-42aa-bf25-f7a44408b1bc-1b6c49fd", "type": "main", "index": 0 } ] ] }, "9c36dae5-0700-450c-9739-e9f3eff31bfe": { "main": [ [ { "node": "error-handler-9c36dae5-0700-450c-9739-e9f3eff31bfe", "type": "main", "index": 0 } ], [ { "node": "error-handler-9c36dae5-0700-450c-9739-e9f3eff31bfe-66672b7f", "type": "main", "index": 0 } ], [ { "node": "error-handler-9c36dae5-0700-450c-9739-e9f3eff31bfe-68ef4658", "type": "main", "index": 0 } ], [ { "node": "error-handler-9c36dae5-0700-450c-9739-e9f3eff31bfe-59dbd023", "type": "main", "index": 0 } ], [ { "node": "error-handler-9c36dae5-0700-450c-9739-e9f3eff31bfe-af255546", "type": "main", "index": 0 } ] ] } }, "name": "Webhook 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: Webhook Workflow. This workflow integrates 5 different services: webhook, stickyNote, set, respondToWebhook, stopAndError. It contains 9 nodes and follows best practices for error handling and security.", "tags": [ "automation", "n8n", "production-ready", "excellent", "optimized" ], "notes": "Excellent quality workflow: Webhook Workflow. This workflow has been optimized for production use with comprehensive error handling, security, and documentation." }