A custom Slack Bolt receiver built for Vercel's Fluid Compute.
Visit our template to get started building a Slack app.
npm install @vercel/slack-bolt
# or
yarn add @vercel/slack-bolt
# or
pnpm add @vercel/slack-bolt
# or
bun add @vercel/slack-bolt
Responsible for handling and parsing any incoming requests from Slack and then forwarding them to your Bolt app for event processing.
import { App } from "@slack/bolt";
import { VercelReceiver } from "@vercel/slack-bolt";
const receiver = new VercelReceiver();
const app = new App({
token: process.env.SLACK_BOT_TOKEN,
signingSecret: process.env.SLACK_SIGNING_SECRET,
receiver,
deferInitialization: true,
});
app.message(/^(hi|hello|hey).*/, async ({ say }) => {
await say("Hello, world!");
});
export { app, receiver };
Name | Type | Default Value | Required | Description |
---|---|---|---|---|
signingSecret |
string |
process.env.SLACK_SIGNING_SECRET |
No1 | Signing secret for your Slack app used to verify requests. |
signatureVerification |
boolean |
true |
No | Enable or disable request signature verification. |
logger |
Logger 2 |
new ConsoleLogger() |
No | Logger used for diagnostics. |
logLevel |
LogLevel 2 |
LogLevel.INFO |
No | Minimum log level for the logger. |
customPropertiesExtractor |
(req: Request) => StringIndexed |
undefined |
No | Return value is merged into Bolt event customProperties 2. |
ackTimeoutMs |
number |
3001 |
No | Milliseconds to wait for ack() before returning a timeout error. |
1 Optional if process.env.SLACK_SIGNING_SECRET
is provided.
2 Provided by the @slack/bolt
library. More information here.
A function that returns a Vercel-compatible request handler that will initialize and start your Bolt app to process the event.
// An example using Next.js route handlers
import { createHandler } from "@vercel/slack-bolt"
import { app, receiver } from "./app"
export const POST = createHandler(app, receiver)
Name | Type | Required | Description |
---|---|---|---|
app |
App 1 |
Yes | Your Bolt app |
receiver |
VercelReceiver |
Yes | The Vercel receiver instance used to process Slack requests. |
1 Provided by the @slack/bolt
library. More information here.
Starter templates: Next.js, Hono, Nitro.
Contributions are welcome! Please feel free to submit a Pull Request.
For issues and questions:
- Check the Slack Bolt documentation
- Review Vercel Functions documentation
- Open an issue in this repository