{
  "name": "Secure GET webhooks with query parameter validation for limited authentication cases",
  "nodes": [
    {
      "id": "9dec6b1f-252e-4a92-b6d1-f7132f0aaa02",
      "name": "Validation Failed",
      "type": "n8n-nodes-base.stopAndError",
      "position": [
        576,
        -560
      ]
    },
    {
      "id": "180d0b5b-7f4b-460f-856c-a9bf0f634b11",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        32,
        -928
      ],
      "parameters": {
        "width": 224,
        "height": 512,
        "content": "## Webhook trigger\n- freely accessible in the internet if not protected\n- **SHOULD be protected** as good as possible for any serious n8n usage!!!\n"
      }
    },
    {
      "id": "b540cb57-6890-4b3a-aa98-b003a9004076",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -48,
        -1104
      ],
      "parameters": {
        "width": 1136,
        "height": 784,
        "content": "# Example Setup\n- Simple initial steps to secure a webhook"
      }
    },
    {
      "id": "395a2009-27f1-409e-8a0b-2c96ad7c973d",
      "name": "Secret valid?",
      "type": "n8n-nodes-base.if",
      "position": [
        368,
        -720
      ]
    },
    {
      "id": "51ae4f23-f8d5-4a45-976b-f41a3210496c",
      "name": "Do whatever your workflow is supposed to do",
      "type": "n8n-nodes-base.noOp",
      "position": [
        848,
        -736
      ]
    },
    {
      "id": "2cd48180-08c6-4f10-ae4f-48b8e36e3ac4",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        320,
        -928
      ],
      "parameters": {
        "width": 416,
        "height": 512,
        "content": "## Check if Secret is correct\n- **if valid:** proceed as normal\n- **if NOT valid:** stop workflow with error \n(alternatively you can just ignore this case)"
      }
    },
    {
      "id": "8bcd9b25-ce98-4080-b5c3-5c6e77d37cea",
      "name": "\"Unprotected\" Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        96,
        -720
      ]
    },
    {
      "id": "4f6d4878-e895-4342-a7e9-02ba81c39774",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -832,
        -1104
      ],
      "parameters": {
        "width": 736,
        "height": 784,
        "content": "# 🚀 Start Here\n## What are webhooks?\n\nWebhooks are special URLs that instantly trigger workflows when they receive an incoming HTTP request (like GET or POST). They're perfect for connecting external "
      }
    }
  ],
  "connections": {
    "Secret valid?": {
      "main": [
        [
          {
            "node": "Do whatever your workflow is supposed to do",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Validation Failed",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\"Unprotected\" Webhook": {
      "main": [
        [
          {
            "node": "Secret valid?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}