Skip to Content
Menu

Webhooks & Restful APIs for Odoo

by
Odoo

45.15

v 16.0 Third Party 8
Availability
Odoo Online
Odoo.sh
On Premise
Lines of code 1511
Technical Name nx_api_webhook_kit
LicenseOPL-1
Versions 15.0 16.0 17.0 18.0
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Lines of code 1511
Technical Name nx_api_webhook_kit
LicenseOPL-1
Versions 15.0 16.0 17.0 18.0

Advanced RESTful APIs & webhooks

A powerful toolkit for managing webhooks and RESTful APIs in Odoo. Easily create, configure, and monitor webhook endpoints for seamless third-party integration.

Free Module Customization Offer!

Need assistance or have questions? We're here to help!

Get up to 10 hours of free customization for this module!

Customize this module to match your specific business needs. Whether it's enhancing existing features or adding new functionalities, our team is ready to assist you.

Contact Us: developer.nxonbytes@gmail.com

Webhook Service

RESTAPI Service

Key Features

Unlock the full potential of seamless system integration with our **Advanced RESTful API & Webhook Kit**. Designed for efficiency and reliability, this module offers two core functionalities:

RESTful API Service

  • Seamless Third-Party Integration: Expose Odoo endpoints securely for smooth data exchange.
  • Customizable Endpoints: Define and configure API services tailored to your business needs.
  • Secure Authentication: Ensure data protection with token-based authentication.

Webhook Service

  • Real-Time Event Notifications: Automate data synchronization by triggering webhooks on record creation, updates, or deletions.
  • Flexible Configuration: Easily set up webhook endpoints and define specific event triggers.
  • Scalable & Reliable: Ensure consistent data flow between Odoo and external applications.

Manage RESTAPI Services

Here you can create and manage RESTful API services in Odoo. Define custom API endpoints, set up authentication, and securely expose Odoo data to external applications.

Configure RESTAPI Service

Here you can set up and manage RESTful API services within Odoo to enable secure and seamless data exchange with external systems. Easily define custom endpoints, configure authentication methods, and streamline integrations to enhance system connectivity.

Fields & Features

  • API Name: A unique name for the API service to help identify it.
  • API Unique ID: A unique identifier for the API service. Example: create_customer.
  • API Endpoint: The complete URL where the API can be accessed. This is computed automatically.
  • Model: Select the Odoo model associated with this API for CRUD operations.
  • Request Method: Defines how the API interacts with data:
    • GET: Read data.
    • POST: Create new records.
    • PUT: Update existing records.
    • DELETE: Remove records.
  • Request Type: Determines how data is sent:
    • HTTP: Standard HTTP request.
    • JSON: JSON-based request.
  • Authentication Required: Specifies if authentication is needed to access the API.
  • Response Schema: Defines the expected JSON structure for API responses.
  • Active: Determines if the API service is enabled.
  • Enable Logs: If enabled, logs API requests and responses for debugging.
  • Logs: Stores log records related to this API service.
  • Prepare Payload Script: A Python script to modify the request payload before processing.
  • Build Response Script: A Python script to modify response data before returning it to the client.

Filter & Read Records

Parameter Type Example Description
_page Integer 1 Specifies the page number for pagination (default: 1).
_page_count Integer 10 Defines the number of records per page (default: 10).
_order String name asc Specifies sorting order (e.g., "id desc" for descending, "name asc" for ascending).
field_name String customer_id Filters results where "customer_id" is equal to the provided value.
field_name__ne String customer_id__ne=5 Filters results where "customer_id" is NOT equal to 5.
field_name__gt Integer amount__gt=100 Filters results where "amount" is greater than 100.
field_name__lt Integer amount__lt=500 Filters results where "amount" is less than 500.
field_name__gte Integer date__gte=2024-01-01 Filters results where "date" is greater than or equal to 2024-01-01.
field_name__lte Integer date__lte=2024-12-31 Filters results where "date" is less than or equal to 2024-12-31.
field_name__in List status__in=["pending", "approved"] Filters results where "status" is either "pending" or "approved".
field_name__nin List category_id__nin=[1,2,3] Filters results where "category_id" is NOT in [1,2,3].
field_name__like String name__like="John" Filters results where "name" contains "John" (case-insensitive).
field_name__nlike String name__nlike="Test" Filters results where "name" does NOT contain "Test".

Manage RESTAPI Logs

View and manage logs of RESTful API service requests and responses in Odoo. Monitor API activity, and track data exchanges to ensure seamless communication between Odoo and external applications.

Create & Manage Access Tokens

Generate and manage access tokens for RESTful API services in Odoo. Securely authenticate external applications and users to access Odoo data through API endpoints.

Manage Webhook Services

Here you can create and manage webhook services in Odoo. Set up webhook endpoints, define trigger conditions, and automate data synchronization with external applications.

Configure Webhook Service

Easily create and configure webhook services in Odoo based on your specific needs. Define trigger conditions, set up webhook endpoints, and customize response data formatting to ensure seamless real-time data synchronization with external systems.

Fields & Features

  • Title: A unique name for the webhook service.
  • Active: Determines if the webhook service is enabled.
  • Enable Logs: If enabled, logs webhook requests and responses for debugging.
  • Model: Select the Odoo model associated with this webhook.
  • Trigger Fields: The action will be triggered if one of these fields is updated. If empty, all fields are watched.
  • Trigger Event: Defines when the webhook is triggered:
    • On Create: Triggered when a new record is created.
    • On Update: Triggered when an existing record is updated.
  • Endpoint URL: The external URL where the webhook will send data.
  • Request Method: Defines how data is sent:
    • GET: Retrieve data.
    • POST: Send data.
    • PUT: Update existing data.
    • DELETE: Remove data.
  • Webhook Headers: Defines custom headers to be included in the request.
  • Date Filter Field: A date or datetime field to filter records before triggering.
  • Date Filter Selection: Predefined date filters to control when the webhook should run.
  • Timeout: Maximum time (in seconds) to wait for a webhook response.
  • Max Retry Attempts: Number of times the webhook will retry in case of failure.
  • Payload Script: A Python script to modify the request payload before sending.
  • Payload Schema: Defines the schema used to fetch data from the object before sending.
  • Trigger Instantly: If enabled, the webhook triggers immediately upon event occurrence.
  • Expected Response Status: Defines the expected HTTP response status code. If the response does not match, the request retries.
  • Payload Generation Method: Determines how the payload is generated:
    • Model Fields: Data is extracted from model fields.
    • Database Schema: Data is fetched based on predefined database schema.

Webhook Payload: with Model Fields

Payload data is extracted from model fields.

Webhook Payload: with Database Schema

Payload data is fetched based on predefined database schema.

Database Schema:

[
'id',
'name',
'date_order',
'create_date',
'amount_tax',
'amount_total',
'state',
('partner_id', (
    'id',
    'name',
    'city',
)),
('user_id', (
    'id',
    'name',
)),
('payment_term_id', (
    'id',
    'name',
)),
('order_line', [(
    'id',
    ('product_id', (  # many2one
        'id',
        'name',
        'type',
        'barcode',
        ('categ_id', (  # many2one
            'id',
            'name',
        )),
        ('attribute_line_ids', [(  # one2many
            'id',
            'display_name',
        )]),
    )),
    'name',
    'product_uom_qty',
    'price_unit',
    ('tax_id', [(  # many2many
        'id',
        'name',
    )]),
    'price_subtotal',
)]),
]
Payload Data:

{
'id': 41,
'name': 'Your Sale Order Name',
'date_order': '2024-01-26T13:57:52',
'create_date': '2024-01-26T13:57:52.581871',
'amount_tax': 0.0,
'amount_total': 400.0,
'state': 'draft',
'partner_id': {
    'id': 11,
    'name': 'Gemini Furniture',
    'city': 'Fairfield'
},
'user_id': {
    'id': 2,
    'name': 'Mitchell Admin'
},
'order_line': [{
    'id': 57,
    'product_id': {
        'id': 23,
        'name': 'Conference Chair',
        'type': 'product',
        'barcode': False,
        'categ_id': {
            'id': 8,
            'name': 'Office Furniture'
        },
        'attribute_line_ids': [{
            'id': 3,
            'display_name': 'Legs'
        }]
    },
    'name': 'Product 1',
    'product_uom_qty': 2.0,
    'price_unit': 100.0,
    'price_subtotal': 200.0
}, {
    'id': 58,
    'product_id': {
        'id': 27,
        'name': 'Drawer Black',
        'type': 'product',
        'barcode': False,
        'categ_id': {
            'id': 8,
            'name': 'Office Furniture'
        }
    },
    'name': 'Product 2',
    'product_uom_qty': 2.0,
    'price_unit': 100.0,
    'price_subtotal': 200.0
}]
}

Manage Webhook Logs

View and manage logs of webhook service requests and responses in Odoo.

For customization

Reach out to our support team at developer.nxonbytes@gmail.com for any customization.

Odoo Proprietary License v1.0

This software and associated files (the "Software") may only be used (executed,
modified, executed after modifications) if you have purchased a valid license
from the authors, typically via Odoo Apps, or if you have received a written
agreement from the authors of the Software (see the COPYRIGHT file).

You may develop Odoo modules that use the Software as a library (typically
by depending on it, importing it and using its resources), but without copying
any source code or material from the Software. You may distribute those
modules under the license of your choice, provided that this license is
compatible with the terms of the Odoo Proprietary License (For example:
LGPL, MIT, or proprietary licenses similar to this one).

It is forbidden to publish, distribute, sublicense, or sell copies of the Software
or modified copies of the Software.

The above copyright notice and this permission notice must be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.