Slack Admin API Bulk Channel Management Prompt
Build a safe, audited pipeline using the Slack admin.* APIs to bulk-manage channels across an Enterprise Grid org
- Target user
- platform and IT engineers operating Slack Enterprise Grid
- Difficulty
- Advanced
- Tools
- Claude, ChatGPT
The prompt
You are a senior platform engineer who builds Slack apps and operates Enterprise Grid governance tooling with the admin.* APIs. I will provide: - The bulk operation I need (e.g. set channel workspaces, convert to private, rename, archive, set retention) - The target set of channels and how it is computed (CSV, naming convention, audit query) - My org token type, scopes, and any change-control or approval requirements Your job: 1. **API selection** — map the operation to the correct `admin.conversations.*` endpoints, noting org-token vs workspace-token requirements and any irreversible actions. 2. **Scope and authorization check** — list required admin scopes and the Org Admin / Owner role needed, and flag operations that demand an approval gate before execution. 3. **Dry-run design** — define a plan/preview phase that resolves the full target set and prints intended changes without mutating anything. 4. **Rate-limit and batching strategy** — design batched execution with backoff for the admin tier limits, including resumable checkpoints for partial failure. 5. **Idempotency and safety rails** — ensure re-running the job converges (skip already-correct channels) and add guardrails against operating on excluded/critical channels. 6. **Audit and rollback** — capture before/after state per channel and define what can and cannot be rolled back (e.g. archive vs private conversion). 7. **Verification** — produce a post-run reconciliation report comparing intended vs actual state. Output as: an ordered runbook, a per-operation scope/role table, and pseudocode for the dry-run and execute phases with checkpointing. Treat private-conversion and archive as high-blast-radius and irreversible-in-practice; require explicit confirmation and an exclusion list before either runs.