{"id":41235893,"url":"https://github.com/inkeep/vercel-slackbot","last_synced_at":"2026-01-23T01:03:26.865Z","repository":{"id":286845341,"uuid":"962744344","full_name":"inkeep/vercel-slackbot","owner":"inkeep","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-30T16:24:27.000Z","size":52,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-03T08:28:12.559Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://docs.inkeep.com/ai-api/question-answer-mode/overview","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/inkeep.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-08T15:55:48.000Z","updated_at":"2025-04-30T16:24:30.000Z","dependencies_parsed_at":"2025-04-30T15:51:37.792Z","dependency_job_id":"e6297f8b-11f0-46d9-a277-63deb5c6219f","html_url":"https://github.com/inkeep/vercel-slackbot","commit_stats":null,"previous_names":["inkeep/vercel-slackbot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/inkeep/vercel-slackbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inkeep%2Fvercel-slackbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inkeep%2Fvercel-slackbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inkeep%2Fvercel-slackbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inkeep%2Fvercel-slackbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/inkeep","download_url":"https://codeload.github.com/inkeep/vercel-slackbot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inkeep%2Fvercel-slackbot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28676488,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T01:00:35.747Z","status":"ssl_error","status_checked_at":"2026-01-23T01:00:19.529Z","response_time":144,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-23T01:03:26.720Z","updated_at":"2026-01-23T01:03:26.832Z","avatar_url":"https://github.com/inkeep.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Custom Inkeep Slackbot with Node.js and Vercel\n\nAn example repo on how to deploy your own fully customizable Slackbot that uses Inkeep.\n\n\u003e [!NOTE] \n\u003e This is a _custom_ slackbot. To add the official Inkeep Slackbot to your workspace, you can instead follow these docs here [https://docs.inkeep.com/integrations/slack/community](https://docs.inkeep.com/integrations/slack/community).\n\n## Deploy with Vercel\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Finkeep%2Fvercel-slackbot\u0026env=SLACK_BOT_TOKEN,SLACK_SIGNING_SECRET,SLACK_APP_ID,INKEEP_API_KEY\u0026envDescription=API%20keys%20needed%20for%20application\u0026envLink=https%3A%2F%2Fgithub.com%2Finkeep%2Fvercel-slackbot%3Ftab%3Dreadme-ov-file%234-set-environment-variables\u0026project-name=vercel-slackbot)\n\n**Important:** The Deploy button creates a standalone copy of this repository. If you want to receive future updates from the original repository, first [fork this repository on GitHub](https://github.com/inkeep/vercel-slackbot/fork), then deploy your fork to Vercel.\n\n## Features\n\n- Integrates with [Slack's API](https://api.slack.com) for easy Slack communication\n- Works both with app mentions and direct messages\n- Maintains conversation context within both threads and direct messages\n\n## Prerequisites\n\n- [Node.js](https://nodejs.org/) 18+ installed\n- Slack workspace with admin privileges\n- Inkeep API key -- see section below for instructions.\n- A server or hosting platform (e.g., [Vercel](https://vercel.com)) to deploy the bot\n\n## Inkeep API Key\n\n- Log into the Inkeep dashboard at [https://portal.inkeep.com](https://portal.inkeep.com).\n- Navigate to the Projects section and select your project\n- Open the Integrations tab\n- Click Create Integration and choose API from the options (do not select Slack)\n- Enter a Name for your new API integration\n- Click on Create\n- A generated API key will appear\n- Add this as the `INKEEP_API_KEY` environment variable\n\n## Setup\n\n### 1. Create a Slack App\n\n1. Go to [https://api.slack.com/apps](https://api.slack.com/apps) and click \"Create New App\"\n2. Choose \"From scratch\" and give your app a name\n3. Select your workspace\n\n### 2. Configure Slack App Settings\n\n#### Basic Information\n\n- Under \"App Credentials\", note down your \"Signing Secret\" as the `SLACK_SIGNING_SECRET` environment variable\n- Under \"App Credentials\", note down your \"App ID\" as the `SLACK_APP_ID` environment variable\n- Under the Display Information section, you can edit the App name, Short description, App icon \u0026 Preview, Background color, and the Long description.\n\n#### OAuth \u0026 Permissions\n\n- Go to OAuth \u0026 Permissions\n- Scroll to scopes\n- Add the following [Bot Token Scopes](https://api.slack.com/scopes):\n  - `app_mentions:read`\n  - `channels:history`\n  - `chat:write`\n  - `groups:history`\n  - `chat:write.customize`\n  - `im:history`\n  - `im:write`\n  - `im:read`\n  - `users.profile:read`\n- Install the app to your workspace\n- Note the \"Bot User OAuth Token\" as the `SLACK_BOT_TOKEN` environment variable.\n\n\n#### App Home\n\n- Go to \"App Home\"\n- Enable \"Messages Tab\"\n- Check \"Allow users to send Slash commands and messages from the messages tab\"\n- Save Changes\n\n### 3. Environment Variables\n\nAfter completing the setup instructions, you will have the following environment variables.\n\nCreate an `.env` file in your project for testing locally, and include them in your Vercel environment variables:\n\n```\nSLACK_BOT_TOKEN=\nSLACK_SIGNING_SECRET=\nSLACK_APP_ID=\nINKEEP_API_KEY=\n```\n\n### 4. Adjust Slack Config\n- You can adjust the `slackConfig.json` file to fit your needs.\n\n### 5. Deploy your app\n\n- If building locally, follow steps in the Local Development section to tunnel your local environment and then copy the tunnel URL.\n- If deploying to Vercel, follow the instructions in the Production Deployment section and copy your deployment URL.\n\n\u003e [!NOTE] \n\u003e There are additional steps after you deploy.\n\n### 6. Update your Slack App configuration:\n\nGo to your [Slack App settings](https://api.slack.com/apps)\n\n- Select your app\n- Go to \"Event Subscriptions\"\n- Enable Events\n- Set the Request URL to either your local URL or your deployment URL: (e.g. `https://your-app.vercel.app/api/events`)\n- Save Changes\n- Under \"Subscribe to bot events\", add:\n  - `app_mention`\n  - `message.channels`\n  - `message.groups`\n  - `message.im`\n\n\u003e Remember to include `/api/events` in the Request URL.\n\n### 7. Enable Interactivity\n\n- Go to \"Interactivity \u0026 Shortcuts\"\n- Enable Interactivity\n- Set the Request URL to: `https://your-app.vercel.app/api/events`\n- Save Changes\n\n## Local Development\n\nUse the [Vercel CLI](https://vercel.com/docs/cli) and [untun](https://github.com/unjs/untun) to test out this project locally:\n\n```sh\npnpm i -g vercel\npnpm vercel dev --listen 3000 --yes\n```\n\n```sh\nnpx untun@latest tunnel http://localhost:3000\n```\n\nMake sure to modify the [subscription URL](./README.md/#enable-slack-events) to the `untun` URL.\n\n\u003e Note: you may encounter issues locally with `waitUntil`. This is being investigated.\n\n## Production Deployment\n\n### Deploying to Vercel\n\n1. Push your code to a GitHub repository\n\n2. Deploy to [Vercel](https://vercel.com):\n\n   - Go to vercel.com\n   - Create New Project\n   - Import your GitHub repository\n\n3. Add your environment variables in the Vercel project settings:\n\n   - `SLACK_BOT_TOKEN`\n   - `SLACK_SIGNING_SECRET`\n   - `SLACK_APP_ID`\n   - `INKEEP_API_KEY`\n\n4. After deployment, Vercel will provide you with a production URL\n\n5. Update your Slack App configuration:\n   - Go to your [Slack App settings](https://api.slack.com/apps)\n   - Select your app\n   - Go to \"Event Subscriptions\"\n   - Enable Events\n   - Set the Request URL to: `https://your-app.vercel.app/api/events`\n   - Save Changes\n   - Under \"Subscribe to bot events\", add:\n     - `app_mention`\n     - `message.channels`\n     - `message.groups`\n     - `message.im`\n\n## Usage\n\nThe bot will respond to:\n\n1. Direct messages - Send a DM to your bot\n2. Mentions - Mention your bot in a channel using `@YourBotName`\n\nThe bot maintains context within both threads and direct messages, so it can follow along with the conversation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finkeep%2Fvercel-slackbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finkeep%2Fvercel-slackbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finkeep%2Fvercel-slackbot/lists"}