Slack Live Progress Bar with chat.update Prompt
Render a single self-updating Slack message that shows live progress for a long-running deploy or job, using chat.update against a stored ts instead of spamming the channel with per-step posts.
- Target user
- Engineers building Slack ChatOps job and deploy notifiers
- Difficulty
- Intermediate
- Tools
- Claude, ChatGPT, Cursor
The prompt
You are a senior platform engineer who builds Slack ChatOps notifiers and has watched a deploy pipeline post 40 separate "step 12/40 done" messages and bury the channel. I want a single, in-place progress message: one chat.postMessage to create it, then chat.update calls that mutate the same message as a long-running job (deploy, migration, backfill) advances stage by stage. I will provide: - The job's stages and how progress is reported (webhook per step, polling a job API, streamed log lines) - The runtime (Bolt app, plain Web API client, a CI shell step calling curl) - How the job can end (success, failure, timeout, cancel) and whether stages can run in parallel Your job: 1. **Post-once, update-many contract** — one chat.postMessage returns a `ts`; persist that `ts` + `channel` keyed by a stable job id so every later update targets the same message even across process restarts. 2. **Render a Block Kit progress view** — design blocks that show a text progress bar (for example filled/empty block glyphs), percent or N/total, current stage, elapsed time, and a context line with the run URL. Keep it under Block Kit limits so updates never get rejected. 3. **Update cadence and coalescing** — throttle chat.update to at most ~1/second per message and coalesce rapid step events, so a fast job does not trip rate limits or flicker; explain how to debounce. 4. **Terminal states** — on success/failure/timeout, do a final chat.update that freezes the bar (full or stopped), swaps the color/emoji, and appends a summary; stop updating after terminal. 5. **Failure and recovery** — handle a lost `ts` (fall back to a fresh post), an `message_not_found` on update (message deleted), and Slack `ratelimited` (honor Retry-After, keep last state, retry). 6. **Parallel stages** — if stages run concurrently, show per-stage status rows rather than a single counter, and define how partial completion maps to the bar. Output as: (a) the post-once/update-many state model with the persisted key schema, (b) the Block Kit payload for an in-progress and a terminal state, (c) the throttle/coalesce rule, (d) the terminal-state transitions, and (e) the failure-recovery handling. Prefer updating one message over posting many; a channel should see a single living status line, not a scroll of near-duplicate step notices.
Run this prompt with AI
Test it, get an AI-improved version, or compare models — live in the Prompt Workspace. No copy-paste.
Related prompts
-
Slack Block Kit Modal Input Validation & Error Display Prompt
Design server-side validation for Block Kit modals — response_action errors, per-input error keying, cross-field rules, and re-render UX that never loses user input.
-
Slack Block Kit Rich Text Input Composer Prompt
Capture and round-trip formatted user input using the rich_text_input block and rich_text element trees
-
Slack External Select Dynamic Options Menus Prompt
Implement external data source select menus in Block Kit that load type-ahead options from your backend at interaction time
-
Slack Link Unfurling for App-Owned Domains Prompt
Design and implement custom link unfurls so internal tool URLs render as rich Block Kit attachments in Slack
More Slack prompts & error guides
Browse every Slack prompt and troubleshooting guide in one place.
Reading prompts? Get all 500 in one free PDF
500 battle-tested, copy-paste AI prompts engineered by a senior systems engineer — every one with fill-in placeholders and safety/back-out notes. Drop your email and it's yours.
- 500 prompts: Linux · Kubernetes · Terraform · OpenStack · GitLab · Docker · Monitoring · Incident Response
- Instant PDF download — yours free, forever
- Plus one practical AI-workflow email a week (no spam)
Single opt-in · unsubscribe anytime · no spam.