Termo de Conclusão e Aceite de OS
O Termo de Conclusão e Aceite é o documento digital gerado automaticamente quando uma Ordem de Serviço é concluída. Ele formaliza a entrega do serviço, reúne os dados da OS, do cliente, dos técnicos e da executora, e pode ser assinado digitalmente pelo cliente.
O documento é gerado a partir de um template DOCX com variáveis (${VARIAVEL}), preenchido pelo sistema e convertido para PDF — que fica anexado à OS (termo_ciencia).
Como o documento é gerado
- O técnico conclui a OS no painel ou no Telegram (materiais, evidências, checklist de execução e, se exigido, a assinatura).
- O sistema monta o termo a partir do template DOCX com as variáveis da OS.
- As variáveis são preenchidas com os dados reais do cadastro e do atendimento.
- O DOCX é convertido para PDF e salvo como anexo da OS (tipo
termo_ciencia). - Se o cliente tiver e-mail, o sistema envia o termo junto com o link de acompanhamento (📌 Acompanhe seu serviço) e, quando disponível, um link único de avaliação (⭐ Avalie o serviço). O cliente acompanha o status da OS em tempo real e, se desejar, dá nota de 1 a 5 com comentário.
E-mail de acompanhamento na criação
O link de acompanhamento também é enviado ao cliente assim que a OS é aberta (e não só na conclusão). A página pública mostra o status atual e o histórico de etapas, com atualização automática — o cliente acompanha do início ao fim sem precisar ligar.
O termo gerado reúne os dados do cliente, da ordem e do atendimento, com as seções numeradas automaticamente.
Qual template é usado?
O sistema resolve o template nesta ordem:
| Prioridade | Origem | Quando usa |
|---|---|---|
| 1 | Template da prestadora | Quando a prestadora vinculada à OS tem um template próprio enviado em Configurações → Identidade/Logo |
| 2 | Template global | O Termo_Aceite_OS_LuariX.docx padrão (upload em Configurações → Configurações de OS) |
| 3 | Template base gerado | Se nenhum dos anteriores existir, o sistema gera um template base automaticamente |
Validação do modelo
Antes de usar, o sistema confere que o modelo contém todas as variáveis obrigatórias. Se faltar alguma, o modelo é recusado e o sistema avisa — evitando documentos quebrados.
Variáveis do template
Todas as tags usam o formato ${NOME}. O sistema substitui cada uma pelos dados reais no momento da conclusão. Valores vazios viram —.
Ordem de Serviço
| Variável | O que preenche | Obrigatória |
|---|---|---|
${OS_PROTOCOLO} |
Número do protocolo da OS (ex.: OS-20260806-0001) |
✅ |
${OS_TITULO} |
Título da OS | ✅ |
${OS_DESCRICAO} |
Descrição do problema informada na abertura | ✅ |
${OS_STATUS} |
Status final da OS (ex.: Concluída, Cancelada) | ✅ |
${OS_PRIORIDADE} |
Prioridade da OS (Baixa, Média, Alta, Urgente) | ✅ |
${OS_DATA_CRIACAO} |
Data/hora de abertura da OS (dd/mm/aaaa hh:mm:ss) |
✅ |
${OS_DATA_AGENDAMENTO} |
Data/hora agendada para o atendimento | ✅ |
${OS_DATA_EXECUCAO} |
Data/hora de início da execução | ✅ |
${OS_DATA_CONCLUSAO} |
Data/hora de conclusão da OS | ✅ |
${OS_RESUMO_SOLUCAO} |
Resumo da solução aplicada (campo de conclusão) | ✅ |
${OS_MOTIVO_CANCELAMENTO} |
Motivo do cancelamento (se a OS foi cancelada) | ✅ |
${OS_FEEDBACK_TECNICO} |
Feedback/observações do técnico | ✅ |
${OS_OBSERVACOES_INTERNAS} |
Observações internas da OS (não confidencial) | ✅ |
${OS_PRAZO_RESPOSTA} |
Prazo de resposta definido pelo SLA | ✅ |
${OS_PRAZO_RESOLUCAO} |
Prazo de resolução definido pelo SLA | ✅ |
Cliente
| Variável | O que preenche |
|---|---|
${CLIENTE_NOME} |
Nome ou razão social do cliente |
${CLIENTE_DOCUMENTO} |
CPF ou CNPJ do cliente |
${CLIENTE_TELEFONE} |
Telefone fixo |
${CLIENTE_CELULAR} |
Celular |
${CLIENTE_EMAIL} |
|
${CLIENTE_ENDERECO} |
Logradouro (endereço) |
${CLIENTE_NUMERO} |
Número do endereço |
${CLIENTE_COMPLEMENTO} |
Complemento (apto, sala, bloco...) |
${CLIENTE_CEP} |
CEP |
${CLIENTE_REFERENCIA} |
Ponto de referência |
${CLIENTE_OBSERVACOES} |
Observações do cadastro do cliente (campo Observações da tela de Cliente) — preenchido automaticamente pelo sistema a partir do registro do cliente; bloco CLIENTE_OBS (a linha só aparece se houver observações) |
Localização
| Variável | O que preenche |
|---|---|
${CIDADE_NOME} |
Cidade da OS (ou do cliente) |
${CIDADE_UF} |
UF da cidade |
${BAIRRO_NOME} |
Bairro da OS (ou do cliente) |
Categoria
| Variável | O que preenche |
|---|---|
${CATEGORIA_NOME} |
Categoria do serviço |
${CATEGORIA_DESCRICAO} |
Descrição da categoria |
${SUBCATEGORIA_NOME} |
Subcategoria do serviço |
Técnico (prestadora)
| Variável | O que preenche |
|---|---|
${TECNICO_NOME} |
Nome do técnico (usa o técnico interno como fallback) |
${TECNICO_EMAIL} |
E-mail (prestadora → interno) |
${TECNICO_TELEFONE} |
Telefone (prestadora → interno) |
${TECNICO_CELULAR} |
Celular |
${TECNICO_ESPECIALIDADE} |
Especialidade (prestadora → interno) |
Técnico Interno
| Variável | O que preenche |
|---|---|
${TECNICO_INTERNO_NOME} |
Nome do técnico interno |
${TECNICO_INTERNO_CPF} |
CPF do técnico interno |
${TECNICO_INTERNO_EMAIL} |
E-mail do técnico interno |
${TECNICO_INTERNO_TELEFONE} |
Telefone do técnico interno |
Prestadora executora
Identidade resolvida na ordem: identidade própria da prestadora → global → cadastro da prestadora → dados da empresa (super-admin).
| Variável | O que preenche |
|---|---|
${PRESTADORA_NOME} |
Razão social da executora |
${PRESTADORA_NOME_FANTASIA} |
Nome fantasia |
${PRESTADORA_DOCUMENTO} |
CNPJ/CPF |
${PRESTADORA_EMAIL} |
|
${PRESTADORA_TELEFONE} |
Telefone |
${PRESTADORA_ENDERECO} |
Endereço |
${PRESTADORA_NUMERO} |
Número |
${PRESTADORA_COMPLEMENTO} |
Complemento |
${PRESTADORA_CEP} |
CEP |
${PRESTADORA_CIDADE} |
Cidade |
${PRESTADORA_UF} |
UF |
Empresa Global (fallback)
| Variável | O que preenche |
|---|---|
${EMPRESA_NOME} |
Razão social da empresa global (dados do super-admin) |
${EMPRESA_NOME_FANTASIA} |
Nome fantasia |
${EMPRESA_DOCUMENTO} |
CNPJ/CPF |
${EMPRESA_EMAIL} |
|
${EMPRESA_TELEFONE} |
Telefone |
${EMPRESA_ENDERECO} |
Endereço |
${EMPRESA_NUMERO} |
Número |
${EMPRESA_COMPLEMENTO} |
Complemento |
${EMPRESA_CEP} |
CEP |
${EMPRESA_CIDADE} |
Cidade |
${EMPRESA_UF} |
UF |
Bloco condicional SECAO_EMPRESA
A seção "EMPRESA (FALLBACK GLOBAL)" só aparece no PDF quando a identidade da executora realmente veio do fallback global (a prestadora não tem identidade própria configurada). Quando a prestadora tem identidade própria, a seção é removida automaticamente para não duplicar informação. (Templates antigos que usam o bloco ${EMPRESA} ... ${/EMPRESA} continuam funcionando — o sistema aplica a mesma regra.)
Templates antigos sem blocos
Essa regra vale para o template padrão e para templates que usam os blocos ${EMPRESA} ... ${/EMPRESA}. Se um template enviado anteriormente não tiver o bloco (apenas as variáveis ${EMPRESA_*} soltas), a seção continua sendo exibida normalmente — os blocos ausentes são simplesmente ignorados pelo sistema.
Assinatura
| Variável | O que preenche |
|---|---|
${DATA_ASSINATURA} |
Data/hora do momento da assinatura |
${HORA_ASSINATURA} |
Hora da assinatura |
${IP_ASSINATURA} |
IP do dispositivo usado para assinar |
${ASSINATURA_IMAGEM} |
Imagem da assinatura digital coletada |
Equipamentos em comodato (bloco COMODATO)
Seção que relaciona os equipamentos que estão em comodato com o cliente no momento da conclusão (itens seriados cuja última movimentação foi uma saída para o cliente — ainda não devolvidos).
| Variável | O que preenche | Escopo |
|---|---|---|
${COMODATO_QTD} |
Total de equipamentos em comodato | Bloco COMODATO |
${COMODATO_PRODUTO} |
Nome do produto/equipamento | Item do bloco COMODATO_ITEM |
${COMODATO_SERIAL} |
Número de série do equipamento | Item do bloco COMODATO_ITEM |
${COMODATO_DATA} |
Data do empréstimo (dd/mm/aaaa) |
Item do bloco COMODATO_ITEM |
Materiais utilizados (bloco MATERIAIS)
Seção que relaciona os materiais consumidos na OS (movimentações de saída vinculadas à ordem — inclusive os que ficaram com o cliente).
| Variável | O que preenche | Escopo |
|---|---|---|
${MATERIAIS_QTD} |
Total de materiais utilizados | Bloco MATERIAIS |
${MATERIAIS_PRODUTO} |
Nome do material/produto | Item do bloco MATERIAIS_ITEM |
${MATERIAIS_SERIAL} |
Número de série (vazio para materiais sem serial) | Item do bloco MATERIAIS_ITEM |
${MATERIAIS_QTD_ITEM} |
Quantidade utilizada daquele material | Item do bloco MATERIAIS_ITEM |
Evidências (bloco EVIDENCIAS)
| Variável | O que preenche | Escopo |
|---|---|---|
${EVIDENCIAS_QTD} |
Total de fotos/anexos enviados na conclusão | Bloco EVIDENCIAS |
Checklist de execução (bloco CHECKLIST)
Seção que relaciona os itens da rotina executada na OS (checklist da categoria/snapshot da OS) com o resultado de cada etapa. Só aparece quando a OS tem itens de checklist.
| Variável | O que preenche | Escopo |
|---|---|---|
${CHECKLIST_QTD} |
Total de itens do checklist | Bloco CHECKLIST |
${CHECKLIST_NUM} |
Número do item na ordem (1., 2....) |
Item do bloco CHECKLIST_ITEM |
${CHECKLIST_ITEM_TEXTO} |
Descrição do item (ex.: "Testar DVR") | Item do bloco CHECKLIST_ITEM |
${CHECKLIST_ITEM_STATUS} |
Status do item — Executado ou Pendente | Item do bloco CHECKLIST_ITEM |
${CHECKLIST_ITEM_OBRIG} |
Se o item é Obrigatório ou Opcional | Item do bloco CHECKLIST_ITEM |
Integração com modelos próprios
A seção CHECKLIST já está integrada aos modelos próprios das prestadoras. Se um modelo personalizado não tiver a seção, o sistema a injeta automaticamente ao final do documento — o checklist nunca fica de fora do termo.
Identidade / Logo
| Variável | O que preenche |
|---|---|
${LOGO_IMAGEM} |
Logo da prestadora (ou fallback global) exibida no topo |
${FOOTER_TEXT} |
Texto do rodapé configurável (Identidade/Logo) |
Aliases (compatibilidade com templates antigos)
| Variável | Alias de |
|---|---|
${OS_DATA_ABERTURA} |
OS_DATA_CRIACAO (abertura da OS) |
${OS_DESCRICAO_INICIAL} |
OS_DESCRICAO (problema inicial) |
${OS_RESOLUCAO_TEXTO} |
OS_RESUMO_SOLUCAO (solução aplicada) |
${CLIENTE_CIDADE} |
CIDADE_NOME |
${CLIENTE_ESTADO} |
CIDADE_UF |
Termo dinâmico: seções e linhas condicionais + renumeração automática
O termo é totalmente dinâmico: cada seção e cada linha só aparece no PDF se houver informação real para exibir. Isso evita rótulos vazios ("—"), seções órfãs e números pulados.
Como funciona
- Linhas condicionais (
LINHA_*): uma linha (ex.: "Telefone / Celular") some quando todos os campos dela estão vazios. - Seções condicionais (
SECAO_*): uma seção inteira some quando nenhuma de suas linhas tem dado (ex.: sem técnico atribuído → seção de técnico não aparece; sem equipamentos → seção de comodato não aparece). - Renumeração automática (
SECAO_NUM_*): as seções visíveis são numeradas em sequência (1., 2., 3. ...) sem lacunas, na ordem do documento.
Blocos de seção
| Bloco (abre) | Fecha | Aparece quando |
|---|---|---|
${SECAO_CLIENTE} |
${/SECAO_CLIENTE} |
O cliente tem ao menos um dado (nome, documento, endereço, contato, obs...) |
${SECAO_OS} |
${/SECAO_OS} |
Sempre (a OS tem protocolo/status) |
${SECAO_COMODATO} |
${/SECAO_COMODATO} |
Existe ao menos um equipamento em comodato com o cliente |
${SECAO_MATERIAIS} |
${/SECAO_MATERIAIS} |
A OS tem ao menos um material vinculado |
${SECAO_EVIDENCIAS} |
${/SECAO_EVIDENCIAS} |
A OS tem fotos/anexos na conclusão |
${SECAO_CHECKLIST} |
${/SECAO_CHECKLIST} |
A OS tem ao menos um item de checklist (padrão da categoria ou adicionado manualmente) |
${SECAO_DESCRICAO} |
${/SECAO_DESCRICAO} |
Há descrição, solução, feedback ou observações |
${SECAO_ACEITE} |
${/SECAO_ACEITE} |
Sempre (texto legal fixo) |
${SECAO_ASSINATURA} |
${/SECAO_ASSINATURA} |
Sempre (assinatura digital) |
${SECAO_PRESTADORA} |
${/SECAO_PRESTADORA} |
A executora tem ao menos um dado de identidade |
${SECAO_EMPRESA} |
${/SECAO_EMPRESA} |
A identidade da executora veio do fallback global (prestadora sem identidade própria) |
Blocos de linha
Cada bloco de linha só aparece quando o(s) campo(s) correspondente(s) tem valor. Os principais:
| Bloco (abre) | Linha que controla |
|---|---|
${LINHA_LOGO} |
Logo da executora (só se houver logo configurada) |
${LINHA_CLIENTE_NOME} / ${LINHA_CLIENTE_DOC} |
Nome e CPF/CNPJ do cliente |
${LINHA_CLIENTE_ENDERECO} |
Endereço/numero/complemento do cliente |
${LINHA_CLIENTE_LOCAL} |
Bairro/cidade/UF/CEP |
${LINHA_CLIENTE_CONTATO} |
Telefone ou celular |
${LINHA_CLIENTE_EMAIL} / ${LINHA_CLIENTE_REF} |
E-mail e referência |
${CLIENTE_OBS} |
Linha de observações do cliente — preenchida automaticamente com o campo Observações do cadastro; some quando o cliente não tem observações |
${LINHA_COMODATO_QTD} |
Linha "Total de equipamentos" — sempre presente quando a seção de comodato é visível (a seção SECAO_COMODATO controla a visibilidade) |
${LINHA_MATERIAIS_QTD} |
Linha "Total de materiais" — sempre presente quando a seção de materiais é visível (a seção SECAO_MATERIAIS controla a visibilidade) |
${LINHA_EVIDENCIAS_QTD} |
Linha "Total de evidências" — sempre presente quando a seção de evidências é visível (a seção SECAO_EVIDENCIAS controla a visibilidade) |
${LINHA_CHECKLIST_QTD} |
Linha "Total de itens" do checklist — presente quando a seção de checklist é visível (a seção SECAO_CHECKLIST controla a visibilidade) |
${LINHA_OS_TITULO} ... ${LINHA_OS_MOTIVO_CANCEL} |
Cada linha da seção da OS (título, status, datas, prazos, categoria, técnico, motivo de cancelamento) |
${LINHA_DESC_PROBLEMA} ... ${LINHA_DESC_OBS} |
Cada linha da descrição (problema, solução, feedback, observações) |
${LINHA_PREST_NOME} ... ${LINHA_PREST_CONTATO} |
Cada linha da prestadora (nome, CNPJ, endereço, local, contato) |
${LINHA_ASSINATURA_DATA} / ${LINHA_ASSINATURA_IP} |
Data/hora e IP da assinatura |
Blocos de item (repetição)
| Bloco (abre) | Comportamento |
|---|---|
${COMODATO_ITEM} ... ${/COMODATO_ITEM} |
Repete o modelo do item uma vez por equipamento em comodato |
${MATERIAIS_ITEM} ... ${/MATERIAIS_ITEM} |
Repete o modelo do item uma vez por material da OS |
${CHECKLIST_ITEM} ... ${/CHECKLIST_ITEM} |
Repete o modelo do item uma vez por item do checklist da OS |
Variáveis de numeração
As variáveis ${SECAO_NUM_*} (ex.: ${SECAO_NUM_CLIENTE}, ${SECAO_NUM_OS}...) são preenchidas automaticamente com "1. ", "2. "... somente para as seções visíveis, na ordem do documento. Não é preciso (nem recomendado) escrever números fixos no título.
Usando blocos no seu template
- Cada marcador (
${NOME}e${/NOME}) deve ficar em um parágrafo próprio no DOCX. - Os blocos de item (
COMODATO_ITEMeMATERIAIS_ITEM) são repetidos automaticamente — um bloco por linha de item no modelo. - Os blocos de linha podem ficar aninhados dentro das seções (estrutura seção → linha → item).
- Templates antigos sem os blocos continuam funcionando: o sistema simplesmente mantém as seções sempre visíveis (os blocos ausentes são ignorados).
Onde gerenciar o template
| O que | Onde |
|---|---|
| Enviar/baixar o template global e ver as variáveis | Configurações → Configurações de OS |
| Enviar template próprio da prestadora e logo | Configurações → Identidade/Logo |
Documento sem assinatura
Quando a OS é concluída sem coleta de assinatura, o termo é gerado com uma imagem padrão de "sem assinatura" no lugar da assinatura — os demais dados são preenchidos normalmente.
Sobre a geração do documento
A conversão do modelo para PDF é feita automaticamente pelo sistema no momento da conclusão da OS.