OdooWiki OCA HUB

Agreements Legal

agreement_legal folder_open OCA/agreement open_in_new
Partner License: AGPL-3

This module allows you to manage agreements, letter of intent and contract content. The module is meant to be used by the legal team of a company and to allow them to define sections, clauses and templates with their respective content that can be dynamic.

Based on the template, an agreement can be created and the pdf document generated.

The agreement would go through a workflow to finally become a contract with the customer signature.

auto_awesome What this module does

AI-generated from the code · Odoo 18.0

Manage legal agreements, letters of intent and contracts in Odoo: build them from templates with sections, clauses, recitals and appendices, generate PDF documents, and track versions, signatures and review dates.

This module turns Odoo into a light contract-management tool for legal teams. Users create agreements from templates, and the system copies the template's recitals, sections, clauses, appendices and product lines into the new agreement. A wizard lets you pick a template and a title, and a "Reset" button can recompute an agreement from its template, replacing its content and logging a message.

Each agreement holds a title, reference code, version and revision numbers, start/end dates, signature dates, special terms, parties information and a stage shown as a status bar. Buttons create a new version (keeping the old one as a previous version) or a new agreement from a template. Content blocks (recitals, sections, clauses, appendices) can contain dynamic placeholders that are rendered automatically using the agreement's data and the partner's language.

Agreement types can define sub-types, a review user and a number of review days. A scheduled job checks agreements whose review date is reached and creates an activity for the responsible user. The module also adds settings to link agreements with maintenance, manufacturing, projects, repairs, RMAs, sales, subscriptions, stock, field service and helpdesk. Two PDF reports are available: Agreement and Agreement Preview.

Depends on

contactsagreementproductweb

Menus it adds

AgreementsDashboardAgreementsOperationsAgreementsMaster DataContentsRecitalsClausesSectionsAppendicesProductsReportingAgreementsConfigurationSettingsTemplatesStagesTypesSub-Types
Models and fields (13)
  • agreement · new modelcode (Reference), name (Title), color, state, active, parties, version, end_date, line_ids (Products/Services), readonly, revision, stage_id (Stage), partner_id (Partner), start_date, clauses_ids (Clauses), description, recital_ids (Recitals), template_id (Template), appendix_ids (Appendices), sections_ids (Sections), approved_date, change_notice (Change Notice (Days)), reviewed_date, special_terms, to_review_date, dynamic_parties, signed_contract (Signed Document), approved_user_id (Approved By), assigned_user_id (Assigned To), reviewed_user_id (Reviewed By)
  • agreement.line · new modelqty (Quantity), name (Description), uom_id (Unit of Measure), product_id (Product), agreement_id (Agreement)
  • agreement.type · extends an existing modelreview_days, review_user_id, agreement_subtypes_ids (Sub-Types)
  • agreement.stage · new modelfold (Is Folded), name (Stage Name), active, readonly, sequence, stage_type (Type)
  • agreement.clause · new modelname, title, active, content (Clause Content), sequence, section_id (Section), agreement_id (Agreement), dynamic_content, temp_agreement_id (Temp Agreement)
  • agreement.recital · new modelname, title, active, content, sequence, agreement_id (Agreement), dynamic_content
  • agreement.section · new modelname, title, active, content (Section Content), sequence, clauses_ids (Clauses), agreement_id (Agreement), dynamic_content
  • agreement.subtype · new modelname (Sub-Type Name), active, agreement_type_id (Agreement Type)
  • agreement.appendix · new modelname, title, active, content, sequence, agreement_id (Agreement), dynamic_content
  • res.config.settings · extends an existing modelmodule_agreement_mrp (Link your manufacturing orders to an agreement.), module_agreement_rma (Link your RMAs to an agreement.), module_agreement_sale (Create an agreement when the sale order is confirmed.), module_agreement_stock (Link your pickings to an agreement.), module_agreement_repair (Link your repair orders to an agreement.), module_agreement_project (Link your projects and tasks to an agreement.), module_agreement_helpdesk (Link your Helpdesk tickets to an agreement.), module_agreement_maintenance (Manage maintenance agreements and contracts.), module_fieldservice_agreement (Link your Field Service orders and equipments to an agreement.), module_agreement_sale_subscription (Link your subscriptions to an agreement.)
  • create.agreement.wizard · new modelname (Title), template_id (Template)
  • agreement.dynamic.content.mixin · new modelfield_id (Field), copyvalue (Placeholder Expression), default_value, sub_object_id (Sub-model), sub_model_object_field_id (Sub-field)
  • recompute.agreement.from.template.wizard · new modeltemplate_id, agreement_id

Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 7 confirmed, 2 with no information of 9 versions.

Sources · Odoo 16.0

Confirmed on 2026-11-03 in branch 16.0 of OCA/agreement.

terminal Installation and usage

OCA documentation · Odoo 18.0

To configure this module:

  • Go to Agreement \> Configuration \> Templates
  • Create a new template with sections and clauses and their respective content
  • Go to Agreement \> Configuration \> Stages
  • Create and reorder stages to match your process

To use this module:

  • Go to Agreement \> Agreements
  • Create a new agreement
  • Select a template
  • Follow the process to get the required approval
  • Send the invitation to the customer to review and sign the agreement

No verified information in OCA: Installation.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.