Linear-Slack Reminder Bot monitors Linear tickets and sends scheduled Slack reminders to assignees.
You may also trigger and use this bot through adding a chase Linear label - the statuses of your Linear tickets with the label will always be synced with the Slack bot.
/track-linear [ticket-id]
HTTP Request URL
from main.ts
. E.g.
charmaine-17829713.val.run
for Step 2 below.SLACK_BOT_TOKEN
- Your Slack bot token (see Step 2 below)LINEAR_API_KEY
- Your Linear API key (see Step 3 below)Go to api.slack.com/apps and click "Create New App"
Choose "From scratch" and name it (e.g., "Linear Reminder Bot")
Navigate to OAuth & Permissions > Scopes > add these Bot Token Scopes:
chat:write
- To send messagesusers:read
- To list workspace usersusers:read.email
- To match Linear users by emailcommands
- To handle slash commandsim:write
- To send direct messagesScroll up and click "Install to [Workspace Name]" and authorize the app
Copy the Bot User OAuth Token (starts with xoxb-
)
Set up Slash Commands (under "Slash Commands" in sidebar):
/track-linear
slack/slashCommand.ts
in this valhttps://[YOUR-VALTOWN-URL]/slack/commands
(You get get
this via the main.ts
file)/track-status
https://[YOUR-VALTOWN-URL]/slack/commands
Enable Interactivity (under "Interactivity & Shortcuts"):
https://[YOUR-VALTOWN-URL]/slack/interactive
https://linear.app/YOUR-WORKSPACE/settings/account/security
LINEAR_API_KEY
environment variable/track-linear VAL-123
or
/track-linear https://linear.app/team/issue/VAL-123
This will open a modal where you can:
/track-status
Shows all your active reminders with clickable links to Linear tickets.
Reminders automatically stop when:
You may also manually clear all reminders with
/clear-reminders
cronChecker
val in Val Townconst FORCE_RUN = false
to true
false
when done testing