WhatsApp Chat provides a WhatsApp-like chat interface directly within Frappe Desk, enabling your team to send and receive WhatsApp messages without leaving the ERP system.
- Real-time Messaging - Send and receive WhatsApp messages with instant updates via Socket.IO
- Chat Interface - Familiar WhatsApp-like UI integrated into Frappe Desk
- Contact Management - Automatic contact creation from incoming messages
- Media Support - Send and receive images, documents, audio, and video
- Auto Read Receipts - Automatically send read receipts to WhatsApp when viewing messages (based on WhatsApp Account settings)
- Sound Notifications - Audio alerts for new messages
- Multi-user Support - Assign contacts to specific users for follow-up
| Type | Formats |
|---|---|
| Images | PNG, JPEG, GIF, WebP, AVIF, SVG |
| Documents | PDF, Word, Excel, PowerPoint |
| Audio | AAC, MP4, MPEG, AMR, OGG |
| Video | MP4, 3GP |
- Frappe Framework >= 12.0.0
- frappe_whatsapp app (required)
- WhatsApp Business Account configured in frappe_whatsapp
# Install the app
bench get-app https://github.com/shridarpatil/whatsapp_chat
bench --site your-site install-app whatsapp_chat
# Build assets
bench build --app whatsapp_chatAfter installation, a chat bubble appears in Frappe Desk. Click it to open the chat interface.
When a customer sends a WhatsApp message:
- A new contact is automatically created (if not exists)
- The message appears in the chat list
- Sound notification plays (if enabled)
- Real-time update via Socket.IO
Note: Due to WhatsApp policy, you can only send direct messages to users who have messaged you first within the last 24 hours. For initiating conversations, use WhatsApp Templates via frappe_whatsapp.
- Click on a contact from the chat list
- Type your message or attach media
- Press Send
Assign contacts to specific users:
- Open the WhatsApp Contact document
- Set the Email field to the assigned user's email
- Only that user will receive real-time notifications for that contact
| DocType | Purpose |
|---|---|
| WhatsApp Contact | Stores contact information and last message |
from whatsapp_chat.api.message import get_all
messages = get_all(room="contact_name", user_no="919876543210")from whatsapp_chat.api.message import send
# Text message
send(content="Hello!", user="Administrator", room="contact", user_no="919876543210")
# With attachment
send(content="/files/document.pdf", user="Administrator", room="contact", user_no="919876543210", attachment=True)from whatsapp_chat.api.message import mark_as_read
mark_as_read(room="contact_name")The app includes notification sounds:
chat-notification- New message alertchat-message-send- Message sent confirmationchat-message-receive- Message received alert
| App | Description |
|---|---|
| frappe_whatsapp | Core WhatsApp Cloud API integration (required) |
| frappe_whatsapp_chatbot | Automated chatbot with flows, keywords, and AI |
- Check Socket.IO is running:
bench doctor - Verify the contact has an assigned email
- Check browser console for WebSocket errors
- Ensure the contact messaged you within 24 hours
- Verify WhatsApp Account token is valid
- Check Error Log for API errors
- Verify file format is supported
- Check file size limits (WhatsApp limits apply)
- Ensure file URL is accessible
MIT License
Shridhar Patil ([email protected])