@vercel/slack-bolt
A custom Slack Bolt receiver built for Vercel's Fluid Compute.
Getting Started
Visit our template to get started building a Slack app.
Installation
npm install @vercel/slack-bolt
yarn add @vercel/slack-bolt
pnpm add @vercel/slack-bolt
bun add @vercel/slack-bolt
API Reference
VercelReceiver
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 };
Parameters
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 | Logger2 | new ConsoleLogger() | No | Logger used for diagnostics. |
logLevel | LogLevel2 | LogLevel.INFO | No | Minimum log level for the logger. |
customPropertiesExtractor | (req: Request) => StringIndexed | undefined | No | Return value is merged into Bolt event customProperties2. |
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.
createHandler
A function that returns a Vercel-compatible request handler that will initialize and start your Bolt app to process the event.
import { createHandler } from "@vercel/slack-bolt"
import { app, receiver } from "./app"
export const POST = createHandler(app, receiver)
Parameters
app | App1 | 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.
Examples
Starter templates: Next.js, Hono, Nitro.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Support
For issues and questions: