Dados dos Campos
Consulte a estrutura de dados dos campos do ENSPACE
Esta página documenta a estrutura de dados interna de cada tipo de campo do ENSPACE. Use esta referência sempre que precisar acessar dados específicos de um campo — seja em expressões, relatórios, condicionais, templates de documento ou eventos em campo.
Cada campo do ENSPACE armazena seus dados em um formato específico. Campos simples (como texto ou número) guardam um único valor direto. Campos complexos (como endereço ou pessoa) guardam um objeto com múltiplas propriedades que podem ser acessadas individualmente.
Como ler os exemplos
Os exemplos desta página usam referências de campo — os nomes técnicos que você define ao criar um campo no tipo. Por exemplo, se você criou um campo de texto curto com a referência nome, acessa seu valor com {{data.nome}}.
Ao longo da página você verá dois padrões de acesso aos dados:
- Notação de ponto — para acessar propriedades dentro de objetos:
{{data.valor.currency}} - Notação de colchete — para acessar itens dentro de listas por posição:
{{data.anexos[0].name}}
Se esses padrões não são familiares, consulte a página Notação de Acesso antes de continuar.
required) estão sempre presentes no objeto. Propriedades sem essa marcação são opcionais e podem não estar presentes dependendo do contexto ou da configuração do campo. Ao referenciar propriedades opcionais, considere que o valor pode estar vazio.Referência rápida
A tabela abaixo resume o tipo de dado retornado por cada campo. Para ver a estrutura completa e exemplos de acesso, consulte a seção correspondente.
Referência rápida
A tabela abaixo resume o tipo de dado retornado por cada campo. Para ver a estrutura completa e exemplos de acesso, consulte a seção correspondente.
| Nome oficial | Campo | Tipo de dado | Categoria |
|---|---|---|---|
| Texto curto | inputText | String | Texto |
| Texto longo | EnTextArea | String | Texto |
| Editor de texto HTML | EnHtml | String | Texto |
| Número | EnlNumber | Number | Valor e Tempo |
| Valor monetário | EnCurrency | Object | Valor e Tempo |
| Data | EnlCalendar | String | Valor e Tempo |
| Duração | EnlTimeRange | Object | Valor e Tempo |
| Lista de seleção | EnlDropdown | String | Opções |
| Botões de seleção única | radioButton | String | Opções |
| Alternativa binária | inputSwitch | Boolean | Opções |
| Lista de seleção múltipla | multiSelect | Array<String> | Opções |
| Caixas de seleção | EnlCheckbox | Array<String> | Opções |
| Tags | EnlChips | Array<String> | Especiais |
| Relacionamento simples | EnRel | Object | null | Relacionamento |
| Relacionamento múltiplo | EnRelMulti | Array<Object> | Relacionamento |
| Arquivos | uploadFile | Array<Object> | Mídia e Arquivos |
| Imagem | uploadImage | Array<Object> | Mídia e Arquivos |
EnPDF | Array<Object> | Mídia e Arquivos | |
| Documento Office | EnOnlyoffice | Object | Documentos |
| Anotações | EnNotes | Array<Object> | Especiais |
| Chat | EnChats | Array<Object> | Especiais |
| Grupo | group | Object | Estruturados |
| Repetidor | EnRepeater | Array<Object> | Estruturados |
| Endereço | EnAddress | Object | Compostos |
| Pessoa/Empresa | EnPerson | Object | Compostos |
Texto
Campos desta categoria armazenam conteúdo textual em diferentes formatos — desde strings simples até HTML rich text. Todos retornam String.
Texto curto — inputText
Campo de entrada de texto simples, sem formatação. Armazena uma string direta.
- Tipo de dado —
String
"João Silva"
Nos exemplos abaixo, assumimos que a referência do campo configurada no tipo é nome.
| Contexto | Exemplo | Resultado |
|---|---|---|
| Valor do campo | {{data.nome}} | "João Silva" |
| Concatenação | {{data.nome}} {{data.sobrenome}} | "João Silva Santos" |
| Referência ao campo | data.nome | Campo nome do item |
| Condição | {{#if data.nome}} | Verifica se o campo tem valor |
Texto longo — EnTextArea
Campo de texto longo, sem formatação rica. Ideal para observações, descrições detalhadas ou qualquer conteúdo textual extenso.
- Tipo de dado —
String
"Observações gerais sobre o contrato de prestação de serviços firmado em janeiro."
Nos exemplos abaixo, assumimos que a referência do campo configurada no tipo é observacoes.
| Contexto | Exemplo | Resultado |
|---|---|---|
| Valor do campo | {{data.observacoes}} | "Observações gerais..." |
| Concatenação | {{data.titulo}} - {{data.observacoes}} | Junta título e observação |
| Referência ao campo | data.observacoes | Campo observacoes do item |
| Condição | {{#if data.observacoes}} | Verifica se há observação |
Editor de texto HTML — EnHtml
Campo de texto com formatação HTML. O valor armazenado inclui tags HTML e deve ser tratado adequadamente ao ser renderizado em templates ou relatórios.
- Tipo de dado —
String
"<p>Contrato revisado com <strong>cláusula adicional</strong> sobre prazos.</p>"
Nos exemplos abaixo, assumimos que a referência do campo configurada no tipo é descricao.
| Contexto | Exemplo | Resultado |
|---|---|---|
| Valor do campo (renderiza HTML) | {{{data.descricao}}} | Renderiza HTML formatado |
| Valor como texto puro | {{data.descricao}} | Exibe com tags HTML visíveis |
| Referência ao campo | data.descricao | Campo descricao do item |
| Condição | {{#if data.descricao}} | Verifica se há conteúdo |
{{{data.campo}}}. Com chaves duplas {{data.campo}}, as tags HTML serão exibidas como texto.Valor e Tempo
Campos desta categoria armazenam valores numéricos, datas e intervalos temporais. Utilizados para quantidades, prazos, valores monetários e qualquer informação que envolva medição ou marcação de tempo.
Número — EnlNumber
Campo numérico que armazena valores inteiros ou decimais.
- Tipo de dado —
Number
1500.75
Nos exemplos abaixo, assumimos que a referência do campo configurada no tipo é quantidade.
| Contexto | Exemplo | Resultado |
|---|---|---|
| Valor do campo | {{data.quantidade}} | 1500.75 |
| Operação matemática | {{data.quantidade}} * 2 | 3001.5 |
| Referência ao campo | data.quantidade | Campo quantidade do item |
| Condição | {{#if data.quantidade}} | Verifica se tem valor |
Valor monetário — EnCurrency
Campo monetário que armazena um valor com informações de moeda e, opcionalmente, configurações de correção monetária. A propriedade value reflete o valor atual (já corrigido quando aplicável).
- Tipo de dado —
Object
{
"currency": "BRL",
"value": 1500.00,
"originalValue": 1200.00,
"config": {
"correction": {
"id": 1,
"fieldRefId": "campo_referencia",
"multiplePeriods": true,
"periods": [
{
"id": 1,
"indexCode": "IPCA",
"startDate": "2024-01-01",
"endDate": "2024-12-31",
"isPercentage": false,
"percentageValue": null,
"validity": "FINISHED",
"status": "SUCCESS",
"incrementedValue": 300.00,
"factorUsed": 1.25,
"indexName": "IPCA",
"lastIncrementedAt": "2024-12-31T23:59:59"
}
]
}
}
}
Nos exemplos abaixo, assumimos que a referência do campo configurada no tipo é valor.
| Contexto | Exemplo | Resultado |
|---|---|---|
| Valor monetário | {{data.valor.value}} | 1500.00 |
| Moeda | {{data.valor.currency}} | "BRL" |
| Valor original | {{data.valor.originalValue}} | 1200.00 |
| Referência do campo de correção | {{data.valor.config.correction.fieldRefId}} | "campo_referencia" |
| Código do índice do 1º período | {{data.valor.config.correction.periods[0].indexCode}} | "IPCA" |
| Fator usado no 1º período | {{data.valor.config.correction.periods[0].factorUsed}} | 1.25 |
| Iterar períodos | {{#each data.valor.config.correction.periods}} {{indexCode}}; {{/each}} | "IPCA; " |
| Referência ao campo | data.valor | Campo valor do item |
Propriedades do objeto:
| Propriedade | Tipo | Obrig. | Descrição |
|---|---|---|---|
currency | String | Sim | Código da moeda (ex: BRL, USD, EUR). |
value | Number | Sim | Valor monetário atual. Quando há correção monetária, este é o valor já corrigido. |
originalValue | Number | Não | Valor original antes de qualquer correção monetária. |
config.correction | Object | Não | Configuração de correção monetária, quando habilitada. |
Propriedades de config.correction:
| Propriedade | Tipo | Obrig. | Descrição |
|---|---|---|---|
fieldRefId | String | Sim | Identificador do campo de referência utilizado para a correção. |
multiplePeriods | Boolean | Não | Indica se a correção utiliza múltiplos períodos. |
periods | Array<Object> | Sim | Lista de períodos de correção aplicados ao valor. |
Propriedades de cada item em periods[]:
| Propriedade | Tipo | Obrig. | Descrição |
|---|---|---|---|
indexCode | String | Sim | Código do índice de correção (ex: IPCA, IGPM). |
startDate | Date | Sim | Data de início do período de correção. |
endDate | Date | Não | Data de fim do período. |
isPercentage | Boolean | Não | Se true, utiliza um percentual fixo em vez de índice. |
percentageValue | Number | Não | Valor percentual aplicado (quando isPercentage é true). |
validity | String | Não | Estado do período: ACTIVE (em andamento) ou FINISHED (encerrado). |
status | String | Não | Status do cálculo: PENDING, SUCCESS, FAILED ou WAITING-INDEX. |
incrementedValue | Number | Não | Valor do acréscimo calculado no período. |
factorUsed | Number | Não | Fator multiplicador utilizado no cálculo. |
indexName | String | Não | Nome legível do índice de correção. |
lastIncrementedAt | String | Não | Data/hora da última atualização do cálculo. |
errors | Array<Object> | Não | Lista de erros ocorridos no cálculo (quando status é FAILED). |
Data — EnlCalendar
Campo de data que armazena o valor em formato ISO 8601. A parte da hora geralmente é zerada (T00:00:00.000Z), mantendo apenas a informação da data.
- Tipo de dado —
String
"2024-06-15T00:00:00.000Z"
Nos exemplos abaixo, assumimos que a referência do campo configurada no tipo é data_vencimento.
| Contexto | Exemplo | Resultado |
|---|---|---|
| Valor do campo | {{data.data_vencimento}} | "2024-06-15T00:00:00.000Z" |
| Referência ao campo | data.data_vencimento | Campo data_vencimento do item |
| Condição | {{#if data.data_vencimento}} | Verifica se há data preenchida |
Duração — EnlTimeRange
Campo de intervalo de tempo que define uma duração relativa ou absoluta. Utilizado para prazos, períodos de vigência ou qualquer medida temporal em diferentes escalas.
- Tipo de dado —
Object
{
"period": "current",
"range": [0, 30],
"scale": "days",
"scaleValue": 30,
"applyFrom": "start",
"useRelativeTime": true
}
Nos exemplos abaixo, assumimos que a referência do campo configurada no tipo é prazo.
| Contexto | Exemplo | Resultado |
|---|---|---|
| Escala | {{data.prazo.scale}} | "days" |
| Valor da escala | {{data.prazo.scaleValue}} | 30 |
| Período | {{data.prazo.period}} | "current" |
| Ponto de referência | {{data.prazo.applyFrom}} | "start" |
| Tempo relativo | {{data.prazo.useRelativeTime}} | true |
| Intervalo | {{data.prazo.range}} | [0, 30] |
| Referência ao campo | data.prazo | Campo prazo do item |
Propriedades do objeto:
| Propriedade | Tipo | Obrig. | Descrição |
|---|---|---|---|
period | String | Sim | Referência temporal: current (período atual) ou before (período anterior). |
range | Array<Number> | Sim | Par de valores [início, fim] que define o intervalo numérico. |
scale | String | Sim | Unidade de medida: seconds, minutes, hours, days, weeks, months ou years. |
scaleValue | Number | Sim | Valor numérico correspondente à escala selecionada. |
applyFrom | String | Sim | Ponto de referência: start (a partir do início) ou end (a partir do fim). |
useRelativeTime | Boolean | Sim | Quando true, o intervalo é relativo à data atual. Quando false, utiliza datas absolutas. |
Opções
Campos desta categoria capturam escolhas do usuário — uma única opção, múltiplas opções ou estados booleanos. Retornam String, Boolean ou Array<String> conforme o tipo de seleção.
Lista de seleção — EnlDropdown
Lista suspensa que armazena o valor da opção selecionada. Apenas uma opção pode ser selecionada por vez.
- Tipo de dado —
String
"Em andamento"
Nos exemplos abaixo, assumimos que a referência do campo configurada no tipo é status.
| Contexto | Exemplo | Resultado |
|---|---|---|
| Valor do campo | {{data.status}} | "Em andamento" |
| Referência ao campo | data.status | Campo status do item |
| Condição | {{#if (eq data.status "Aprovado")}} | Verifica se status é "Aprovado" |
Botões de seleção única — radioButton
Grupo de botões de rádio que armazena o valor da opção selecionada. Funciona de forma similar à lista de seleção, mas com apresentação visual diferente.
- Tipo de dado —
String
"Aprovado"
Nos exemplos abaixo, assumimos que a referência do campo configurada no tipo é aprovacao.
| Contexto | Exemplo | Resultado |
|---|---|---|
| Valor do campo | {{data.aprovacao}} | "Aprovado" |
| Referência ao campo | data.aprovacao | Campo aprovacao do item |
| Condição | {{#if (eq data.aprovacao "Aprovado")}} | Verifica se aprovação é "Aprovado" |
Alternativa binária — inputSwitch
Interruptor liga/desliga que armazena um valor booleano: ativado (true) ou desativado (false).
- Tipo de dado —
Boolean
false
Nos exemplos abaixo, assumimos que a referência do campo configurada no tipo é ativo.
| Contexto | Exemplo | Resultado |
|---|---|---|
| Valor do campo | {{data.ativo}} | false |
| Referência ao campo | data.ativo | Campo ativo do item |
| Condição | {{#if data.ativo}} | Verifica se está ativado |
Lista de seleção múltipla — multiSelect
Campo de seleção múltipla que armazena uma lista das opções selecionadas.
- Tipo de dado —
Array<String>
["Financeiro", "Jurídico", "Compliance"]
Nos exemplos abaixo, assumimos que a referência do campo configurada no tipo é departamentos.
| Contexto | Exemplo | Resultado |
|---|---|---|
| Primeiro valor | {{data.departamentos[0]}} | "Financeiro" |
| Iterar valores | {{#each data.departamentos}} {{this}}; {{/each}} | "Financeiro; Jurídico; Compliance; " |
| Total de selecionados | {{data.departamentos.length}} | 3 |
| Referência ao campo | data.departamentos | Campo departamentos do item |
| Condição | {{#if data.departamentos}} | Verifica se há seleções |
{{data.departamentos[0]}} para acessar o primeiro item.Caixas de seleção — EnlCheckbox
Grupo de caixas de seleção que armazena uma lista das opções marcadas.
- Tipo de dado —
Array<String>
["Leitura", "Escrita", "Exclusão"]
Nos exemplos abaixo, assumimos que a referência do campo configurada no tipo é permissoes.
| Contexto | Exemplo | Resultado |
|---|---|---|
| Primeiro valor | {{data.permissoes[0]}} | "Leitura" |
| Iterar valores | {{#each data.permissoes}} {{this}}; {{/each}} | "Leitura; Escrita; Exclusão; " |
| Verificar se contém | {{#if (contains data.permissoes "Escrita")}} | Verifica se "Escrita" está marcada |
| Referência ao campo | data.permissoes | Campo permissoes do item |
{{data.permissoes[0]}} para acessar o primeiro item.Relacionamento
Campos desta categoria criam vínculos entre itens de diferentes tipos. Retornam objetos com id, reference e display, permitindo acesso tanto ao identificador técnico quanto às informações legíveis do item vinculado.
Relacionamento simples — EnRel
Campo que armazena a referência a um único item de outro tipo. Retorna null quando nenhum item está vinculado.
- Tipo de dado —
Object | null
{
"id": 1042,
"reference": "CONT-2024-001",
"display": "Contrato de Prestação de Serviços"
}
Nos exemplos abaixo, assumimos que a referência do campo configurada no tipo é contrato.
| Contexto | Exemplo | Resultado |
|---|---|---|
| Texto de exibição | {{data.contrato.display}} | "Contrato de Prestação de Serviços" |
| Código de referência | {{data.contrato.reference}} | "CONT-2024-001" |
| ID do item | {{data.contrato.id}} | 1042 |
| Referência ao campo | data.contrato | Campo contrato do item |
| Condição | {{#if data.contrato}} | Verifica se há item vinculado |
Propriedades do objeto:
| Propriedade | Tipo | Obrig. | Descrição |
|---|---|---|---|
id | Number | Sim | Identificador único do item vinculado no sistema. |
reference | String | Sim | Código de referência do item vinculado (ex: número do contrato, protocolo). |
display | String | Sim | Texto de exibição do item vinculado, conforme configurado no tipo de origem. |
Relacionamento múltiplo — EnRelMulti
Campo que armazena uma lista de referências a itens de outro tipo. Retorna uma lista vazia quando nenhum item está vinculado.
- Tipo de dado —
Array<Object>
[
{
"id": 1042,
"reference": "CONT-2024-001",
"display": "Contrato de Prestação de Serviços"
},
{
"id": 1043,
"reference": "CONT-2024-002",
"display": "Contrato de Licenciamento"
}
]
Nos exemplos abaixo, assumimos que a referência do campo configurada no tipo é contratos.
| Contexto | Exemplo | Resultado |
|---|---|---|
| Display do primeiro item | {{data.contratos[0].display}} | "Contrato de Prestação de Serviços" |
| Referência do segundo item | {{data.contratos[1].reference}} | "CONT-2024-002" |
| Iterar itens | {{#each data.contratos}} {{display}} ({{reference}}); {{/each}} | Lista todos os contratos |
| Total vinculados | {{data.contratos.length}} | 2 |
| Referência ao campo | data.contratos | Campo contratos do item |
| Condição | {{#if data.contratos}} | Verifica se há itens vinculados |
Cada item da lista possui as mesmas propriedades do Relacionamento simples: id, reference e display.
{{data.contratos[0].display}} para acessar o primeiro item.Mídia e Arquivos
Campos desta categoria armazenam arquivos anexados pelo usuário. Todos retornam Array<Object> onde cada objeto segue a estrutura EnFile com metadados do arquivo, URL de acesso e informações de armazenamento.
Arquivos — uploadFile
Campo de upload genérico que armazena uma lista de arquivos de qualquer tipo.
- Tipo de dado —
Array<EnFile>
[
{
"id": 287,
"created_at": "2024-06-15T14:30:00.000Z",
"updated_at": "2024-06-15T14:30:00.000Z",
"size": 204800,
"ext": ".pdf",
"width": null,
"height": null,
"name": "contrato-assinado.pdf",
"hash": "contrato_assinado_a1b2c3d4",
"url": "https://storage.enspace.com/uploads/contrato-assinado.pdf",
"mime": "application/pdf",
"alternativeText": null,
"caption": null,
"previewUrl": null,
"provider": "aws-s3"
}
]
Nos exemplos abaixo, assumimos que a referência do campo configurada no tipo é anexos.
| Contexto | Exemplo | Resultado |
|---|---|---|
| Nome do primeiro arquivo | {{data.anexos[0].name}} | "contrato-assinado.pdf" |
| URL do primeiro arquivo | {{data.anexos[0].url}} | URL do arquivo |
| Extensão | {{data.anexos[0].ext}} | ".pdf" |
| Tamanho | {{data.anexos[0].size}} | 204800 |
| Tipo MIME | {{data.anexos[0].mime}} | "application/pdf" |
| Iterar arquivos | {{#each data.anexos}} {{name}} ({{size}} bytes); {{/each}} | Lista todos os arquivos |
| Referência ao campo | data.anexos | Campo anexos do item |
Propriedades de cada arquivo (EnFile):
| Propriedade | Tipo | Obrig. | Descrição |
|---|---|---|---|
id | Number | Sim | Identificador único do arquivo no sistema. |
created_at | String | Sim | Data e hora de upload (formato ISO 8601). |
updated_at | String | Sim | Data e hora da última atualização. |
size | Number | Sim | Tamanho do arquivo em bytes. |
ext | String | Sim | Extensão do arquivo (ex: .pdf, .jpg, .docx). |
width | String | null | Não | Largura em pixels (apenas para imagens). |
height | String | null | Não | Altura em pixels (apenas para imagens). |
name | String | Sim | Nome original do arquivo. |
hash | String | Sim | Hash único do arquivo, utilizado internamente. |
url | String | Sim | URL pública para acesso ao arquivo. |
mime | String | Sim | Tipo MIME (ex: application/pdf, image/jpeg). |
alternativeText | String | null | Não | Texto alternativo descritivo. |
caption | String | null | Não | Legenda do arquivo. |
previewUrl | String | null | Não | URL de pré-visualização. |
provider | String | Sim | Provedor de armazenamento (ex: aws-s3). |
{{data.anexos[0].name}} para acessar o primeiro arquivo.Imagem — uploadImage
Campo de upload de imagens. A estrutura é idêntica ao Arquivos, com a diferença de que os campos width e height estarão preenchidos com as dimensões da imagem.
- Tipo de dado —
Array<EnFile>
[
{
"id": 288,
"created_at": "2024-06-15T14:35:00.000Z",
"updated_at": "2024-06-15T14:35:00.000Z",
"size": 102400,
"ext": ".jpg",
"width": 1920,
"height": 1080,
"name": "fachada-empresa.jpg",
"hash": "fachada_empresa_e5f6g7h8",
"url": "https://storage.enspace.com/uploads/fachada-empresa.jpg",
"mime": "image/jpeg",
"alternativeText": "Fachada da sede",
"caption": null,
"previewUrl": null,
"provider": "aws-s3"
}
]
Nos exemplos abaixo, assumimos que a referência do campo configurada no tipo é fotos.
| Contexto | Exemplo | Resultado |
|---|---|---|
| URL da primeira imagem | {{data.fotos[0].url}} | URL da imagem |
| Dimensões | {{data.fotos[0].width}}x{{data.fotos[0].height}} | "1920x1080" |
| Nome | {{data.fotos[0].name}} | "fachada-empresa.jpg" |
| Texto alternativo | {{data.fotos[0].alternativeText}} | "Fachada da sede" |
| Iterar imagens | {{#each data.fotos}} {{name}} ({{width}}x{{height}}); {{/each}} | Lista imagens com dimensões |
| Referência ao campo | data.fotos | Campo fotos do item |
{{data.fotos[0].url}} para acessar a primeira imagem.PDF — EnPDF
Campo específico para arquivos PDF. A estrutura de dados é idêntica à do Arquivos, diferenciando-se apenas na validação de tipo de arquivo permitido na interface.
- Tipo de dado —
Array<EnFile>
[
{
"id": 289,
"created_at": "2024-06-15T14:40:00.000Z",
"updated_at": "2024-06-15T14:40:00.000Z",
"size": 307200,
"ext": ".pdf",
"width": null,
"height": null,
"name": "relatorio-anual.pdf",
"hash": "relatorio_anual_i9j0k1l2",
"url": "https://storage.enspace.com/uploads/relatorio-anual.pdf",
"mime": "application/pdf",
"alternativeText": null,
"caption": null,
"previewUrl": null,
"provider": "aws-s3"
}
]
Nos exemplos abaixo, assumimos que a referência do campo configurada no tipo é documentos.
| Contexto | Exemplo | Resultado |
|---|---|---|
| Nome do primeiro PDF | {{data.documentos[0].name}} | "relatorio-anual.pdf" |
| URL do primeiro PDF | {{data.documentos[0].url}} | URL do PDF |
| Iterar PDFs | {{#each data.documentos}} {{name}}; {{/each}} | Lista PDFs |
| Referência ao campo | data.documentos | Campo documentos do item |
{{data.documentos[0].name}} para acessar o primeiro PDF.Documentos
Campos desta categoria gerenciam documentos editáveis e assináveis. Além do arquivo original, mantêm versões derivadas (PDF, assinado) e metadados do processo de assinatura.
Documento Office — EnOnlyoffice
Campo de editor de documentos integrado que armazena referências ao arquivo original, sua versão em PDF e o documento assinado digitalmente (quando aplicável).
- Tipo de dado —
Object
{
"document": {
"name": "contrato.docx",
"url": "https://storage.enspace.com/uploads/contrato.docx",
"ext": ".docx",
"size": 102400,
"mime": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"hash": "contrato_docx_a1b2",
"created_at": "2024-06-10T10:00:00.000Z",
"updated_at": "2024-06-10T10:00:00.000Z",
"provider": "aws-s3"
},
"document_pdf": {
"name": "contrato.pdf",
"url": "https://storage.enspace.com/uploads/contrato.pdf",
"ext": ".pdf",
"size": 204800,
"mime": "application/pdf",
"hash": "contrato_pdf_e5f6",
"created_at": "2024-06-10T10:05:00.000Z",
"updated_at": "2024-06-10T10:05:00.000Z",
"provider": "aws-s3"
},
"lastVersion": null,
"signed": {
"pdf": {
"name": "contrato-assinado.pdf",
"url": "https://storage.enspace.com/uploads/contrato-assinado.pdf",
"ext": ".pdf",
"size": 215000,
"mime": "application/pdf",
"hash": "contrato_signed_g7h8",
"created_at": "2024-06-12T16:00:00.000Z",
"updated_at": "2024-06-12T16:00:00.000Z",
"provider": "aws-s3"
},
"fileZip": "https://storage.enspace.com/uploads/contrato-evidencias.zip",
"created_at": "2024-06-12T16:00:00.000Z"
}
}
Nos exemplos abaixo, assumimos que a referência do campo configurada no tipo é doc.
| Contexto | Exemplo | Resultado |
|---|---|---|
| Nome do documento original | {{data.doc.document.name}} | "contrato.docx" |
| URL do PDF gerado | {{data.doc.document_pdf.url}} | URL do PDF |
| Nome do PDF assinado | {{data.doc.signed.pdf.name}} | "contrato-assinado.pdf" |
| URL do ZIP de evidências | {{data.doc.signed.fileZip}} | URL do ZIP |
| Data da assinatura | {{data.doc.signed.created_at}} | "2024-06-12T16:00:00.000Z" |
| Verificar se há assinatura | {{#if data.doc.signed}} | Verifica se documento foi assinado |
| Referência ao campo | data.doc | Campo doc do item |
Propriedades do objeto:
| Propriedade | Tipo | Obrig. | Descrição |
|---|---|---|---|
document | EnFile | Sim | Arquivo original do documento editável. |
document_pdf | EnFile | Sim | Versão em PDF gerada automaticamente. |
lastVersion | EnFile | Não | Última versão salva do documento. |
signed | Object | Não | Dados do documento assinado digitalmente. |
Propriedades de signed (quando presente):
| Propriedade | Tipo | Obrig. | Descrição |
|---|---|---|---|
pdf | EnFile | Sim | Arquivo PDF com as assinaturas aplicadas. |
fileZip | String | Sim | URL do arquivo ZIP contendo evidências da assinatura. |
created_at | String | Sim | Data e hora em que a assinatura foi concluída. |
Especiais
Campos desta categoria possuem comportamentos específicos — anotações, mensagens de chat e tags com estruturas de dados próprias.
Tags — EnlChips
Campo de tags que armazena uma lista de termos inseridos livremente pelo usuário. Útil para categorização dinâmica ou palavras-chave.
- Tipo de dado —
Array<String>
["urgente", "revisão", "contrato-2024"]
Nos exemplos abaixo, assumimos que a referência do campo configurada no tipo é tags.
| Contexto | Exemplo | Resultado |
|---|---|---|
| Primeira tag | {{data.tags[0]}} | "urgente" |
| Iterar tags | {{#each data.tags}} #{{this}} {{/each}} | "#urgente #revisão #contrato-2024 " |
| Total de tags | {{data.tags.length}} | 3 |
| Referência ao campo | data.tags | Campo tags do item |
{{data.tags[0]}} para acessar a primeira tag.Anotações — EnNotes
Campo de anotações que armazena uma lista de comentários vinculados ao item. Cada anotação inclui conteúdo, autor, arquivos anexos e status de leitura.
- Tipo de dado —
Array<Object>
[
{
"id": "note-001",
"created_at": "2024-06-15T14:30:00.000Z",
"updated_at": "2024-06-15T14:30:00.000Z",
"status": "open",
"type": "comment",
"content": "Revisar a cláusula 5 antes de enviar ao cliente.",
"answer": null,
"files": [],
"sender": {
"id": "user-123",
"name": "Maria Silva",
"email": "maria@empresa.com",
"phone": "+5511999999999",
"avatar": "https://storage.enspace.com/avatars/maria.jpg"
},
"seen_by": ["user-456", "user-789"]
}
]
Nos exemplos abaixo, assumimos que a referência do campo configurada no tipo é notas.
| Contexto | Exemplo | Resultado |
|---|---|---|
| Conteúdo da primeira nota | {{data.notas[0].content}} | "Revisar a cláusula 5..." |
| Autor da primeira nota | {{data.notas[0].sender.name}} | "Maria Silva" |
| E-mail do autor | {{data.notas[0].sender.email}} | "maria@empresa.com" |
| Status da nota | {{data.notas[0].status}} | "open" |
| Iterar notas | {{#each data.notas}} {{sender.name}}: {{content}}; {{/each}} | Lista todas as notas |
| Total de notas | {{data.notas.length}} | 1 |
| Referência ao campo | data.notas | Campo notas do item |
Propriedades de cada anotação:
| Propriedade | Tipo | Obrig. | Descrição |
|---|---|---|---|
id | String | Sim | Identificador único da anotação. |
created_at | String | Sim | Data e hora de criação. |
updated_at | String | Sim | Data e hora da última atualização. |
status | String | Sim | Status da anotação (ex: open, resolved). |
type | String | Sim | Tipo da anotação (ex: comment, note). |
content | String | Sim | Conteúdo textual da anotação. |
answer | any | Não | Resposta vinculada à anotação, quando houver. |
files | Array<EnFile> | Sim | Arquivos anexados. Cada item segue a estrutura EnFile documentada em Arquivos. |
sender | Object | Sim | Dados do autor da anotação. |
seen_by | Array<String> | Sim | Lista de IDs dos usuários que visualizaram a anotação. |
Propriedades de sender:
| Propriedade | Tipo | Obrig. | Descrição |
|---|---|---|---|
id | String | Sim | Identificador do autor. |
name | String | Sim | Nome do autor. |
email | String | Sim | E-mail do autor. |
phone | String | Não | Telefone de contato. |
avatar | String | Não | URL do avatar. |
{{data.notas[0].content}} para acessar a primeira anotação.Chat — EnChats
Campo de chat que armazena uma lista de mensagens. A estrutura de dados é idêntica à do Anotações — cada mensagem contém as mesmas propriedades: id, created_at, updated_at, status, type, content, answer, files, sender e seen_by.
- Tipo de dado —
Array<Object>
[
{
"id": "chat-001",
"created_at": "2024-06-15T15:00:00.000Z",
"updated_at": "2024-06-15T15:00:00.000Z",
"status": "open",
"type": "message",
"content": "O documento foi revisado e está pronto para assinatura.",
"answer": null,
"files": [],
"sender": {
"id": "user-456",
"name": "Pedro Santos",
"email": "pedro@empresa.com",
"phone": null,
"avatar": null
},
"seen_by": ["user-123"]
}
]
Nos exemplos abaixo, assumimos que a referência do campo configurada no tipo é mensagens.
| Contexto | Exemplo | Resultado |
|---|---|---|
| Conteúdo da primeira mensagem | {{data.mensagens[0].content}} | "O documento foi revisado..." |
| Autor da mensagem | {{data.mensagens[0].sender.name}} | "Pedro Santos" |
| E-mail do autor | {{data.mensagens[0].sender.email}} | "pedro@empresa.com" |
| Iterar mensagens | {{#each data.mensagens}} {{sender.name}}: {{content}}; {{/each}} | Lista todas as mensagens |
| Total de mensagens | {{data.mensagens.length}} | 1 |
| Referência ao campo | data.mensagens | Campo mensagens do item |
{{data.mensagens[0].content}} para acessar a primeira mensagem.Estruturados
Campos desta categoria definem a organização hierárquica dos dados. Agrupam campos relacionados ou permitem múltiplas repetições de um mesmo conjunto de campos.
Grupo — group
Campo de agrupamento que armazena seus campos internos como propriedades de um objeto. As chaves do objeto são as referências dos campos configurados dentro do grupo, e os valores seguem a estrutura de dados de cada tipo.
- Tipo de dado —
Object(chaves dinâmicas)
{
"nome_completo": "João Silva",
"data_nascimento": "1990-05-20T00:00:00.000Z",
"ativo": true
}
Nos exemplos abaixo, assumimos que a referência do campo configurada no tipo é dados_pessoais.
| Contexto | Exemplo | Resultado |
|---|---|---|
| Campo interno | {{data.dados_pessoais.nome_completo}} | "João Silva" |
| Data interna | {{data.dados_pessoais.data_nascimento}} | "1990-05-20T00:00:00.000Z" |
| Boolean interno | {{data.dados_pessoais.ativo}} | true |
| Referência ao grupo | data.dados_pessoais | Campo dados_pessoais do item |
| Condição | {{#if data.dados_pessoais.ativo}} | Verifica se campo interno está ativo |
Repetidor — EnRepeater
Campo repetidor que armazena uma lista de registros. Cada registro é um objeto com campos dinâmicos configurados no repetidor.
- Tipo de dado —
Array<Object>
[
{
"descricao": "Parcela 1",
"valor": { "currency": "BRL", "value": 500.00 },
"vencimento": "2024-07-01T00:00:00.000Z"
},
{
"descricao": "Parcela 2",
"valor": { "currency": "BRL", "value": 500.00 },
"vencimento": "2024-08-01T00:00:00.000Z"
}
]
Nos exemplos abaixo, assumimos que a referência do campo configurada no tipo é parcelas.
| Contexto | Exemplo | Resultado |
|---|---|---|
| Descrição da primeira parcela | {{data.parcelas[0].descricao}} | "Parcela 1" |
| Valor da primeira parcela | {{data.parcelas[0].valor.value}} | 500.00 |
| Moeda da primeira parcela | {{data.parcelas[0].valor.currency}} | "BRL" |
| Vencimento da primeira parcela | {{data.parcelas[0].vencimento}} | "2024-07-01T00:00:00.000Z" |
| Iterar parcelas | {{#each data.parcelas}} {{descricao}}: R${{valor.value}}; {{/each}} | Lista todas as parcelas |
| Total de parcelas | {{data.parcelas.length}} | 2 |
| Referência ao campo | data.parcelas | Campo parcelas do item |
descricao é um texto curto (String), valor é um valor monetário (Object) e vencimento é uma data (String). Mesmo que haja apenas um registro, o valor estará dentro de uma lista.Compostos
Campos desta categoria agrupam múltiplas informações relacionadas em um único objeto — como endereços completos ou dados de pessoa física/jurídica. A estrutura interna varia conforme o contexto.
Endereço — EnAddress
Campo de endereço completo que suporta formatos brasileiro e internacional. As propriedades preenchidas dependem da configuração do campo e do país selecionado.
- Tipo de dado —
Object
Formato brasileiro:
{
"cep": "01310-100",
"street": "Avenida Paulista",
"number": "1000",
"complement": "Sala 501",
"neighborhood": "Bela Vista",
"city": "São Paulo",
"state": "SP",
"country": "Brasil"
}
Formato internacional:
{
"addressLine1": "350 Fifth Avenue",
"addressLine2": "Suite 3300",
"postalCode": "10118",
"city": "New York",
"state": "NY",
"country": "United States"
}
Nos exemplos abaixo, assumimos que a referência do campo configurada no tipo é endereco.
| Contexto | Exemplo | Resultado |
|---|---|---|
| CEP | {{data.endereco.cep}} | "01310-100" |
| Logradouro | {{data.endereco.street}} | "Avenida Paulista" |
| Número | {{data.endereco.number}} | "1000" |
| Complemento | {{data.endereco.complement}} | "Sala 501" |
| Bairro | {{data.endereco.neighborhood}} | "Bela Vista" |
| Cidade | {{data.endereco.city}} | "São Paulo" |
| Estado | {{data.endereco.state}} | "SP" |
| País | {{data.endereco.country}} | "Brasil" |
| Linha 1 (internacional) | {{data.endereco.addressLine1}} | "350 Fifth Avenue" |
| Código postal (internacional) | {{data.endereco.postalCode}} | "10118" |
| Referência ao campo | data.endereco | Campo endereco do item |
| Condição | {{#if data.endereco.cep}} | Verifica se CEP está preenchido |
Propriedades do objeto:
| Propriedade | Tipo | Obrig. | Descrição |
|---|---|---|---|
city | String | Sim | Cidade. |
state | String | Sim | Estado ou região. |
country | String | Sim | País. |
street | String | Não | Logradouro (formato brasileiro). |
number | String | Não | Número do endereço. |
complement | String | Não | Complemento (ex: sala, andar, bloco). |
neighborhood | String | Não | Bairro (formato brasileiro). |
cep | String | Não | CEP — código de endereçamento postal brasileiro. |
zip4 | String | Não | Extensão de 4 dígitos do ZIP code (formato norte-americano). |
addressLine1 | String | Não | Primeira linha do endereço (formato internacional). |
addressLine2 | String | Não | Segunda linha do endereço (formato internacional). |
postalCode | String | Não | Código postal (formato internacional). |
Pessoa/Empresa — EnPerson
Campo de pessoa que armazena dados de pessoa física ou jurídica. A propriedade type define qual subobjeto está preenchido.
- Tipo de dado —
Object
Pessoa física:
{
"type": "natural_person",
"natural_person": {
"name": "João Silva",
"cpf": "123.456.789-00",
"rg": "12.345.678-9",
"marital_status": "Casado",
"profession": "Engenheiro",
"contact_name": "João Silva",
"contact_phone": "+5511999999999",
"contact_email": "joao@email.com"
}
}
Pessoa jurídica:
{
"type": "legal_person",
"legal_person": {
"cnpj": "12.345.678/0001-00",
"razao_social": "Empresa Exemplo LTDA",
"nome_fantasia": "Exemplo Corp",
"descricao_situacao_cadastral": "Ativa",
"data_inicio_atividade": "2015-03-10",
"cnae_fiscal": "6201-5/01",
"cnae_fiscal_descricao": "Desenvolvimento de programas de computador sob encomenda",
"contact_name": "Maria Souza",
"contact_phone": "+5511988888888",
"contact_email": "contato@exemplo.com"
}
}
Nos exemplos abaixo, assumimos que a referência do campo configurada no tipo é cliente.
| Contexto | Exemplo | Resultado |
|---|---|---|
| Tipo de pessoa | {{data.cliente.type}} | "natural_person" ou "legal_person" |
| Nome (PF) | {{data.cliente.natural_person.name}} | "João Silva" |
| CPF (PF) | {{data.cliente.natural_person.cpf}} | "123.456.789-00" |
| RG (PF) | {{data.cliente.natural_person.rg}} | "12.345.678-9" |
| Estado civil (PF) | {{data.cliente.natural_person.marital_status}} | "Casado" |
| Profissão (PF) | {{data.cliente.natural_person.profession}} | "Engenheiro" |
| Telefone (PF) | {{data.cliente.natural_person.contact_phone}} | "+5511999999999" |
| E-mail (PF) | {{data.cliente.natural_person.contact_email}} | "joao@email.com" |
| CNPJ (PJ) | {{data.cliente.legal_person.cnpj}} | "12.345.678/0001-00" |
| Razão social (PJ) | {{data.cliente.legal_person.razao_social}} | "Empresa Exemplo LTDA" |
| Nome fantasia (PJ) | {{data.cliente.legal_person.nome_fantasia}} | "Exemplo Corp" |
| Situação cadastral (PJ) | {{data.cliente.legal_person.descricao_situacao_cadastral}} | "Ativa" |
| CNAE (PJ) | {{data.cliente.legal_person.cnae_fiscal}} | "6201-5/01" |
| Descrição CNAE (PJ) | {{data.cliente.legal_person.cnae_fiscal_descricao}} | "Desenvolvimento de programas..." |
| Telefone (PJ) | {{data.cliente.legal_person.contact_phone}} | "+5511988888888" |
| E-mail (PJ) | {{data.cliente.legal_person.contact_email}} | "contato@exemplo.com" |
| Referência ao campo | data.cliente | Campo cliente do item |
| Condição por tipo | {{#if (eq data.cliente.type "natural_person")}} | Verifica se é pessoa física |
Propriedade raiz:
| Propriedade | Tipo | Obrig. | Descrição |
|---|---|---|---|
type | String | Sim | Tipo de pessoa: natural_person (pessoa física) ou legal_person (pessoa jurídica). |
Propriedades de natural_person (pessoa física):
| Propriedade | Tipo | Obrig. | Descrição |
|---|---|---|---|
name | String | Sim | Nome completo. |
cpf | String | Sim | Número do CPF. |
rg | String | Não | Número do RG. |
marital_status | String | Não | Estado civil. |
profession | String | Não | Profissão. |
contact_name | String | Não | Nome do contato. |
contact_phone | String | Não | Telefone de contato. |
contact_email | String | Não | E-mail de contato. |
Propriedades de legal_person (pessoa jurídica):
| Propriedade | Tipo | Obrig. | Descrição |
|---|---|---|---|
cnpj | String | Sim | Número do CNPJ. |
razao_social | String | Sim | Razão social da empresa. |
nome_fantasia | String | Não | Nome fantasia. |
descricao_situacao_cadastral | String | Não | Descrição da situação cadastral na Receita Federal. |
data_inicio_atividade | String | Não | Data de início das atividades. |
cnae_fiscal | String | Não | Código CNAE fiscal principal. |
cnae_fiscal_descricao | String | Não | Descrição do CNAE fiscal. |
contact_name | String | Não | Nome do contato. |
contact_phone | String | Não | Telefone de contato. |
contact_email | String | Não | E-mail de contato. |