{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://inquir.org/use-cases/slack-webhooks#webpage","url":"https://inquir.org/use-cases/slack-webhooks","name":"Process Slack webhooks and slash commands serverlessly","headline":"Process Slack webhooks and slash commands serverlessly","description":"Serverless Slack webhook processor: HMAC verification, 3-second response for slash commands, async pipeline for slow operations, and Slack Block Kit responses posted via response_url.","inLanguage":"en-US","isPartOf":{"@id":"https://inquir.org/#website"},"author":{"@type":"Organization","name":"Inquir"},"datePublished":"2025-01-01T00:00:00.000Z","dateModified":"2026-04-20T00:00:00.000Z","citation":"https://inquir.org/docs"},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://inquir.org"},{"@type":"ListItem","position":2,"name":"Use cases","item":"https://inquir.org/use-cases"},{"@type":"ListItem","position":3,"name":"Slack webhooks","item":"https://inquir.org/use-cases/slack-webhooks"}]},{"@type":"HowTo","@id":"https://inquir.org/use-cases/slack-webhooks#howto","name":"Process Slack webhooks and slash commands serverlessly","description":"Serverless Slack webhook processor: HMAC verification, 3-second response for slash commands, async pipeline for slow operations, and Slack Block Kit responses posted via response_url.","inLanguage":"en-US","author":{"@type":"Organization","name":"Inquir"},"step":[{"@type":"HowToStep","position":1,"name":"Verify HMAC, parse command","text":"Check x-slack-signature with HMAC-SHA256. Extract command, text, user_id, response_url from URL-encoded body."},{"@type":"HowToStep","position":2,"name":"Trigger async orchestration, return 200","text":"Call global.durable.startNew with command params including response_url. Return empty 200 response immediately."},{"@type":"HowToStep","position":3,"name":"Post result via response_url","text":"Pipeline step performs the real work, then POSTs a Block Kit response to response_url."}],"isPartOf":{"@id":"https://inquir.org/use-cases/slack-webhooks#webpage"}},{"@type":"FAQPage","@id":"https://inquir.org/use-cases/slack-webhooks#faq","url":"https://inquir.org/use-cases/slack-webhooks","isPartOf":{"@id":"https://inquir.org/use-cases/slack-webhooks#webpage"},"mainEntity":[{"@type":"Question","name":"What about Slack event subscriptions?","acceptedAnswer":{"@type":"Answer","text":"Respond to the challenge value within 3 seconds during URL verification. For production events, acknowledge and delegate to async pipelines exactly as slash commands."}},{"@type":"Question","name":"How do I handle Slack modal submissions?","acceptedAnswer":{"@type":"Answer","text":"Modal submissions (view_submission) work the same way: verify HMAC, return 200 immediately, process async via pipeline."}}]}]}