---
title: "Exemplos práticos de Regras Condicionais"
description: "Guia Prático com Exemplos e Dicas"
url: https://ajuda.sensio.com.br/pt-br/articles/13240851-exemplos-praticos-de-regras-condicionais
collection: "Cadastros"
updated: 2026-07-13
language: pt-br
---

# Exemplos práticos de Regras Condicionais

Guia Prático com Exemplos e Dicas

As **Regras Condicionais** permitem automatizar comportamentos dos formulários do sistema: tornar campos obrigatórios, preencher valores automaticamente, ocultar campos, exibir avisos ou bloquear o salvamento — tudo com base em condições que você define, sem precisar de programação.

Este guia traz um catálogo de **exemplos prontos para o dia a dia**, organizados por área da empresa, com o passo a passo de configuração de cada um.

* * *

## **Índice**

1.  [Como funcionam as regras](https://ajuda.sensio.com.br/pt-br/articles/13240851-exemplos-praticos-de-regras-condicionais.md#heading-1-como-funcionam-as-regras)
    
2.  [Como criar uma regra](https://ajuda.sensio.com.br/pt-br/articles/13240851-exemplos-praticos-de-regras-condicionais.md#heading-4-como-criar-uma-regra)
    
3.  [Exemplos para Vendas e Pedidos](https://ajuda.sensio.com.br/pt-br/articles/13240851-exemplos-praticos-de-regras-condicionais.md#heading-5-exemplos-para-vendas-e-pedidos)
    
4.  [Exemplos Fiscais](https://ajuda.sensio.com.br/pt-br/articles/13240851-exemplos-praticos-de-regras-condicionais.md#heading-18-exemplos-fiscais)
    
5.  [Exemplos para Logística e Entrega](https://ajuda.sensio.com.br/pt-br/articles/13240851-exemplos-praticos-de-regras-condicionais.md#heading-24-exemplos-para-log-stica-e-entrega)
    
6.  [Exemplos para o Financeiro](https://ajuda.sensio.com.br/pt-br/articles/13240851-exemplos-praticos-de-regras-condicionais.md#heading-29-exemplos-para-o-financeiro)
    
7.  [Exemplos para o Cadastro de Pessoas](https://ajuda.sensio.com.br/pt-br/articles/13240851-exemplos-praticos-de-regras-condicionais.md#heading-34-exemplos-para-o-cadastro-de-pessoas)
    
8.  [Exemplos para o Cadastro de Itens](https://ajuda.sensio.com.br/pt-br/articles/13240851-exemplos-praticos-de-regras-condicionais.md#heading-42-exemplos-para-o-cadastro-de-itens)
    
9.  [Exemplos para Ordens de Produção](https://ajuda.sensio.com.br/pt-br/articles/13240851-exemplos-praticos-de-regras-condicionais.md#heading-49-exemplos-para-ordens-de-produ-o)
    
10.  [Regras por usuário e por empresa](https://ajuda.sensio.com.br/pt-br/articles/13240851-exemplos-praticos-de-regras-condicionais.md#heading-53-regras-por-usu-rio-e-por-empresa)
     
11.  [Usando campos personalizados](https://ajuda.sensio.com.br/pt-br/articles/13240851-exemplos-praticos-de-regras-condicionais.md#heading-57-usando-campos-personalizados)
     
12.  [Boas práticas](https://ajuda.sensio.com.br/pt-br/articles/13240851-exemplos-praticos-de-regras-condicionais.md#heading-61-boas-pr-ticas)
     
13.  [Perguntas frequentes](https://ajuda.sensio.com.br/pt-br/articles/13240851-exemplos-praticos-de-regras-condicionais.md#heading-62-perguntas-frequentes)
     

* * *

## **Como funcionam as regras**

Toda regra segue a mesma lógica:

> **SE** uma condição for verdadeira, **ENTÃO** execute ações. **SENÃO**, execute outras ações (opcional).

Uma regra é composta por:

-   **Documento**: em qual cadastro a regra atua — **Pedidos**, **Ordens de Produção**, **Lançamentos**, **Itens** ou **Pessoas**. As regras valem tanto na criação quanto na edição desses cadastros.
    
-   **Executar quando** (gatilho):
    
    -   **Campo alterado**: a regra é avaliada em tempo real, a cada mudança nos campos do formulário. Ideal para preencher valores automaticamente, mostrar/ocultar campos e tornar campos obrigatórios de forma dinâmica.
        
    -   **Salvar**: a regra é avaliada no momento de salvar. Ideal para validações finais que bloqueiam ou alertam.
        
    -   É possível marcar os dois gatilhos na mesma regra.
        
-   **Condição**: uma ou mais comparações combinadas com **Todas (E)** ou **Qualquer (OU)**. Também é possível criar **grupos** de condições para lógicas mais elaboradas, como "(A e B) ou C".
    
-   **Então faça...**: ações executadas quando a condição é verdadeira.
    
-   **Senão faça...**: ações executadas quando a condição é falsa (opcional).
    
-   **Reverter ações automaticamente**: quando ativado, se a condição deixar de ser verdadeira, as ações do "Então" são desfeitas automaticamente (por exemplo, o campo deixa de ser obrigatório). Recomendamos manter ativado na maioria dos casos.
    
-   **Status**: habilitado ou desabilitado. Você pode desativar uma regra sem excluí-la.
    
-   **Prioridade**: as regras são executadas na ordem em que aparecem na listagem. Use as setas ou arraste as linhas para reordenar. Se duas regras mexem no mesmo campo, a que executa por último prevalece.
    

### **Operadores disponíveis nas condições**

<table data-id="74dc884c-4a94-4cbf-92a9-c66f65c2bcef" style="min-width: 50px;"><colgroup><col style="min-width: 25px;"><col style="min-width: 25px;"></colgroup><tbody><tr><td colspan="1" rowspan="1"><p data-id="0979fcd3-b17c-4621-88a1-2487dcac4754"><strong>Operador</strong></p></td><td colspan="1" rowspan="1"><p data-id="73e551f7-ecb8-405a-b89b-475ce65950de"><strong>Uso típico</strong></p></td></tr><tr><td colspan="1" rowspan="1" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"><p data-id="287731cd-5ffe-44bf-bc54-484a07843f6d">é igual a / é diferente de</p></td><td colspan="1" rowspan="1" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"><p data-id="42d0c1ed-4e00-4506-bdad-2c535ff5c0b3">comparar com um valor específico</p></td></tr><tr><td colspan="1" rowspan="1" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"><p data-id="ba5f5d6d-9e3c-48c7-85f2-ebfeccc383b2">é maior que / é menor que / é maior ou igual a / é menor ou igual a</p></td><td colspan="1" rowspan="1" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"><p data-id="31741767-7867-49a0-9b81-c9d992a33bb0">valores e datas</p></td></tr><tr><td colspan="1" rowspan="1" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"><p data-id="58f738fa-a2ff-443d-9c20-b12b31fee3cd">contém / não contém</p></td><td colspan="1" rowspan="1" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"><p data-id="d5a5d3b0-21db-4adc-a755-2c9c1394e22b">textos e listas (ex.: Tags)</p></td></tr><tr><td colspan="1" rowspan="1" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"><p data-id="4f183821-06de-4521-86aa-d3c2ab620f07">está vazio / não está vazio</p></td><td colspan="1" rowspan="1" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"><p data-id="880ffc8f-5a38-49de-9262-10e670c27414">verificar preenchimento</p></td></tr><tr><td colspan="1" rowspan="1" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"><p data-id="affd0d50-50ed-4fcb-bfa2-8b75735e967e">está entre</p></td><td colspan="1" rowspan="1" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"><p data-id="f78c23d3-7c77-4805-be42-f7a1b0e4afb6">faixas de valores ou datas (mínimo e máximo)</p></td></tr></tbody></table>

Na comparação, você pode usar um **valor fixo** ou **copiar de outro campo** do mesmo documento — o que permite, por exemplo, comparar duas datas do pedido entre si.

### **Ações disponíveis**

<table data-id="201011e3-bbeb-40e0-a56f-196dbdfd3fb3" style="min-width: 50px;"><colgroup><col style="min-width: 25px;"><col style="min-width: 25px;"></colgroup><tbody><tr><td colspan="1" rowspan="1"><p data-id="120a6950-0a78-42da-bf31-f1080ea0218b"><strong>Ação</strong></p></td><td colspan="1" rowspan="1"><p data-id="8684dd89-9af9-4920-82ac-26ce1de925e8"><strong>O que faz</strong></p></td></tr><tr><td colspan="1" rowspan="1" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"><p data-id="a095b145-2976-4827-874b-e9977560213d"><strong>Mostrar</strong> / <strong>Ocultar</strong></p></td><td colspan="1" rowspan="1" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"><p data-id="ab497538-58d3-4451-a993-bb07a2bc09c5">exibe ou esconde um campo do formulário</p></td></tr><tr><td colspan="1" rowspan="1" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"><p data-id="c0db8a8e-d660-4f7b-bad2-c3d56c5e553c"><strong>Tornar obrigatório</strong> / <strong>Tornar opcional</strong></p></td><td colspan="1" rowspan="1" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"><p data-id="1f05be94-74c5-4b44-a414-97d1fd753712">exige (ou não) o preenchimento de um campo</p></td></tr><tr><td colspan="1" rowspan="1" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"><p data-id="5d4a6fee-27cb-4c63-afb8-46aa30e73cb1"><strong>Definir</strong></p></td><td colspan="1" rowspan="1" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"><p data-id="ca69262b-ca21-4f99-886f-eb03104989e2">preenche um campo automaticamente, com um valor fixo ou copiado de outro campo</p></td></tr><tr><td colspan="1" rowspan="1" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"><p data-id="2d08d99a-0154-49d5-b9fa-be01a43460e6"><strong>Limpar</strong></p></td><td colspan="1" rowspan="1" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"><p data-id="3ab143ff-28e7-46ae-9184-2fcff55f4c84">apaga o valor de um campo</p></td></tr><tr><td colspan="1" rowspan="1" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"><p data-id="10074d18-416a-4e45-9d74-8f55724a171e"><strong>Erro</strong></p></td><td colspan="1" rowspan="1" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"><p data-id="8871e310-6e76-4aff-84f7-147f1b9a5654">exibe uma mensagem de erro e <strong>bloqueia o salvamento</strong></p></td></tr><tr><td colspan="1" rowspan="1" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"><p data-id="2bcb0cbe-5f56-4358-a18e-912e111b7103"><strong>Avisar</strong></p></td><td colspan="1" rowspan="1" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"><p data-id="b8c12f10-930c-4e89-aa7a-7577fccea68a">exibe uma mensagem de alerta, mas <strong>permite salvar</strong></p></td></tr></tbody></table>

* * *

## **Como criar uma regra**

1.  Acesse a página da **Empresa**, clique no botão **Ações** e escolha **Regras condicionais de campos** (disponível para o perfil Administrador).
    
2.  Na listagem de regras, clique em **Adicionar**.
    
3.  Preencha as **Informações da Regra** (nome e descrição). Use nomes claros, como "Bonificação — cenário fiscal automático".
    
4.  Em **Quando Aplicar**, escolha o **Documento** e o gatilho em **Executar quando**.
    
5.  Monte a **Condição**: escolha o campo, o operador e o valor. Adicione outras condições ou grupos se precisar.
    
6.  Adicione as ações em **Então faça...** e, se quiser, em **Senão faça...**.
    
7.  Confira o resumo no **Preview da Regra** e clique em **Salvar Regra**.
    

Nos exemplos abaixo, usamos este formato:

> **Documento:** Pedidos · **Executar quando:** Campo alterado  
> **Se:** Tipo **é igual a** Bonificação/Remessa  
> **Então:** Definir Cenário Fiscal = \[seu cenário de bonificação\]

* * *

## **Exemplos para Vendas e Pedidos**

### **1\. Exigir o código do pedido de compra (OC) para clientes específicos**

Grandes redes e indústrias costumam exigir a ordem de compra na nota. Evite retrabalho exigindo o número já no pedido.

> **Documento:** Pedidos · **Executar quando:** Campo alterado e Salvar  
> **Se:** Cliente/Fornecedor **é igual a** \[cliente que exige OC\] > **Então:** Tornar obrigatório Código Pedido/OC do Cliente

Dica: com o operador **é igual a** você pode selecionar mais de um cliente na mesma condição.

### **2\. Tabela de preço automática por vendedor**

Direciona cada vendedor (ou equipe) para a tabela correta, evitando descontos indevidos.

> **Documento:** Pedidos · **Executar quando:** Campo alterado  
> **Se:** Vendedor **é igual a** \[vendedor da equipe atacado\] > **Então:** Definir Tabela = \[tabela Atacado\]

### **3\. Conta de recebimento automática por método de pagamento**

Padroniza para onde vai cada tipo de recebimento, sem depender de o usuário lembrar.

> **Documento:** Pedidos · **Executar quando:** Campo alterado  
> **Se:** Método de pagamento **é igual a** PIX  
> **Então:** Definir Conta para lançamento = \[conta que recebe PIX\]

Crie uma regra semelhante para cartão, boleto etc., cada uma apontando para a conta correta.

### **4\. Comissão zerada em bonificação**

Bonificações não devem gerar comissão para o vendedor.

> **Documento:** Pedidos · **Executar quando:** Campo alterado  
> **Se:** Tipo **é igual a** Bonificação/Remessa  
> **Então:** Definir Comissão = 0

### **5\. Exigir vendedor em pedidos acima de um valor**

Garante que vendas relevantes sempre tenham um responsável comercial.

> **Documento:** Pedidos · **Executar quando:** Campo alterado e Salvar  
> **Se:** Total Bruto **é maior que** 10.000  
> **Então:** Tornar obrigatório Vendedor  
> **Reverter ações:** ativado

### **6\. Condição de pagamento obrigatória em vendas em determinado método de pagamento**

> **Documento:** Pedidos · **Executar quando:** Campo alterado e Salvar  
> **Se:** Método de pagamento **é igual a** Boleto Bancário  
> **Então:** Tornar obrigatório Condições de pagamento

### **7\. Alertar vendas em dinheiro de alto valor**

> **Documento:** Pedidos · **Executar quando:** Salvar  
> **Se:** Método de pagamento **é igual a** Dinheiro **E** Total Bruto **é maior que** 5.000  
> **Então:** Avisar "Venda em espécie acima de R$ 5.000 — confirme o recebimento com o financeiro."

### **8\. Previsão de faturamento obrigatória em vendas**

Ajuda o time de expedição e o fluxo de caixa a se programarem.

> **Documento:** Pedidos · **Executar quando:** Campo alterado e Salvar  
> **Se:** Tipo **é igual a** Venda  
> **Então:** Tornar obrigatório Previsão Faturamento

### **9\. Simplificar a tela para orçamentos**

Orçamento não precisa de dados de entrega — esconda o que não é usado e reduza o ruído para o vendedor.

> **Documento:** Pedidos · **Executar quando:** Campo alterado  
> **Se:** Tipo **é igual a** Orçamento  
> **Então:** Ocultar Transportador · Ocultar Previsão de Entrega · Ocultar Valor de Frete  
> **Senão:** Mostrar Transportador · Mostrar Previsão de Entrega · Mostrar Valor de Frete

### **10\. Lembrete em vendas consignadas**

> **Documento:** Pedidos · **Executar quando:** Salvar  
> **Se:** Tipo **é igual a** Venda Consignada  
> **Então:** Avisar "Lembre-se de acompanhar o retorno da consignação."

### **11\. Pedidos com a tag "Urgente" exigem prazo e transportador**

Se sua equipe usa tags para sinalizar prioridade, transforme a tag em processo.

> **Documento:** Pedidos · **Executar quando:** Campo alterado e Salvar  
> **Se:** Tags **contém** Urgente  
> **Então:** Tornar obrigatório Previsão de Entrega · Tornar obrigatório Transportador

### **12\. Validar coerência entre datas do pedido**

Compare campos entre si usando a opção **Copiar de outro campo** no valor da condição.

> **Documento:** Pedidos · **Executar quando:** Salvar  
> **Se:** Previsão de Entrega **é menor que** Data da venda _(valor: copiar do campo Data da venda)_ > **Então:** Erro "A previsão de entrega não pode ser anterior à data da venda."

* * *

## **Exemplos Fiscais**

### **13\. Cenário fiscal padrão para bonificação**

O clássico: sempre que o tipo do pedido for **Bonificação/Remessa**, o cenário fiscal de bonificação é aplicado automaticamente — sem risco de sair nota com CFOP errado.

> **Documento:** Pedidos · **Executar quando:** Campo alterado  
> **Se:** Tipo **é igual a** Bonificação/Remessa  
> **Então:** Definir Cenário Fiscal = \[seu cenário de bonificação\] > **Reverter ações:** ativado (se o tipo mudar, o cenário é limpo)

### **14\. Cenário fiscal para devoluções**

> **Documento:** Pedidos · **Executar quando:** Campo alterado  
> **Se:** Tipo **é igual a** Devolução  
> **Então:** Definir Cenário Fiscal = \[seu cenário de devolução\]

Repita o padrão para **Transferência**, **Ordem de Serviço** ou qualquer tipo com tratamento fiscal próprio. Uma regra por tipo mantém tudo organizado.

### **15\. Impedir lançamento sem cenário fiscal em vendas**

> **Documento:** Pedidos · **Executar quando:** Salvar  
> **Se:** Tipo **é igual a** Venda **E** Cenário Fiscal **está vazio** > **Então:** Erro "Selecione o cenário fiscal antes de salvar o pedido."

### **16\. Alerta para clientes de outro estado**

Operações interestaduais costumam ter tributação diferente (ICMS-ST, DIFAL). Um aviso no momento certo evita nota emitida errada.

> **Documento:** Pedidos · **Executar quando:** Campo alterado  
> **Se:** Estado (grupo Pessoa) **é diferente de** \[UF da sua empresa\] > **Então:** Avisar "Cliente de outro estado — confira o cenário fiscal interestadual."

Se você já tem um cenário fiscal específico para operações interestaduais, use **Definir Cenário Fiscal** em vez do aviso.

### **17\. Exigir motivo em pedidos do tipo "Outros"**

> **Documento:** Pedidos · **Executar quando:** Campo alterado e Salvar  
> **Se:** Tipo **é igual a** Outros  
> **Então:** Tornar obrigatório Observações para Entrega _(ou um campo personalizado "Motivo")_

* * *

## **Exemplos para Logística e Entrega**

### **18\. Previsão de entrega obrigatória para determinados usuários**

Útil quando parte da equipe ainda está criando o hábito de preencher o prazo.

> **Documento:** Pedidos · **Executar quando:** Campo alterado e Salvar  
> **Se:** Usuário **é igual a** \[usuário X\] > **Então:** Tornar obrigatório Previsão de Entrega

O campo **Usuário** compara com o usuário que está logado no sistema — a regra só afeta as pessoas selecionadas.

### **19\. Transportador obrigatório quando há frete**

> **Documento:** Pedidos · **Executar quando:** Campo alterado e Salvar  
> **Se:** Tipo do Transporte **é diferente de** 9 - Sem frete  
> **Então:** Tornar obrigatório Transportador · Tornar obrigatório Endereço de Entrega  
> **Senão:** Tornar opcional Transportador · Tornar opcional Endereço de Entrega

### **21\. Valor de frete obrigatório em frete CIF**

Se o frete é por conta da sua empresa, o valor precisa estar no pedido para não corroer a margem.

> **Documento:** Pedidos · **Executar quando:** Campo alterado e Salvar  
> **Se:** Tipo do Transporte **é igual a** 0 - Contratação de frete por conta do remetente (CIF)  
> **Então:** Tornar obrigatório Valor de Frete

### **20\. Instruções de entrega para transportadora específica**

Alguma transportadora exige agendamento ou tem regras próprias de coleta? Deixe o sistema lembrar por você.

> **Documento:** Pedidos · **Executar quando:** Campo alterado  
> **Se:** Transportador **é igual a** \[transportadora\] > **Então:** Tornar obrigatório Observações para Entrega · Avisar "Esta transportadora exige agendamento prévio da coleta."

* * *

## **Exemplos para o Financeiro**

As regras de **Lançamentos** atuam na tela de criação e edição de lançamentos financeiros.  
Atenção, essas regras somente valem para lançamentos criados manualmente — não afetam lançamentos automáticos de pedidos, NFs ou conciliações bancárias.

### **21\. Centro de custo automático por fornecedor**

Contas recorrentes (energia, aluguel, internet) sempre caem no mesmo centro de custo — automatize.

> **Documento:** Lançamentos · **Executar quando:** Campo alterado  
> **Se:** Pessoa **é igual a** \[fornecedor de energia\] > **Então:** Definir Centro de Custo = \[Administrativo\]

### **22\. Centro de custo obrigatório para determinados usuários**

Enquanto a equipe se acostuma com o rateio por centro de custo, exija o preenchimento de quem lança despesas.

> **Documento:** Lançamentos · **Executar quando:** Campo alterado e Salvar  
> **Se:** Usuário **é igual a** \[usuários do financeiro\] > **Então:** Tornar obrigatório Centro de Custo

### **23\. Justificativa para lançamentos em dinheiro**

> **Documento:** Lançamentos · **Executar quando:** Campo alterado e Salvar  
> **Se:** Método de pagamento **é igual a** Dinheiro  
> **Então:** Tornar obrigatório Observações

### **24\. Desencorajar o método de pagamento "Outros"**

Métodos genéricos atrapalham a conciliação. Peça detalhes sempre que forem usados.

> **Documento:** Lançamentos · **Executar quando:** Campo alterado  
> **Se:** Método de pagamento **é igual a** Outros  
> **Então:** Tornar obrigatório Observações · Avisar "Descreva nas observações qual foi a forma de pagamento."

* * *

## **Exemplos para o Cadastro de Pessoas**

### **25\. E-mail obrigatório para clientes**

Sem e-mail não há envio de nota, boleto ou régua de cobrança.

> **Documento:** Pessoas · **Executar quando:** Campo alterado e Salvar  
> **Se:** Tipo de pessoa **é igual a** Cliente  
> **Então:** Tornar obrigatório E-mail

### **26\. Vendedor responsável obrigatório em clientes**

Garante que todo cliente novo já nasça com dono na carteira comercial.

> **Documento:** Pessoas · **Executar quando:** Campo alterado e Salvar  
> **Se:** Tipo de pessoa **é igual a** Cliente  
> **Então:** Tornar obrigatório Vendedor

### **27\. Nome do contato obrigatório para quem tem CNPJ**

Importante para saber com quem falar na empresa.

> **Documento:** Pessoas · **Executar quando:** Campo alterado e Salvar  
> **Se:** CNPJ **não está vazio** E  
> **Então:** Tornar obrigatório Contato principal

### **28\. Limite de crédito obrigatório para clientes**

> **Documento:** Pessoas · **Executar quando:** Campo alterado e Salvar  
> **Se:** Tipo de pessoa **é igual a** Cliente  
> **Então:** Tornar obrigatório Limite de crédito

### **29\. Comissão padrão ao cadastrar vendedores**

> **Documento:** Pessoas · **Executar quando:** Campo alterado  
> **Se:** Tipo de pessoa **é igual a** Vendedor  
> **Então:** Definir Comissão Vendedor (%) = 3

### **30\. Data de nascimento obrigatória para funcionários**

> **Documento:** Pessoas · **Executar quando:** Campo alterado e Salvar  
> **Se:** Tipo de pessoa **é igual a** Funcionário  
> **Então:** Tornar obrigatório Aniversário

### **31\. Esconder campos que sua operação não usa em fornecedores**

Menos campos na tela = cadastro mais rápido e menos erros.

> **Documento:** Pessoas · **Executar quando:** Campo alterado  
> **Se:** Tipo de pessoa **é igual a** Fornecedor  
> **Então:** Ocultar Tabela Padrão · Ocultar Limite de crédito · Ocultar Vendedor  
> **Senão:** Mostrar Tabela Padrão · Mostrar Limite de crédito · Mostrar Vendedor

* * *

## **Exemplos para o Cadastro de Itens**

### **32\. Impedir preço mínimo abaixo do custo**

Uma das validações mais valiosas — compare os dois campos entre si.

> **Documento:** Itens · **Executar quando:** Salvar  
> **Se:** Preço Mínimo **é menor que** Custo _(valor: copiar do campo Custo)_ > **Então:** Erro "O preço mínimo não pode ser inferior ao custo do item."

### **33\. Alertar margem abaixo da política comercial**

> **Documento:** Itens · **Executar quando:** Campo alterado  
> **Se:** Margem **é menor que** 20  
> **Então:** Avisar "Margem abaixo de 20% — confirme com o gestor comercial."

### **34\. Dados fiscais obrigatórios para produtos de revenda**

Sem NCM e origem corretos, a nota fiscal não sai (ou sai errada).

> **Documento:** Itens · **Executar quando:** Campo alterado e Salvar  
> **Se:** Categoria **é igual a** \[categoria de produtos de revenda\] > **Então:** Tornar obrigatório NCM · Tornar obrigatório Origem

### **35\. Dimensões e peso obrigatórios para itens de e-commerce**

Marketplaces e cálculo de frete dependem dessas informações.

> **Documento:** Itens · **Executar quando:** Campo alterado e Salvar  
> **Se:** Categoria **é igual a** \[categoria vendida online\] > **Então:** Tornar obrigatório Peso bruto (kg) · Tornar obrigatório Altura (cm) · Tornar obrigatório Largura (cm)

### **36\. Revisão fiscal para itens importados**

> **Documento:** Itens · **Executar quando:** Salvar  
> **Se:** Origem **é diferente de** 0 - Nacional  
> **Então:** Avisar "Item importado — revise CST ICMS e alíquotas antes de vender."

### **37\. Estoque de segurança para itens com estoque crítico definido**

> **Documento:** Itens · **Executar quando:** Campo alterado e Salvar  
> **Se:** Estoque Crítico **não está vazio** > **Então:** Tornar obrigatório Estoque de segurança

* * *

## **Exemplos para Ordens de Produção**

### **38\. Previsão final não pode ser anterior à inicial**

> **Documento:** Ordens de Produção · **Executar quando:** Salvar  
> **Se:** Previsão Final **é menor que** Previsão Início _(valor: copiar do campo Previsão Início)_ > **Então:** Erro "A previsão final deve ser posterior à previsão de início."

### **39\. OPs urgentes exigem justificativa**

> **Documento:** Ordens de Produção · **Executar quando:** Campo alterado e Salvar  
> **Se:** Urgência **é maior ou igual a** \[nível que sua empresa considera urgente\] > **Então:** Tornar obrigatório Observações · Avisar "OP urgente — o PCP será notificado para repriorizar a fila."

### **40\. Toda OP com início previsto precisa de fim previsto**

> **Documento:** Ordens de Produção · **Executar quando:** Campo alterado e Salvar  
> **Se:** Previsão Início **não está vazio** > **Então:** Tornar obrigatório Previsão Final

* * *

## **Regras por usuário e por empresa**

Dois campos especiais estão disponíveis em todos os documentos e multiplicam as possibilidades:

-   **Usuário**: compara com o usuário logado. Permite regras direcionadas — obrigar campos para novatos, ocultar campos sensíveis de determinados perfis, aplicar valores padrão por pessoa.
    
-   **Empresa**: em ambientes multiempresa, restringe a regra a uma filial específica.
    

### **41\. Campos travados para usuários em treinamento**

> **Documento:** Pedidos · **Executar quando:** Campo alterado  
> **Se:** Usuário **é igual a** \[usuários em treinamento\] > **Então:** Ocultar Comissão · Definir Tabela = \[tabela padrão\]

### **42\. Regra que só vale para uma filial**

Adicione a condição de empresa a qualquer exemplo deste guia:

> **Se:** Tipo **é igual a** Venda **E** Empresa **é igual a** \[Filial São Paulo\] > **Então:** ...

### **43\. Ocultar comissão de quem não é do comercial**

> **Documento:** Pedidos · **Executar quando:** Campo alterado  
> **Se:** Usuário **é diferente de** \[gestores comerciais\] > **Então:** Ocultar Comissão  
> **Senão:** Mostrar Comissão

* * *

## **Usando campos personalizados**

Os **campos personalizados** criados para Pedidos, Ordens de Produção, Lançamentos, Itens e Pessoas também aparecem nas regras, no grupo **Campos Personalizados** — tanto nas condições quanto nas ações.

### **44\. Motivo da devolução obrigatório**

Crie um campo personalizado "Motivo da devolução" em Pedidos e depois:

> **Documento:** Pedidos · **Executar quando:** Campo alterado e Salvar  
> **Se:** Tipo **é igual a** Devolução  
> **Então:** Mostrar Motivo da devolução · Tornar obrigatório Motivo da devolução  
> **Senão:** Ocultar Motivo da devolução

### **45\. Fluxo de aprovação de desconto**

Com um campo personalizado "Desconto aprovado por" em Pedidos:

> **Documento:** Pedidos · **Executar quando:** Salvar  
> **Se:** Tabela **é igual a** \[tabela com desconto especial\] **E** Desconto aprovado por **está vazio** > **Então:** Erro "Informe quem aprovou o desconto especial."

### **46\. Formulários dinâmicos por segmento de cliente**

Com um campo personalizado "Segmento" (ex.: Varejo, Indústria, Governo) em Pessoas:

> **Documento:** Pessoas · **Executar quando:** Campo alterado  
> **Se:** Segmento **é igual a** Governo  
> **Então:** Tornar obrigatório Inscrição Estadual · Tornar obrigatório E-mail · Avisar "Cliente de licitação — anexe a documentação exigida."

* * *

## **Boas práticas**

-   **Comece pelas dores reais**: pedidos que voltam do faturamento, notas emitidas com cenário errado, cadastros incompletos. Cada retrabalho recorrente é uma candidata a regra.
    
-   **Uma regra, um objetivo**: prefira várias regras pequenas e bem nomeadas a uma regra gigante. Fica mais fácil ativar, desativar e entender o comportamento.
    
-   **Use** Avisar **antes de** Erro: ao implantar uma validação nova, comece com um aviso por algumas semanas e só depois converta em erro que bloqueia. A equipe se adapta sem travar a operação.
    
-   **Prefira** Definir **a confiar na memória**: sempre que existir uma resposta certa (cenário fiscal, conta, centro de custo, tabela), preencha automaticamente em vez de apenas exigir o campo.
    
-   **Mantenha "Reverter ações automaticamente" ativado** em regras de obrigatoriedade e visibilidade — assim o formulário volta ao normal quando a condição deixa de valer.
    
-   **Atenção à ordem**: se duas regras definem o mesmo campo, a última da lista prevalece. Use a prioridade para deixar as regras mais específicas por último.
    
-   **Documente na descrição**: use o campo Descrição para registrar o porquê da regra ("Exigência do cliente X desde 03/2026"). Quem mexer depois agradece.
    

* * *

## **Perguntas frequentes**

### **Onde as regras são aplicadas?**

Nas telas de criação e edição de Pedidos, Ordens de Produção, Lançamentos, Itens e Pessoas, incluindo os cadastros rápidos feitos por janelas (modais) dentro de outras telas.

### **Qual a diferença entre "Erro" e "Avisar"?**

**Erro** exibe a mensagem e **impede o salvamento** até a situação ser corrigida. **Avisar** só exibe a mensagem, o usuário pode salvar normalmente.

### **Qual gatilho devo escolher?**

-   Preenchimento automático, mostrar/ocultar e obrigatoriedade dinâmica: **Campo alterado**.
    
-   Validações finais (Erro/Avisar) e comparações entre campos: **Salvar** (pode combinar com Campo alterado para feedback imediato).
    

### **O que acontece se eu desativar uma regra?**

Ela para de ser executada imediatamente, mas continua salva na listagem. Você pode reativá-la quando quiser — inclusive em massa, selecionando várias regras.

### **Posso combinar condições "E" e "OU" na mesma regra?**

Sim. Use **Adicionar grupo (E/OU)** para montar lógicas como "(Tipo é Venda **E** Total Bruto > 10.000) **OU** Tags contém Urgente".

### **A regra vale para pedidos/cadastros antigos?**

As regras atuam quando o formulário é aberto e editado. Registros antigos não são alterados automaticamente, mas ao abri-los para edição as regras passam a valer.

### **Quem pode criar regras?**

Usuários com perfil **Administrador**, pelo caminho **Empresa → Ações → Regras condicionais de campos**. Para aparecer, é preciso habilitar o módulo de Regras Condicionais nas opções gerais da empresa.
