{"id":41235899,"url":"https://github.com/inkeep/slack-forwarder","last_synced_at":"2026-01-23T01:03:27.365Z","repository":{"id":227402896,"uuid":"768420687","full_name":"inkeep/slack-forwarder","owner":"inkeep","description":null,"archived":false,"fork":false,"pushed_at":"2024-03-29T19:06:22.000Z","size":599,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-03T08:28:11.234Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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}},"created_at":"2024-03-07T03:38:16.000Z","updated_at":"2024-03-13T04:49:07.000Z","dependencies_parsed_at":"2024-03-17T03:47:46.826Z","dependency_job_id":"a55d1038-7aa1-4083-8d22-51167b872649","html_url":"https://github.com/inkeep/slack-forwarder","commit_stats":null,"previous_names":["inkeep/slack-forwarder"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/inkeep/slack-forwarder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inkeep%2Fslack-forwarder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inkeep%2Fslack-forwarder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inkeep%2Fslack-forwarder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inkeep%2Fslack-forwarder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/inkeep","download_url":"https://codeload.github.com/inkeep/slack-forwarder/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inkeep%2Fslack-forwarder/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:27.187Z","updated_at":"2026-01-23T01:03:27.307Z","avatar_url":"https://github.com/inkeep.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## 0. Set up local package\n1. git clone `https://github.com/nick/forwader-app`\n2. pnpm install\n3. For local development, copy the `.env.example` file into a new file called `.env`\n\n## 1. Register a bot on Slack\n\n1. Go to [https://api.slack.com/apps](https://api.slack.com/apps) \n2. Click on **Create New App**\n3. Select on **From an app manifest**\n4. Pick the desired worksapce\n5. Paste in the JSON file from `manifest.json`\n6. Copy the **Signing Secret** in the **App Credentials** section to your `SLACK_SIGNING_SECRET` environment variable\n\n### Customize appearance\n1. In the \"Basic Information\" tab, you can customize the **App name**, **Short description** and **App icon** used for the bot.\n\n### Get your \"Forward to\" channel\n1. open your slack application\n2. right click on the channel you want to forward threads to\n3. copy the \"**Channel ID**\" (found at the bottom of the pop-up)\n4. paste it into `FORWARD_TO_CHANNEL` env variable\n\n#### Add the forwarding app to your channels\n0. Go back to the [Slack apps portal](https://api.slack.com/apps)\n1. Under **Basic Information** \u003e **Install your app**, install the application.\n\n**Important**\n1. Add the Slack bot you registered to any channel you want users to be able to forward messages *from*.\n2. Also add the Slack bot to the channel you want messages to be forard *to*, i.e. the \"FORWARD_TO_CHANNEL\"\n\n### Get your Slack bot token\n1. This token represents your bot.\n2. Go to `OAuth \u0026 Permissions` tab\n3. Copy the \"**Bot User OAuth Token**\"\n4. paste into `SLACK_BOT_TOKEN`\n\n## Run locally\n\n### In Socket Mode\nThe below steps apply to local development only.\n\n1. Navigate to **Basic Information** tab on the Slack bot management dashboard\n2. Under **App-Level Tokens**, click on \"**Generate Token and Scopes**\"\n4. Give the token a name like `local-dev`\n5. Choose `connections:write` as a scope\n6. Copy the token into `SLACK_APP_TOKEN` in your `.env` file\n\nEnable socket mode:\n7. Ensure that **Socket mode** is toggled on in the `Socket Mode` tab of the dashboard\n\nRun the service:\n```\npnpm dev\n```\n\n## Deploying to production\nFollow the \"Register a bot on Slack\" step again to register a different Slack bot for production use.\n\n### Deply function\nThis example is setup to deploy with AWS, but you can tailor to deploy in any cloud provider.\n\n#### Example: AWS Lambda\nTo deploy from local CLI:\n1. Ensure you have the AWS CLI installed and account authenticated. See [here](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-quickstart.html)\n2. Define your production environment variables in a `.env` file\n3. Deploy using `pnpm aws-deploy`\n4. Copy the endpoint URL\n\nNote: you can test locally by running `pnpm aws-local` and proxying requests to your local machine using e.g. `ngrok http 3000`. Just append `slack/events` to the endpoint generated by ngrok for the correct local route.\n\n#### Slack App configuration\n\n1. Go to the [Slack app management portal](https://api.slack.com/apps)\n3. Ensure that **Socket mode** is toggled *off* in the **Socket Mode** tab of the dashboard\n4. Navigate to **Event Subscriptions** in your Slack bot settings\n5. Paste the service URL from the previous step into `Request URL`\n\n## Install the Inkeep Slack Ingester Bot\n\n1. [Install](https://slack-ingester.inkeep.com/slack/install) the Inkeep \"Knowledge Base Connector\" bot to your desired workspace.\n2. Add it to the `FORWARD_TO_CHANNEL` that should be ingested by Inkeep\n\nThe bot will automatically process all threads in this channel and add it to your knowledge base.\n\n## (Optional) Allow listing users or groups\nTo only allow certain users to be able to forward threads using this Slack App, you can optionally set the following two environment variables:\n\n```\nALLOWED_GROUP_IDS=groupOneId,groupTwoId\nALLOWED_USER_IDS=userOneId,userTwoId\n```\n\nIf either env variable has a value, then the bot will check whether a user is in the user IDs OR a member of at least one of the allowed groups.\n\nTo create a new a group just for this purpose:\n1. Follow the instructions [here](https://slack.com/help/articles/212906697-Create-a-user-group#create-a-user-group).\n2. (optional) Set the \"Default Channels\" option to the`FORWARD_TO_CHANNEL` channel so that users in this group automatically get access to it.\n3. Grab the Group ID by clicking on the **...** button and clicking the **Copy group ID** option.\n4. Add it to `ALLOWED_GROUP_IDS` environment variable","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finkeep%2Fslack-forwarder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finkeep%2Fslack-forwarder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finkeep%2Fslack-forwarder/lists"}