## Overview

**Templates** are reusable models of your contracts. You create a template once, define the **variable
parts** with `{{ }}` (for example, customer name, tax ID, amount, dates) and generate as many
contracts from it as you like. When generating, the variables are **filled in automatically** with
the data that already exists in your workspace — contact, conversation, CRM deal, catalog and account
— leaving you to simply review and adjust anything missing.

You can build the template in the platform's **editor** or **upload** a ready-made model. There is
also a reusable **clause library** to standardize common passages across multiple templates.

## Prerequisites

- Contracts module **enabled** and a user with **permission** to manage templates.
- The contract content (base text) and the list of fields that change from one contract to another.
- For auto-fill to work well, the **source data** (contact, deal, etc.) should be populated.

## Step by step

1. In the **Contracts** area, open **Templates** and create a new one.
2. Write the content in the **editor** or **upload** a ready-made model.
3. Wherever the text changes from one contract to another, insert a **variable** in the form
   `{{ variable }}`.
4. Reuse common passages from the **clause library**.
5. Save the template.
6. To issue, **generate a contract from the template**: the variables are filled in automatically
   with the source data (contact/conversation/deal/catalog/account).
7. **Review** the filled-in values, manually adjust anything missing and proceed to signing.

## Settings & options

- **Data source**: variables can be filled from the contact, conversation, CRM deal, catalog and
  account data.
- **Manual entry**: any variable can be edited by hand before sending.
- **Agentic generation**: Maestro can help draft/fill the contract from the conversation context.
- **Clause library**: standardize clauses and reuse them across multiple templates.
- **Model upload**: import an already-formatted document and turn it into a template.

## Use cases

- A standard **service agreement** with variable name, tax ID, scope and amount.
- **Proposals** and **membership terms** that change only a few fields per customer.
- Reuse of **legal clauses** (confidentiality, termination, jurisdiction) across different templates.

## Tips, limits & best practices

- Give variables **clear names** so automatic and manual filling is obvious.
- Check that each `{{ variable }}` has been **replaced** before sending — empty variables can leave
  gaps in the document.
- Centralize common clauses in the **library** to keep consistency and ease updates.
- Always **review** the generated contract: auto-fill speeds things up, but the check is your
  responsibility.

## Troubleshooting

- **A variable wasn't filled in**: the source data may be empty (e.g., a contact with no tax ID).
  Populate the source or edit it manually.
- **The text came out with literal `{{ }}`**: check the spelling of the variable in the template.
- **The uploaded model lost its formatting**: adjust the formatting in the editor after the upload.

## See also

- [Contracts & E-signature overview](/hc/ajuda/articles/contracts-esignature-overview-en)
- [Issuing companies and the A1 digital certificate](/hc/ajuda/articles/contracts-esignature-empresas-emissoras-certificado-a1-en)
- [Internal and external signing](/hc/ajuda/articles/contracts-esignature-assinatura-interna-externa-en)
- [Public contract page and validator](/hc/ajuda/articles/contracts-esignature-pagina-publica-e-validador-en)