30 Claude Prompts That Build Slack Bots
Describe the bot you need and Claude returns a working Slack app: runnable Bolt (JS or Python) code, manifest, and slash commands, or a precise build spec you can ship. Prompts for standup, alerting, helpdesk, polls, reminders, and integrations. Not "give me some code."
In short: This page contains 30 copy-paste ready prompts, organized into 6 categories with a description and pro tip for each. The first 15 prompts are free instantly โ no signup needed. Hand-curated and tested by the AI Academy team.
Standup & Status Bots
5 promptsDaily Async Standup Bot
1/30You are a senior Slack platform engineer who ships production Bolt apps. <context> I need a working async daily standup bot for Slack, delivered as one self-contained, ready-to-run artifact using the Slack Bolt for JavaScript framework. It should DM each team member a standup prompt on a schedule, collect answers, and post a formatted digest to a channel. </context> <inputs> - Team members (Slack user IDs or how to fetch them): [LIST OR CHANNEL] - Digest channel: [#CHANNEL] - Standup questions: [E.G. YESTERDAY, TODAY, BLOCKERS] - Trigger time and timezone: [E.G. 9:00 AMERICA/NEW_YORK] - Where it runs: [SOCKET MODE / HTTP] </inputs> <task> Build the full app: app.js with Bolt initialization, a scheduler that opens a Block Kit modal or sends an interactive DM at the trigger time, an action/view handler that saves each person's answers, and a function that compiles all responses into one Block Kit digest posted to the channel. Include the app manifest (scopes, event subscriptions, slash command) and a .env.example. </task> <constraints> - One runnable Node project laid out as clearly separated code blocks (package.json, manifest, .env.example, app.js). - Use real Slack Web API methods (chat.postMessage, views.open) and Block Kit JSON; never hardcode tokens. - Handle the case where someone has not answered yet; valid, commented code only. </constraints> <format> Return the code as an artifact (each file in its own labeled block), then a short run guide (npm install, env vars, how to schedule) and how to swap the store for a real database. </format>
Produces a runnable Bolt standup bot that DMs prompts, collects answers, and posts a digest, ready to use.
Pro tip: Tell Claude your exact standup questions and timezone up front so the scheduler and modal fields match your team's ritual.
Weekly Status Roll-Up Bot
2/30You are a Slack automation engineer building reporting bots. <context> I need a weekly status roll-up bot delivered as one self-contained, ready-to-run Bolt for JavaScript artifact. Every Friday it collects a one-line status from each team lead and posts a single summary to leadership. </context> <inputs> - Leads to poll: [USER IDS OR A GROUP] - Summary channel: [#CHANNEL] - Status fields: [E.G. WINS, RISKS, NEXT WEEK] - Collection window: [E.G. THU 3PM PROMPT, FRI 10AM DIGEST] - Timezone: [TZ] </inputs> <task> Build app.js that on the prompt time sends each lead an interactive message with a "Submit status" button opening a Block Kit modal, stores submissions keyed by user and week, and on digest time posts a grouped summary (one section per lead) plus a count of who has not replied. Include the manifest and .env.example. </task> <constraints> - One runnable Node project as labeled code blocks; real Web API methods and Block Kit JSON. - Tokens from env only; week-keyed storage so late replies still land in the right roll-up. - Commented, valid code; graceful handling of empty submissions. </constraints> <format> Return the code as an artifact (file per block), then a short setup guide and a note on persisting submissions beyond an in-memory store. </format>
Builds a weekly status collection bot that gathers lead updates and posts a grouped leadership summary, ready to use.
Pro tip: Ask Claude to add a 'not yet submitted' nudge that reminds only the leads who have not filled the modal an hour before digest time.
Standup Reminder & Digest (Python)
3/30You are a Python Slack developer who ships Bolt for Python apps. <context> I need a standup reminder and digest bot as one self-contained, ready-to-run Bolt for Python artifact. It reminds a channel to post their standup, watches the thread, and summarizes replies at end of window. </context> <inputs> - Standup channel: [#CHANNEL] - Reminder and cutoff times: [E.G. 9:30 AND 11:00, TZ] - Prompt message copy: [WHAT TO ASK] - Summary destination: [SAME CHANNEL / DM TO MANAGER] </inputs> <task> Build app.py using slack_bolt: a scheduled reminder posting the standup prompt as a threaded parent, a message event listener that captures thread replies, and a cutoff job that posts a Block Kit summary listing who replied and their first line. Include requirements.txt, the app manifest, and .env.example. </task> <constraints> - One runnable Python project as labeled code blocks; use slack_bolt and the official WebClient. - Read tokens from env; use Block Kit for the summary; handle a day with zero replies. - Valid, commented, PEP 8 code. </constraints> <format> Return the code as an artifact (file per block), then a run guide (pip install, env, scheduler) and how to deploy it as a small always-on worker. </format>
Generates a Python Bolt bot that reminds, watches the standup thread, and posts a summary, ready to run.
Pro tip: Give Claude your exact reminder copy and cutoff time so the threaded prompt and the summary window line up with your team's habits.
Blocker Escalation Bot
4/30You are a Slack workflow engineer focused on unblocking teams. <context> I need a blocker escalation bot delivered as one self-contained, ready-to-run Bolt for JavaScript artifact. During standup it lets anyone flag a blocker, then routes it to the right owner and tracks resolution. </context> <inputs> - Report entry point: [SLASH COMMAND, E.G. /blocker] - Escalation targets: [MANAGER / ON-CALL USER OR GROUP] - Tracking channel: [#CHANNEL] - Fields to capture: [SUMMARY, IMPACT, WHO/WHAT IS BLOCKING] </inputs> <task> Build app.js: a slash command that opens a Block Kit modal capturing the blocker fields, a view handler that posts the blocker to the tracking channel with "Take ownership" and "Resolved" buttons and pings the escalation target, and action handlers that update the message state and thread when someone owns or resolves it. Include the manifest and .env.example. </task> <constraints> - One runnable Node project as labeled code blocks; real slash command, modal, and interactive-button flow. - Env-only tokens; message updates via chat.update; clear status states (open, owned, resolved). - Commented, valid code. </constraints> <format> Return the code as an artifact (file per block), then a setup guide and how to add an auto-escalation if a blocker stays open past an SLA. </format>
Builds a slash-command blocker bot that captures, routes, and tracks blockers to resolution, ready to use.
Pro tip: Name your escalation target and SLA in the inputs so Claude wires the ping and can add a timed reminder if the blocker sits too long.
Sprint Retro Collector Bot
5/30You are a Slack platform engineer building agile team bots. <context> I need a sprint retrospective collector as one self-contained, ready-to-run Bolt for JavaScript artifact. At sprint end it gathers anonymous "went well / didn't / try next" input and posts a themed summary for the retro meeting. </context> <inputs> - Team channel: [#CHANNEL] - Retro trigger: [SLASH COMMAND OR SCHEDULE + TZ] - Categories: [WENT WELL, TO IMPROVE, ACTION ITEMS] - Anonymity: [ANONYMOUS / ATTRIBUTED] </inputs> <task> Build app.js: a trigger that DMs each member a Block Kit modal with a field per category, a view handler that stores entries without exposing identity when anonymous, and a compile step that posts a grouped Block Kit board (one section per category with bulleted entries) to the channel for the live retro. Include the manifest and .env.example. </task> <constraints> - One runnable Node project as labeled code blocks; real modal and Web API usage. - Env-only tokens; if anonymous, never store or reveal the author; Block Kit output grouped by category. - Valid, commented code; handle members who skip. </constraints> <format> Return the code as an artifact (file per block), then a setup guide and how to export the retro board to a pinned message or a doc. </format>
Creates a sprint retro bot that collects categorized (optionally anonymous) input and posts a themed board, ready to use.
Pro tip: Set anonymity to true in the inputs and Claude will strip author identity from storage entirely, so people give honest retro feedback.
XML tags are just the start. Learn the full Claude workflow.
A growing library of 300+ hands-on AI tutorials covering Claude, ChatGPT, and 50+ tools. New tutorials added every week.
Alert & Monitoring Bots
5 promptsUptime & Server Alert Bot
6/30You are a site-reliability engineer who wires monitoring into Slack. <context> I need an uptime and server alert bot delivered as one self-contained, ready-to-run artifact. A small poller checks my endpoints and posts a rich Slack alert on failure and a recovery notice when they come back. </context> <inputs> - Endpoints to check: [URLS + EXPECTED STATUS] - Check interval: [E.G. EVERY 60S] - Alert channel: [#CHANNEL] - Delivery method: [INCOMING WEBHOOK / BOT TOKEN] - Who to @mention on failure: [USER OR GROUP] </inputs> <task> Build a Node script that polls each endpoint on the interval, tracks up/down state to avoid duplicate alerts, and posts a Block Kit message on state change: down alerts in red context with the URL, status code, latency, and an @mention; recovery alerts confirming duration of downtime. Include package.json, the Slack app manifest (or webhook setup notes), and .env.example. </task> <constraints> - One runnable project as labeled code blocks; real Slack message formatting (Block Kit or attachments). - Env-only webhook URL or token; debounce so a persistent outage does not spam the channel. - Valid, commented code; timeout handling on each request. </constraints> <format> Return the code as an artifact (file per block), then a run guide and how to run it as a systemd service or a cron-driven check. </format>
Builds an endpoint-polling bot that posts state-change up/down alerts to Slack with mentions, ready to run.
Pro tip: List each endpoint with its expected status code so Claude alerts on a wrong 200-vs-500 body, not just on total downtime.
Application Error Alert Bot
7/30You are a backend engineer adding Slack error alerting to an app. <context> I need a reusable error-alert module delivered as one self-contained, ready-to-run artifact. When my app catches an exception it should post a concise, deduplicated alert to Slack with the stack trace and context. </context> <inputs> - App language/runtime: [E.G. NODE / PYTHON] - Error channel: [#CHANNEL] - Fields to include: [SERVICE, ENV, MESSAGE, STACK, REQUEST ID] - Delivery: [INCOMING WEBHOOK / BOT TOKEN] - Rate-limit rule: [E.G. MAX 1 SAME ERROR PER 5 MIN] </inputs> <task> Build a small module exposing a reportError(err, context) function: it formats a Block Kit message with the service, environment, truncated stack, and a link/request ID, dedupes identical errors within the rate-limit window using a hash, and posts to Slack. Include an example of hooking it into a global handler (Express error middleware or a Python except block) and a .env.example. </task> <constraints> - One runnable module as labeled code blocks; env-only webhook/token; truncate long stacks so messages stay readable. - Dedup by error signature; never block the main thread on the Slack call (fire-and-forget with error catch). - Valid, commented code. </constraints> <format> Return the code as an artifact (file per block), then how to wire it into a global handler and how to route different severities to different channels. </format>
Generates a drop-in error-reporting module that posts deduplicated, formatted exception alerts to Slack, ready to use.
Pro tip: Tell Claude your dedup window and which fields matter so repeated errors collapse into one alert instead of flooding the channel.
Deployment Notification Bot
8/30You are a DevOps engineer wiring CI/CD notifications into Slack. <context> I need a deployment notification setup delivered as one self-contained, ready-to-run artifact. On each deploy my pipeline should post a clear Slack message showing what shipped, by whom, and to which environment. </context> <inputs> - CI system: [E.G. GITHUB ACTIONS / GITLAB / CIRCLECI] - Notify channel: [#CHANNEL] - Data available: [COMMIT SHA, AUTHOR, BRANCH, ENV, CHANGELOG] - Delivery: [INCOMING WEBHOOK] - On failure behavior: [MENTION ON-CALL?] </inputs> <task> Build the pipeline step plus a small posting script: the script takes deploy metadata as args/env and posts a Block Kit message with status (started, success, failed), environment, commit link, author, and a short changelog; on failure it @mentions on-call and uses a red context. Include the CI config snippet for the chosen system and a .env.example. </task> <constraints> - One runnable setup as labeled code blocks (CI config + posting script); env-only webhook URL. - Real Block Kit formatting with a clickable commit link; distinct visuals for success vs failure. - Valid, commented code that exits non-zero only when appropriate. </constraints> <format> Return the artifact (CI snippet + script blocks), then how to add it to the pipeline and how to thread start/success into one updating message. </format>
Builds a CI/CD deploy notifier with a pipeline snippet and posting script for start/success/fail alerts, ready to use.
Pro tip: Name your CI system so Claude outputs the exact workflow syntax; ask it to update one message rather than post three per deploy.
Metric Threshold Alert Bot
9/30You are a data engineer building metric-based Slack alerts. <context> I need a threshold alert bot delivered as one self-contained, ready-to-run artifact. It periodically reads a metric and posts a Slack alert when the value crosses a limit, with a recovery message when it returns to normal. </context> <inputs> - Metric source: [SQL QUERY / HTTP METRICS ENDPOINT / CSV] - Metric meaning and unit: [E.G. SIGNUPS/HOUR, ERROR RATE %] - Thresholds: [WARN AT X, CRITICAL AT Y] - Check interval: [E.G. EVERY 5 MIN] - Alert channel: [#CHANNEL] </inputs> <task> Build a script that on each interval fetches the metric, evaluates it against warn/critical thresholds, and posts a Block Kit alert only on severity change (ok to warn, warn to critical, back to ok). Include the current value, threshold, trend arrow vs last reading, and severity color. Provide package/requirements file, the app manifest or webhook notes, and .env.example. </task> <constraints> - One runnable project as labeled code blocks; env-only credentials for both the metric source and Slack. - Alert only on severity transitions to avoid noise; show the numeric value and the threshold it crossed. - Valid, commented code with a clearly isolated fetchMetric() you can swap. </constraints> <format> Return the code as an artifact (file per block), then a run guide and how to point fetchMetric() at your real data source. </format>
Creates a bot that reads a metric on a schedule and posts warn/critical/recovery alerts on threshold crossings, ready to run.
Pro tip: Define both a warn and a critical threshold so Claude builds escalating severity instead of a single on/off alarm.
On-Call Incident Alert Bot
10/30You are an incident-response engineer building on-call tooling for Slack. <context> I need an on-call incident alert bot delivered as one self-contained, ready-to-run Bolt for JavaScript artifact. Incoming incidents post an actionable Slack alert that the on-call engineer can acknowledge and resolve inline. </context> <inputs> - Incident intake: [HTTP ENDPOINT / SLASH COMMAND] - On-call target: [USER OR GROUP TO PING] - Incident channel: [#CHANNEL] - Severity levels: [E.G. SEV1, SEV2, SEV3] - Ack timeout: [E.G. RE-PING IF NOT ACKED IN 5 MIN] </inputs> <task> Build app.js: an intake (endpoint or slash command) that creates an incident and posts a Block Kit alert with severity, description, and "Acknowledge" and "Resolve" buttons pinging on-call; action handlers that update the message to show who acked and when, open a thread for the timeline, and a timer that re-pings if no ack within the timeout. Include the manifest and .env.example. </task> <constraints> - One runnable Node project as labeled code blocks; real interactive buttons and chat.update state changes. - Env-only tokens; track incident state (triggered, acked, resolved) with timestamps; re-ping only until acked. - Valid, commented code. </constraints> <format> Return the code as an artifact (file per block), then a setup guide and how to persist incidents and post a resolution summary with time-to-ack. </format>
Builds an on-call incident bot with acknowledge/resolve buttons, re-ping timeout, and a timeline thread, ready to use.
Pro tip: Set the ack timeout in the inputs so Claude adds the auto re-ping loop that keeps waking on-call until someone actually responds.
Helpdesk & Support Bots
5 promptsIT Helpdesk Ticket Bot
11/30You are a Slack platform engineer building internal support tools. <context> I need an IT helpdesk ticket bot delivered as one self-contained, ready-to-run Bolt for JavaScript artifact. Employees open a ticket from a slash command, it posts to the IT channel with a ticket number, and agents can claim and close it. </context> <inputs> - Command: [E.G. /it-help] - IT agent channel: [#CHANNEL] - Ticket fields: [CATEGORY, PRIORITY, SUMMARY, DETAILS] - Ticket ID scheme: [E.G. IT-0001] - Confirmation to requester: [DM / EPHEMERAL] </inputs> <task> Build app.js: a slash command opening a Block Kit modal with the ticket fields (category and priority as selects), a view handler that assigns a sequential ticket ID, posts the ticket to the IT channel with "Claim" and "Close" buttons, and confirms to the requester with the ticket number; action handlers update the message and notify the requester on status change. Include the manifest and .env.example. </task> <constraints> - One runnable Node project as labeled code blocks; real modal, selects, and interactive buttons. - Env-only tokens; monotonic ticket IDs; requester notified on claim and close. - Valid, commented code with an isolated storage layer you can swap for a DB. </constraints> <format> Return the code as an artifact (file per block), then a setup guide and how to sync tickets to a real ticketing system via its API. </format>
Builds a slash-command IT ticket bot with claim/close flow and requester notifications, ready to use.
Pro tip: Provide your category and priority options in the inputs so Claude renders them as real dropdowns instead of free-text fields.
HR FAQ Answer Bot
12/30You are a Slack developer building an internal HR self-service bot. <context> I need an HR FAQ answer bot delivered as one self-contained, ready-to-run Bolt for JavaScript artifact. It answers common HR questions from a curated knowledge base and escalates to a human when it has no match. </context> <inputs> - Trigger: [SLASH COMMAND, E.G. /hr, OR APP MENTION] - FAQ content: [LIST OF QUESTION/ANSWER PAIRS OR TOPICS] - Escalation channel or contact: [#CHANNEL / HR USER] - Tone: [E.G. WARM, CONCISE] </inputs> <task> Build app.js: an intake (slash command or app_mention) that matches the user's question against the FAQ set using keyword/similarity scoring, returns the best answer as a Block Kit message with a "Still need help?" escalation button, and when no confident match posts an ephemeral "I could not find that" with a one-click route to HR. Include a clearly editable FAQ data file, the manifest, and .env.example. </task> <constraints> - One runnable Node project as labeled code blocks; FAQ stored in a separate, human-editable file. - Env-only tokens; escalation button opens a thread or pings HR; no answer invented outside the FAQ set. - Valid, commented code. </constraints> <format> Return the code as an artifact (file per block), then how to edit the FAQ file and how to swap keyword matching for an LLM/embeddings lookup later. </format>
Generates an HR self-service bot that answers from a curated FAQ and escalates unknowns to a human, ready to use.
Pro tip: Give Claude 10-15 real question/answer pairs so the matcher is grounded in your actual policies rather than generic HR text.
Support Triage & Routing Bot
13/30You are a Slack automation engineer building support routing. <context> I need a support triage bot delivered as one self-contained, ready-to-run Bolt for JavaScript artifact. It captures incoming requests, categorizes them, and routes each to the correct specialist channel with a priority tag. </context> <inputs> - Intake command: [E.G. /support] - Categories and their channels: [E.G. BILLING->#billing, BUGS->#eng-support] - Priority options: [LOW, MEDIUM, HIGH, URGENT] - SLA per priority: [E.G. URGENT = 1H] </inputs> <task> Build app.js: a slash command opening a modal with a category select, priority select, and description; a view handler that routes the request to the mapped channel, posts a Block Kit card with category, priority, SLA target time, and a "Resolve" button, and confirms to the requester. Add a simple keyword pre-fill that suggests a category from the description. Include the manifest and .env.example. </task> <constraints> - One runnable Node project as labeled code blocks; category-to-channel map in one editable object. - Env-only tokens; compute and display the SLA deadline from priority; real selects and buttons. - Valid, commented code. </constraints> <format> Return the code as an artifact (file per block), then how to edit the routing map and how to add an SLA-breach reminder. </format>
Builds a triage bot that categorizes requests and routes them to the right channel with SLA tags, ready to use.
Pro tip: Map every category to its channel in the inputs; Claude turns that map into the routing table so adding a team later is a one-line edit.
Knowledge-Base Lookup Bot
14/30You are a Slack developer building an internal docs search bot. <context> I need a knowledge-base lookup bot delivered as one self-contained, ready-to-run Bolt for JavaScript artifact. A slash command searches our internal docs and returns the top matching articles with links, inline in Slack. </context> <inputs> - Command: [E.G. /kb] - Doc source: [ARRAY OF {TITLE, URL, TAGS, SNIPPET} OR AN API] - Result count: [E.G. TOP 3] - Fallback: [WHAT TO SHOW ON NO MATCH] </inputs> <task> Build app.js: a slash command that takes a query, scores it against doc titles/tags/snippets, and returns an ephemeral Block Kit list of the top results (title as a link, snippet, tags) with a "Was this helpful?" feedback pair of buttons; on no match show the fallback plus a way to request a new doc. Keep the doc source in a clearly separate, editable module. Include the manifest and .env.example. </task> <constraints> - One runnable Node project as labeled code blocks; doc data isolated in its own file/module. - Env-only tokens; ephemeral results so channels stay clean; clickable links; feedback buttons logged. - Valid, commented code. </constraints> <format> Return the code as an artifact (file per block), then how to point the source at a real docs API and how to log the helpful/not-helpful feedback. </format>
Creates a slash-command docs search bot that returns ranked, linked results with feedback buttons, ready to use.
Pro tip: Tag each doc entry generously; the matcher leans on tags, so good tags make short or fuzzy queries still find the right article.
Bug & Feedback Report Bot
15/30You are a Slack platform engineer building a lightweight feedback intake. <context> I need a bug and feedback report bot delivered as one self-contained, ready-to-run Bolt for JavaScript artifact. Anyone can file a bug or idea from a shortcut, and it lands in a triage channel with type, severity, and a vote count. </context> <inputs> - Entry point: [GLOBAL SHORTCUT / SLASH COMMAND] - Triage channel: [#CHANNEL] - Types: [BUG, IDEA, UX] - Severity/impact options: [LIST] - Voting: [EMOJI REACTION OR BUTTON] </inputs> <task> Build app.js: a shortcut or slash command opening a modal (type select, severity select, title, details, optional steps to reproduce), a view handler that posts a Block Kit card to triage with the fields and an upvote button that increments a visible count, and confirms submission to the reporter. Include the manifest and .env.example. </task> <constraints> - One runnable Node project as labeled code blocks; real shortcut/modal and an upvote button that updates the message. - Env-only tokens; store vote counts keyed by report; distinct visuals per type. - Valid, commented code. </constraints> <format> Return the code as an artifact (file per block), then how to sort the triage backlog by votes and how to push accepted items to an issue tracker. </format>
Builds a shortcut-driven bug/idea intake bot with typed reports and upvoting in a triage channel, ready to use.
Pro tip: Turn on the upvote button and Claude will make the count live-update, so your triage channel doubles as a lightweight prioritization board.
Poll & Survey Bots
5 promptsQuick Poll Bot
16/30You are a Slack developer building interactive poll tooling. <context> I need a quick poll bot delivered as one self-contained, ready-to-run Bolt for JavaScript artifact. A slash command creates a poll with custom options and live vote tallies shown as buttons in the channel. </context> <inputs> - Command syntax: [E.G. /poll "Question" "Option A" "Option B"] - Vote rule: [SINGLE CHOICE / MULTI] - Show voters: [NAMES / COUNT ONLY] - Who can close: [ANYONE / CREATOR ONLY] </inputs> <task> Build app.js: a slash command that parses the question and options, posts a Block Kit poll where each option is a button showing its live count, and action handlers that record each user's vote (enforcing single or multi choice), update the message counts, and optionally list voters. Add a "Close poll" button (creator-gated) that freezes results and highlights the winner. Include the manifest and .env.example. </task> <constraints> - One runnable Node project as labeled code blocks; parse quoted options robustly; real interactive buttons. - Env-only tokens; store votes per poll and per user; prevent double-counting; chat.update for live tallies. - Valid, commented code. </constraints> <format> Return the code as an artifact (file per block), then a setup guide and how to persist polls so counts survive a restart. </format>
Builds a slash-command poll bot with live button tallies, single/multi vote rules, and close-to-freeze, ready to use.
Pro tip: Decide single vs multi choice up front; Claude enforces it in the vote handler so people cannot game a single-choice poll.
Anonymous Survey Bot
17/30You are a Slack developer building anonymous feedback tools. <context> I need an anonymous survey bot delivered as one self-contained, ready-to-run Bolt for JavaScript artifact. It DMs a multi-question survey to a group and posts aggregated results with no way to trace an answer to a person. </context> <inputs> - Recipients: [CHANNEL MEMBERS / USER LIST] - Questions: [MIX OF SCALE 1-5 AND FREE TEXT] - Results channel: [#CHANNEL] - Close time: [WHEN TO AGGREGATE, TZ] </inputs> <task> Build app.js: a trigger that DMs each recipient a Block Kit modal with the questions, a view handler that stores responses WITHOUT any user identifier, and a close job that posts aggregated results (average and distribution per scale question, a shuffled list of free-text answers) to the results channel with the response count. Include the manifest and .env.example. </task> <constraints> - One runnable Node project as labeled code blocks; never store user ID alongside answers; real modal and Block Kit output. - Env-only tokens; suppress results if fewer than a minimum number of responses to protect anonymity. - Valid, commented code. </constraints> <format> Return the code as an artifact (file per block), then a setup guide and a note on the anonymity guarantees and the minimum-response threshold. </format>
Creates an anonymous survey bot that collects and aggregates responses with no author traceability, ready to use.
Pro tip: Set a minimum-response threshold so results only post once enough people reply, which keeps small-team answers truly anonymous.
eNPS Pulse Survey Bot
18/30You are a people-analytics engineer building recurring pulse surveys in Slack. <context> I need a recurring eNPS pulse bot delivered as one self-contained, ready-to-run Bolt for JavaScript artifact. On a schedule it asks the classic 0-10 recommend question plus one open comment, then computes and posts the eNPS score. </context> <inputs> - Cadence: [E.G. MONTHLY, DAY + TZ] - Audience: [CHANNEL / USER GROUP] - Questions: [0-10 SCORE + OPTIONAL COMMENT] - Results destination: [#CHANNEL / DM TO HR] </inputs> <task> Build app.js: a scheduler that DMs each person a Block Kit modal with a 0-10 rating and a comment field, a view handler that stores scores anonymously by period, and a close step that classifies promoters/passives/detractors, computes eNPS = %promoters - %detractors, and posts a Block Kit summary with the score, breakdown, response rate, and shuffled comments. Include the manifest and .env.example. </task> <constraints> - One runnable Node project as labeled code blocks; store by period; anonymous; correct eNPS math. - Env-only tokens; suppress results below a minimum response count; real modal and Block Kit output. - Valid, commented code. </constraints> <format> Return the code as an artifact (file per block), then a setup guide and how to trend eNPS across periods over time. </format>
Builds a recurring eNPS pulse bot that surveys, computes the score, and posts a breakdown, ready to use.
Pro tip: Confirm the eNPS formula matters to you (promoters minus detractors); ask Claude to store each period so you can chart the trend later.
Decision / Lunch Poll Bot
19/30You are a Slack developer building fun team-decision bots. <context> I need a decision poll bot delivered as one self-contained, ready-to-run Bolt for JavaScript artifact. It runs a timed poll for group decisions (lunch spot, meeting time, name vote) and auto-announces the winner when the timer ends. </context> <inputs> - Command: [E.G. /decide] - Options source: [TYPED IN OR A PRESET LIST LIKE LUNCH SPOTS] - Timer: [E.G. AUTO-CLOSE IN 30 MIN] - Tie rule: [RANDOM PICK / RUNOFF] </inputs> <task> Build app.js: a slash command that starts a poll with the given options and a countdown, posts a Block Kit message with vote buttons and a visible "closes at" time, records votes, and a scheduled close that tallies, announces the winner with a celebratory message, and applies the tie rule when needed. Include the manifest and .env.example. </task> <constraints> - One runnable Node project as labeled code blocks; real buttons, a scheduled auto-close, and tie handling. - Env-only tokens; store votes per poll; disable buttons after close; light, non-cheesy copy. - Valid, commented code. </constraints> <format> Return the code as an artifact (file per block), then a setup guide and how to save preset option lists (e.g. favorite lunch spots). </format>
Builds a timed decision poll bot that auto-closes, announces the winner, and handles ties, ready to use.
Pro tip: Pick a tie rule in the inputs; a random-pick tiebreak keeps quick decisions moving instead of stalling on a deadlock.
Reaction Vote Tally Bot
20/30You are a Slack developer building emoji-reaction voting tools. <context> I need a reaction-vote tally bot delivered as one self-contained, ready-to-run Bolt for JavaScript artifact. It watches a message for specific emoji reactions and reports a live tally, useful for lightweight yes/no or option votes. </context> <inputs> - How a vote starts: [SLASH COMMAND ON A MESSAGE / SHORTCUT] - Emoji-to-option mapping: [E.G. :white_check_mark: = YES, :x: = NO] - Report style: [THREADED REPLY / UPDATE ORIGINAL] - Close condition: [MANUAL / AFTER N MINUTES] </inputs> <task> Build app.js: a trigger that marks a message as a reaction poll and pre-adds the mapped emojis, listeners for reaction_added and reaction_removed that keep a live count per option (ignoring emojis outside the map), and a report that updates a Block Kit tally either in-thread or on the original message, then declares the result on close. Include the manifest and .env.example. </task> <constraints> - One runnable Node project as labeled code blocks; subscribe to reaction events; count only mapped emojis. - Env-only tokens; handle removed reactions correctly (decrement); avoid counting the bot's own seed reactions. - Valid, commented code. </constraints> <format> Return the code as an artifact (file per block), then the exact event scopes needed and how to change the emoji-to-option map. </format>
Builds an emoji-reaction voting bot that tallies mapped reactions live and reports the result, ready to use.
Pro tip: Map each emoji to an option explicitly so stray reactions do not skew the count and the bot ignores its own seed emojis.
Reminder & Scheduler Bots
5 promptsRecurring Reminder Bot
21/30You are a Slack developer building scheduling bots. <context> I need a recurring reminder bot delivered as one self-contained, ready-to-run Bolt for JavaScript artifact. People set repeating reminders from a slash command and the bot posts them on schedule to a user or channel. </context> <inputs> - Command syntax: [E.G. /remind #channel "text" every weekday at 9am] - Recurrence types: [DAILY, WEEKDAYS, WEEKLY, MONTHLY] - Timezone handling: [PER-USER TZ FROM PROFILE] - List/cancel: [HOW USERS MANAGE THEIR REMINDERS] </inputs> <task> Build app.js: a slash command that parses target, message, and recurrence into a stored schedule, a scheduler that fires due reminders in each user's timezone and posts them, and subcommands to list and cancel a user's reminders via a Block Kit view. Use chat.scheduleMessage where the recurrence allows and a cron loop for repeats. Include the manifest and .env.example. </task> <constraints> - One runnable Node project as labeled code blocks; parse natural-ish recurrence; respect each user's timezone. - Env-only tokens; persist schedules so they survive restart (isolated store you can swap for a DB); no duplicate fires. - Valid, commented code. </constraints> <format> Return the code as an artifact (file per block), then a setup guide, the parsing grammar you support, and how to move the store to a database. </format>
Builds a recurring reminder bot with a parseable command, timezone-aware firing, and list/cancel, ready to use.
Pro tip: Tell Claude which recurrence phrases to accept; a small, explicit grammar parses far more reliably than open-ended natural language.
Meeting Reminder Bot
22/30You are a Slack developer building meeting-reminder automation. <context> I need a meeting reminder bot delivered as one self-contained, ready-to-run Bolt for JavaScript artifact. Before each meeting it DMs attendees a reminder with the agenda and join link, and a follow-up to capture notes after. </context> <inputs> - Meeting source: [STATIC LIST / CALENDAR FEED / MANUAL /meeting COMMAND] - Lead time: [E.G. 10 MIN BEFORE] - Fields: [TITLE, TIME, JOIN LINK, AGENDA, ATTENDEES] - Post-meeting: [PROMPT FOR NOTES? WHERE TO POST] </inputs> <task> Build app.js: ingestion of meetings (from a list or a /meeting command that captures the fields), a scheduler that DMs each attendee a Block Kit reminder with title, time, join button, and agenda at the lead time, and an optional post-meeting prompt asking the organizer for notes and posting them to a channel. Include the manifest and .env.example. </task> <constraints> - One runnable Node project as labeled code blocks; timezone-correct scheduling; join link as a real button. - Env-only tokens; do not double-remind; store meetings in an isolated, swappable module. - Valid, commented code. </constraints> <format> Return the code as an artifact (file per block), then a setup guide and how to feed it from a Google/Outlook calendar via ICS or API. </format>
Builds a meeting reminder bot that DMs agenda/link before and captures notes after, ready to use.
Pro tip: Start with the manual /meeting command; once it works, wire the same ingestion function to a calendar ICS feed for automatic reminders.
Birthday & Work Anniversary Bot
23/30You are a Slack developer building team-culture bots. <context> I need a birthday and work-anniversary bot delivered as one self-contained, ready-to-run Bolt for JavaScript artifact. Each morning it checks for birthdays and work anniversaries and posts a warm celebration to a channel. </context> <inputs> - People data: [CSV/ARRAY OF NAME, SLACK ID, BIRTHDAY, START DATE] - Celebration channel: [#CHANNEL] - Daily check time: [TIME + TZ] - Message style: [WARM, PLAYFUL, MINIMAL] </inputs> <task> Build app.js: a daily job that compares today (month/day) against each person's birthday and start date, posts a Block Kit celebration @mentioning the person (for anniversaries include the number of years), and handles multiple celebrations on the same day in one message. Keep the people data in a separate, editable file. Include the manifest and .env.example. </task> <constraints> - One runnable Node project as labeled code blocks; people data isolated and easy to edit; correct year math for anniversaries. - Env-only tokens; handle Feb 29 gracefully; group same-day celebrations; warm, non-cringe copy. - Valid, commented code. </constraints> <format> Return the code as an artifact (file per block), then a setup guide and how to load people data from an HR system instead of a file. </format>
Builds a daily bot that celebrates team birthdays and work anniversaries in a channel, ready to use.
Pro tip: Keep the people file separate as Claude does; you update one list and never touch the bot logic to add a new teammate.
Task Deadline Nudger Bot
24/30You are a Slack developer building deadline-tracking bots. <context> I need a task deadline nudger delivered as one self-contained, ready-to-run Bolt for JavaScript artifact. It tracks tasks with due dates and DMs owners escalating reminders as deadlines approach and pass. </context> <inputs> - Task source: [/task COMMAND / IMPORTED LIST WITH OWNER + DUE DATE] - Reminder cadence: [E.G. 2 DAYS BEFORE, DAY OF, OVERDUE DAILY] - Escalation: [PING MANAGER WHEN OVERDUE > X DAYS] - Owner timezone: [FROM PROFILE] </inputs> <task> Build app.js: a /task command (or import) capturing title, owner, and due date; a daily job that DMs owners a Block Kit reminder at each cadence stage with a "Mark done" and "Snooze" button; escalation that pings a manager when a task is overdue beyond the threshold; and status updates that stop reminders once done. Include the manifest and .env.example. </task> <constraints> - One runnable Node project as labeled code blocks; owner-timezone-aware; escalating stages, not repeated identical pings. - Env-only tokens; "Mark done" halts further nudges; store tasks in a swappable module. - Valid, commented code. </constraints> <format> Return the code as an artifact (file per block), then a setup guide and how to sync tasks from a project tool via its API. </format>
Builds a deadline nudger that sends escalating reminders, snooze/done buttons, and manager escalation, ready to use.
Pro tip: Define the cadence stages explicitly so Claude escalates (heads-up, due today, overdue) instead of sending the same nag every day.
Timezone-Aware Team Reminder Bot
25/30You are a Slack developer building distributed-team scheduling. <context> I need a timezone-aware team reminder bot delivered as one self-contained, ready-to-run Bolt for JavaScript artifact. It sends a recurring reminder to each team member at the same LOCAL time, wherever they are. </context> <inputs> - Reminder text: [WHAT TO SEND] - Local target time: [E.G. 9:00 LOCAL EACH WEEKDAY] - Team: [CHANNEL / USER LIST] - Delivery: [DM / EPHEMERAL IN CHANNEL] </inputs> <task> Build app.js: read each member's timezone from their Slack profile (users.info), compute their next local occurrence of the target time, schedule the reminder per user (via chat.scheduleMessage or a per-user timer), and reschedule for the next occurrence after it fires. Handle DST correctly by recomputing from the timezone rather than storing fixed UTC offsets. Include the manifest and .env.example. </task> <constraints> - One runnable Node project as labeled code blocks; derive timezone from profile; recompute each cycle so DST is correct. - Env-only tokens; no double-sends; skip users with no timezone set (log them). - Valid, commented code. </constraints> <format> Return the code as an artifact (file per block), then a setup guide, the scopes needed to read timezones, and how to add opt-out. </format>
Builds a bot that fires the same reminder at each member's local time with correct DST handling, ready to use.
Pro tip: Ask Claude to recompute the next fire time from the profile timezone every cycle; that is what keeps it correct across DST shifts.
Most people use 10% of Claude. Tutorials unlock the rest.
AI Academy: 300+ hands-on tutorials on Claude, ChatGPT, Midjourney, and 50+ AI tools. New tutorials added every week.
Integration Bots
5 promptsGitHub PR Notification Bot
26/30You are a developer-experience engineer wiring GitHub into Slack. <context> I need a GitHub-to-Slack PR notification bot delivered as one self-contained, ready-to-run artifact. It receives GitHub webhooks and posts clean, actionable Slack messages for pull request events. </context> <inputs> - Events to handle: [OPENED, REVIEW REQUESTED, APPROVED, MERGED] - Notify channel(s): [#CHANNEL, OR PER-REPO MAP] - Reviewer mapping: [GITHUB LOGIN -> SLACK ID, IF ANY] - Delivery: [BOT TOKEN / INCOMING WEBHOOK] </inputs> <task> Build a small server (Express or Bolt receiver) that verifies the GitHub webhook signature, parses pull_request and review events, and posts a Block Kit message per event: PR title as a link, author, status, requested reviewers (@mentioning mapped Slack users), and a merge celebration on merge. Include package.json, the endpoint route, the app manifest or webhook notes, and .env.example. </task> <constraints> - One runnable project as labeled code blocks; VERIFY the X-Hub-Signature-256 HMAC before processing. - Env-only secrets and tokens; map GitHub logins to Slack IDs so mentions actually notify; clickable PR links. - Valid, commented code; ignore event types you do not handle. </constraints> <format> Return the code as an artifact (file per block), then how to register the webhook, the exact scopes, and how to add per-repo channel routing. </format>
Builds a signed-webhook GitHub bot that posts PR opened/review/merge alerts with reviewer mentions, ready to use.
Pro tip: Provide a GitHub-login-to-Slack-ID map so review requests actually @mention the right person instead of posting a dead username.
Issue Tracker Sync Bot
27/30You are an integration engineer connecting an issue tracker to Slack. <context> I need an issue-tracker sync bot delivered as one self-contained, ready-to-run artifact. It creates issues from Slack and posts status updates back, keeping a two-way link between a thread and an issue. </context> <inputs> - Tracker: [E.G. LINEAR / JIRA / GITHUB ISSUES] - Create command: [E.G. /issue] - Fields: [TITLE, DESCRIPTION, PROJECT/LABEL, ASSIGNEE] - Status channel: [#CHANNEL] - Tracker API auth: [TOKEN VIA ENV] </inputs> <task> Build app.js (Bolt): a /issue slash command opening a modal, a view handler that calls the tracker's API to create the issue and posts a Block Kit card with the issue key, link, and status, storing the mapping between the Slack message and the issue ID; plus a webhook endpoint that receives tracker status changes and updates the Slack message/thread. Include the manifest, the API client module, and .env.example. </task> <constraints> - One runnable Node project as labeled code blocks; isolate the tracker API calls in one client module so it is swappable. - Env-only tokens for both Slack and the tracker; verify inbound webhook auth; keep the Slack-to-issue map. - Valid, commented code with clear error handling on API failures. </constraints> <format> Return the code as an artifact (file per block), then how to get the tracker API token, the fields the modal supports, and how to extend the status mapping. </format>
Builds a two-way issue sync bot that creates tracker issues from Slack and reflects status changes back, ready to use.
Pro tip: Name your exact tracker so Claude writes the real API calls; the isolated client module lets you swap Jira for Linear without touching the bot.
Stripe Payment Notification Bot
28/30You are a backend engineer wiring Stripe events into Slack. <context> I need a Stripe-to-Slack notification bot delivered as one self-contained, ready-to-run artifact. It receives Stripe webhooks and posts a clear Slack message for revenue events like new subscriptions, payments, and failed charges. </context> <inputs> - Events to handle: [E.G. checkout.session.completed, invoice.paid, invoice.payment_failed, customer.subscription.deleted] - Notify channel: [#CHANNEL, OR SPLIT WINS VS ISSUES] - Amount formatting: [CURRENCY, WHETHER TO SHOW MRR] - Delivery: [INCOMING WEBHOOK / BOT TOKEN] </inputs> <task> Build an Express server that verifies the Stripe webhook signature with the signing secret, handles the listed event types, and posts a Block Kit message each: new sale/subscription in green with amount, plan, and customer; failed payment in red with the reason and a link to the Stripe dashboard; churn events flagged for follow-up. Include package.json, the raw-body-aware endpoint, the app/webhook setup notes, and .env.example. </task> <constraints> - One runnable project as labeled code blocks; MUST use the raw request body for Stripe signature verification. - Env-only secrets; format currency correctly from the smallest unit; distinct visuals for wins vs problems. - Valid, commented code; return 200 quickly and ignore unhandled event types. </constraints> <format> Return the code as an artifact (file per block), then how to set the Stripe webhook and signing secret, and how to route revenue vs failures to separate channels. </format>
Builds a signature-verified Stripe bot that posts sales, failed payments, and churn alerts to Slack, ready to use.
Pro tip: Remind Claude to use the raw body for signature verification; parsing JSON first is the number-one reason Stripe webhook checks fail.
Google Sheets Logger Bot
29/30You are an automation engineer connecting Slack to Google Sheets. <context> I need a Google Sheets logger bot delivered as one self-contained, ready-to-run artifact. A slash command appends a structured row to a spreadsheet (e.g. logging expenses, leads, or standups) and confirms in Slack. </context> <inputs> - Command: [E.G. /log] - Columns to capture: [E.G. DATE, PERSON, CATEGORY, AMOUNT, NOTE] - Target sheet: [SPREADSHEET ID + TAB] - Auth: [SERVICE ACCOUNT JSON VIA ENV] - Confirmation: [EPHEMERAL / CHANNEL] </inputs> <task> Build app.js (Bolt): a /log slash command opening a Block Kit modal with a field per column, a view handler that authenticates to the Google Sheets API with a service account and appends the row via spreadsheets.values.append, then confirms with the captured values and a link to the sheet. Include package.json, the Sheets client module, the manifest, and .env.example (service account handling). </task> <constraints> - One runnable Node project as labeled code blocks; isolate Sheets auth/append in one module. - Env-only credentials (service account key from env, not committed); validate/parse numeric fields before appending. - Valid, commented code with error handling if the append fails. </constraints> <format> Return the code as an artifact (file per block), then how to create the service account, share the sheet with it, and change the column set. </format>
Builds a slash-command bot that logs structured rows from Slack into a Google Sheet, ready to use.
Pro tip: List your exact columns; Claude renders them as modal fields and maps them to the sheet, so adding a column is a one-line change.
Generic Webhook Relay Bot
30/30You are an integration engineer building a flexible inbound-webhook relay for Slack. <context> I need a generic webhook relay bot delivered as one self-contained, ready-to-run artifact. It accepts inbound JSON from any tool (Zapier, monitoring, custom apps) and turns it into a clean, templated Slack message. </context> <inputs> - Sources to support: [NAMED PAYLOAD SHAPES, E.G. ZAPIER, TYPEFORM, CUSTOM] - Routing: [SOURCE OR PAYLOAD FIELD -> CHANNEL] - Auth: [SHARED SECRET OR HMAC PER SOURCE] - Message templates: [FIELDS TO SHOW PER SOURCE] </inputs> <task> Build an Express server with a single /hook/:source endpoint that authenticates the request (shared secret or HMAC), looks up a per-source template that maps payload fields into a Block Kit message, routes to the configured channel, and posts via the Slack Web API. Provide a clearly editable templates/config module so adding a new source is data, not code. Include package.json, the endpoint, the manifest or webhook notes, and .env.example. </task> <constraints> - One runnable Node project as labeled code blocks; per-source auth verified before processing. - Env-only tokens/secrets; templates and routing in one editable config; safely handle missing payload fields. - Valid, commented code; return clear 2xx/4xx codes. </constraints> <format> Return the code as an artifact (file per block), then how to add a new source (config entry only), the auth model, and an example curl to test it. </format>
Builds a configurable relay that turns inbound webhooks from any tool into templated Slack messages, ready to use.
Pro tip: Keep sources in the config module as Claude does; adding a new integration becomes a data entry, never a code change or redeploy of logic.
Frequently Asked Questions
Prompts are the starting line. Tutorials are the finish.
A growing library of 300+ hands-on tutorials on ChatGPT, Claude, Midjourney, and 50+ AI tools. New tutorials added every week.
7-day free trial. Cancel anytime.