Skip to content

vercel-labs/slack-bolt

Repository files navigation

@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
# or
yarn add @vercel/slack-bolt
# or
pnpm add @vercel/slack-bolt
# or
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

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 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.

// An example using Next.js route handlers

import { createHandler } from "@vercel/slack-bolt"
import { app, receiver } from "./app"

export const POST = createHandler(app, receiver)

Parameters

Name Type Required Description
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:

About

A Vercel receiver for building Slack apps with Bolt and deploying them to Vercel.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •