| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Lines of code | 917 |
| Technical Name |
smart_notifications |
| License | LGPL-3 |
| Website | https://www.auraodoo.tech |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Lines of code | 917 |
| Technical Name |
smart_notifications |
| License | LGPL-3 |
| Website | https://www.auraodoo.tech |
Smart Record Notifications
Real-time notifications for record events across any Odoo model
Overview
Notify users in real-time when important events happen in Odoo without needing complex automation platforms. Define rules once, and let Smart Record Notifications handle all communication channels automatically.
Key Features
Model-Based Rules
Pick any model - Sale Order, Task, Lead, Invoice, Contact, and more.
Multiple Trigger Events
On Creation, Update, Deletion, or State Change of any record.
Multiple Channels
Odoo Inbox, Chatter, Email, and Webhook integration.
Flexible Recipients
Specific users, security groups, or dynamic field resolution.
Custom Message Templates
Use field references with dot-notation for dynamic content.
Advanced Conditions
Domain filters, watched fields, and state value triggers.
Complete Audit Trail
Every notification is logged with status, channel, and recipients.
Test Functionality
Send test notifications to verify rules before deployment.
Notification Channels
Odoo Inbox & Chatter
Posts directly in record chatter or sends inbox notifications to recipients within Odoo.
Sends email notifications to recipients with templated subject and body.
Webhook
POSTs JSON payload to external endpoints for integration with Slack, Teams, n8n, Zapier.
Recipient Options
- Static Users: Select specific users to always receive notifications.
- User Groups: Automatically include all members of security groups.
- Dynamic Recipients: Resolve recipient from a field on the record (e.g., user_id, salesperson_id, assigned_user_id).
- De-duplication: Recipients are merged automatically - no duplicate notifications.
Message Templates
Use simple template syntax to create dynamic messages:
{{ field_name }} - Insert simple field values
{{ partner_id.name }} - Use dot-notation for related fields
{{ amount_total }} - Reference any field on the model
Example Templates
-
New Sale Order {{ name }} created by {{ user_id.name }} for {{ partner_id.name }} -
Task {{ name }} moved to {{ stage_id.name }} by {{ user_id.name }} -
Invoice {{ name }} totaling {{ amount_total }} has been validated
Trigger Types
| Trigger | Description |
|---|---|
| On Creation | Fires immediately when a new record is created. |
| On Update | Fires when an existing record is modified. Optionally watch specific fields. |
| On Deletion | Fires before a record is deleted. Access to captured data is preserved. |
| On State Change | Fires when a state field changes to specific values. Useful for workflow events. |
Advanced Conditions & Filters
Domain Filter
Only notify for records matching a domain condition (e.g., high-value orders).
Watched Fields
Fire Update triggers only when specific fields change, ignore other changes.
State Value Triggers
For state-change triggers, specify which state values should fire notifications.
Flexible Logic
Combine all conditions for precise control over when notifications are sent.
Notification Logs & Debugging
Every notification dispatched is logged with comprehensive details:
- Rule Name: Which rule triggered the notification.
- Trigger Type & Event: Creation, update, deletion, or state change.
- Model & Record: Target model and record identifier.
- Channel & Recipients: Which channel was used and who received it.
- Status & Error Details: Success or failure status with error messages for debugging.
- Webhook Status Code: HTTP response code for webhook deliveries.
- Message Content: Full subject and body of the notification sent.
Webhook Integration
Integrate with external services via webhook. JSON payload structure:
{
"event": "create",
"model": "sale.order",
"record_id": 42,
"record_name": "S00042",
"subject": "New Sale Order S00042",
"body": "Sale Order S00042 created by Admin",
"rule_name": "Notify on New Sale Order",
"timestamp": "2026-02-13T10:30:00"
}
Supports optional secret header: X-Webhook-Secret for authentication.
Use with Slack, Microsoft Teams, n8n, Zapier, or any HTTP webhook receiver.
Quick Start
- Go to Smart Notifications menu and click Notification Rules.
- Click Create to add a new rule.
- Select the Target Model (Sale Order, Task, Lead, etc.).
- Choose a Trigger Event (Create, Update, Delete, State Change).
- Enable notification channels: Inbox, Email, Webhook.
- Add recipients: Users, groups, or dynamic field.
- Write message template with field references.
- Optionally add condition filters (domain, watched fields, state values).
- Click Send Test to verify with a sample record.
- Save and activate the rule.
Dependencies
- Base
Technical Details
| Module Name | smart_notifications |
| Version | 19.0.1.0.0 |
| Odoo Version | 19.0 |
| Author | |
| License | LGPL-3 |
| Category | Productivity |
Module Architecture
The module is built with clean separation of concerns:
- Models: notification_rule.py (core logic), notification_log.py (audit trail)
- Services: notification_dispatcher.py (rendering, dispatch)
- Views: XML views for rules, logs, and menus
- Security: Group-based access control
Uses Odoo 19 hook registration pattern via setattr/origin method patching to intercept create/write/unlink operations on target models. All dispatch logic is fail-safe and never blocks business operations.
Example Use Cases
Sales Team Alerts
Notify salespeople when new leads are assigned to them.
Purchase Approvals
Alert managers when high-value purchase orders are created.
Invoice Notifications
Email customers when their invoices are posted to the system.
Project Updates
Notify team members via Slack when tasks reach completion stages.
Customer Communication
Automatically send webhooks to CRM when customer records are updated.
Inventory Alerts
Get notified when stock levels change or products are modified.
Please log in to comment on this module