Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/upstash/vercel-note-taker-slackbot
Serverless Slackbot with Vercel
https://github.com/upstash/vercel-note-taker-slackbot
redis serverless upstash vercel
Last synced: 16 days ago
JSON representation
Serverless Slackbot with Vercel
- Host: GitHub
- URL: https://github.com/upstash/vercel-note-taker-slackbot
- Owner: upstash
- License: mit
- Created: 2022-03-17T11:16:14.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-03-29T07:23:14.000Z (over 2 years ago)
- Last Synced: 2024-08-25T00:51:29.249Z (3 months ago)
- Topics: redis, serverless, upstash, vercel
- Language: JavaScript
- Homepage:
- Size: 124 KB
- Stars: 15
- Watchers: 3
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Note Taker Slack App/Bot
This is a Slack Bot, using Vercel for serverless deployment and Upstash Redis for database.## Deploy This Project on Vercel!
Simply fill the environmental variables defined below and your serverless functions will be up in seconds!## Docs
- ### [What the Bot Does](#what-this-bot-does)
- ### [Configuring Upstash](#configure-upstash)
- ### [Configuring Slack Bot - 1](#configure-slack-bot-1)
- ### [Deploying on Vercel](#deploy-on-vercel)
- ### [Configuring Slack Bot - 2](#configure-slack-bot-2)
***### What The Bot Does
* Events:
* New channel created:
* When a new is channel created, posts a message to `general` channel stating that such an event happened.
* Slackbot mentioned:
* Whenever the bot is mentioned, posts a
message to `general` channel stating
that the bot was mentioned.
* Commands:
* `/note set ` :
* Sets a key value pair.
* `/note get ` :
* Gets the value corresponding to the key
* `/note list-set ` :
* Adds the `` to `` list as an item.
* `/note list-all ` :
* Lists all the items in the ``
* `/note list-remove ` :
* Removes `` from the ``
* P.S:
* All of the commands mentioned can be implemented as slackbot mentions rather than slash commands. For demonstration purposes, slash commands are also used. Use cases may differ.***
### Configuring Upstash
1. Go to the [Upstash Console](https://console.upstash.com/) and create a new database#### Upstash environment
Find the variables in the database details page in Upstash Console:
`UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN`(These will be the env variables for vercel deployment)
***
### Configuring Slack Bot - 1
1. Go to [Slack API Apps Page](https://api.slack.com/apps):
* Create new App
* From Scratch
* Name your app & pick a workspace
* Go to Oauth & Permissions
* Add the following scopes
* app_mentions:read
* channels:read
* chat:write
* chat:write.public
* commands
* Install App to workspace
* Basic Information --> Install Your App --> Install To Workspace
2. Note the variables (These will be the env variables for vercel deployment) :
* `SLACK_SIGNING_SECRET`:
* Go to Basic Information
* App Credentials --> Signing Secret
* `SLACK_BOT_TOKEN`:
* Go to OAuth & Permissions
* Bot User OAuth Token
1. Click the deploy button:
2. Fill the environmental variables defined above.
***
### Configuring Slack Bot - 2* After deployment, you can use the provided `vercel_domain`.
1. Go to [Slack API Apps Page](https://api.slack.com/apps) and choose relevant app:
* Go to Slash Commands:
* Create New Command:
* Command : `note`
* Request URL : `/api/note`
* Configure the rest however you like.
* Go to Event Subscribtions:
* Enable Events:
* Request URL: `/api/events`
* Subscribe to bot events by adding:
* app_mention
* channel_created2. After these changes, Slack may require reinstalling of the app.
### Additionally
For additional explanations of the source code and how to run it locally, you can refer to [the blogpost](https://blog.upstash.com/vercel-note-taker-slackbot).