This is a Slack Agent template built with Bolt for JavaScript (TypeScript) and the Nitro server framework.
Before getting started, make sure you have a development workspace where you have permissions to install apps. You can use a developer sandbox or create a workspace
git clone https://github.com/vercel-partner-solutions/slack-agent-template && cd slack-agent-template && pnpm install
manifest.json
into the text box that says "Paste your manifest code here" (JSON tab) and click NextSLACK_BOT_TOKEN
SLACK_SIGNING_SECRET
AI_GATEWAY_API_KEY
to your .env
file. You can get one hereNGROK_AUTH_TOKEN
to your .env
file. You can get one hereslack app link
update the manifest source to remote
select yes
Local
when prompted.slack/config.json
and update your manifest source to local
{"manifest": {"source": "local"},"project_id": "<project-id-added-by-slack-cli>"}
slack run
. If prompted, select the workspace you'd like to grant access toyes
if asked "Update app settings with changes to the local manifest?"SLACK_BOT_TOKEN
SLACK_SIGNING_SECRET
request_url
and url
fields use https://<your-app-domain>/api/slack/events
manifest.json
manifest.json
is a configuration for Slack apps. With a manifest, you can create an app with a pre-defined configuration, or adjust the configuration of an existing app.
/server/app.ts
/app.ts
is the entry point of the application. This file is kept minimal and primarily serves to route inbound requests.
/server/listeners
Every incoming request is routed to a "listener". Inside this directory, we group each listener based on the Slack Platform feature used, so /listeners/shortcuts
handles incoming Shortcuts requests, /listeners/views
handles View submissions and so on.
/server
This is your nitro server directory. Inside you have an api
folder that contains a events.post.ts
file. This matches the request URL's defined in your manifest.json
file. Nitro uses file based routing for incoming requests. You can learn more about this here.