| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/ai |
| GIT | |
| GIT | https://github.com/OCA/ai.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/ai/tree/18.0/ai_oca_bridge |
| VERSION | |
| VERSION | 2.0.1 |
| CATEGORY | |
| CATEGORY | AI |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Dixmit |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Dixmit |
| COMMITTERS | |
| COMMITTERS | Enric Tobella, Weblate, OCA-git-bot, oca-ci, Luis Rodriguez, Simon Dovicovic |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/ai |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:15 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour - html_editor |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module is used to create a bridge between Odoo and other AI systems like n8n. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
ai_bridge_execution_form_view |
ai.bridge.execution | form | New | |
ai_bridge_execution_search_view |
ai.bridge.execution | search | New | |
ai_bridge_execution_tree_view |
ai.bridge.execution | list | New | |
ai_bridge_form_view |
ai.bridge | form | New | |
ai_bridge_search_view |
ai.bridge | search | New | |
ai_bridge_tree_view |
ai.bridge | list | New |
active
Boolean
default=True
async_timeout
Integer
default=300
help='Timeout in seconds for asynchronous operations. If the operation does not complete within this time, it will be considered failed.'
auth_password
Char
groups='base.group_system'
auth_token
Char
groups='base.group_system'
auth_type
Selection
default='none'
help='The type of authentication used to connect to the external AI system.'
selection=[('none', 'None'), ('basic', 'Basic Authentication'), ('token', 'Token Authentication')]
string='Authentication Type'
auth_username
Char
groups='base.group_system'
company_id
Many2one → res.company
description
Html
translate=True
domain
Char
compute='_compute_domain'
readonly=False
store=True
string='Filter'
execution_count
Integer
compute='_compute_execution_count'
execution_ids
One2many → ai.bridge.execution
field_ids
Many2many → ir.model.fields
compute='_compute_field_ids'
help='Fields to include in the AI bridge.'
readonly=False
store=True
args: 'ir.model.fields'
group_ids
Many2many → res.groups
help='User groups allowed to use this AI bridge.'
args: 'res.groups'
model
Char
related='model_id.model'
string='Model Name'
model_id
Many2one → ir.model
help='The model to which this bridge is associated.'
ondelete='cascade'
required=False
string='Model'
args: 'ir.model'
model_required
Boolean
compute='_compute_model_fields'
name
Char
required=True
translate=True
payload_type
Selection
default='record'
required=True
args: [('none', 'No payload'), ('record', 'Record')]
result_kind
Selection
default='immediate'
help="\n Defines how the result from the AI system is processed.\n - 'Immediate': The result is processed immediately after the AI system responds.\n - 'Asynchronous': The result is processed in the background.\n It allows longer operations.\n Odoo will provide a URL to the AI system where the response will be sent.\n Users will receive a notification when the operation is started.\n No notification will be sent when it is finished.\n "
args: [('immediate', 'Immediate'), ('async', 'Asynchronous')]
result_type
Selection
default='none'
help='Defines the type of result expected from the AI system.'
required=True
args: [('none', 'No processing'), ('message', 'Post a Message'), ('action', 'Action')]
sample_payload
Text
compute='_compute_sample_payload'
help='Sample payload to be sent to the AI system. This is used for testing and debugging purposes.'
sequence
Integer
default=10
url
Char
help='The URL of the external AI system to which this bridge connects.'
string='URL'
usage
Selection
default='none'
help="Defines how this bridge is used. If 'Thread', it will be used in the mail thread context."
args: [('none', 'None'), ('thread', 'Thread'), ('ai_thread_create', 'On Record Created'), ('ai_thread_write', 'On Record Updated'), ('ai_thread_unlink', 'On Record Deleted')]
user_id
Many2one → res.users
default=<expr>
help='The user that will be shown when executing this AI bridge.'
args: 'res.users'
custom_serializer(self, obj)
execute_ai_bridge(self, res_model, res_id)
ai_bridge_id
Many2one → ai.bridge
ondelete='cascade'
required=True
args: 'ai.bridge'
company_id
Many2one → res.company
compute='_compute_company_id'
readonly=True
store=True
args: 'res.company'
error
Text
readonly=True
expiration_date
Datetime
help='Expiration date for the async operation token.'
readonly=True
model_id
Many2one → ir.model
ondelete='cascade'
required=False
args: 'ir.model'
name
Char
compute='_compute_name'
store=True
payload
Json
readonly=True
payload_txt
Text
compute='_compute_payload_txt'
res_id
Integer
required=False
result
Text
readonly=True
state
Selection
default='draft'
required=True
args: [('draft', 'Draft'), ('done', 'Done'), ('error', 'Error')]
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (3)create(self, vals_list)
unlink(self)
write(self, values)
ai_bridge_info
Json
compute='_compute_ai_bridge_info'
store=False
get_view(self, view_id=None, view_type='form', **options)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/ai |
| GIT | |
| GIT | https://github.com/OCA/ai.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/ai/tree/17.0/ai_oca_bridge |
| VERSION | |
| VERSION | 2.0.0 |
| CATEGORY | |
| CATEGORY | AI |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Dixmit |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Dixmit |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, Luis Rodriguez, Adria Hortoenda |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/ai |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:20:07 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module is used to create a bridge between Odoo and other AI systems like n8n. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
ai_bridge_execution_form_view |
ai.bridge.execution | form | New | |
ai_bridge_execution_search_view |
ai.bridge.execution | search | New | |
ai_bridge_execution_tree_view |
ai.bridge.execution | tree | New | |
ai_bridge_form_view |
ai.bridge | form | New | |
ai_bridge_search_view |
ai.bridge | search | New | |
ai_bridge_tree_view |
ai.bridge | tree | New |
active
Boolean
default=True
async_timeout
Integer
default=300
help='Timeout in seconds for asynchronous operations. If the operation does not complete within this time, it will be considered failed.'
auth_password
Char
groups='base.group_system'
auth_token
Char
groups='base.group_system'
auth_type
Selection
default='none'
help='The type of authentication used to connect to the external AI system.'
selection=[('none', 'None'), ('basic', 'Basic Authentication'), ('token', 'Token Authentication')]
string='Authentication Type'
auth_username
Char
groups='base.group_system'
company_id
Many2one → res.company
description
Html
translate=True
domain
Char
compute='_compute_domain'
readonly=False
store=True
string='Filter'
execution_count
Integer
compute='_compute_execution_count'
execution_ids
One2many → ai.bridge.execution
field_ids
Many2many → ir.model.fields
compute='_compute_field_ids'
help='Fields to include in the AI bridge.'
readonly=False
store=True
args: 'ir.model.fields'
group_ids
Many2many → res.groups
help='User groups allowed to use this AI bridge.'
args: 'res.groups'
model
Char
related='model_id.model'
string='Model Name'
model_id
Many2one → ir.model
help='The model to which this bridge is associated.'
ondelete='cascade'
required=False
string='Model'
args: 'ir.model'
model_required
Boolean
compute='_compute_model_fields'
name
Char
required=True
translate=True
payload_type
Selection
default='record'
required=True
args: [('none', 'No payload'), ('record', 'Record')]
result_kind
Selection
default='immediate'
help="\n Defines how the result from the AI system is processed.\n - 'Immediate': The result is processed immediately after the AI system responds.\n - 'Asynchronous': The result is processed in the background.\n It allows longer operations.\n Odoo will provide a URL to the AI system where the response will be sent.\n Users will receive a notification when the operation is started.\n No notification will be sent when it is finished.\n "
args: [('immediate', 'Immediate'), ('async', 'Asynchronous')]
result_type
Selection
default='none'
help='Defines the type of result expected from the AI system.'
required=True
args: [('none', 'No processing'), ('message', 'Post a Message'), ('action', 'Action')]
sample_payload
Text
compute='_compute_sample_payload'
help='Sample payload to be sent to the AI system. This is used for testing and debugging purposes.'
sequence
Integer
default=10
url
Char
help='The URL of the external AI system to which this bridge connects.'
string='URL'
usage
Selection
default='none'
help="Defines how this bridge is used. If 'Thread', it will be used in the mail thread context."
args: [('none', 'None'), ('thread', 'Thread'), ('ai_thread_create', 'On Record Created'), ('ai_thread_write', 'On Record Updated'), ('ai_thread_unlink', 'On Record Deleted')]
user_id
Many2one → res.users
default=<expr>
help='The user that will be shown when executing this AI bridge.'
args: 'res.users'
custom_serializer(self, obj)
execute_ai_bridge(self, res_model, res_id)
ai_bridge_id
Many2one → ai.bridge
ondelete='cascade'
required=True
args: 'ai.bridge'
company_id
Many2one → res.company
compute='_compute_company_id'
readonly=True
store=True
args: 'res.company'
error
Text
readonly=True
expiration_date
Datetime
help='Expiration date for the async operation token.'
readonly=True
model_id
Many2one → ir.model
ondelete='cascade'
required=False
args: 'ir.model'
name
Char
compute='_compute_name'
store=True
payload
Json
readonly=True
payload_txt
Text
compute='_compute_payload_txt'
res_id
Integer
required=False
result
Text
readonly=True
state
Selection
default='draft'
required=True
args: [('draft', 'Draft'), ('done', 'Done'), ('error', 'Error')]
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (3)create(self, vals_list)
unlink(self)
write(self, values)
ai_usage
Char
search='_search_ai_usage'
store=False
is_ai_bridge_thread
Boolean
No public methods.
ai_bridge_info
Json
compute='_compute_ai_bridge_info'
store=False
get_view(self, view_id=None, view_type='form', **options)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/ai |
| GIT | |
| GIT | https://github.com/OCA/ai.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/ai/tree/16.0/ai_oca_bridge |
| VERSION | |
| VERSION | 3.0.1 |
| CATEGORY | |
| CATEGORY | AI |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Dixmit |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Dixmit |
| COMMITTERS | |
| COMMITTERS | Enric Tobella, Weblate, OCA-git-bot, oca-ci, Ariel Barreiros |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/ai |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:12:02 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module is used to create a bridge between Odoo and other AI systems like n8n. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
ai_bridge_execution_form_view |
ai.bridge.execution | form | New | |
ai_bridge_execution_search_view |
ai.bridge.execution | search | New | |
ai_bridge_execution_tree_view |
ai.bridge.execution | tree | New | |
ai_bridge_form_view |
ai.bridge | form | New | |
ai_bridge_search_view |
ai.bridge | search | New | |
ai_bridge_tree_view |
ai.bridge | tree | New |
active
Boolean
default=True
async_timeout
Integer
default=300
help='Timeout in seconds for asynchronous operations. If the operation does not complete within this time, it will be considered failed.'
auth_password
Char
groups='base.group_system'
auth_token
Char
groups='base.group_system'
auth_type
Selection
default='none'
help='The type of authentication used to connect to the external AI system.'
selection=[('none', 'None'), ('basic', 'Basic Authentication'), ('token', 'Token Authentication')]
string='Authentication Type'
auth_username
Char
groups='base.group_system'
company_id
Many2one → res.company
description
Html
translate=True
domain
Char
compute='_compute_domain'
readonly=False
store=True
string='Filter'
execution_count
Integer
compute='_compute_execution_count'
execution_ids
One2many → ai.bridge.execution
field_ids
Many2many → ir.model.fields
compute='_compute_field_ids'
help='Fields to include in the AI bridge.'
readonly=False
store=True
args: 'ir.model.fields'
group_ids
Many2many → res.groups
help='User groups allowed to use this AI bridge.'
args: 'res.groups'
model
Char
related='model_id.model'
string='Model Name'
model_id
Many2one → ir.model
help='The model to which this bridge is associated.'
ondelete='cascade'
required=False
string='Model'
args: 'ir.model'
model_required
Boolean
compute='_compute_model_fields'
name
Char
required=True
translate=True
payload_type
Selection
compute='_compute_payload_type'
default='record'
readonly=False
required=True
store=True
args: [('none', 'No payload'), ('record', 'Record'), ('record_v0', 'Record v0')]
result_kind
Selection
default='immediate'
help="\n Defines how the result from the AI system is processed.\n - 'Immediate': The result is processed immediately after the AI system responds.\n - 'Asynchronous': The result is processed in the background.\n It allows longer operations.\n Odoo will provide a URL to the AI system where the response will be sent.\n Users will receive a notification when the operation is started.\n No notification will be sent when it is finished.\n "
args: [('immediate', 'Immediate'), ('async', 'Asynchronous')]
result_type
Selection
default='none'
help='Defines the type of result expected from the AI system.'
required=True
args: [('none', 'No processing'), ('message', 'Post a Message'), ('action', 'Action')]
sample_payload
Text
compute='_compute_sample_payload'
help='Sample payload to be sent to the AI system. This is used for testing and debugging purposes.'
sequence
Integer
default=10
url
Char
help='The URL of the external AI system to which this bridge connects.'
string='URL'
usage
Selection
default='none'
help="Defines how this bridge is used. If 'Thread', it will be used in the mail thread context."
args: [('none', 'None'), ('thread', 'Thread'), ('ai_thread_create', 'On Record Created'), ('ai_thread_write', 'On Record Updated'), ('ai_thread_unlink', 'On Record Deleted')]
user_id
Many2one → res.users
default=<expr>
help='The user that will be shown when executing this AI bridge.'
args: 'res.users'
custom_serializer(self, obj)
execute_ai_bridge(self, res_model, res_id)
ai_bridge_id
Many2one → ai.bridge
ondelete='cascade'
required=True
args: 'ai.bridge'
company_id
Many2one → res.company
compute='_compute_company_id'
readonly=True
store=True
args: 'res.company'
error
Text
readonly=True
expiration_date
Datetime
help='Expiration date for the async operation token.'
readonly=True
model_id
Many2one → ir.model
ondelete='cascade'
required=False
args: 'ir.model'
name
Char
compute='_compute_name'
store=True
payload
Json
readonly=True
payload_txt
Text
compute='_compute_payload_txt'
res_id
Integer
required=False
result
Text
readonly=True
state
Selection
default='draft'
required=True
args: [('draft', 'Draft'), ('done', 'Done'), ('error', 'Error')]
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (3)create(self, vals_list)
unlink(self)
write(self, values)
ai_bridge_info
Json
compute='_compute_ai_bridge_info'
store=False
get_view(self, view_id=None, view_type='form', **options)