{
  "name": "Slack webhook - verify signature",
  "nodes": [
    {
      "id": "b12fe8e7-45c4-4021-826e-3ae430e34001",
      "name": "Make Slack Verif Token",
      "type": "n8n-nodes-base.code",
      "position": [
        900,
        400
      ]
    },
    {
      "id": "a91e2d8f-e907-439c-9fd3-cb75e957b059",
      "name": "Encode Secret String",
      "type": "n8n-nodes-base.crypto",
      "position": [
        1120,
        400
      ]
    },
    {
      "id": "d79ccfe1-61cd-4da4-bfff-1e504627bb3d",
      "name": "IF",
      "type": "n8n-nodes-base.if",
      "position": [
        1360,
        400
      ]
    },
    {
      "id": "cb2b9908-c226-438b-adb2-7c1ec852e007",
      "name": "Stop and Error",
      "type": "n8n-nodes-base.stopAndError",
      "position": [
        1580,
        580
      ]
    },
    {
      "id": "5ef4c06a-717b-4f90-83a7-06eda780a892",
      "name": "Execute Workflow Trigger",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        680,
        400
      ]
    },
    {
      "id": "86b022fb-63fd-4ccf-952e-19ed0da54a5c",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        880,
        -420
      ],
      "parameters": {
        "width": 554.4117841902089,
        "height": 278.2403290971726,
        "content": "## Slack Webhook - Verify Signature \nWhen receiving a message from a Slack Webhook, it is much more secure to verify that the message comes from Slack and not from bots or unknown services.\n\nThis smal"
      }
    },
    {
      "id": "f5af4f44-1ea5-419b-a58b-f8f6839b6b05",
      "name": "Set Verified to True",
      "type": "n8n-nodes-base.set",
      "position": [
        1580,
        220
      ]
    },
    {
      "id": "8a76dec8-7a2d-4cc9-82c9-002141e205ec",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        1920,
        40
      ]
    },
    {
      "id": "0c8506bc-b114-4d25-8586-80549ae0026d",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1000,
        40
      ],
      "parameters": {
        "width": 359.58396920054975,
        "height": 548.3119898759418,
        "content": "## TO EDIT \nSet your Slack Signing Secret.\nYou can obtain it by visiting your Slack App dashboard in the general tab: https://api.slack.com/apps/[SLACK_APP_ID]/general\n"
      }
    },
    {
      "id": "20cca69c-9d00-4471-8845-2cb91458c23e",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1560,
        399
      ],
      "parameters": {
        "width": 300.4638046519632,
        "height": 360.20237540316725,
        "content": "## Error Output\nIf the signature cannot be verified, an error will be raised. You can manage this scenario in your main workflow by either using an Error Workflow or by modifying your node settings an"
      }
    },
    {
      "id": "55ede23b-acb4-43ea-ac32-c678dd48e056",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1880,
        -220
      ],
      "parameters": {
        "width": 300.4638046519632,
        "height": 427.3843805720155,
        "content": "## Success Output\nIf the signature is successfully verified, we return a key `verified_signature` set to `true` along with the data from the Slack request itself.\n"
      }
    },
    {
      "id": "22d44888-5af4-43b9-b514-ebfc9c61b07c",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        560,
        160
      ],
      "parameters": {
        "width": 300.4638046519632,
        "height": 427.3843805720155,
        "content": "## Input\nThe input should be the received Slack request. Place this workflow directly after the Slack Webhook.\n"
      }
    }
  ],
  "connections": {
    "IF": {
      "main": [
        [
          {
            "node": "Set Verified to True",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Stop and Error",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Encode Secret String": {
      "main": [
        [
          {
            "node": "IF",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Verified to True": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Make Slack Verif Token": {
      "main": [
        [
          {
            "node": "Encode Secret String",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Execute Workflow Trigger": {
      "main": [
        [
          {
            "node": "Make Slack Verif Token",
            "type": "main",
            "index": 0
          },
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}