OdooToolkit Capabilities¶
The OdooToolkit exposes Odoo ERP operations as agent tools. It composes an Odoo transport (JSON-2, JSONRPC, or XML-RPC depending on the detected version) and turns each of its public async methods into a tool.
Below is the complete list of capabilities (tools) provided by the OdooToolkit, grouped by their domain:
Discovery¶
server_info- Description: Returns Odoo server version, transport protocol used, and connection status.
list_models- Description: Lists the explicit Odoo models the toolkit knows about and returns their read/write/create/unlink permissions based on the user's ACLs.
fields_get- Description: Returns the field definitions and metadata for any Odoo model.
Generic CRUD Operations¶
search_records- Description: Searches for records in any Odoo model using domain filters, sorting/ordering, and pagination.
get_record- Description: Reads a single record from any defined model by its numeric ID.
create_record- Description: Creates one record in a specified model and returns the new ID plus a summary of the record. (Requires
odoo.writepermission) create_records- Description: Creates multiple records in a single round-trip for bulk operations (max 1000). (Requires
odoo.writepermission) update_record- Description: Updates a single record by its ID with new field values. (Requires
odoo.writepermission) update_records- Description: Applies the same patch/update to many records in one bulk call (max 1000). (Requires
odoo.writepermission) delete_record- Description: Deletes a single record by its ID. (Requires
odoo.deletepermission)
- Description: Deletes a single record by its ID. (Requires
delete_records- Description: Deletes multiple records simultaneously in one bulk call (max 1000). (Requires
odoo.deletepermission)
- Description: Deletes multiple records simultaneously in one bulk call (max 1000). (Requires
import_records- Description: Performs an idempotent upsert via Odoo's
loadmechanism. Mirrors Odoo's CSV import semantics where rows with an existing external ID are updated, and new rows are created. (Requiresodoo.writepermission)
- Description: Performs an idempotent upsert via Odoo's
Contact / Partner Helpers (res.partner)¶
find_partner- Description: Searches for
res.partnerrecords using friendly arguments (name, email, phone, vat, is_company) and returns strongly-typed results.
- Description: Searches for
create_partner- Description: Creates a
res.partner(either an individual or a company) with specific arguments and returns it as a typed model. (Requiresodoo.writepermission)
- Description: Creates a
update_partner_contact_info- Description: Updates contact and address fields (email, phone, address, website) on an existing partner. (Requires
odoo.writepermission)
- Description: Updates contact and address fields (email, phone, address, website) on an existing partner. (Requires
Sales Helpers (sale.order)¶
create_quotation- Description: Creates a draft
sale.order(quotation) with one or more order lines for a specific partner. (Requiresodoo.writepermission)
- Description: Creates a draft
confirm_sale_order- Description: Confirms a draft quotation, transitioning it to the 'sale' state. (Requires
odoo.writepermission)
- Description: Confirms a draft quotation, transitioning it to the 'sale' state. (Requires
Invoicing Helpers (account.move)¶
create_invoice- Description: Creates a draft invoice or vendor bill on
account.movecontaining multiple invoice lines. (Requiresodoo.writepermission)
- Description: Creates a draft invoice or vendor bill on
post_invoice- Description: Posts a draft invoice using the
action_postprocedure in Odoo. (Requiresodoo.writepermission)
- Description: Posts a draft invoice using the
register_payment- Description: Registers a payment on a posted invoice via
account.payment.register. Returning the createdaccount.paymentrecords. (Requiresodoo.writepermission)
- Description: Registers a payment on a posted invoice via
Binary / Document Helpers¶
set_binary_field- Description: Uploads raw bytes (from a URL or a base64 string) into a specific Binary or Image field on an existing record. (Requires
odoo.writepermission)
- Description: Uploads raw bytes (from a URL or a base64 string) into a specific Binary or Image field on an existing record. (Requires
attach_document- Description: Creates an
ir.attachmentlinked to a specific record in Odoo, handling URL fetching and base64 parsing directly. (Requiresodoo.writepermission)
- Description: Creates an