TIP: You can type at any time to perform a new search.
AI OCA Bridge
ai_oca_bridge · OCA/ai
- Repository
- OCA/ai · module folder · Try on Runboat
- Module version
- 2.0.1
- Category
- AI
- Folder size
- 0.29 MB
- License
- AGPL-3
- Application
- Yes
- Auto-installable
- No
- Website
- https://github.com/OCA/ai
- Last tracking update
- 2026-08-07 08:43:00
- Authors
- Odoo Community Association (OCA), Dixmit
- Maintainers
- Odoo Community Association (OCA), Dixmit
- Committers
- Enric Tobella, Weblate, OCA-git-bot, oca-ci, Luis Rodriguez, Simon Dovicovic
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- ai_oca_bridge_chatter, ai_oca_bridge_document_page, ai_oca_bridge_extra_parameters
- Description
This module is used to create a bridge between Odoo and other AI systems like n8n.
Code Analysis ⓘ
Views touched (6)
| 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 |
HTTP endpoints (1)
| Route(s) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
/ai/response/<int:execution_id>/<string:token> |
AIController.ai_process_response |
public | http | ALL | csrf off sudo |
Models touched (5)
New fields (25)
-
activeBooleandefault=True -
async_timeoutIntegerdefault=300help='Timeout in seconds for asynchronous operations. If the operation does not complete within this time, it will be considered failed.' -
auth_passwordChargroups='base.group_system' -
auth_tokenChargroups='base.group_system' -
auth_typeSelectiondefault='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_usernameChargroups='base.group_system' -
company_idMany2one → res.companyargs: 'res.company' -
descriptionHtmltranslate=True -
domainCharcompute='_compute_domain'readonly=Falsestore=Truestring='Filter' -
execution_countIntegercompute='_compute_execution_count' -
execution_idsOne2many → ai.bridge.executionargs: 'ai.bridge.execution', 'ai_bridge_id' -
field_idsMany2many → ir.model.fieldscompute='_compute_field_ids'help='Fields to include in the AI bridge.'readonly=Falsestore=True args: 'ir.model.fields' -
group_idsMany2many → res.groupshelp='User groups allowed to use this AI bridge.' args: 'res.groups' -
modelCharrelated='model_id.model'string='Model Name' -
model_idMany2one → ir.modelhelp='The model to which this bridge is associated.'ondelete='cascade'required=Falsestring='Model' args: 'ir.model' -
model_requiredBooleancompute='_compute_model_fields' -
nameCharrequired=Truetranslate=True -
payload_typeSelectiondefault='record'required=True args: [('none', 'No payload'), ('record', 'Record')] -
result_kindSelectiondefault='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_typeSelectiondefault='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_payloadTextcompute='_compute_sample_payload'help='Sample payload to be sent to the AI system. This is used for testing and debugging purposes.' -
sequenceIntegerdefault=10 -
urlCharhelp='The URL of the external AI system to which this bridge connects.'string='URL' -
usageSelectiondefault='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_idMany2one → res.usersdefault=<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)
New fields (11)
-
ai_bridge_idMany2one → ai.bridgeondelete='cascade'required=True args: 'ai.bridge' -
company_idMany2one → res.companycompute='_compute_company_id'readonly=Truestore=True args: 'res.company' -
errorTextreadonly=True -
expiration_dateDatetimehelp='Expiration date for the async operation token.'readonly=True -
model_idMany2one → ir.modelondelete='cascade'required=False args: 'ir.model' -
nameCharcompute='_compute_name'store=True -
payloadJsonreadonly=True -
payload_txtTextcompute='_compute_payload_txt' -
res_idIntegerrequired=False -
resultTextreadonly=True -
stateSelectiondefault='draft'required=True args: [('draft', 'Draft'), ('done', 'Done'), ('error', 'Error')]
No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (0)
No new fields.
Public methods (3)-
create(self, vals_list)@api.model_create_multi -
unlink(self) -
write(self, values)
New fields (1)
-
ai_bridge_infoJsoncompute='_compute_ai_bridge_info'store=False
-
get_view(self, view_id=None, view_type='form', **options)@api.model
Loading…
Loading…
- Status
- Open migration PR — not merged yet for this version
- CI status
- checks failing
- Open since
- 16 days ago
- Last activity
- 1 day ago
- Repository
- OCA/ai
- Pull request
- [19.0][MIG] ai_oca_bridge: Migration to 19.0 (#95)