{"id":16696993,"url":"https://github.com/seratch/slack-mention-reminder","last_synced_at":"2025-04-10T02:52:03.127Z","repository":{"id":219103095,"uuid":"748166351","full_name":"seratch/slack-mention-reminder","owner":"seratch","description":"\"Mention Reminder\" is a custom Slack app that allows you to set up reminders simply by mentioning its bot","archived":false,"fork":false,"pushed_at":"2024-04-25T20:42:57.000Z","size":14,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-24T04:22:15.235Z","etag":null,"topics":["node","slack","slack-api","slack-apis","slack-bot","slackbot","socket-mode","typescript","websocket"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/seratch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2024-01-25T12:15:30.000Z","updated_at":"2024-04-25T20:43:00.000Z","dependencies_parsed_at":"2024-04-25T21:48:48.179Z","dependency_job_id":null,"html_url":"https://github.com/seratch/slack-mention-reminder","commit_stats":null,"previous_names":["seratch/slack-mention-reminder"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seratch%2Fslack-mention-reminder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seratch%2Fslack-mention-reminder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seratch%2Fslack-mention-reminder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seratch%2Fslack-mention-reminder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/seratch","download_url":"https://codeload.github.com/seratch/slack-mention-reminder/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248147043,"owners_count":21055465,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["node","slack","slack-api","slack-apis","slack-bot","slackbot","socket-mode","typescript","websocket"],"created_at":"2024-10-12T17:45:40.763Z","updated_at":"2025-04-10T02:52:03.101Z","avatar_url":"https://github.com/seratch.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Slack Mention Reminder\n\n\"Mention Reminder\" is a custom Slack app that allows you to set up reminders simply by mentioning its bot!\n\nWith this app, there's no need for you to run the `/remind` command. Why do we prefer a mention? It could be particularly useful when you aim to automate the creation of reminders within a Slack workflow.\n\n\u003cimg width=\"500\" src=\"https://github.com/seratch/slack-mention-reminder/assets/19658/96f2f8c7-3a05-4a4b-be0a-dd6871c1e943\"\u003e\n\nWhen your workflow sends a message mentioning this app's bot user, this app will set up a reminder with the inputs:\n\n\u003cimg width=\"500\" src=\"https://github.com/seratch/slack-mention-reminder/assets/19658/306c1911-0c10-4160-8d05-c812d52d812b\"\u003e\n\n## How it works\n\nWhen you mention this app's bot user with the parameters listed below, the app will schedule a reminder message for you:\n\n- [datetime]: When to send a reminder (in any format `new Date()` in JavaScript code can parse)\n- [channel/user] Who/where to send it (@user or #channel)\n- [message]: The text message to send\n\nThe format will be as follows. Please note that `[xxx]` portions can contain embedded values.\n\n```\n@MentionReminder remind [channel/user] at [datetime]\\n\n[message]\n```\n\nFor example, this app delivers a message in #tasks channel at 9am on January 25:\n\n```\n@MentionReminder remind #tasks at 2024-01-25 09:00 +09:00\nHey @kaz, you need to submit this month's expense report by the end of today!\n```\n\nThe time format may be in epoch time (in seconds). When using this app along with Slack's workflow builder, you can use a format that can be embedded:\n\n\u003cimg width=\"400\" src=\"https://github.com/seratch/slack-mention-reminder/assets/19658/d4d1ac02-bbc7-4c0b-aa09-1ea6cce10a37\"\u003e\n\n```\n@MentionReminder remind #tasks at 1706183820\nHey @kaz, this is @brian's last week. Could you please check if the following accounts are prepared for termination soon:\n• Google Workspace\n• Zoom\n• Slack\n• ...\n```\n\n## Set up\n\n### Create the app and install it\n\n- Go to https://api.slack.com/apps?new_app=1\n  - Choose \"From an app manifest\" and select the workspace to use\n  - Switch to JSON format and past the content in `./manifest.json`\n- Go to Settings \u003e Install App\n  - Install the app into your workspace\n  - Save the \"Bot User OAuth Token\" as SLACK_BOT_TOKEN\n- Go to Settings \u003e Basic Information \u003e App-Level Tokens\n  - Click \"Generate Token and Scopes\"\n  - Click \"Add Scope\" and then add \"connections:write\" scope\n  - Name the token and click \"Generate\"\n  - Save the token as SLACK_APP_TOKEN\n\n### Run the app\n\n- Install Node.js 20 or newer version\n- Clone this repo\n- Run `npm i` to install the dependencies\n- Run `export SLACK_BOT_TOKEN=xoxb-....` (Settings \u003e Install App)\n- Run `export SLACK_APP_TOKEN=xapp-...` (Settings \u003e Basic Information \u003e App-Level Tokens)\n- Run `npm start`\n\n### Invite this app's bot user\n\n- Invite this app's bot user `@MentionReminder` to the channel where you want to use it\n\n### Add a step mentioning this app in your workflow\n\nCreate a workflow with the following steps:\n\n- Open a form to collect inputs\n  - Where/who to send (Select a channel/user)\n  - When to send (Date and time)\n  - The text message (Rich messsage composer)\n- Send a message mentioning this app's bot user\n  - `@MentionReminder remind [channe/user] at [datetime]\\n[message]`\n\n## Local development with Slack CLI\n\n### Install CLI and grant permissions\n\nIf you haven't yet installed Slack CLI, I recommend visiting [the guide page](https://api.slack.com/automation/cli/install) to do so, and allowing it to install apps into your sandbox or paid Slack workspaces. To complete this, you will need to run `slack login` command on your terminal, plus execute `/slackauthticket` with the given parameter in your Slack workspace.\n\nPlease remember that either a sandbox or paid workpace is required to use the CLI.\n\n### Start your app on your local machine\n\nOnce your CLI obtains the permission to install a local dev app, there is nothing else to prepare before running this template app. Clone this repo and install all the required npm packages:\n\n```bash\ngit clone git@github.com:seratch/slack-mention-reminder.git slack-mention-reminder\ncd slack-mention-reminder/\nnpm i\n```\n\nNow you can execute `slack run` to activate your first Slack app connected to a workspace via the CLI. The CLI automaticaly creates a new local dev app, which synchronizes the `manifest.json` data behind the scenes and establishes a Socket Mode connection (WebSocket protocol) with the authorized Slack workspace.\n\n```bash\nunset SLACK_APP_TOKEN\nunset SLACK_BOT_TOKEN\nslack run\n```\n\nIf you see `[INFO]  socket-mode:SocketModeClient:0 Now connected to Slack` in the console output, the local dev app is successfully connected to your Slack workspace :tada:\n\nUnlike before, you don't need to set any environment variables such as `SLACK_BOT_TOKEN`. The CLI passes the required variables to your app instance. If you have some env variables in the terminal session, you might need to unset them (e.g., `unset SLACK_BOT_TOKEN`) to prevent potential misbehavior.\n\n## License\n\nThe MIT License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseratch%2Fslack-mention-reminder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseratch%2Fslack-mention-reminder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseratch%2Fslack-mention-reminder/lists"}