Description
๐ค n8n-nodes-chatbot-enhanced


๐ Production-ready chatbot enhancement node for n8n workflows with Redis/Valkey/Upstash integration and real-time trigger capabilities.
โก High-performance architecture supporting 100-200+ operations per second with enterprise-grade error handling, streamlined outputs, and lean codebase.
๐ฅ Core Features:
- ๐พ Buffer Message: Collect messages with human-like timing and basic anti-spam filtering
- ๐จ Spam detection: Advanced content filtering with pattern matching and flood protection
- โฑ๏ธ Rate Limit: Smart request throttling with burst protection and adaptive penalties
- ๐ก Real-Time Redis Trigger: Instant workflow activation on Redis key changes
- ๐ 3 Clean Outputs: Success, Spam, and Process streams for organized workflow management
- ๐ง Multi-Provider Support: Redis, Valkey (recommended), and Upstash compatibility
Installation
Operations
Credentials
Compatibility
Usage
Resources
Version history
Installation
Follow the installation guide in the n8n community nodes documentation.
Install the package in your n8n installation:
In your n8n installation directory
npm install @trigidigital/n8n-nodes-chatbot-enchanced
Or install directly from npm registry:
npm install -g @trigidigital/n8n-nodes-chatbot-enchanced
๐ฏ Available Nodes
This package includes two powerful nodes for comprehensive chatbot management:
1. ๐ค ChatBot Enhanced (Regular Node)
Advanced message processing with intelligent anti-spam protection
#### ๐ Operations
#### ๐ Streamlined Outputs (v1.0.0)
The node provides 3 focused outputs for clean workflow management:
1. โ
Success: Clean, processed messages and successful operations
2. ๐จ Spam: Detected spam messages with detailed analysis and confidence scores
3. โ๏ธ Process: Status updates, buffered messages, and operational metadata
2. ๐จ ChatBot Enhanced – Trigger (Trigger Node)
Real-time Redis/Valkey monitoring using native Redis Keyspace Notifications
#### ๐ฏ Native Redis Technology – No Polling Required
This trigger leverages Redis Keyspace Notifications, a built-in Redis feature for real-time event monitoring:
CONFIG SET notify-keyspace-events KEA for instant event deliverykeyspace@{db}:{pattern} channels for targeted monitoring#### โก Real-Time Capabilities
chatbot:, session:)#### โ ๏ธ PRODUCTION RISKS – READ BEFORE DEPLOYING
๐จ Critical Performance Impact:
๐ Potential Issues:
โ Risk Mitigation:
// SAFE Configuration Example
{
keyPattern: "chatbot:session:", // Specific, not ""
eventTypes: ["set", "del"], // Only needed events
rateLimitEnabled: true, // Always enabled
maxEventsPerSecond: 100 // Conservative limit
}
๐ง Production Requirements:
CONFIG SET notify-keyspace-events KEA (automatically configured by trigger)* wildcard in production#### ๐ฏ Why Redis Keyspace Notifications vs Traditional Polling?
| Method | Redis Keyspace Notifications | Traditional Polling/Cron |
|——–|———————————–|—————————|
| Latency | <100ms real-time | 5-60 seconds delayed |
| CPU Usage | Low (event-driven) | High (constant queries) |
| Network Traffic | Minimal (only changes) | High (regular polls) |
| Accuracy | 100% accurate events | Can miss rapid changes |
| Scalability | Scales with events | Scales with poll frequency |
| Resource Efficiency | โ
Very efficient | โ Wasteful |
Technical Implementation:
// Redis automatically publishes to these channels:
keyspace@0:chatbot:session:user123 // Channel
"set" // Message (event type)// Your trigger subscribes and receives instant notifications
// No database polling, no missed events, no delays!
๐ Performance Specifications
#### Regular Node (ChatBot Enhanced)
#### Trigger Node (ChatBot Enhanced – Trigger)
notify-keyspace-events KEA)keyspace@{db}:{pattern} monitoring#### Provider-Specific Performance
| Provider | Latency | Throughput | Reliability | Best For |
|———-|———|————|————-|———-|
| Local Redis | 1-5ms | 1000+ ops/sec | High | Development, Low-latency |
| Valkey | 1-5ms | 1200+ ops/sec | High | Production, Performance |
| Upstash | 50-200ms | 100-500 ops/sec | Very High | Serverless, Global scale |
๐ Redis Credentials & Compatibility
๐ฏ IMPORTANT: This node ONLY supports Redis-compatible databases. The following providers are supported:
โ Supported Providers
#### 1. ๐ด Redis (Version 6.0+)
#### 2. ๐ฆ Valkey (Version 7.2+) – ๐ HIGHLY RECOMMENDED FOR SELF-HOSTED
#### 3. โ๏ธ Upstash – CLOUD RECOMMENDED
๐ง Connection Configuration Options
#### Individual Fields
๐ Authentication Methods
| Method | Redis Version | Use Case | Security Level |
|——–|—————|———-|—————-|
| None | All | Development/Local | โ ๏ธ Low |
| Password Only | All | Basic production | ๐ก Medium |
| Username + Password | 6.0+ | Advanced production | ๐ข High |
| SSL/TLS | All | Cloud/Internet | ๐ Very High |
๐จ UPSTASH SPECIAL CONFIGURATION
Upstash requires specific settings for optimal performance:
// Upstash Connection Settings
{
host: "your-endpoint.upstash.io",
port: 6380,
password: "your-upstash-password",
ssl: true, // Always required
authType: "password", // Username not needed
connectionTimeout: 10000, // Higher timeout for global latency
}
โ ๏ธ Upstash Limitations:
๐งช Connection Testing
All credential configurations include automatic connection testing:
๐ Security Best Practices
#### Production Security Checklist
#### Credential Storage Security
โ Unsupported Databases
The following databases are NOT compatible:
Compatibility
Known Compatibility Issues
๐ก Usage Guide
๐ Quick Start
#### Step 1: Setup Redis Credentials
1. Go to n8n Credentials โ Create New โ Redis
2. Choose your provider and configuration:
– Redis/Valkey: Use connection string or individual fields
– Upstash: Always use SSL and password authentication
3. Test Connection to verify setup
#### Step 2A: Add Regular Node (ChatBot Enhanced)
1. Drag Node: Add “ChatBot Enhanced” to your workflow
2. Select Credentials: Choose your Redis credentials
3. Choose Operation:
– Buffer Message – For human-like response timing
– Spam detection – For content filtering
– Rate Limit – For request throttling
4. Configure Parameters (see examples below)
5. Connect Outputs: Success, Spam, and Process outputs
#### Step 2B: Add Trigger Node (ChatBot Enhanced – Trigger)
1. Drag Trigger: Add “ChatBot Enhanced – Trigger” to start workflow
2. Select Credentials: Choose your Redis credentials
3. Configure Monitoring:
– Key Pattern: chatbot:session:* (be specific!)
– Event Types: ["SET", "DEL"] (only what you need)
– Rate limiting: Keep enabled (100 events/sec)
4. Test Trigger: Create a test key in Redis
๐ Complete Workflow Examples
#### Example 1: Human-Like Chatbot with Spam Protection
Webhook โ ChatBot Enhanced (Buffer message) โ AI Processing
โ (Spam Output)
Spam Handler
Configuration:
// ChatBot Enhanced Node - Buffer message Operation
Session Key: {{$json.from}} // User ID from webhook
Message Content: {{$json.message}} // User message
Buffer Time: 15 // 15-second human-like delay
Buffer Size: 50 // Max 50 messages per batch
Buffer Pattern: "Collect & Send All" // Send all messages together
Anti-Spam Detection: "Repeated Text" // Basic spam filtering// Connect Outputs:
// Success โ Continue to AI processing
// Spam โ Send warning message
// Process โ Log buffering status
#### Example 2: Real-Time Session Management
Redis Trigger โ Session Processor โ User Notification
Configuration:
// ChatBot Enhanced - Trigger Node
Key Pattern: "session:active:*" // Monitor active sessions
Event Types: ["SET", "EXPIRED"] // New sessions and expiry
Max Events Per Second: 50 // Conservative limit
Include Metadata: true // For debugging// Processes:
// SET events โ Welcome new user
// EXPIRED events โ Send "session ended" notification
#### Example 3: Advanced Content Filtering Pipeline
Webhook โ Spam detection โ Rate limit โ Content Processing
Configuration:
// Node 1: ChatBot Enhanced - Spam detection
Detection Type: "Combined Detection" // Multiple methods
Action: "Block" // Block spam completely
Similarity Threshold: 85 // 85% similarity = spam
Predefined Patterns: ["URLs", "Emails"] // Block URLs and emails// Node 2: ChatBot Enhanced - Rate limit Operation
Limit Type: "Per User" // Individual user limits
Algorithm: "Token Bucket" // Allow message bursts
Max Requests: 20 // 20 messages per minute
Burst Limit: 5 // Allow 5-message bursts
๐ฅ Real-World Use Cases
#### Use Case 1: WhatsApp Business Bot
// Problem: Users send multiple messages rapidly
// Solution: Buffer messages for 10 seconds, then respond onceBuffer message Configuration:
{
sessionKey: "{{$json.from}}", // WhatsApp number
messageContent: "{{$json.body}}", // Message text
bufferTime: 10, // Wait 10 seconds
antiSpamType: "flood" // Prevent message flooding
}
// Workflow:
// User: "Hello"
// User: "How are you?"
// User: "I need help"
// Bot waits 10 seconds...
// Bot: Processes all 3 messages together, responds once
#### Use Case 2: Gaming Chat Moderation
// Problem: Players send spam and toxic content
// Solution: Multi-layer spam detection with automatic penaltiesSpam detection Configuration:
{
detectionType: "combined", // All detection methods
spamAction: "block", // Block spam messages
predefinedPatterns: ["urls", "repeated_chars"],
customPatterns: "(noob|toxic|banned)", // Game-specific patterns
floodMaxMessages: 5, // Max 5 messages per minute
floodTimeWindow: 60
}
Rate limit Configuration:
{
limitType: "smart_adaptive", // Learns user patterns
maxRequests: 30, // 30 messages per minute
penaltyMultiplier: 3.0, // 3x penalty for violations
enableAdaptive: true // Adjust limits automatically
}
#### Use Case 3: Customer Support Queue Management
// Problem: Monitor support ticket status changes in real-time
// Solution: Redis trigger monitors ticket keys, routes to appropriate agentsTrigger Configuration:
{
keyPattern: "support:ticket:*", // All support tickets
eventTypes: ["set", "del", "expired"], // Status changes
rateLimitEnabled: true, // Prevent event storms
maxEventsPerSecond: 200 // Handle high ticket volume
}
// Event Handling:
// SET โ New ticket or status update โ Notify agent
// EXPIRED โ Ticket timeout โ Escalate to supervisor
// DEL โ Ticket resolved โ Send satisfaction survey
๐ Advanced Chatbot Scenarios – Redis Trigger + Built-in Redis Node
๐ก Philosophy: Keep this custom node simple while leveraging n8n’s built-in Redis node for complex logic. This approach helps users learn in-memory database concepts without overwhelming custom node complexity.
#### Scenario 1: Auto Follow-Up Based on Phone Number Sessions
Redis Node (SET with TTL) โ Redis Trigger (EXPIRED) โ WhatsApp Follow-up
Workflow Design:
// Step 1: User starts conversation - Use built-in Redis Node
// Node: Redis (Built-in n8n node)
Action: "Set"
Key: "session:phone:{{$json.from}}" // e.g., session:phone:+628123456789
Value: JSON.stringify({
lastMessage: "{{$json.body}}",
timestamp: "{{new Date().toISOString()}}",
stage: "awaiting_response"
})
TTL: 120 // 2 minutes auto-expire// Step 2: Monitor session expiry - Use ChatBot Enhanced Trigger
// Node: ChatBot Enhanced - Trigger
Key Pattern: "session:phone:*"
Event Types: ["EXPIRED"] // Only expired events
Max Events Per Second: 50
// Step 3: Auto follow-up logic - Use built-in nodes
// When trigger fires with expired session:
// โ Check if user is still active with Redis GET
// โ Send follow-up message via WhatsApp/Telegram
// โ Create new session with different TTL
Complete Workflow Example:
[Webhook: New WhatsApp Message]
โ
[Built-in Redis Node: SET session with 2min TTL]
โ
[ChatBot Enhanced: Process message with buffer/spam detection]
โ
[Send Response via WhatsApp Node]// Parallel workflow triggered by expiry:
[ChatBot Enhanced - Trigger: Monitor session:phone:*]
โ (EXPIRED event)
[Built-in Redis Node: GET user profile for context]
โ
[IF: User hasn't responded AND conversation unfinished]
โ
[WhatsApp Node: Send follow-up message]
โ
[Built-in Redis Node: SET new session with 5min TTL]
#### Scenario 2: Smart Session Management with Redis TTL
// Learning Opportunity: Master Redis TTL patterns for chatbots// Phase 1: Initial Contact (5 min TTL)
Key: "chat:initial:+628123456789"
Value: { stage: "greeting", attempts: 1 }
TTL: 300 seconds
// Phase 2: Active Conversation (30 min TTL)
Key: "chat:active:+628123456789"
Value: { stage: "conversation", context: "support_request" }
TTL: 1800 seconds
// Phase 3: Dormant Session (24 hours TTL)
Key: "chat:dormant:+628123456789"
Value: { stage: "dormant", lastActivity: timestamp }
TTL: 86400 seconds
// Trigger monitors ALL patterns:
Key Pattern: "chat::"
Event Types: ["SET", "EXPIRED"]
// Business Logic via Built-in Redis + IF Nodes:
// EXPIRED chat:initial:* โ Send "Still need help?" message
// EXPIRED chat:active:* โ Move to dormant state
// EXPIRED chat:dormant:* โ Archive conversation history
// SET chat:active:* โ Cancel dormant timers
#### Scenario 3: E-commerce Cart Abandonment Recovery
Shopping Flow โ Redis TTL โ Auto Recovery โ Conversion Tracking
Implementation:
// Step 1: Cart Creation (Built-in Redis Node)
Key: "cart:{{$json.userId}}:{{$json.cartId}}"
Value: {
items: [/ cart items /],
total: 150000,
stage: "active",
phone: "+628123456789"
}
TTL: 1800 // 30 minutes// Step 2: Trigger Setup (ChatBot Enhanced - Trigger)
Key Pattern: "cart::"
Event Types: ["EXPIRED", "SET", "DEL"]
// Step 3: Recovery Logic (Built-in nodes)
// EXPIRED โ Check if cart value > 100k โ Send discount offer
// SET โ Reset abandonment timer
// DEL โ Conversion completed, send thank you message
// Advanced: Multi-stage abandonment
// 15 min: "Complete your purchase for 5% discount"
// 30 min: "10% discount expires in 5 minutes!"
// 60 min: "We've saved your cart, return anytime"
#### Scenario 4: Customer Service Priority Queue
// Priority-based customer routing using Redis scoring// High Priority (VIP customers) - 1 hour response time
Key Pattern: "support:vip:*"
TTL: 3600
Trigger Action: Immediate supervisor notification
// Regular Priority - 4 hour response time
Key Pattern: "support:regular:*"
TTL: 14400
Trigger Action: Agent assignment
// Low Priority (FAQ-level) - 24 hour response time
Key Pattern: "support:faq:*"
TTL: 86400
Trigger Action: Auto-response with FAQ links
// Escalation Logic:
// EXPIRED support:vip:* โ Emergency escalation + SMS alert
// EXPIRED support:regular:* โ Move to priority queue
// EXPIRED support:faq:* โ Archive or auto-close
#### Scenario 5: Multi-Channel Session Synchronization
// Sync conversations across WhatsApp, Telegram, Web Chat// Unified Session Key Pattern
Key Pattern: "unified:{{phone_number}}:*"
// Channel-specific keys with same phone number:
"unified:+628123456789:whatsapp" // TTL: 30 min
"unified:+628123456789:telegram" // TTL: 30 min
"unified:+628123456789:webchat" // TTL: 15 min
// Trigger monitors all channels:
Key Pattern: "unified::"
Event Types: ["SET", "EXPIRED"]
// Smart routing logic:
// SET on any channel โ Extend TTL on all other channels
// EXPIRED on primary channel โ Switch context to active channel
// Multiple SET events โ Detect channel switching, maintain context
๐ Learning Redis In-Memory Database Concepts
Why This Approach Works:
1. ๐ฏ Focused Custom Node: Only handles chatbot-specific features (buffer, spam, triggers)
2. ๐ง Redis Learning: Users master Redis TTL, patterns, and data structures with built-in nodes
3. ๐ Flexibility: Mix and match Redis operations without custom node limitations
4. ๐ Skill Development: Users learn enterprise-level in-memory database patterns
Redis Concepts You’ll Master:
Built-in Redis Node Operations to Combine:
GET/SET – Basic key-value operationsEXPIRE/TTL – Time-based session management EXISTS – Conditional logic branchingINCR/DECR – Counters for rate limitingHGET/HSET – Hash operations for user profilesSADD/SMEMBERS – Sets for user groups/tags๐ Configuration Best Practices
#### โ DO – Production Ready
// Specific key patterns
keyPattern: "myapp:session:*" // Good - specific
keyPattern: "cache:user:profile:*" // Good - hierarchical// Conservative settings
maxEventsPerSecond: 100 // Safe default
connectionTimeout: 5000 // 5-second timeout
reconnectAttempts: 5 // Limited retries
// Essential monitoring
includeMetadata: true // For debugging
rateLimitEnabled: true // Always enabled
#### โ DON’T – Dangerous in Production
// Dangerous patterns
keyPattern: "*" // NEVER - monitors everything
keyPattern: "user:*" // Too broad - millions of events// Risky settings
maxEventsPerSecond: 10000 // Will overwhelm workflows
rateLimitEnabled: false // Dangerous - no protection
reconnectAttempts: 100 // Excessive reconnection
// Performance killers
keyPattern: "analytics:*" // High-frequency events
eventTypes: ["set", "del", "expired", "evicted"] // All events = overload
๐ Monitoring & Debugging
#### Essential Metrics to Track
// Redis Metrics
Connection count (max 2 per trigger)
CPU usage (should not exceed +15%)
Memory usage (monitor growth)
Command/second rate // n8n Metrics
Workflow execution count
Node memory consumption
Error rates per operation
Buffer overflow incidents // Business Metrics
Spam detection accuracy
False positive rates
User satisfaction scores
Response time improvements
#### Debug Configuration
// Enable verbose logging
{
includeMetadata: true, // Adds debug info
advancedOptions: {
connectionTimeout: 10000, // Longer timeout for testing
includeMetadata: true // Detailed event data
}
}// Watch for these log messages:
// "๐ฅ REDIS EVENT RECEIVED" - Confirms trigger working
// "๐ PARSED EVENT DATA" - Shows event processing
// "๐พ Using cached value" - Value caching working
// "๐ฆ EVENT FILTERED" - Event filtering active
๐ Migration & Upgrades
#### From Basic Redis to Valkey
1. Deploy Valkey alongside existing Redis
2. Update n8n credentials with Valkey connection details
3. Test thoroughly with non-production workflows
4. Migrate gradually – start with less critical workflows
5. Monitor performance – expect 15-20% improvement
6. Decommission Redis after successful migration
#### From Self-Hosted to Upstash
1. Create Upstash database (free tier available)
2. Update connection settings:
– Enable SSL/TLS
– Use password authentication
– Increase connection timeout to 10s
3. Test latency impact (expect 50-200ms increase)
4. Adjust buffer times if needed for global latency
5. Monitor command usage against Upstash limits
๐ Expression Reference
#### Common Expressions
// Dynamic session keys
Session Key: {{$json.userId || $json.from || $json.sessionId || "anonymous"}}// Message content extraction
Message Content: {{$json.message || $json.text || $json.body || $json.content}}
// Conditional buffer time
Buffer Time: {{$json.urgent ? 5 : 30}} // 5s for urgent, 30s for normal
// Dynamic spam thresholds
Similarity Threshold: {{$json.chatType === "support" ? 90 : 80}}
// Environment-based patterns
Key Pattern: {{$vars.environment}}.chatbot.session.*
#### Advanced Expressions
// User role-based rate limiting
Max Requests: {{$json.userRole === "premium" ? 100 : 20}}// Time-based buffer adjustment
Buffer Time: {{new Date().getHours() >= 9 && new Date().getHours() <= 17 ? 15 : 60}}
// Multi-field message combining
Message Content: {{[$json.text, $json.attachment?.caption].filter(Boolean).join(' ')}}
// Conditional spam action
Spam Action: {{$json.isFirstTimeUser ? "warn" : "block"}}
๐ฏ Message Buffering + ๐ก๏ธ Anti-Spam – Human-Like Response (v1.0.0)
โฑ๏ธ Optimized TimedBuffer Implementation with Built-in Anti-Spam Protection – The core feature for human-like chatbot responses:
#### ๐ง How It Works (TimedBuffer Logic + Anti-Spam)
// REAL BEHAVIOR with anti-spam protection:Chat 1: "Hello" โ Master Execution: Start 10s timer, wait...
Chat 2: "How are you?" โ Slave Execution: Add to buffer, extend timer, return "pending"
Chat 3: "spam spam spam" โ Slave Execution: ๐ก๏ธ BLOCKED by anti-spam detection!
Chat 4: "What's your name?" โ Slave Execution: Add to buffer, extend timer, return "pending"
After 10 seconds โ Master Execution: Return CLEAN MESSAGES only!
// Output: ["Hello", "How are you?", "What's your name?"] (spam filtered out)
#### ๐ก๏ธ Anti-Spam Detection Features
#### ๐ Execution Pattern
#### โ๏ธ Configuration Examples
#### Buffer message Operation
// Basic Message Buffering
Session Key: {{$json.userId}}
Message Content: {{$json.message}}
Buffer Time: 30 // seconds
Buffer Size: 100 // max messages
Buffer Pattern: "collect_send" // send all at once// Anti-Spam Protection (Optional - for backward compatibility)
Anti-Spam Detection: "Repeated Text" // Basic spam detection
#### Spam detection Operation (Dedicated)
// Advanced Spam detection
Session Key: {{$json.userId}}
Message Content: {{$json.message}}
Detection Type: "Combined Detection" // Multiple methods
Action on Detection: "Block" // Block spam messages
Similarity Threshold: 80 // % similarity for repeated content
Flood Max Messages: 10 // messages per time window
Flood Time Window: 60 // seconds
Predefined Patterns: ["URLs", "Emails"] // Built-in pattern detection
#### Rate limit Operation
// Smart Rate limit
Session Key: {{$json.userId}}
Limit Type: "Per User" // or "Global", "Smart Adaptive"
Algorithm: "Token Bucket" // Allow bursts
Max Requests: 10 // per time window
Time Window: 60 // seconds
Burst Limit: 15 // max burst size
#### Redis Trigger Configuration
// Safe Production Setup
Key Monitoring: "Choose Key" // Never use "Track All" in production
Key Pattern: "chatbot:session:*" // Specific pattern
Event Types: ["SET", "DEL"] // Only needed events
Rate limiting: true // Always enabled
Max Events Per Second: 100 // Conservative limit// Advanced Options
Connection Timeout: 5000 // ms
Reconnect Attempts: 5 // before giving up
Include Event Metadata: true // For debugging
#### ๐ฏ Perfect For:
#### โ ๏ธ Production Requirements:
#### ๐ Response Types by Operation
#### Buffer message Responses
// Buffered (Chat 2,3,4...)
{
"type": "buffered",
"status": "pending",
"message": "How are you?",
"spamDetection": {
"isSpam": false,
"actionTaken": "allowed"
}
}// Spam Blocked
{
"type": "spam_blocked",
"status": "blocked",
"message": "spam spam spam",
"spamDetection": {
"isSpam": true,
"spamType": "repeated",
"confidence": 95,
"actionTaken": "blocked"
}
}
// Batch Ready (After timer - Clean Messages Only!)
{
"type": "buffer_flush",
"trigger": "time",
"messages": ["Hello", "How are you?", "What's your name?"],
"totalMessages": 4,
"spamAnalysis": {
"spamDetected": true,
"spamCount": 1,
"cleanCount": 3
},
"sessionId": "user123",
"timestamp": 1754429268590
}
#### Spam detection Responses
// Spam Detected
{
"type": "spam_detected",
"message": "spam content here",
"spamType": "repeated",
"confidence": 95,
"actionTaken": "blocked",
"reason": "Message similarity above threshold",
"sessionId": "user123",
"timestamp": 1754429268590
}// Clean Message
{
"type": "clean_message",
"message": "hello there",
"confidence": 5,
"sessionId": "user123",
"timestamp": 1754429268590
}
#### Rate limit Responses
// Request Allowed
{
"type": "ratelimitallowed",
"message": "user message",
"remainingRequests": 7,
"resetTime": 1754429328590,
"algorithm": "token_bucket",
"sessionId": "user123"
}// Rate Limit Exceeded
{
"type": "ratelimitexceeded",
"message": "blocked message",
"remainingRequests": 0,
"retryAfter": 45,
"sessionId": "user123"
}
#### Redis Trigger Event Data
// Redis Key Change Event
{
"eventType": "set",
"key": "chatbot:session:user123",
"value": "sessiondatahere",
"database": 0,
"timestamp": "2025-08-05T10:30:45.123Z",
"metadata": {
"pattern": "chatbot:session:*",
"triggerId": "trigger-node-id",
"workflowId": "workflow-id",
"nodeVersion": 1
}
}
๐๏ธ Architecture & Performance
Lean Architecture (v1.0.0):
Performance Optimizations:
Resources
Version history
1.0.0 (Current) – Production-Ready Stable Release
#### ๐ฏ PRODUCTION-READY ARCHITECTURE
#### ๐จ REDIS KEYSPACE NOTIFICATIONS TRIGGER
notify-keyspace-events KEA for real-time monitoringkeyspace@{db}:{pattern} channels, ?, *) for targeted monitoring#### ๐ก๏ธ COMPREHENSIVE SPAM PROTECTION
#### โฑ๏ธ SMART RATE LIMITING
#### โจ DEVELOPER EXPERIENCE