Apex
Término 21 de 314 · Tecnología
En una frase
Apex es el lenguaje de programación propietario de Salesforce, orientado a objetos y similar a Java, que corre en sus servidores. Permite agregar lógica de negocio personalizada (triggers, clases e integraciones) cuando las herramientas declarativas como Flow no alcanzan.
Apex es el lenguaje de programación propietario de Salesforce, orientado a objetos y de sintaxis parecida a Java, que corre en los servidores de Salesforce (no en el navegador del usuario). Sirve para agregar lógica de negocio personalizada cuando las herramientas declarativas como Flow ya no alcanzan: validaciones complejas, integraciones, procesos por lotes y servicios que exponen datos.
A diferencia de un lenguaje de propósito general, Apex está fuertemente acoplado a la plataforma: tiene acceso directo a la base de datos vía SOQL y operaciones DML (insert, update, delete) sobre los objetos de Salesforce, y se ejecuta en un entorno multitenant compartido por miles de clientes. Por eso Salesforce impone límites estrictos de recursos (los governor limits): cuántas consultas, cuántos registros y cuánta CPU puede consumir cada transacción. Escribir y mantener Apex es una de las tareas centrales del rol de desarrollador Salesforce.
Por qué existe Apex y cuándo se usa
Salesforce ofrece dos caminos para personalizar una org: el declarativo (configurar con clics, sin escribir código) y el programático (escribir código). La mayoría de las automatizaciones simples se resuelven hoy con herramientas declarativas como Flow. Apex entra cuando el requerimiento supera lo que esas herramientas pueden expresar: lógica condicional muy ramificada, llamadas a sistemas externos, procesamiento de grandes volúmenes de registros en segundo plano o servicios que otras aplicaciones consumen.
Un caso típico en una empresa argentina: una distribuidora que quiere recalcular automáticamente la prioridad de cada oportunidad según el monto, la antigüedad de la cuenta y el saldo de cobranza traído de su ERP. Esa combinación de reglas y la llamada al sistema externo se programan en Apex, que corre del lado del servidor y deja el resultado escrito en el registro.
Cómo se ejecuta: triggers, clases y contexto
El código Apex vive en dos formas principales. Los triggers son piezas que se disparan automáticamente cuando un registro se crea, modifica o borra (por ejemplo, recalcular un total cada vez que se guarda una factura). Las clases agrupan métodos reutilizables que se invocan desde triggers, desde botones, desde Flow o desde un endpoint expuesto como API.
Una regla cultural de Apex es que el código debe estar bulkificado: pensado para procesar muchos registros a la vez, no de a uno. Si un trigger hace una consulta a la base por cada registro de un lote de 200, choca contra los governor limits y la transacción falla. El patrón correcto es consultar una sola vez fuera del bucle y operar sobre la colección completa.
Governor limits: la restricción que define el estilo
Como Apex corre en un entorno multitenant (la infraestructura es compartida por todos los clientes de Salesforce), ningún código puede acaparar recursos y afectar a los vecinos. Salesforce hace cumplir esto con límites por transacción que conviene tener presentes:
- Hasta 100 consultas SOQL por transacción síncrona.
- Hasta 150 operaciones DML (insert/update/delete) por transacción.
- 50.000 registros recuperables por transacción.
- 10 segundos de tiempo de CPU en transacciones síncronas.
- Cobertura de tests obligatoria del 75% para poder desplegar a producción.
Ese último punto es distintivo: Salesforce no deja subir código a producción si las pruebas unitarias no cubren al menos tres cuartas partes del código. Es una garantía de calidad poco común en otras plataformas.
Apex frente a otras opciones de la plataforma
La duda recurrente del negocio es cuándo conviene programar y cuándo configurar. Esta comparación resume el criterio:
| Criterio | Apex | Flow (declarativo) |
|---|---|---|
| Quién lo construye | Desarrollador | Administrador o analista |
| Curva de aprendizaje | Alta (lenguaje real) | Baja (interfaz visual) |
| Lógica compleja | Sin techo práctico | Limitada |
| Integraciones externas | Nativas y flexibles | Acotadas |
| Velocidad de cambio | Requiere despliegue | Cambio rápido |
| Mantenimiento | Necesita perfil técnico | Más accesible |
La buena práctica vigente es declarativo primero, Apex cuando hace falta: resolver con Flow todo lo que se pueda y reservar el código para lo que realmente lo justifica. Esto reduce la deuda técnica y mantiene la org más fácil de mantener.
Errores comunes
El error más caro es escribir Apex sin bulkificar, lo que funciona en pruebas con un registro pero explota contra los governor limits en producción cuando entra un lote real. Otros tropiezos frecuentes: poner llamadas a sistemas externos dentro de un bucle, descuidar el manejo de excepciones, y escribir tests que solo buscan llegar al 75% de cobertura en vez de verificar que la lógica realmente funciona. Un buen test valida comportamiento, no solo cobertura.
Para interfaces de usuario modernas, Apex suele trabajar de la mano con los Lightning Web Components: el componente corre en el navegador y llama a métodos Apex del servidor para leer o escribir datos. Esa división (lógica de negocio y datos en Apex, presentación en el frontend) es el modelo de desarrollo estándar de la plataforma hoy.
Preguntas frecuentes sobre Apex
¿Qué es Apex en Salesforce?
¿Qué es Apex en Salesforce?
Apex es el lenguaje de programación propietario de Salesforce, orientado a objetos y con sintaxis parecida a Java, que corre en los servidores de Salesforce. Permite agregar lógica de negocio personalizada cuando las herramientas declarativas no alcanzan: triggers que reaccionan a cambios en los registros, clases reutilizables, integraciones con sistemas externos y procesos por lotes. Tiene acceso directo a la base de datos de la plataforma mediante consultas SOQL y operaciones DML.
¿Cuál es la diferencia entre Apex y Flow?
¿Cuál es la diferencia entre Apex y Flow?
Flow es la herramienta declarativa de Salesforce: se construye con una interfaz visual, sin escribir código, y la usan administradores o analistas para automatizar procesos. Apex es código real que escribe un desarrollador y resuelve lógica más compleja, integraciones flexibles y procesamiento de grandes volúmenes. La buena práctica es declarativo primero: usar Flow para todo lo posible y reservar Apex para lo que realmente lo necesita.
¿Qué son los governor limits en Apex?
¿Qué son los governor limits en Apex?
Los governor limits son límites de recursos que Salesforce impone a cada transacción de Apex porque la plataforma es multitenant: la infraestructura es compartida por todos los clientes y ningún código puede acapararla. Incluyen, por ejemplo, un máximo de 100 consultas SOQL y 150 operaciones DML por transacción, 50.000 registros recuperables y 10 segundos de CPU. Por eso el código debe escribirse para procesar muchos registros a la vez.
¿Se necesita saber programar para usar Salesforce?
¿Se necesita saber programar para usar Salesforce?
No para el uso diario ni para muchas automatizaciones. Buena parte de la personalización se hace de forma declarativa, con clics, usando herramientas como Flow, reglas de validación y configuración de objetos, tarea que cubre un administrador. Apex y la programación entran solo cuando el requerimiento supera lo que las herramientas visuales pueden resolver, y ahí interviene un desarrollador con perfil técnico.
¿Por qué Apex exige 75% de cobertura de tests?
¿Por qué Apex exige 75% de cobertura de tests?
Salesforce no permite desplegar código Apex a producción si las pruebas unitarias no cubren al menos el 75% del código. Es una garantía de calidad poco habitual en otras plataformas: obliga a escribir tests junto con la funcionalidad y reduce el riesgo de romper algo al actualizar. Conviene que esos tests verifiquen que la lógica funciona de verdad, no solo que se alcanza el porcentaje mínimo de cobertura.
Generador de Business Case
Tu caso de negocio con tus números, listo para el directorio.
Abrir la herramientaLo llevamos a tu Salesforce
Implementación, integración y soporte de Salesforce para empresas de LatAm, con foco en que el equipo lo use de verdad y no vuelva al Excel. Contanos en qué punto está tu org.
El glosario completo (más de 290 definiciones de IA, Salesforce y datos) en un PDF con hipervínculos.
Términos relacionados
- Governor limitsLos governor limits son los límites de ejecución que Salesforce impone a cada transacción (consultas, registros procesados, llamadas API, CPU) para proteger los recursos compartidos de su arquitectura multitenant, donde muchos clientes corren sobre la misma infraestructura.
- Flow (Salesforce)Flow es la herramienta de automatización declarativa de Salesforce: permite construir procesos de negocio (actualizar registros, enviar avisos, llamar lógica) con un editor visual de arrastrar y soltar, sin escribir código, dentro de la plataforma.
- SOQLSOQL (Salesforce Object Query Language) es el lenguaje de consultas de Salesforce para leer datos de sus objetos. Se parece a SQL pero solo consulta registros (no inserta ni borra) y respeta el modelo de datos y los permisos de la plataforma.
- Lightning Web ComponentsLightning Web Components (LWC) es el framework de Salesforce para crear interfaces de usuario reutilizables sobre estándares web modernos (JavaScript, HTML y Web Components nativos), con mejor rendimiento y curva de aprendizaje que el modelo Aura anterior.
- AppExchangeAppExchange es el marketplace oficial de Salesforce: una tienda en línea con aplicaciones, componentes y consultoras certificadas que extienden la plataforma. Permite instalar soluciones listas para usar, gratuitas o pagas, sin programar desde cero.
- CRMCRM (Customer Relationship Management) es el sistema que centraliza todos los datos e interacciones con clientes y prospectos (ventas, servicio y marketing) en una sola plataforma, para gestionar relaciones, automatizar procesos comerciales y tomar decisiones con información unificada.
Preguntas relacionadas
Salesforce
Implementación, integración y soporte de Salesforce para empresas de LatAm, con foco en la adopción real del equipo.
Así lo resuelve SalesforceSeguí leyendo en Pulse
Salesforce: Cómo mostrar colecciones Apex-Defined en un Data Table de Screen Flow
Winter '26 permite usar colecciones Apex-Defined como fuente de un Data Table de Screen Flow. Qué cambia, cómo se configura y dónde están los límites, con fuentes oficiales.
Masterclass de Salesforce » Hacks y Trucos: sacale el jugo a lo mejor de los últimos Releases
El Summer '26 no tiene un headline que rompa todo. Tiene once cambios que, juntos, hacen que la plataforma se sienta como debería haberse sentido hace años.
Ahora que sabés qué es, mirá cómo se resuelve
Cinco productos de IA que trabajan sobre el CRM que ya usás. No reemplazan tu sistema: le agregan la capa que hoy hacés a mano.

