{"id":"W1ugowsjzt1SC4hH","meta":{"instanceId":"workflow-34e79306","versionId":"1.0.0","createdAt":"2025-09-29T07:08:01.379220","updatedAt":"2025-09-29T07:08:01.379233","owner":"n8n-user","license":"MIT","category":"automation","status":"active","priority":"high","environment":"production"},"name":"Validate Seatable Webhooks with HMAC SHA256 Authentication","nodes":[{"id":"ec4bdb4f-3c3e-4405-af80-2ad7ab3d57fc","name":"200","type":"n8n-nodes-base.respondToWebhook","position":[420,-20],"parameters":{"options":{"responseCode":200},"respondWith":"noData"},"typeVersion":1,"notes":"This respondToWebhook node performs automated tasks as part of the workflow."},{"id":"1b6c9f8c-1b5b-499d-abb5-bb1059b73ce7","name":"403","type":"n8n-nodes-base.respondToWebhook","position":[420,180],"parameters":{"options":{"responseCode":403},"respondWith":"noData"},"typeVersion":1,"notes":"This respondToWebhook node performs automated tasks as part of the workflow."},{"id":"e3976bf3-60e0-4c1c-bfdb-22ad336760a5","name":"Calculate sha256","type":"n8n-nodes-base.crypto","position":[-20,-20],"parameters":{"type":"SHA256","action":"hmac","binaryData":true,"dataPropertyName":"seatable-signature"},"typeVersion":1,"notes":"This crypto node performs automated tasks as part of the workflow."},{"id":"5e74ba50-e0fe-41e0-9b84-7078f1d150a3","name":"Seatable Webhook","type":"n8n-nodes-base.webhook","position":[-240,-20],"webhookId":"8c9d8c0f-d5ea-469d-afc9-d4e8a352f1a4","parameters":{"path":"s0m3-d4nd0m-1d","options":{"rawBody":true},"httpMethod":"POST","responseMode":"responseNode"},"typeVersion":1,"notes":"This webhook node performs automated tasks as part of the workflow."},{"id":"dbfcc59f-5411-4d99-8cde-26ae91cdd6af","name":"Add nodes for processing","type":"n8n-nodes-base.noOp","position":[420,-220],"parameters":{},"typeVersion":1,"notes":"This noOp node performs automated tasks as part of the workflow."},{"id":"a508534f-abb4-4455-b47a-1aaf56ce1124","name":"hash matches","type":"n8n-nodes-base.if","position":[200,-20],"parameters":{"conditions":{"string":[{"value1":"={{ String($json['seatable-signature']) }}","value2":"={{ String($json.headers['x-seatable-signature'].replace(\"sha256=\", \"\")) }}"}]}},"typeVersion":1,"notes":"This if node performs automated tasks as part of the workflow."},{"id":"1495d5c1-3467-4639-a32d-51a6497aed51","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-400,-660],"parameters":{"width":720,"height":580,"content":"## 📌 Validate Seatable Webhooks with HMAC SHA256 Authentication\n\nThis mini workflow is designed to **securely validate incoming Seatable webhooks** using HMAC SHA256 signature verification.\n\n### 🔐 What it does:\n- Listens for incoming Seatable webhook requests.\n- Calculates a SHA256 HMAC hash of the raw request body using your shared secret.\n- Compares the computed hash with the `x-seatable-signature` header (after removing the `sha256=` prefix).\n- If the hashes match: responds with **200 OK** and forwards the request to subsequent nodes.\n- If the hashes don’t match: responds with **403 Forbidden**.\n\n### ⚠️ Important Notes:\nThis workflow is provided as a **template** and is not intended to work standalone. **Please duplicate it** and integrate it with your custom logic at the \"Add nodes for processing\" node.\n\nConfiguration steps:\n- Set your **secret key** in the “Calculate sha256” crypto node (replace the placeholder).\n- Adjust the webhook path to suit your environment (or set it to \"manual\" for testing).\n- Connect your actual logic after the verification step.\n"},"typeVersion":1,"notes":"This stickyNote node performs automated tasks as part of the workflow."}],"active":true,"settings":{"executionOrder":"v1","saveManualExecutions":true,"callerPolicy":"workflowsFromSameOwner","errorWorkflow":null,"timezone":"UTC","executionTimeout":3600,"maxExecutions":1000,"retryOnFail":true,"retryCount":3,"retryDelay":1000},"versionId":"8da47cde-25ce-459e-a74d-91ba0d5173e3","connections":{"200":{"main":[[],[],[],[],[]]},"403":{"main":[[],[],[],[],[]]},"Seatable Webhook":{"main":[[],[],[],[],[]]}},"description":"Automated workflow: Validate Seatable Webhooks with HMAC SHA256 Authentication. This workflow integrates 7 different services: webhook, stickyNote, respondToWebhook, stopAndError, if. It contains 13 nodes and follows best practices for error handling and security.","notes":"Excellent quality workflow: Validate Seatable Webhooks with HMAC SHA256 Authentication. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}