• Townie
    AI
  • Blog
  • Docs
  • Pricing
  • We’re hiring!
Log inSign up
charmaine

charmaine

Linear-to-Slack-Reminder

Sends scheduled Slack reminders to overdue Linear tickets
Unlisted
Like
Linear-to-Slack-Reminder
Home
Code
8
backend
5
.vtignore
README.md
C
cron.ts
deno.json
H
main.ts
modalSubmit.ts
slashCommand.ts
Branches
1
Pull requests
Remixes
History
Environment variables
2
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Sign up now
Code
/
README.md
Code
/
README.md
Search
6/24/2025
Viewing readonly version of main branch: v110
View latest version
README.md

Linear-Slack Reminder Bot

Linear-Slack Reminder Bot monitors Linear tickets and sends periodic Slack reminders to assignees. It's perfect for teams who want to ensure important tasks don't get forgotten.

How It Works

  1. Track a ticket using /track-linear [ticket-id]
  2. Configure reminders - Choose how often to ping (daily, every 2 days, etc.)
  3. Automatic notifications - The bot sends DMs to assignees of incomplete tickets
  4. Escalation - After 3 reminders, the ticket creator is also notified
  5. Completion - When all tasks are done, the creator gets a success notification

Prerequisites

  • Val Town account
  • Slack workspace with admin permissions
  • Linear workspace with API access

Setup Instructions

Step 1: Remix this val to your account

  1. Add these environment variables:
    • LINEAR_API_KEY - Your Linear API key (see Step 4)
    • SLACK_BOT_TOKEN - Your Slack bot token (from Step 2)

Step 2: Create and Configure Slack App

  1. Go to api.slack.com/apps and click "Create New App"

  2. Choose "From scratch" and name it (e.g., "Linear Reminder Bot")

  3. Navigate to OAuth & Permissions and add these Bot Token Scopes:

    • chat:write - To send messages
    • users:read - To list workspace users
    • users:read.email - To match Linear users by email
    • commands - To handle slash commands
    • im:write - To send direct messages
  4. Click "Install to Workspace" and authorize the app

  5. Copy the Bot User OAuth Token (starts with xoxb-)

  6. Set up Slash Commands (under "Slash Commands" in sidebar):

    • Command: /track-linear
      • Request URL: https://YOUR-VALTOWN-URL/slack/commands (You get get this via the main.tsx file)
      • Description: "Track a Linear ticket for reminders"
    • Command: /track-status
      • Request URL: https://YOUR-VALTOWN-URL/slack/commands
      • Description: "View your active Linear reminders"
  7. Enable Interactivity (under "Interactivity & Shortcuts"):

    • Turn ON
    • Request URL: https://YOUR-VALTOWN-URL/slack/interactive

Step 3: Get Your Linear API Key

  1. Open Linear and click your profile picture
  2. Go to Settings → Account → Security & Access
    • Direct link: https://linear.app/YOUR-WORKSPACE/settings/account/security
  3. Under "Personal API keys", click "Create key"
  4. Name it something memorable (e.g., "Slack Reminder Bot")
  5. Copy the key immediately - you won't be able to see it again!
  6. Add it to Val Town as the LINEAR_API_KEY environment variable

Usage Guide

Starting a Reminder

/track-linear VAL-123

or

/track-linear https://linear.app/team/issue/VAL-123

This will open a modal where you can:

  • Select the reminder interval (daily, every 2 days, etc.)
  • Map Linear assignees to Slack users
  • Configure who gets notified for unassigned tickets

Viewing Active Reminders

/track-status

Shows all your active reminders with clickable links to Linear tickets.

Stopping Reminders

Reminders automatically stop when:

  • All tracked tickets are marked as complete in Linear
  • The parent ticket is closed (for tickets with sub-tasks)

Testing Your Setup

Quick Test Mode

  1. Edit your cronChecker val in Val Town
  2. Change const FORCE_RUN = false to true
  3. Run the cron manually - it will send notifications immediately
  4. Change back to false when done testing
FeaturesVersion controlCode intelligenceCLI
Use cases
TeamsAI agentsSlackGTM
ExploreDocsShowcaseTemplatesNewestTrendingAPI examplesNPM packages
PricingNewsletterBlogAboutCareers
We’re hiring!
Brandhi@val.townStatus
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Terms of usePrivacy policyAbuse contact
© 2025 Val Town, Inc.