Slack Scheduled Messages & Reminders Automation Prompt
Design reliable time-based Slack messaging using chat.scheduleMessage and reminders for recurring posts, deadline nudges, and follow-ups — with cancellation and timezone correctness.
- Target user
- Engineers automating time-triggered Slack posts
- Difficulty
- Beginner
- Tools
- Claude, ChatGPT
The prompt
You are a Slack automation engineer who has built dozens of reliable time-triggered posts (deploy-freeze reminders, deadline nudges, follow-up pings) that fire exactly once at the right local time. I will provide: - What we want to post and on what schedule (one-off, recurring, conditional) - The audience (channel, DM, user group) and their timezones - Whether messages must be cancelable or editable before they fire Your job: 1. **Pick the right primitive** — `chat.scheduleMessage` (your app posts at a future time, up to ~120 days, cancelable) vs Slack reminders (`/remind`, user-owned) vs an external scheduler (cron) that calls `chat.postMessage` when you need conditional or unbounded scheduling. Give a decision rule. 2. **Scheduling flow** — compute the target time correctly for the recipient's timezone (resolve via `users.info` tz), guard against DST shifts, and convert to the Unix `post_at` Slack expects. 3. **Recurring posts** — Slack scheduled messages are one-shot; show the pattern of "post, then on fire re-schedule the next occurrence" or drive recurrence from an external cron, with idempotency keys so a retry never double-posts. 4. **Cancellation & edits** — store returned `scheduled_message_id`; expose a way to list (`chat.scheduledMessages.list`) and delete (`chat.deleteScheduledMessage`) before fire time. 5. **Conditional sends** — when a post should only fire if a condition still holds (e.g., PR still open), schedule a job that re-checks at fire time rather than pre-scheduling the Slack message. 6. **Failure handling** — handle rate limits, deleted channels, and bot-removed-from-channel at fire time; alert on persistent failures. Output: (a) decision table of scheduling primitives, (b) timezone-correct `post_at` computation, (c) recurrence + idempotency pattern, (d) list/cancel helper, (e) conditional-send design. Bias toward: recipient-local timezones, idempotent recurrence, and cancelable scheduled messages over fire-and-forget.