Universal Chat - WhatsApp & Viber Unified Inbox for Odoo 18
by Ayyan Saddiqui https://github.com/Ayyan420$ 299.99
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Lines of code | 8533 |
| Technical Name |
universal_chat |
| License | LGPL-3 |
| Website | https://github.com/Ayyan420 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Lines of code | 8533 |
| Technical Name |
universal_chat |
| License | LGPL-3 |
| Website | https://github.com/Ayyan420 |
Odoo 18 | WhatsApp + Viber | Unified Chat Inbox | Real-time Messaging | OWL Frontend
Universal Chat
The complete multi-channel messaging inbox for Odoo 18. WhatsApp Business API + Viber Bot, unified in one real-time OWL interface — with templates, partner linking, agent assignment, and full conversation history.
|
2
Platforms
|
20+
Features
|
13
API
Endpoints
|
10+
OWL
Components
|
18.0
Odoo
Version
|
Purchase & Direct Support — Contact Ayyan Saddiqui
WhatsApp: +92 316 4705102 | Call: 0316 4705102
Email: ayyansaddiqui420@gmail.com | GitHub: github.com/ayyan420
Module Information
| Module Name | universal_chat | Version | 18.0.1.0.0 |
| Author | Ayyan Saddiqui | License | LGPL-3 |
| Category | Discuss / Messaging | Odoo Versions | 18.0 Community & Enterprise |
| Dependencies | base, mail, bus, web | ||
| Features/Setup Reference PDF | drive.google.com/file/d/1OS-eSTcOuJKg2OSBLogfvJnNtsssNdiW/view?usp=sharing | ||
12 Production-Grade Features
Every feature built for real customer communication workflows — not demos.
FEATURE 01
WhatsApp Business API Integration INBOUND + OUTBOUND
Full two-way WhatsApp messaging via Meta Cloud API v19.0. Receive messages via webhook and send replies directly from Odoo. Media, documents, audio, video all supported.
- Inbound messages auto-create conversations with deduplication by external_message_id
- Outbound text, image, video, audio, document with auto media upload to Meta
- Delivery status tracking: pending → sent → delivered → read → failed
- Supports emoji reactions (reaction message type)
- Number normalised to digits-only for reliable partner matching
FEATURE 02
Viber Bot API Integration INBOUND + OUTBOUND
Complete Viber Bot integration with one-click webhook registration. Supports all message types including text, pictures, video, files, and stickers. 200+ Viber proprietary emoji shortcodes mapped to Unicode.
- One-click "Register Webhook" button — no manual API calls needed
- Handles: message, conversation_started, delivered, seen, subscribed, unsubscribed
- 200+ Viber emoji shortcodes like (smiley), (heart), (like) auto-converted to Unicode
- Viber ID stored on res.partner for proactive outbound messaging
- No 24h window restriction — reply to Viber customers anytime
FEATURE 03
Real-time OWL Chat Inbox LIVE UI
A full-featured chat inbox built with Odoo's OWL framework. Messages appear instantly without page refresh via Odoo's built-in long-polling bus. No external WebSocket server required.
- 9 OWL components: Sidebar, Chatbox, MessageBubble, EmojiPicker, ConversationItem, Systray, and more
- Sidebar sorted: pinned first → unread → most recent message date
- WhatsApp-style message bubbles with delivery tick indicators (✓ ✓✓ blue)
- Inline image preview, download links for documents/audio/video
- Typing indicators broadcast to all agents viewing the same conversation
- Systray badge shows total unread count from any Odoo screen
FEATURE 04
WhatsApp 24h Window Detection COMPLIANCE
Automatic detection of the WhatsApp 24-hour messaging window. A warning banner and template picker appear automatically when the window closes — preventing send failures.
- Tracks last_incoming_message_date and last_outbound_template_date
- 5-minute grace period prevents false positives from clock skew
- Sending a template extends the window by 24 hours
- Template picker opens automatically when window expires
FEATURE 05
WhatsApp Template Manager FULL LIFECYCLE
Create, preview, submit, and sync WhatsApp message templates — all without leaving Odoo. Live WhatsApp-style bubble preview updates as you type.
- Template components: Header (text/image/video/document/location), Body, Footer, Buttons
- Buttons: Quick Reply, Visit Website (URL with dynamic {{1}}), Call Number
- Variable auto-detection — {{n}} placeholders detected automatically as you type
- Submit to Meta directly from Odoo with media upload via resumable upload session API
- Sync from Meta — one-click import all approved templates from Meta Business Manager
- Status lifecycle: Draft → Pending → Approved → Rejected with status bar
FEATURE 06
Conversation Lifecycle Management WORKFLOW
Full Open / Close / Reopen conversation lifecycle with uniqueness enforcement — only one open conversation per customer per platform, preventing duplicate handling.
- One open conversation per (partner OR external_number) per provider — enforced at ORM level
- Close / Reopen with bus broadcast to update all agents' UI instantly
- Customer messaging on a closed conversation auto-reopens it
- Pin conversations — pinned always sort to top of sidebar
- Kanban and list views for managers with filters and search
FEATURE 07
Agent Assignment & Team Inbox TEAM
Shared inbox model — all agents see all conversations. Assign conversations to individuals, track first-readers, and see the full handling team per conversation.
- Assigned To: primary responsible agent
- Handling Agents (Many2many): all agents who participated — auto-added on send
- First Read By: first agent to open a new inbound message batch — accountability tracking
- Typing indicators prevent two agents composing simultaneous replies
- "Assign to Me" one-click button in chatbox header
FEATURE 08
Automatic Partner Linking CRM INTEGRATION
Inbound messages are automatically matched to existing Odoo contacts by phone number (WhatsApp) or Viber ID. Unknown contacts get a Link Customer wizard for manual or create-new linking.
- WhatsApp: SQL regex match on mobile/phone digits — normalised comparison ignores formatting
- Viber: matched by uchat_viber_id field added to res.partner
- Link wizard: link to existing partner OR create new — pre-fills from chat data
- Smart button "Chats (N)" on partner form opens inbox filtered to that contact
- Viber ID auto-populated on partner when conversation is linked
FEATURE 09
Media & File Sharing RICH MEDIA
Send and receive images, documents, audio, video, and stickers. All media stored in Odoo's ir.attachment with auto access tokens for secure delivery to Viber's CDN.
- WhatsApp media: resolved via Graph API media ID → downloaded → stored as ir.attachment
- Viber media: downloaded with auth token → stored as ir.attachment
- Outbound: WhatsApp uploads via multipart form to Meta; Viber uses public access_token URL
- Sticker support with WebP format handling
- Caption support on image/video messages
FEATURE 10
Bus-powered Real-time Notifications NO POLLING
All UI updates pushed via Odoo's built-in bus.bus long-polling. No external WebSocket server, no Redis, no third-party dependencies — just native Odoo infrastructure.
- uchat_global: broadcasts to ALL agents (new messages, conv updates, deletes)
- uchat_user_{uid}: unicast to specific user for personal events
- uchat_conv_{id}: conversation-level typing indicators
- Sidebar, chat window, and systray badge all update reactively without page reload
FEATURE 11
Provider-Agnostic Architecture EXTENSIBLE
Built to be extended. Adding Telegram, Messenger, or any new platform follows a clear pattern: add selection value → add credential fields → implement webhook controller → handle send logic.
- Provider selection on uchat.provider.config drives all conditional logic
- Webhook controllers are separate files per platform — easy to add new ones
- _to_dict() and _send_via_* helpers isolate provider-specific code
- OWL frontend is platform-agnostic — just reads the 'provider' field
FEATURE 12
Security & Role-Based Access COMPLIANCE
Two-role security model with record rules. Users can chat; Administrators manage configuration. Shared inbox ensures all agents see all conversations — no siloed inboxes.
- Universal Chat / User: view all, send messages, link partners, close/reopen, pin
- Universal Chat / Administrator: all above + manage providers, templates, delete conversations
- Record rules: domain [(1,=,1)] — full shared visibility for both roles
- Managers auto-assigned to base.user_admin and base.user_root
FEATURE 13 - NEW
Advanced Performance Analytics Dashboard EXECUTIVE VIEW
Transform your communication data into actionable insights. Real-time Chart.js visualizations track team speed, traffic peaks, and customer sentiment across all channels.
- Response Speed Analysis: Doughnut charts categorizing replies into Instant (<2m), Standard, and Delayed.
- Hourly Heatmap: Identify peak traffic hours to optimize agent staffing levels.
- Agent Leaderboard: Compare productivity, average response times, and CSAT ratings across your team.
- Cross-Platform Trends: Compare WhatsApp and Viber volume day-by-day.
FEATURE 14 - NEW
Management-Grade Excel Engine DETAILED AUDIT
Export professional, 6-sheet workbooks for deep-dive audits. Includes full conversation logs, customer comments, and agent performance breakdowns.
- Executive Summary: Filter-aware KPI overview with audit trail.
- Feedback Log: Read actual customer comments and verbatim feedback.
- Raw Data Export: List every conversation with timestamps, platforms, and final status.
- Mobile Optimized : Dashboards and filters fully responsive for handling on-the-go.
Complete Setup Guide
From zero to a live WhatsApp + Viber inbox in under 20 minutes.
Install Universal Chat
Copy the universal_chat folder into your addons directory and install:
python3 odoo-bin -d YOUR_DB -i universal_chat --stop-after-init
Or via UI: Apps → Update Apps List → search "Universal Chat" → Install.
WhatsApp Setup — Create Provider Account
Go to Universal Chat → Configuration → Provider Accounts → New → Platform = WhatsApp Business.
| Field | Where to Find It |
|---|---|
| Access Token | Meta Business Manager → System User → Generate |
| Phone ID | Meta WhatsApp Manager → Phone Numbers |
| WABA ID | Meta Business Manager → WhatsApp Accounts |
Register WhatsApp Webhook
- Save the provider form in Odoo — Callback URL and Verify Token will appear
- Meta Business Manager → Your App → WhatsApp → Configuration → Edit
- Paste the URL and Token → Verify and Save
- Required Subscriptions: messages, message_deliveries, message_reads
⚠ Server must have a valid SSL. Update web.base.url in System Parameters.
Viber Setup — Create Provider Account
- Log into partners.viber.com and copy your Auth Token
- Odoo: Universal Chat → Configuration → Provider Accounts → New → Viber
- Paste Token, Save, and click "Register Webhook"
ⓘ Viber bot must be Active. Share using: https://vb.me/YOUR_BOT
Assign Roles to Your Team
Settings → Users → Select Agent → Access Rights → Universal Chat → User/Admin.
Test End-to-End
Send a message to your Business Number/Bot → check Chat Inbox → Reply → Unified Inbox Success!
Troubleshooting
Messages not appearing: Check HTTPS/SSL and web.base.url.
24h window error: Send an approved template first.
Real-time updates: In production, proxy port 8072 via nginx.
Technical Specifications
| Odoo Version | 18.0 (Community & Enterprise) |
| Module Technical Name | universal_chat |
| Supported Platforms | WhatsApp Business API (Meta Cloud API v19.0) + Viber Bot API |
| Custom Data Models | uchat.provider.config, uchat.conversation, uchat.message, uchat.wa.template, uchat.wa.template.button, uchat.wa.template.variable |
| Extended Models | res.partner (Viber ID + conversation count), res.config.settings (notification toggles) |
| OWL Components | UChatMain, UChatSidebar, UChatChatbox, UChatMessageBubble, UChatConversationItem, UChatEmojiPicker, UChatSystray, UChatStore, UChatService |
| HTTP Endpoints (JSON-RPC) | /uchat/conversations, /uchat/messages, /uchat/send, /uchat/close, /uchat/reopen, /uchat/start, /uchat/partner_search, /uchat/providers, /uchat/toggle_pin, /uchat/mark_as_read, /uchat/assign_partner, /uchat/typing, /uchat/config |
| Webhook Endpoints | /uchat/whatsapp/webhook, /uchat/viber/webhook |
| Bus Channels | uchat_global (all agents), uchat_user_{uid} (personal), uchat_conv_{id} (typing indicators) |
| Python Dependencies | requests (Standard Odoo dependency) |
| Security Groups | Universal Chat / User (chat access), Universal Chat / Administrator (full configuration) |
| License | LGPL-3 |
Message Status Indicators
| Status | Meaning | Applies To |
|---|---|---|
| Pending | Message queued, API call not yet made | Outbound |
| Sent | API accepted the message successfully | Outbound |
| Delivered | Message arrived on customer's device | Both |
| Read | Customer opened/read the message | Both |
| Failed | API returned an error — check status_reason | Outbound |
Feature Comparison
Universal Chat vs standard WhatsApp-only modules.
| Capability | Odoo Discuss (Built-in) | WhatsApp-Only Modules | Universal Chat |
|---|---|---|---|
| WhatsApp inbound + outbound | Yes | Yes | Yes — Full |
| Viber Bot API | No | No | Yes — Full |
| Dedicated chat inbox UI | No | Partial | Yes — OWL Native |
| Real-time bus (no refresh) | Yes | No | Yes — Built-in |
| WhatsApp template manager (full) | Partial | Partial | Yes — Create + Preview + Submit + Sync |
| 24h window + template picker | No | Partial | Yes — Automatic |
| Partner auto-link by phone | Yes | Partial | Yes — SQL normalised match |
| Agent assignment & team tracking | No | No | Yes — Full |
| Typing indicators between agents | No | No | Yes |
| Extensible to new platforms | No | No | Yes — Provider-agnostic |
Quick Reference
Where to find everything in Odoo.
| Task | Where to Go |
|---|---|
| View and reply to messages | Universal Chat → Chat Inbox |
| Create WhatsApp provider | Universal Chat → Configuration → Provider Accounts → New |
| Create Viber provider | Universal Chat → Configuration → Provider Accounts → New |
| Register Viber webhook | Provider Account form → Register Webhook button |
| Sync WA templates from Meta | Provider Account form → Sync WA Templates button |
| Create a new template | Universal Chat → Configuration → WhatsApp Templates → New |
| Link a chat to a customer | Open conversation → Link Customer button |
| Fix web.base.url for webhooks | Settings → Technical → System Parameters → web.base.url |
| Assign user roles | Settings → Users → select user → Access Rights → Universal Chat |
| Check webhook errors | Odoo logs: grep uchat | Message record → API Response field |
Visual Tour
46 Professional Screenshots
1. Core Inbox & Dashboard Overview
#01 Main Analytics Dashboard
#02 Real-time Unified Chat Inbox
#03 Multi-channel Sidebar Navigation
#04 Interactive Message Bubbles
#05 Unassigned Conversations View
#06 My Conversations Filter
#07 All Conversations Access
#08 Closed/Archived History
2. WhatsApp Template Engine & Configuration
#09 Template Designer (Meta Cloud)
#10 Variable Injection & Body Content
#11 Interactive Buttons Management
#12 Template Preview Tool
#13 Real-world Smartphone Preview
#14 Template Status Tracking
#15 Template Batch Processing
#16 Approved Templates Overview
#17 Provider Configuration Central
#18 Viber Bot Registration View
#19 Meta Cloud API Credentials
#20 Security Groups & Roles
3. CRM Integration & Partner Linking
#21 System Parameters (web.base.url)
#22 Multi-User Assignment Logic
#23 Provider Webhook Dashboard
#24 Smart CRM Partner Linking
#25 Customer Identification Wizard
#26 Dynamic Partner Matching
#27 Existing Customer Lookup
#28 New Contact Creation Wizard
4. Management Logs & Excel Engine
#29 Multi-sheet Excel Reports
#30 Executive Stats in Excel
#31 Raw Conversation Data Export
#32 Customer Feedback Analysis
#33 Agent Productivity Matrix
#34 Audit Log of Communications
#35 High-Level Multi-Channel Audit
#36 End-to-End Conversation Flow
5. Advanced Analytics & Customer Feedback
#37 Emoji & Sticker Selection
#38 Team Feedback Overview
#39 Real-time Ratings Widget
#40 Hourly Load Indicators
#41 Sentiment Analysis (Chart)
#42 Response Speed Distribution
#43 Daily Platform Trends
#44 Performance Peak-Hour Heatmap
#45 Agent Response Efficiency
#46 Executive Performance Summary
Visual Tour
46 Professional Screenshots
Ready to unify your customer messaging?
Universal Chat — WhatsApp + Viber in One Odoo Inbox
Version 18.0.1.0.0 | LGPL-3 License | Odoo 18 Community & Enterprise
+92 316 4705102
ayyansaddiqui420@gmail.com
GitHub
github.com/ayyan420
2026 Ayyan Saddiqui | LGPL-3 License | github.com/ayyan420
Please log in to comment on this module