Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
AI-powered WhatsApp tool for agents providing instant customer history, sentiment, priority, order details, VIP detection, and response suggestions.
AI-powered WhatsApp tool for agents providing instant customer history, sentiment, priority, order details, VIP detection, and response suggestions.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
This skill provides an AI-powered context management system for WhatsApp customer service agents, enabling instant access to customer history, sentiment analysis, and smart response suggestions.
# Download and extract unzip whatsapp-context-manager.zip cd whatsapp-context-manager # Verify installation (no dependencies needed!) python install_check_whatsapp.py # Run tests python test_whatsapp.py # Try examples python examples_whatsapp.py
Without This System: โ Agents have no context when customer messages arrive โ No idea if customer is VIP or first-timer โ Can't see order status without switching systems โ Don't know if message is urgent or can wait โ Guessing what to say instead of smart suggestions With This System: โ Complete customer context in 2 seconds โ Automatic sentiment analysis (angry/happy/neutral) โ Smart priority (critical/high/normal/low) โ Order status right there โ AI-powered response suggestions โ VIP customer detection
from whatsapp_context_manager import ContextManager # Create context manager (creates local database) manager = ContextManager("production.db")
# When a WhatsApp message arrives context = manager.process_incoming_message( phone="+1234567890", message_content="Where is my order?!", agent_id="agent_001" )
# Show agent what they need to know print(f"Priority: {context.priority.value}") # "critical" print(f"Sentiment: {context.sentiment.value}") # "negative" print(f"Category: {context.category}") # "order_status" print(f"VIP Customer: {context.customer.is_vip}") # True/False # Key insights for insight in context.key_insights: print(f"๐ก {insight}") # Warnings for warning in context.warnings: print(f"โ ๏ธ {warning}") # Suggested responses for response in context.suggested_responses: print(f"๐ฌ {response}")
# Agent sends reply manager.send_message( phone="+1234567890", message_content="Your order #12345 is on the way!", agent_id="agent_001" )
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ AGENT DASHBOARD โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ Customer: +1234567890 โ โ Name: John Doe โ โ VIP: YES โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ Priority: CRITICAL โ โ Sentiment: NEGATIVE โ โ Category: ORDER_STATUS โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ KEY INSIGHTS: โ โ โข ๐ VIP Customer - Prioritize response โ โ โข ๐ฆ Active Order: #ORD-12345 - shipped โ โ โข ๐ Tracking: TRK-ABC123 โ โ โข โก Customer expects fast replies (~2min) โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ WARNINGS: โ โ โข ๐จ CRITICAL: Requires immediate attention! โ โ โข ๐ก Customer is very upset - handle with care โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ SUGGESTED RESPONSES: โ โ 1. Let me check your order status right away. โ โ 2. Your order #ORD-12345 is shipped. โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Detects customer mood from message: # System automatically analyzes sentiment context = manager.process_incoming_message(phone, "This is TERRIBLE!", agent_id) print(context.sentiment.value) # "very_negative" context = manager.process_incoming_message(phone, "Thanks!", agent_id) print(context.sentiment.value) # "positive" Sentiment Levels: ๐ก very_negative - Angry, furious, scam ๐ negative - Disappointed, problem ๐ neutral - Questions, info requests ๐ positive - Thanks, happy ๐คฉ very_positive - Excellent, love it
Automatically categorizes messages: # System automatically categorizes context = manager.process_incoming_message(phone, "Where is my package?", agent_id) print(context.category) # MessageCategory.ORDER_STATUS context = manager.process_incoming_message(phone, "Refund please!", agent_id) print(context.category) # MessageCategory.PAYMENT Categories: ๐ฆ ORDER_STATUS - Delivery, tracking, shipment ๐ณ PAYMENT - Refund, billing, transaction ๐ด COMPLAINT - Problem, issue, broken ๐๏ธ PRODUCT_INQUIRY - Price, stock, features ๐ SUPPORT - Help, how-to, questions ๐ฐ SALES - Buy, purchase, interested โญ FEEDBACK - Review, opinion โ OTHER - Uncategorized
Smart priority based on multiple factors: # System calculates priority context = manager.process_incoming_message( phone="+1234567890", message_content="My payment failed!!!", agent_id="agent_001" ) print(context.priority.value) # "critical" Priority Levels: ๐ด CRITICAL - Angry customer, payment issue, VIP unhappy ๐ HIGH - Complaints, negative sentiment ๐ก NORMAL - General questions ๐ข LOW - Info requests, positive feedback
AI suggests appropriate responses: context = manager.process_incoming_message( phone="+1234567890", message_content="When will my order arrive?", agent_id="agent_001" ) # Get suggestions for response in context.suggested_responses: print(response) # Output: # "Let me check your order status right away." # "Your order #12345 is currently shipped." # "Expected delivery is tomorrow."
Add and track customer orders: from whatsapp_context_manager import Order from datetime import datetime, timedelta # Add order to system order = Order( order_id="ORD-12345", customer_id=context.customer.customer_id, status="shipped", amount=99.99, items=[ {"name": "Wireless Headphones", "quantity": 1, "price": 99.99} ], created_at=datetime.now().isoformat(), updated_at=datetime.now().isoformat(), tracking_number="TRK-ABC123", estimated_delivery=(datetime.now() + timedelta(days=2)).strftime("%Y-%m-%d") ) manager.add_order(order) # Now when customer asks about order, agent sees all details context = manager.process_incoming_message(phone, "Order status?", agent_id) print(context.active_orders[0].tracking_number) # "TRK-ABC123"
Mark and manage VIP customers: # Update customer to VIP manager.update_customer_info( phone="+1234567890", name="John Doe", email="john@example.com", is_vip=True, tags=["premium", "loyal", "high-value"], notes="Always responds best to quick, direct answers" ) # Future messages automatically show VIP status context = manager.process_incoming_message(phone, "Hello", agent_id) print(context.customer.is_vip) # True print(context.customer.tags) # ["premium", "loyal", "high-value"]
Access complete conversation history: # Get context (includes recent messages) context = manager.process_incoming_message(phone, "Need help", agent_id) # View recent messages for msg in context.recent_messages: direction = "Customer" if msg.direction == "inbound" else "Agent" print(f"{direction}: {msg.content}")
Access complete customer profile: context = manager.process_incoming_message(phone, "Hello", agent_id) customer = context.customer print(f"Phone: {customer.phone}") print(f"Name: {customer.name}") print(f"Total Messages: {customer.total_messages}") print(f"VIP: {customer.is_vip}") print(f"Tags: {customer.tags}") print(f"Notes: {customer.notes}") print(f"Last Contact: {customer.last_contact}") print(f"Sentiment History: {customer.sentiment_history}")
# Customer: "Where is my order?" context = manager.process_incoming_message( phone="+1234567890", message_content="Where is my order?", agent_id="agent_001" ) # Agent sees: if context.active_orders: order = context.active_orders[0] print(f"Order ID: {order.order_id}") print(f"Status: {order.status}") print(f"Tracking: {order.tracking_number}") print(f"Est. Delivery: {order.estimated_delivery}") # Suggested response print(context.suggested_responses[0]) # "Your order #ORD-12345 is shipped. Tracking: TRK-ABC123"
# Customer: "This is TERRIBLE! I want a refund NOW!!!" context = manager.process_incoming_message( phone="+1234567890", message_content="This is TERRIBLE! I want a refund NOW!!!", agent_id="agent_001" ) # System detects: print(context.priority.value) # "critical" print(context.sentiment.value) # "very_negative" # Agent sees warnings: for warning in context.warnings: print(warning) # "๐จ CRITICAL: Requires immediate attention!" # "๐ก Customer is very upset - handle with care" # Suggested response print(context.suggested_responses[0]) # "I sincerely apologize for the inconvenience. Let me help resolve this."
# Process messages from multiple customers customers = [ ("+1111111111", "Can I get some info?"), ("+2222222222", "My payment failed!!!"), ("+3333333333", "I have a complaint"), ("+4444444444", "Thanks for the help!"), ] contexts = [] for phone, message in customers: context = manager.process_incoming_message(phone, message, "agent_001") contexts.append((phone, context)) # Sort by priority priority_order = { MessagePriority.CRITICAL: 0, MessagePriority.HIGH: 1, MessagePriority.NORMAL: 2, MessagePriority.LOW: 3 } contexts.sort(key=lambda x: priority_order[x[1].priority]) # Agent dashboard shows: # 1. ๐ด +2222222222 - CRITICAL - Payment failed # 2. ๐ +3333333333 - HIGH - Complaint # 3. ๐ก +1111111111 - NORMAL - Info request # 4. ๐ข +4444444444 - LOW - Thank you message
# System automatically tracks context = manager.process_incoming_message( phone="+9999999999", # New number message_content="Hello", agent_id="agent_001" ) # Check if first time if context.customer.total_messages == 1: print("๐ First time customer!") # Show introduction, onboarding info else: print(f"๐ Returning customer ({context.customer.total_messages} messages)") # Show history, previous orders
from whatsapp_business_api import WhatsAppClient from whatsapp_context_manager import ContextManager # Initialize wa_client = WhatsAppClient(api_key="your_key") manager = ContextManager("production.db") # Handle incoming messages @wa_client.on_message def handle_message(phone, message): # Get context context = manager.process_incoming_message( phone=phone, message_content=message, agent_id="auto_agent" ) # Display to agent dashboard display_to_agent(context) # If critical, alert supervisor if context.priority == MessagePriority.CRITICAL: notify_supervisor(context)
from flask import Flask, jsonify from whatsapp_context_manager import ContextManager app = Flask(__name__) manager = ContextManager() @app.route('/api/message', methods=['POST']) def process_message(): data = request.json # Process message context = manager.process_incoming_message( phone=data['phone'], message_content=data['message'], agent_id=data['agent_id'] ) # Return context as JSON return jsonify(context.to_dict())
# Good โ context = manager.process_incoming_message(phone, message, agent_id) # Agent has full context # Bad โ # Responding without context send_reply_directly(phone, "Hello") # Agent is blind
# Identify high-value customers early if customer_is_high_value(phone): manager.update_customer_info( phone=phone, is_vip=True, tags=["high-value", "premium"] )
# Add orders to system for automatic context when_order_placed(): manager.add_order(order) # Now agents automatically see order status when customer asks
# Get AI suggestions context = manager.process_incoming_message(phone, message, agent_id) # Show to agent for quick selection for i, response in enumerate(context.suggested_responses, 1): print(f"{i}. {response}")
# Get all pending messages pending_contexts = get_all_pending_messages() # Sort by priority pending_contexts.sort(key=lambda x: priority_order[x.priority]) # Agents work from top (critical) to bottom (low)
# Use separate databases for different purposes dev_manager = ContextManager("development.db") prod_manager = ContextManager("production.db") test_manager = ContextManager("test.db")
# Process multiple messages efficiently for phone, message in message_queue: context = manager.process_incoming_message(phone, message, agent_id) process_context(context)
# Archive old conversations (optional) # System stores everything by default # Implement custom archival if needed
Local Storage: All data stored locally in SQLite No External Dependencies: Pure Python, no third-party libraries Data Integrity: SHA-256 checksums Secure Queries: Parameterized SQL, no injection risks Privacy: No data sent to external services
# Use different database per process manager1 = ContextManager("agent1.db") manager2 = ContextManager("agent2.db")
# Clean up test databases import os if os.path.exists("test.db"): os.remove("test.db")
# Make sure orders are added to system order = Order(...) manager.add_order(order)
whatsapp-context-manager/ โโโ whatsapp_context_manager.py # Main library โโโ examples_whatsapp.py # 8 usage examples โโโ test_whatsapp.py # Complete test suite โโโ README_WHATSAPP.md # Full documentation โโโ install_check_whatsapp.py # Installation check โโโ requirements_whatsapp.txt # Dependencies (none!) โโโ LICENSE_WHATSAPP # MIT License โโโ .gitignore_whatsapp # Git ignore rules
Python 3.8 or higher No external dependencies!
# Run all tests python test_whatsapp.py # Should show: # โ Sentiment analysis tests passed # โ Message categorization tests passed # โ Priority calculation tests passed # โ Customer management tests passed # โ Message storage tests passed # โ Order management tests passed # โ VIP customer tests passed # โ Sentiment tracking tests passed # โ Response suggestions tests passed # โ Priority queue tests passed # โ Conversation flow tests passed # โ Context export tests passed # โ ALL TESTS PASSED
Run the examples to see the system in action: python examples_whatsapp.py Includes: Basic message processing Customer with active order Angry customer scenario VIP customer handling Conversation history Multiple customers priority queue Agent dashboard view Context export to JSON
๐ Read full documentation: README_WHATSAPP.md ๐ป Check examples: examples_whatsapp.py ๐งช Run tests: test_whatsapp.py ๐ Report issues on GitHub โญ Star the repo if helpful!
โ Install and verify: python install_check_whatsapp.py โ Run tests: python test_whatsapp.py โ Try examples: python examples_whatsapp.py โ Integrate with your WhatsApp system โ Customize for your needs
MIT License - see LICENSE_WHATSAPP file
cerbug45 GitHub: @cerbug45 Transform your WhatsApp customer service from reactive to proactive! ๐
Messaging, meetings, inboxes, CRM, and teammate communication surfaces.
Largest current source with strong distribution and engagement signals.