Bulk Delete Slack Messages with Smart Filtering and Confirmations
Go to WorkflowDescription
๐งน Jedi Cleaner for Slack
โ Slack's Limitation
Slack lacks a native bulk delete feature. Users must delete messages manually, which is time-consuming and inefficient for large volumes.
โ
Our Solution
Jedi Cleaner automates Slack message deletion using smart filters, safety confirmations, and enterprise-grade reliability.
๐ Key Features & Capabilities
โก Lightning-Fast Bulk Operations
Delete hundreds of messages in minutes
Intelligent rate limiting prevents API throttling
Auto-retry on failure ensures reliable operation
๐ฏ Smart Message Filtering
Keyword match** โ Find messages with specific terms
User mentions** โ Target messages that mention specific users
Exact phrases** โ Use quotes for precision
Bot/User content** โ Handle mixed sources seamlessly
๐ก๏ธ Enterprise-Grade Safety
Confirmation workflow** โ No accidental deletions
Timeout** โ Requests expire after 5 minutes
Preview-first** โ Review messages before deletion
Granular control** โ Choose exactly what to delete
๐ Intelligent Search & Preview
Flexible filters (words, phrases, patterns)
Preview + count before deletion
Multi-channel support with context isolation
๐ Complete Workflow Management
Auto-cleanup of bot messages after execution
Real-time progress tracking
Debug logs and audit trail
Static data persistence and cleanup
๐งช How It Works
Phase 1: Search Request
User: /cleanup "error messages"
Bot Response:
๐ Found 15 messages containing "error messages"
๐ Breakdown:
โข Will be permanently deleted
โข Cannot be undone
โข Respond within 5 minutes
โ
Type: @cleaner_jedi yes
โ Type: @cleaner_jedi cancel
Phase 2: User Confirmation
User: @cleaner_jedi yes
Bot: ๐๏ธ Deleting 15 messages containing "error messages"
Phase 3: Completion
โ
Cleanup Complete
โข 15 messages deleted
โข Channel cleaned
โข Auto-deletes this message in 5 seconds
๐ ๏ธ Technical Architecture
Core Components
Unified Webhook Handler**
Handles slash commands & mentions, deduplicates events
Search Engine**
Integrates Slack API, parses & filters search terms
Safety & Confirmation System**
Temporary storage, expiration logic, user auth
Bulk Operations Engine**
Message deletion, progress tracking, error handling
Cleanup & Memory Management**
Deletes bot messages, static data cleanup
๐ฑ User Commands
| Command | Description | Example |
| ---------------------- | ----------------------------------- | -------------------------- |
| /cleanup [term] | Search messages containing [term] | /cleanup "webhook error" |
| @cleaner_jedi yes | Confirm deletion | After preview |
| @cleaner_jedi cancel | Cancel pending deletion | Cancels active request |
๐งฉ Edge Cases
| Scenario | Bot Response |
| -------------------- | ---------------------------------------------- |
| No messages found | "No messages found containing '\[term]'" |
| Expired confirmation | "Request expired. Please run /cleanup again" |
| No pending request | "No pending cleanup found. Run /cleanup first" |
| Invalid search term | "Please provide a valid search term" |
โ๏ธ Setup Requirements
Slack App Configuration
OAuth Scopes:
โ
chat:write
โ
chat:write.public
โ
channels:history
โ
groups:history
โ
app_mentions:read
โ
commands
Event Subscriptions:
โ
app_mention
โ
message.channels
Slash Command:
Command: /cleanup
URL: https://your-n8n.app.cloud/webhook/cleanerjedi
Hint: [search term]
n8n Workflow Setup
Required Nodes:
Webhook Trigger** โ Captures Slack events
Respond to Webhook** โ Handles routing
Switch Node** โ Event type routing
Slack API Nodes** โ Search, delete, notify
JavaScript Nodes** โ Logic & validation
โก Advanced Features
๐ง Intelligent Deduplication
eventId = cmd_${body.command}${body.user_id}${body.trigger_id};
if (staticData.recentEvents.includes(eventId)) {
return []; // Skip duplicate
}
๐ Flexible Search Terms
Single words:** test
Phrases:** "error message"
Special characters:** webhook-failed
Case-insensitive by default
โป๏ธ Auto-Cleanup
setTimeout(() => {
deleteMessage(completionMessage.ts);
deleteMessage(progressMessage.ts);
}, 5000);
๐ง Storage Management
Temp storage for requests
Auto-expiry cleanup
Memory-safe event trimming
๐ Error Handling & Logging
Error Scenarios
โ Invalid term
โฐ Expired request
๐ซ Access denied
โ ๏ธ Rate limit hit
Debugging & Monitoring
Event IDs, timestamps
Key-value storage info
API response codes
โ
Usage Examples
Example 1: Delete Error Messages
/cleanup "error"
โ Bot: Found 23 messages
โ @cleaner_jedi yes
โ โ
Deleted 23 messages
Example 2: Cancel Midway
/cleanup "from:@john"
โ Bot: Found 8 messages
โ @cleaner_jedi cancel
โ โ Operation cancelled
Example 3: Search by Date
/cleanup "2024-01-15"
โ Bot: Found 12 messages
โ @cleaner_jedi yes
โ โ
12 messages deleted
๐ Security & Safety
โ
User confirmation required
โ
5-minute time limits
โ
Permission-aware deletions
โ
Audit trail logging
๐ Performance Optimizations
Minimal webhook/API usage
Batch deletion
Cached recent events
Memory Handling:
Temp data cleanup
Key expiration
Cache trimming
๐ Monitoring & Analytics
Metrics Tracked
Messages per operation
User response times
Failure & error rates
Storage performance
Logging
console.log('โ
SUCCESS:', operationDetails);
console.warn('โ ๏ธ WARNING:', warningDetails);
console.error('โ ERROR:', errorDetails);
console.info('โน๏ธ INFO:', informationDetails);
๐ Summary
For Users
โ
Simple commands
โ
Preview + safety
โ
Fast processing
โ
Clear status feedback
For Admins
โ
Lower API load
โ
Full logging
โ
Resilient to errors
โ
Lightweight memory footprint
For Developers
โ
Modular, clean code
โ
Well-documented
โ
Scalable & robust
โ
Easy to extend
PDF how to do Document Included