Buena parte de las reglas de una empresa se pueden llevar a Salesforce sin escribir una sola línea de código. Calcular un total, resumir lo que pasa en los registros relacionados o impedir que alguien guarde un dato incorrecto son tareas que un administrador resuelve desde Setup, con clics y fórmulas. A eso se lo llama lógica de negocio declarativa, y tiene tres herramientas centrales: los campos de fórmula, los campos de resumen (Roll-Up Summary) y las reglas de validación.
En esta guía vemos para qué sirve cada una, cómo se configuran y cuáles son los errores más comunes al usarlas. El contenido sigue el módulo de Trailhead «Fórmulas y validaciones» y lo complementa con lo que aparece en la práctica diaria.
Tres herramientas, tres trabajos
La forma más simple de recordarlas es con un verbo cada una: la fórmula calcula, el Roll-Up Summary resume y la regla de validación controla. Se combinan entre sí: un Roll-Up puede sumar importes, una fórmula puede calcular un porcentaje sobre ese total y una regla puede impedir que el porcentaje supere un tope.

Campos de fórmula: valores que se calculan solos
Un campo de fórmula obtiene su valor a partir de otros campos, funciones u operaciones. Es de solo lectura: nadie lo completa a mano, y como se calcula cada vez que se muestra el registro, siempre está al día. Si cambia el precio o la cantidad, el total cambia sin que nadie toque nada.
Puede leer campos del mismo objeto y también de sus objetos padre, por ejemplo Account.Industry desde una oportunidad. Al crearlo se elige el tipo de resultado: número, moneda, porcentaje, fecha, texto o casilla de verificación.
Estas son cuatro fórmulas que se usan todos los días:
| Necesidad | Fórmula | Resultado |
|---|---|---|
| Importe total | Precio__c * Cantidad__c | Moneda |
| Días hasta el cierre | CloseDate - TODAY() | Número |
| Nombre completo | FirstName & " " & LastName | Texto |
| Industria de la cuenta | TEXT(Account.Industry) | Texto |
Dos detalles que conviene tener en cuenta. Una lista de selección no se puede usar directamente como texto: hay que convertirla con TEXT(). Y si una fórmula divide, protegela del cero, por ejemplo con IF(Precio__c = 0, 0, (Precio__c - Costo__c) / Precio__c) para calcular un margen. El editor de fórmulas ayuda con el botón Insertar campo, que evita escribir nombres de API a mano, y con Comprobar sintaxis, que conviene usar siempre antes de guardar.
Campos de resumen (Roll-Up Summary)
Un campo de resumen vive en el objeto padre y lee los registros hijos. Las operaciones disponibles son cuatro: SUM (suma), COUNT (cantidad de registros), MIN (valor mínimo) y MAX (valor máximo). A diferencia de la fórmula, el valor sí se guarda, y Salesforce lo recalcula solo cada vez que cambian los hijos.
Un ejemplo típico es el total ganado por cuenta: un Roll-Up en Cuenta que suma el importe de las oportunidades, con un filtro que toma solo las que están en etapa Cerrada ganada. El filtro es lo que convierte un dato cualquiera en un indicador útil.

Tres aclaraciones que generan muchas consultas:
- Requiere una relación maestro-detalle. Hay excepciones entre objetos estándar: Cuenta puede resumir sus Oportunidades y Oportunidad puede resumir sus Productos, aunque esas relaciones no sean maestro-detalle. Entre objetos personalizados unidos por una relación de búsqueda no se puede, y la alternativa es un Flow que haga el cálculo. Si estás decidiendo cómo relacionar dos objetos, te puede servir esta guía para elegir entre Lookup y objeto de unión.
- No existe el promedio. Para obtenerlo, creá dos Roll-Up (uno con SUM y otro con COUNT) y un campo de fórmula que divida uno por el otro.
- Hay un límite por objeto. Salesforce permite 25 campos de resumen por objeto de forma predeterminada, así que conviene usarlos con criterio.
Reglas de validación: frenar el dato malo antes de guardarlo
Una regla de validación evalúa una fórmula cada vez que alguien intenta guardar un registro. Si la fórmula devuelve TRUE, Salesforce muestra un mensaje de error y no guarda. El punto que más cuesta al principio es que la fórmula describe el error, no el dato correcto: tiene que dar TRUE cuando el dato está mal.

Con la fórmula Amount < 0, una oportunidad con importe 500 se guarda sin problemas, y una con importe -100 queda bloqueada. El mensaje se puede mostrar arriba de la página o junto al campo; junto al campo es más claro para el usuario. Un buen mensaje dice qué está mal y cómo corregirlo, por ejemplo «El importe no puede ser negativo.»
El caso de las fechas de cierre
Un ejemplo que aparece en casi todos los cursos es impedir fechas de cierre anteriores a hoy con CloseDate < TODAY(). En la práctica esa regla genera problemas: bloquea cualquier edición de una oportunidad vieja, aunque el usuario esté cambiando otro campo, y también las oportunidades ya cerradas. La versión que funciona en producción es esta:
AND(
OR(ISNEW(), ISCHANGED(CloseDate)),
CloseDate < TODAY(),
NOT(IsClosed)
)
Así la regla solo actúa al crear el registro o cuando cambia la fecha, y nunca sobre oportunidades ganadas o perdidas. Como siempre, hay que ajustarla a la política comercial de cada empresa.
Cuál usar en cada caso
| Fórmula | Roll-Up Summary | Validación | |
|---|---|---|---|
| Qué hace | Calcula un valor | Resume registros hijos | Bloquea datos inválidos |
| Dónde vive | Cualquier objeto | El objeto padre | El objeto que se valida |
| Qué necesita | Campos del registro o de sus padres | Maestro-detalle o excepción estándar | Una fórmula que dé TRUE o FALSE |
| Guarda el valor | No, se calcula al leer | Sí, se recalcula solo | No guarda valores |
Dónde se configuran
- Abrí Setup desde el ícono de engranaje y entrá al Gestor de objetos.
- Elegí el objeto. Para campos, andá a Campos y relaciones; para reglas, a Reglas de validación. Recordá que el Roll-Up se crea en el objeto padre.
- Creá un campo nuevo de tipo Fórmula o Resumen de acumulación, o una regla nueva.
- Comprobá la sintaxis, definí qué perfiles ven el campo y probá con registros reales antes de dar el trabajo por terminado.
Buenas prácticas
- Mensajes que enseñan. Cada error tiene que decir qué corregir.
- Descripción siempre. Cada campo y cada regla con su porqué, para quien mantenga la org después. Antes de crear un campo nuevo, vale la pena repasar las preguntas que conviene hacerse primero.
- Una salida para las cargas masivas. Creá un permiso personalizado, asignalo al usuario de integración y agregá a la regla la condición
NOT($Permission.Omitir_Validaciones). Así una importación no falla por reglas pensadas para usuarios. - Probar con todos. Las reglas también aplican a integraciones y a Flows, así que una regla nueva puede romper un proceso automático que ya funcionaba.
Ejercicio para practicar
En un Trailhead Playground, probá estos tres pasos:
- Fórmula en Oportunidad: un campo numérico con los días que faltan para el cierre. Solución:
CloseDate - TODAY(), tipo Número, sin decimales. - Roll-Up en Cuenta: el total ganado. Solución: objeto Oportunidades, tipo SUM, campo Importe, filtro Etapa igual a Cerrada ganada.
- Regla en Oportunidad: no permitir pasar a la etapa Propuesta sin importe. Solución:
AND(ISPICKVAL(StageName, "Proposal/Price Quote"), ISBLANK(Amount)), usando el valor de API real de la etapa en tu org.
Este contenido forma parte de las clases en vivo y gratuitas de Salesforce que damos todos los jueves en EGA Futura Academy. Podés ver el calendario e inscribirte en EGAFutura.com/salesforce. Si después de esta guía querés ver cómo se aplican fórmulas, resúmenes y validaciones en un sistema de gestión completo construido sobre Salesforce, EGA Futura ERP está publicado en el AppExchange y corre 100 % nativo dentro de tu org.
Seguí leyendo
- Cuentas y contactos en Salesforce: tipos, relaciones, jerarquías y equipos de cuenta
- Muchos piensan que agregar campos dentro de un objeto de Salesforce es gratis
- Objeto Lookup o Junction: guía de decisiones para arquitectos de Salesforce
- Cómo transformar la experiencia del usuario con Dynamic Forms