SOQL
Término 255 de 314 · Tecnología
En una frase
SOQL (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.
SOQL (Salesforce Object Query Language) es el lenguaje de consultas propio de Salesforce que sirve para leer datos almacenados en los objetos de la plataforma. Su sintaxis recuerda a SQL (usa SELECT ... FROM ... WHERE), pero opera sobre los objetos de Salesforce (estándar y personalizados) en lugar de tablas de una base de datos tradicional, y devuelve registros que el código luego procesa.
A diferencia de SQL, SOQL solo recupera datos: no tiene INSERT, UPDATE ni DELETE (esas operaciones se hacen con DML en Apex), no permite SELECT \* (hay que nombrar cada campo) y no hace joins arbitrarios, sino que navega las relaciones ya definidas entre objetos. Es una de las herramientas centrales con las que trabaja quien programa sobre la plataforma, parte del oficio que cubre el equipo de desarrolladores de Salesforce.
Para qué se usa SOQL
Cada vez que una pantalla, un automatismo o un fragmento de código en Salesforce necesita traer registros (las cuentas de una región, las oportunidades abiertas de un vendedor, los casos sin resolver), por debajo casi siempre hay una consulta SOQL. Se escribe dentro de Apex, en componentes Lightning Web Components, en herramientas de integración o directamente en el Developer Console para inspeccionar datos. Es el puente entre la lógica de negocio y la información guardada en la org.
Una consulta típica selecciona el nombre, el monto y la etapa de las oportunidades cuyo monto supera cierto umbral, ordenadas por fecha de cierre. La gran diferencia con una base relacional clásica es cómo trata las relaciones entre objetos: en lugar de armar joins, SOQL aprovecha las relaciones que ya existen en el modelo de datos. Para subir de un registro hijo a su padre se usa notación de punto (el contacto accede a campos de su cuenta), y para bajar a los hijos se usa una subconsulta de relación (desde una cuenta se piden sus contactos). Esto hace que las consultas sean más legibles, pero también que estén atadas al esquema definido en la plataforma.
Por qué importa para un negocio
Aunque suene a detalle técnico, SOQL tiene consecuencias directas en lo que percibe el usuario. Una consulta bien escrita es la diferencia entre un reporte que carga al instante y uno que tarda o falla. En Argentina y LATAM, donde es común tener orgs con cientos de miles de registros (clientes, facturas, casos de soporte), el costo de las consultas mal diseñadas se nota: pantallas lentas, automatizaciones que se caen y procesos nocturnos que no terminan a tiempo.
Hay un motivo concreto detrás. Salesforce es una arquitectura multitenant (muchas empresas comparten la misma infraestructura), así que impone governor limits: topes a cuántas consultas SOQL y cuántos registros puede manejar una transacción. Si el código los supera, la operación se interrumpe. Por eso escribir SOQL eficiente no es un lujo: es lo que mantiene la plataforma estable para todos.
SOQL vs SQL: en qué se diferencian
Vienen de mundos parecidos, pero no son intercambiables. Esta tabla resume las diferencias clave:
| Aspecto | SOQL | SQL |
|---|---|---|
| Qué hace | Solo lee datos (consulta) | Lee y modifica (CRUD completo) |
| Sobre qué opera | Objetos de Salesforce | Tablas de una base de datos |
| Selección | Hay que nombrar cada campo | Permite traer todas las columnas |
| Relaciones | Navega relaciones predefinidas | Joins arbitrarios entre tablas |
| Límites | Sujeto a governor limits | Según el motor de base de datos |
Quien viene de SQL aprende SOQL rápido en lo básico, pero tropieza con lo que falta: no hay forma de traer todas las columnas con un comodín, no hay joins libres y siempre hay que pensar en los límites.
Errores comunes que conviene evitar
- Consultas dentro de un bucle (loop): repetir una consulta por cada registro de una lista agota rápido los límites. La regla es bulkificar: una sola consulta que traiga todo lo necesario de una vez.
- Traer más campos o registros de los necesarios: pedir campos que no se usan o no filtrar infla el consumo y la latencia. Conviene acotar con condiciones y, cuando aplica, con un límite de filas.
- No filtrar por campos indexados: consultar sobre campos no indexados en tablas grandes obliga a recorrer todo, lo que dispara errores de tiempo en orgs con mucho volumen.
- Confundir SOQL con SQL: intentar un comodín de columnas o un join que no existe en el modelo termina en error de sintaxis.
Ejemplo concreto
Una distribuidora de Consumo Masivo en Buenos Aires quiere mostrarle a cada vendedor sus cuentas con saldo pendiente. En vez de consultar cuenta por cuenta (lo que con 5.000 clientes reventaría los límites), el desarrollo arma una sola consulta que filtra por dueño y por estado de cobranza, ordena por monto y la presenta en un componente. Resultado: la pantalla carga en segundos y el proceso escala sin tocar los topes de la plataforma. Esa decisión, invisible para el usuario final, es la clase de buena práctica de SOQL que separa una implementación robusta de una que se cae cuando crecen los datos.
Preguntas frecuentes sobre SOQL
¿Qué es SOQL?
¿Qué es SOQL?
SOQL (Salesforce Object Query Language) es el lenguaje de consultas de Salesforce que se usa para leer datos de los objetos de la plataforma, tanto estándar como personalizados. Su sintaxis se parece a SQL, con SELECT, FROM y WHERE, pero solo recupera registros: no inserta, actualiza ni elimina datos. Se utiliza dentro de Apex, en componentes Lightning y en integraciones para traer la información que necesita cada proceso o pantalla.
¿Cuál es la diferencia entre SOQL y SQL?
¿Cuál es la diferencia entre SOQL y SQL?
La diferencia principal es el alcance. SQL es un lenguaje completo que lee y modifica datos (INSERT, UPDATE, DELETE) sobre tablas de una base de datos, y permite joins arbitrarios y traer todas las columnas con un comodín. SOQL solo consulta datos sobre objetos de Salesforce, obliga a nombrar cada campo, no admite ese comodín ni joins libres (navega relaciones ya definidas en el modelo) y está sujeto a los límites de la plataforma. Las modificaciones de datos en Salesforce se hacen con DML, no con SOQL.
¿Se puede usar SOQL para crear o borrar registros?
¿Se puede usar SOQL para crear o borrar registros?
No. SOQL es de solo lectura: únicamente recupera registros existentes. Para crear, actualizar o eliminar datos en Salesforce se usan operaciones DML (Data Manipulation Language) dentro de Apex, como insert, update y delete. Es una separación deliberada de la plataforma: SOQL consulta y DML modifica, y ambos respetan los permisos y límites de la org.
¿Por qué hay un límite en la cantidad de consultas SOQL?
¿Por qué hay un límite en la cantidad de consultas SOQL?
Porque Salesforce es una arquitectura multitenant donde muchas empresas comparten la misma infraestructura. Para que el uso intensivo de una org no degrade el servicio del resto, la plataforma aplica governor limits, que topan cuántas consultas SOQL y cuántos registros puede procesar una transacción. Si el código supera esos topes, la operación se interrumpe. Por eso escribir consultas eficientes, sin SOQL dentro de bucles, es una práctica fundamental.
¿Dónde se escribe una consulta SOQL?
¿Dónde se escribe una consulta SOQL?
Se escribe principalmente dentro de código Apex, en componentes Lightning Web Components, en herramientas de integración con la API y en el Developer Console o el Query Editor para inspeccionar datos directamente. En todos los casos, la consulta devuelve registros que luego el código procesa, muestra en pantalla o envía a otro sistema.
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
- ApexApex 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.
- Objeto (Salesforce)Un objeto de Salesforce es una tabla de la base de datos que guarda un tipo de registro (cuentas, contactos, oportunidades). Define los campos, relaciones y reglas de un conjunto de datos del negocio dentro de la plataforma.
- 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.
- 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.
- Sales CloudSales Cloud es el producto de CRM de ventas de Salesforce: centraliza cuentas, contactos, oportunidades y el pipeline en un solo lugar, automatiza tareas comerciales y da forecast e informes para que los equipos de venta cierren más rápido.
- Salesforce ShieldSalesforce Shield es el paquete de seguridad y cumplimiento avanzado de Salesforce, pensado para organizaciones con exigencias regulatorias. Suma cifrado de datos en reposo, monitoreo de eventos de usuario y auditoría del historial de campos a los controles nativos de la plataforma.
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 SalesforceAhora 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.