To view the n8n flow demo and copy the JSON you need to purchase our Bundle... don't worry, it's FREE

Go to the BUNDLE

Bulk Delete Slack Messages with Smart Filtering and Confirmations

🧹 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 trails
  • 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
    Delete 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 Cancel 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

Do you want to automate your business?

Let's talk about your project