Odoo Webhook

Webhooks(A user-defined HTTP callbacks) allow you to subscribe to certain events that happen in odoo. When one of these events are triggered odoo will send a HTTP POST payload to the webhook's configured URL.

It uses both the OAuth1 and OAuth2 protocols to authenticate 3rd party applications.


Details

Webhooks are a useful tool for apps that want to execute code after a specific event happens on an Odoo, for example, after a warehouse manager creates a new product, updates a stock quantity for existing products or sales manager confirm the quotation.

Instead of telling your app to make an API call every X number of minutes to check if a specific event has occurred on an Odoo, you can register webhooks, which send an HTTP request from the Odoo telling your app that the event has occurred. This uses many less API requests overall, allowing you to build more robust apps, and update your app instantly after a webhook is received.

Webhook event data can be stored as JSON or XML, and is commonly used when:

  • Placing an order
  • Changing a product’s price
  • Collecting data for data-warehousing
  • Integrating your accounting software
  • Filtering the order items and informing various shippers about the order

Another, less-obvious, case for using webhooks is when you’re dealing with data that isn’t easily searchable through the Odoo API. For example, re-requesting an entire product catalogue or order history would benefit from using webhooks since it requires a lot of API requests and takes a lot of time. Think of it this way, if you would otherwise have to poll for a substantial amount of data, you should be using webhooks.




Receive a Webhook


Once you register a webhook URL with Odoo, it will issue a HTTP POST request to the URL specified every time that event occurs. The request’s POST parameters will contain XML/JSON data relevant to the event that triggered the request.

The trouble with testing your webhooks is that you need a publicly visible URL to handle them.

There are a couple of tools that make working with webhooks during development much easier such as RequestBin, Pagekite and ngrok.

Respond to a webhook


Your webhook acknowledges that it received data by sending a 200 OK response. Any response outside of the 200 range will let Odoo know that you did not receive your webhook. Odoo has implemented a configurable timeout period and a retry period for subscriptions under Settings > General Settings > Webhook Configuration.

We wait for a response to each request till configured timeout period (default is 5 seconds), and if there isn’t one or we get an error, we retry the connection for configured retry periods (default is 5 times). A webhook request job will be deleted if there are N number of consecutive failures for the exact same webhook (N being a configured retry period, default is 5 times). You should monitor the admin of your webhook tool for failing webhooks.

If you’re receiving an Odoo webhook, the most important thing to do is respond quickly. There have been several historical occurrences of apps that do some lengthy processing when they receive a webhook that triggers the timeout. This has led to situations where webhooks were removed from functioning apps.

To make sure that apps don't accidentally run over the timeout limit, we now recommend that apps defer processing until after the response has been sent.

Dependencies


This module is depend on restapi module, which is also available on Odoo App Store, Here are links for:

Odoo REST API (Version 9.0 Community & Enterprise)
Odoo REST API (Version 10.0 Community & Enterprise)
Odoo REST API (Version 11.0 Community & Enterprise)

Webhook Quick Reference Guide

Click Here for a quick reference guide to use the odoo webhooks.

Contact Synconics for ERP Implementation, Digital Transformation, Counter Supervision of ERP and permanent partner for ERP Support.

[cf7sr-simple-recaptcha]

Want to speak to us about Odoo ERP?
Drop us a mail on: contact@synconics.com
Skype: synconics.technologies

Let's talk

call +91 942-686-4274