{"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":{"Webhook":{"main":[[],[],[],[],[]]},"Respond to Webhook":{"main":[[],[],[],[],[]]}},"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.","notes":"Excellent quality workflow: Webhook Workflow. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}