| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Community Apps Dependencies | Show |
| Lines of code | 3179 |
| Technical Name |
nx_webhook_engine |
| License | LGPL-3 |
| Versions | 17.0 18.0 19.0 |
Webhook Engine
Send data from Odoo to any external service — automatically. Monitor any model, build custom payloads, and deliver webhooks with enterprise-grade reliability.
Analytics Dashboard
Monitor webhook performance in real time — success rates, response times, daily trends, and top webhooks at a glance.
Webhook Configuration Form
Configure outgoing webhooks visually — select model, set triggers, map fields, and choose authentication in one form.
How It Works
Three simple steps to connect Odoo with any external service.
- Step 1 — Choose a Model: Select any Odoo model you want to monitor (Sales Orders, Contacts, Invoices, Products, or any custom model).
- Step 2 — Configure Trigger & Payload: Pick when to fire (create, update, or both), set the endpoint URL, map fields to JSON keys, and choose your authentication method.
- Step 3 — Activate: Click Activate and your webhook is live. Every matching event queues a delivery with automatic retry on failure.
Key Features
Everything you need to send webhooks from Odoo — reliably and securely.
Monitor Any Model
Attach a webhook to any Odoo model — standard or custom. Trigger on record creation, updates, or both. Optionally filter by specific fields so the webhook only fires when the data you care about changes.
Visual Field Mapping
Build your JSON payload visually. Map Odoo fields to JSON keys with dot-notation support for nested structures (e.g., partner_id.email → customer.email). Cast values, set defaults, and mark fields as required.
Flexible Custom Headers
Add any HTTP headers your endpoint needs — Bearer tokens, API keys, or custom headers. Define them as a simple JSON object. Sensitive values are masked in logs.
Async Queue & Retry
Webhooks are queued asynchronously so they never block Odoo operations. Failed deliveries are retried automatically with exponential backoff. Set priority levels (Urgent, High, Normal, Low) to control processing order.
Pre & Post Scripts
Write Python code to transform the payload before sending (pre-send) or react to the response after delivery (post-response). Update records, trigger actions, or call other APIs — all in a sandboxed environment.
Execution Logs
Every webhook delivery is logged with the full request payload, response body, HTTP status code, and response time. Sensitive headers are automatically masked. Retry failed deliveries with one click.
Analytics Dashboard
A real-time OWL 2 dashboard showing total executions, success rate, average response time, daily trend charts, and top webhooks by volume. Spot issues at a glance.
Domain Filters
Apply standard Odoo domain expressions to control which records trigger the webhook. For example, only fire when state == 'sale' or amount_total > 1000.
Test & Manual Fire
Test your webhook configuration with a sample payload before going live. Or manually trigger a webhook for any existing record through the built-in wizard — perfect for one-off data pushes.
Real-World Use Cases
See how businesses use the Webhook Engine to connect Odoo with the tools they already rely on.
Post a message to a Slack or Microsoft Teams channel when a sale order is confirmed, a support ticket is created, or an invoice is overdue.
Push new leads, won opportunities, or updated contacts to HubSpot, Salesforce, Mailchimp, or any external CRM in real time.
Notify your warehouse management system or third-party logistics provider when stock moves are validated, delivery orders are created, or stock falls below threshold.
Push confirmed sale orders, shipping updates, or invoice statuses to your Shopify, WooCommerce, or custom storefront API.
Trigger automation workflows in Zapier, Make (Integromat), or n8n whenever any Odoo record changes — no custom code on the automation platform side.
Connect Odoo to your internal microservices, partner APIs, IoT platforms, or any system that accepts HTTP JSON requests.
Delivery Pipeline
Every webhook goes through a robust pipeline to ensure reliable delivery.
- 1. Event Detected — A record is created or updated on the monitored model.
- 2. Domain Filter — The record is checked against your domain expression. Skipped if it doesn't match.
- 3. Payload Built — Field mappings produce a JSON payload. The pre-send script runs if configured.
- 4. Queued — The delivery is placed in the async queue with its priority level and scheduled time.
- 5. Delivered — The HTTP request is sent with authentication headers. On failure, it retries with exponential backoff.
- 6. Logged — The full request/response is recorded. The post-response script runs if configured.
Technical Specifications
| Odoo Version | 19.0 |
| Python | 3.10+ |
| License | LGPL-3 |
| Dependencies | Webhook Base, Base Automation |
| HTTP Methods | POST, PUT, PATCH |
| Authentication | Via Custom Headers (Bearer, API Key, etc.) |
| Queue Priority | Urgent, High, Normal, Low |
| Log Retention | 90 days (configurable) |
Why Choose Webhook Engine?
No Coding Required
Configure everything from the Odoo UI. Select a model, map fields, set authentication, and activate. No Python, no custom modules, no deployment.
Zero Data Loss
The async queue with exponential backoff retry ensures no webhook is ever silently lost. Failed deliveries stay in the queue and can be manually retried from the log.
Non-Blocking
Webhook deliveries never slow down your Odoo users. Everything is queued and processed asynchronously in the background by a scheduled cron job.
Full Observability
Detailed logs, real-time analytics dashboard, success rates, and response times. Know exactly what's happening with every webhook.
Works With Any Service
Slack, Teams, Zapier, Make, n8n, HubSpot, Salesforce, Shopify, or your own custom APIs — if it accepts HTTP JSON, it works.
Built for Odoo 19
Written from the ground up for Odoo 19 with OWL 2 components, modern ORM patterns, and proper access control. Clean, upgrade-safe code.
Companion Module
Webhook Receiver
Need to receive webhooks into Odoo too? The Receiver module exposes secure HTTP endpoints with HMAC authentication, IP whitelisting, visual field mapping, and upsert logic. Pair it with the Engine for full bidirectional webhook support.
Requires Webhook Base (included with this module)
Need help? Contact us at webdeveloper.inf@gmail.com
Please log in to comment on this module