Templates de Documentos

Crie modelos de documentos que geram arquivos automaticamente com dados reais dos itens da categoria.
Atualizado

Gere documentos automaticamente com dados do sistema

Os Templates de Documentos permitem criar modelos de documentos (contratos, termos, declarações, relatórios) que são preenchidos automaticamente com dados reais dos itens de uma categoria. Você monta o modelo uma vez e o ENSPACE gera o documento final sempre que necessário, substituindo as marcações do template pelos dados do item.

Para acessar, vá até Configurações > Estrutura > Categorias, selecione a categoria e clique em Templates de Documentos.

Informação
O editor de templates é o OnlyOffice, um editor de documentos integrado ao ENSPACE com funcionalidades similares ao Microsoft Word — formatação de texto, tabelas, imagens, cabeçalhos, rodapés e estilos. Tudo o que você faz em um editor de texto convencional, pode fazer aqui.

Visão geral: como funciona

Como os templates se conectam à categoria

O diagrama abaixo mostra como os templates utilizam os campos da categoria para gerar documentos automaticamente dentro dos itens.

Jornada do usuário

O processo completo, do template ao documento final, segue esta jornada:

1. Criar o template

Defina os metadados e monte o modelo do documento no editor.

2. Inserir variáveis

Adicione marcações que serão substituídas pelos dados reais do item.

3. Adicionar lógica

Use blocos condicionais (IF) e de repetição (FOR) para controlar o conteúdo.

4. Vincular ao formulário

Conecte o template a um campo Editor de Documento em um formulário da categoria.

5. Gerar o documento

Ao criar ou editar um item, o usuário seleciona o template e gera o documento final.

6. Visualizar e salvar

O documento gerado fica salvo no campo do item, disponível para download em PDF ou DOCX.

As seções abaixo detalham cada etapa.


Etapa 1 — Criar o template

Acesse os templates da categoria

Vá até Configurações > Estrutura > Categorias, selecione a categoria e clique em Templates de Documentos.

Crie um novo template

Clique em Criar e preencha:

  • Nome — identificação do template na listagem (ex: "NDA", "Contrato de Prestação de Serviço").
  • Saída — nome do arquivo gerado ao ser baixado (ex: NDA, Contrato_Servico).
  • Descrição — texto opcional para descrever a finalidade do template.
O campo Saída aceita variáveis. Ao digitar {{ no campo, uma lista de campos da categoria é exibida para seleção. Isso permite gerar nomes dinâmicos como NDA_{{data.nome_cliente}}, que será resolvido para NDA_João_Silva.docx no momento da geração.

Salve e abra o editor

Após salvar, clique no menu de ações do template e selecione Criar. Você pode iniciar um documento em branco ou importar um modelo existente. O editor OnlyOffice será aberto.


Etapa 2 — Inserir variáveis

As variáveis são marcações que representam dados reais dos campos da categoria. Elas aparecem no template como texto entre chaves duplas (ex: {{data.nome_cliente}}), mas são substituídas pelos dados reais somente no momento da geração do documento final — dentro do editor, você verá apenas as marcações.

Para inserir uma variável, clique no botão # (Variáveis) no topo do editor, selecione o campo desejado e cole no documento com CTRL + V.

Para entender o formato das variáveis, a diferença entre campos personalizados e metadados, e como evitar erros, consulte a seção Como usar variáveis no template abaixo.


Etapa 3 — Adicionar lógica

Os blocos lógicos permitem controlar quando um conteúdo aparece e quantas vezes ele se repete no documento. Eles são inseridos pelo botão de Comandos (ícone de chave de fenda) no topo do editor: ao clicar no tipo desejado, o sistema copia a estrutura para a área de transferência. Cole no documento com CTRL + V.

Existem três tipos de blocos:

BlocoEstrutura copiadaPara que serveExemplo de uso
Condicional de texto{{}}{{IF variavel === 'valor'}} conteúdo {{END-IF}}Exibe conteúdo se um campo de texto tiver determinado valor"Se o status for 'Aprovado', mostre este parágrafo"
Condicional de valor{{}}{{IF variavel === 123}} conteúdo {{END-IF}}Exibe conteúdo se um campo numérico atender a uma condição"Se o valor for maior que 10.000, mostre esta cláusula"
Bloco de repetição{{}}{{FOR item IN variavel}} conteúdo {{= $item.subcampo}} {{END-FOR item}}Repete conteúdo para cada item de uma lista"Para cada produto da lista, mostre nome e preço"

Para aprender a preencher cada estrutura com seus dados reais, consulte a seção Como usar blocos lógicos no template abaixo.


Etapa 4 — Vincular o template a um formulário

Após montar o template, é necessário vinculá-lo a um campo do tipo Editor de Documento dentro de um formulário da categoria. Esse é o campo onde o usuário final vai gerar o documento.

Acesse o formulário da categoria

Vá até Configurações > Estrutura > Categorias, selecione a categoria e clique em Formulários. Abra o formulário desejado.

Adicione um campo Editor de Documento

No construtor do formulário, adicione um bloco com um campo do tipo Editor de Documento.

Configure o template permitido

Clique no botão de configuração do bloco. No campo Template permitido, selecione o template que você criou. Ative as permissões desejadas para o documento (visualizar, editar, gerar).

Salve o formulário

As configurações serão aplicadas ao formulário.


Etapa 5 — Gerar o documento final

Com o template vinculado ao formulário, o usuário final pode gerar documentos ao criar ou editar itens.

Abra o item

Na tela de itens da categoria, abra o item desejado (via sidebar ou tela dedicada).

Acesse o campo Editor de Documento

Clique no campo configurado com o template.

Selecione o template

Clique em Usar template. A lista exibirá os templates configurados para aquele formulário. Selecione o desejado.

Confirme a geração

O sistema substituirá todas as variáveis pelos dados reais do item e gerará o documento. Revise o resultado e clique em Confirmar.

O documento gerado fica salvo no próprio campo do item. Se o resultado não for o esperado, você pode gerar novamente selecionando outro template ou o mesmo.

Não existe prévia do documento com dados reais — as variáveis são substituídas somente no momento da geração. Revise o template com atenção antes de gerar.

Onde o documento gerado fica salvo

O documento gerado fica armazenado como dado do item, dentro do campo Editor de Documento. Para visualizá-lo na tela dedicada do item, configure uma Pasta de Visualização do tipo Documento vinculada ao campo.

Para saber como montar a barra de pastas do item, consulte Construtor de Pastas.


Observações importantes

  • Se uma variável não tiver valor preenchido no item, o espaço correspondente ficará vazio no documento final.
  • Atualizar o template não afeta documentos já gerados — cada documento é uma cópia independente gerada no momento da criação.
  • Documentos são gerados um por vez, por item. Não é possível gerar em lote.
  • O editor de templates (OnlyOffice) serve apenas para montar o modelo — o documento final é visualizado após a geração no item.

Como usar variáveis no template

Esta seção detalha como as variáveis funcionam dentro do editor de templates.

Inserindo uma variável

Clique no botão Variáveis (#)

No topo do editor, clique no botão # (Variáveis).

Selecione o campo desejado

A lista exibe todos os campos da categoria. Clique no campo que deseja inserir.

Cole no documento

O sistema copia automaticamente a variável para a área de transferência (uma notificação verde confirmará). Cole no documento com CTRL + V na posição desejada.

Formato das variáveis

As variáveis seguem o padrão {{data.referencia_tecnica_do_campo}}. A referência técnica é o identificador interno do campo, definido na criação do campo — diferente do nome de exibição.

Nome do campoReferência técnicaVariável no documentoResultado gerado
Nome do clientenome_cliente{{data.nome_cliente}}João da Silva
Data do contratodata_contrato{{data.data_contrato}}10/03/2026
Valor totalvalor_total{{data.valor_total}}R$ 1.500,00

Alguns campos são metadados do item e não usam o prefixo data.:

Nome do campoVariável no documentoResultado gerado
E-mail do requisitante{{request_email}}joao@empresa.com
Referência do item{{reference}}REF-00123
ID do item{{id}}4521
Data de criação{{created_at}}2026-03-10T14:30:00
Atenção
Se a referência de uma variável estiver incorreta (campo inexistente ou referência errada), o texto da variável aparecerá visível no documento final em vez de ser substituído por um valor. Sempre use o botão # para inserir variáveis em vez de digitá-las manualmente.

Para entender o sistema de variáveis em profundidade, consulte Variáveis e Formatação.


Como usar blocos lógicos no template

Esta seção detalha como preencher cada tipo de bloco lógico com seus dados reais.


Bloco condicional de texto (IF)

Exibe um trecho do documento somente se a condição sobre um campo de texto for verdadeira.

Estrutura

null conteúdo

Elementos da estrutura:

ElementoO que éExemplo
variavelA variável do campo que será usado na condicional.data.status, data.nome, data.equipe
valorO valor que se deseja comparar ao campo.aprovado, João, financeiro
conteúdoO conteúdo de texto que deve aparecer caso a condição definida seja cumprida.seu pedido foi aprovado, o responsável é o João, a equipe do financeiro será acionada

Operadores disponíveis:

O condicional de texto usa o operador === (igual a) para comparar o valor do campo com um texto esperado. Para verificar o oposto (campo diferente de um valor), use !== (diferente de).

OperadorSignificadoExemploComo é interpretado
===Igual adata.status === 'Aprovado'"Se o campo status for exatamente Aprovado"
!==Diferente dedata.status !== 'Aprovado'"Se o campo status for qualquer valor diferente de Aprovado"
O texto esperado deve estar sempre entre aspas simples, por exemplo: 'Aprovado', 'Pendente', 'Ativo'.

Como preencher:

  1. Substitua variavel pelo campo real — ex: data.status
  2. Substitua 'valor' pelo texto esperado — ex: 'Aprovado'
  3. Substitua conteúdo pelo texto que deve aparecer
Exemplo 1 — Exibir ou omitir um trecho:
{{}}{{IF variavel === 'valor'}} conteúdo {{END-IF}}

Resultado: o texto definido em conteúdo só aparecerá no documento final se o campo "status" do item for exatamente "Aprovado". Se a condição não for cumprida, o trecho será omitido do documento.

Exemplo 2 — Exibir textos diferentes conforme o resultado:

Para mostrar um texto quando a condição for verdadeira e outro quando não for, use dois blocos IF complementares — o primeiro com === e o segundo com !==:

{{}}{{IF variavel === 'valor'}} conteúdo se verdadeiro {{END-IF}}
{{}}{{IF variavel !== 'valor'}} conteúdo se falso {{END-IF}}

Resultado: se o status for "Aprovado", o primeiro trecho aparece e o segundo é omitido. Se o status for qualquer outro valor (ex: "Pendente", "Recusado"), o segundo trecho aparece e o primeiro é omitido.


Bloco condicional de valor (IF com números)

Funciona como o condicional de texto explicado acima, mas compara valores numéricos. A diferença principal é que você pode usar operadores de comparação além do ===.

Estrutura

null conteúdo

Elementos da estrutura:

ElementoO que éExemplo
variavelA variável do campo que será usado na condicional.data.valor, data.quantidade, data.numeracao
123O valor numérico que se deseja comparar ao campo.1000, 500, 40
conteúdoO conteúdo de texto que deve aparecer caso a condição definida seja cumprida.o valor total é de R$1000, a quantidade em estoque é de 500, a numeração do produto é 40

Operadores disponíveis:

O condicional de valor permite comparar campos numéricos usando diferentes operadores. Escolha o operador conforme o tipo de comparação que deseja fazer.

OperadorSignificadoExemploComo é interpretado
===Igual adata.valor === 1000"Se o campo valor for exatamente 1.000"
!==Diferente dedata.valor !== 0"Se o campo valor for qualquer número diferente de zero"
>Maior quedata.valor > 10000"Se o campo valor for maior que 10.000"
<Menor quedata.parcelas < 12"Se o campo parcelas for menor que 12"
>=Maior ou igual adata.nota >= 7"Se o campo nota for 7 ou mais"
<=Menor ou igual adata.prazo <= 30"Se o campo prazo for 30 ou menos"

Como preencher:

  1. Substitua variavel pelo campo real — ex: data.valor
  2. Substitua o operador === pelo tipo de comparação desejado — ex: >
  3. Substitua 123 pelo valor de referência — ex: 10000
  4. Substitua conteúdo pelo texto que deve aparecer
Exemplo 1 — Exibir cláusula para valores altos:
{{}}{{IF variavel === 123}} conteúdo {{END-IF}}

Resultado: a cláusula adicional só aparecerá no documento final se o campo "valor" do item for maior que 10.000. Se o valor for 10.000 ou menor, o trecho será omitido.

Exemplo 2 — Textos diferentes conforme a faixa de valor:
{{}}{{IF variavel > 123}} conteúdo para valor alto {{END-IF}}
{{}}{{IF variavel <= 123}} conteúdo para valor baixo {{END-IF}}

Resultado: se o valor for maior que 10.000, o primeiro trecho aparece e o segundo é omitido. Se o valor for 10.000 ou menor, o segundo trecho aparece e o primeiro é omitido.


Combinando condições (AND e OR)

Dentro de um IF, você pode combinar múltiplas condições:

  • AND — todas devem ser verdadeiras para o conteúdo aparecer
  • OR — basta uma ser verdadeira
{{}}{{IF data.status === 'Aprovado' AND data.valor > 10000}} Contrato de alto valor aprovado. {{END-IF}}

Bloco de repetição (FOR)

Repete um trecho do documento para cada item de uma lista. Uma lista é qualquer campo que armazena múltiplos registros — como uma lista de produtos, parcelas, pessoas ou etapas.

Atualmente, no ENSPACE, o único campo que trabalha listas é o Repetidor.

Estrutura

null conteúdo

Elementos da estrutura:

ElementoO que éExemplo
itemNome identificador que você escolhe para cada registro da lista. Pode ser qualquer palavra.produto, parcela, pessoa
variavelO campo de lista (repetidor) que será percorrido.data.produtos, data.parcelas
$item.subcampoAcesso a um dado específico de cada registro.$produto.nome, $parcela.preco

O prefixo $ é obrigatório para acessar dados dentro do FOR. Ele indica ao sistema que você está se referindo a um registro individual da lista, não a um campo global do item.

O elemento item é um identificador livre para você nomear seu dado. Como boa prática, é indicado substituí-lo pelo nome do campo que será percorrido.

Como preencher:

  1. Escolha um nome identificador para cada registro — pode ser qualquer palavra que faça sentido (ex: produto, parcela, pessoa). Esse nome substitui item na estrutura.
  2. Substitua variavel pela variável do campo de lista — ex: data.produtos
  3. Dentro do bloco, use $ + nome escolhido + subcampo — ex: $produto.nome, $produto.preco
Exemplo 1 — Lista simples de produtos:
{{}}{{FOR item IN variavel}} conteúdo {{= $item.subcampo}} {{END-FOR item}}

Resultado: se o item tiver 3 produtos na lista, o documento final terá 3 linhas — uma para cada produto, com nome e preço preenchidos automaticamente.

Exemplo 2 — Lista com múltiplos subcampos:
{{}}{{FOR item IN variavel}} {{= $item.subcampo1}} - {{= $item.subcampo2}} - {{= $item.subcampo3}} {{END-FOR item}}

Resultado: para cada pessoa na lista de participantes, uma linha será gerada com nome, CPF e cargo preenchidos.


Combinações avançadas

Os blocos podem ser combinados para criar documentos com lógica complexa.

IF dentro de FOR — exibir conteúdo condicional para cada item da lista:

{{}}{{FOR produto IN data.produtos}} Produto: {{= $produto.nome}} {{}}{{IF $produto.valor > 1000}} (Valor elevado) {{END-IF}} {{END-FOR produto}}

Erros comuns

Atenção
Verifique sempre estes pontos ao trabalhar com blocos lógicos:
  • Todo {{IF ...}} deve ter um {{END-IF}} correspondente.
  • Todo {{FOR ... IN ...}} deve ter um {{END-FOR nome}} correspondente, com o mesmo nome.
  • Dentro do FOR, use $ antes do nome do registro (ex: $produto.nome, não produto.nome).
  • Use um campo do tipo lista/repetidor no FOR, não um campo simples.
  • Variáveis de campos globais usam data.campo. Variáveis dentro de um FOR usam $nome.subcampo.