🏛️
Fundamentos de la Plataforma Salesforce
Arquitectura multitenant, objetos estándar vs personalizados, herramientas declarativas vs programáticas, Lightning Apps y AppExchange.
⏱️ Tiempo estimado de lectura: 45 minutos
La Plataforma Salesforce y Arquitectura Multitenant
Salesforce es una plataforma cloud-based (basada en la nube) que opera bajo un modelo multitenant (multiinquilino). Esto significa que todas las organizaciones (clientes) comparten la misma infraestructura física — servidores, base de datos y código base — pero cada organización tiene sus datos y configuraciones completamente aislados.
¿Por qué es importante el modelo multitenant?
- Actualizaciones automáticas: Salesforce lanza 3 actualizaciones al año (Winter, Spring, Summer) que se aplican a todas las orgs simultáneamente sin intervención del cliente.
- Sin gestión de infraestructura: No hay servidores que mantener, actualizar ni escalar.
- Economía de escala: Al compartir recursos, el costo por usuario se reduce.
Arquitectura Metadata-Driven (Orientada a metadatos):
Salesforce separa los datos de los metadatos. Los metadatos definen la estructura y el comportamiento de la plataforma: objetos, campos, flujos, page layouts, perfiles, etc. Cuando un administrador crea un campo personalizado, está creando un metadato — no está modificando la estructura de la base de datos directamente.
Esta arquitectura permite que cada org tenga una configuración completamente diferente sin modificar el código base compartido.
Governor Limits (Límites de Gobernador):
Para garantizar que ningún inquilino monopolice los recursos compartidos, Salesforce impone límites estrictos:
Concepto clave para el examen: Si una pregunta describe un escenario donde un proceso falla sin explicación aparente, consider si se está violando un Governor Limit.
¿Por qué es importante el modelo multitenant?
- Actualizaciones automáticas: Salesforce lanza 3 actualizaciones al año (Winter, Spring, Summer) que se aplican a todas las orgs simultáneamente sin intervención del cliente.
- Sin gestión de infraestructura: No hay servidores que mantener, actualizar ni escalar.
- Economía de escala: Al compartir recursos, el costo por usuario se reduce.
Arquitectura Metadata-Driven (Orientada a metadatos):
Salesforce separa los datos de los metadatos. Los metadatos definen la estructura y el comportamiento de la plataforma: objetos, campos, flujos, page layouts, perfiles, etc. Cuando un administrador crea un campo personalizado, está creando un metadato — no está modificando la estructura de la base de datos directamente.
Esta arquitectura permite que cada org tenga una configuración completamente diferente sin modificar el código base compartido.
Governor Limits (Límites de Gobernador):
Para garantizar que ningún inquilino monopolice los recursos compartidos, Salesforce impone límites estrictos:
| Recurso | Límite |
|---|---|
| Campos personalizados por objeto | 800 |
| Relaciones por objeto (Lookup + MD) | 40 (25 Lookup + 2 MD) |
| Reglas de validación por objeto | 500 |
| Objetos personalizados por org | 2,000 (Enterprise Edition) |
| Caracteres compilados en fórmula | 5,000 |
| Record-Triggered Flows por objeto | Sin límite fijo, pero se recomienda 1 |
| Consultas SOQL por transacción (sync) | 100 |
| Registros DML por transacción | 10,000 |
Concepto clave para el examen: Si una pregunta describe un escenario donde un proceso falla sin explicación aparente, consider si se está violando un Governor Limit.
Puntos Clave
- ✓ Multitenant: todos los clientes comparten infraestructura pero datos aislados
- ✓ Metadata-Driven: la personalización se almacena como metadatos, no como cambios en el código base
- ✓ 3 releases al año: Winter, Spring, Summer — actualizaciones automáticas
- ✓ Los Governor Limits protegen el rendimiento de todos los inquilinos
- ✓ Los límites más preguntados: 800 campos custom, 5,000 chars fórmula compilada, 100 SOQL por transacción
Objetos Estándar, Personalizados y Externos
Los objetos en Salesforce son equivalentes a tablas en una base de datos relacional. Cada objeto contiene campos (columnas) y registros (filas).
Objetos Estándar (Standard Objects):
Vienen incluidos con Salesforce y tienen funcionalidad predefinida:
No se pueden eliminar pero sí personalizar añadiendo campos, modificando page layouts y creando reglas de validación.
Objetos Personalizados (Custom Objects):
Creados para necesidades específicas del negocio. Se identifican por el sufijo
Para que un custom object sea visible necesitas:
1. Crear una Custom Tab (pestaña) para el objeto.
2. Configurar el Page Layout con los campos deseados.
3. Asignar permisos CRUD en el Perfil o Permission Set del usuario.
4. Incluir la Tab en la Lightning App correspondiente.
External Objects (Objetos Externos):
Se identifican por el sufijo
Big Objects:
Diseñados para almacenar volúmenes masivos de datos (miles de millones de registros) como datos históricos o de auditoría. Sufijo
Comparación de sufijos (pregunta frecuente de examen):
Objetos Estándar (Standard Objects):
Vienen incluidos con Salesforce y tienen funcionalidad predefinida:
| Objeto | Función principal | Relación clave |
|---|---|---|
| Account | Empresas, organizaciones | Padre de Contact, Opportunity, Case |
| Contact | Personas asociadas a cuentas | Hijo de Account |
| Opportunity | Negocios/ventas potenciales | Tiene etapas (Stage) y valores monetarios |
| Lead | Prospectos sin calificar | Se convierte en Account + Contact + Opportunity |
| Case | Problemas/solicitudes de soporte | Tiene estado, prioridad, origen |
| Campaign | Marketing y campañas | Relacionado con Leads y Contacts |
| Task / Event | Actividades | Polimórficos (WhatId, WhoId) |
| Product / Pricebook | Catálogo y precios | Products se asocian a Opportunities via OpportunityLineItem |
No se pueden eliminar pero sí personalizar añadiendo campos, modificando page layouts y creando reglas de validación.
Objetos Personalizados (Custom Objects):
Creados para necesidades específicas del negocio. Se identifican por el sufijo
__c (ejemplo: Proyecto__c, Factura__c).Para que un custom object sea visible necesitas:
1. Crear una Custom Tab (pestaña) para el objeto.
2. Configurar el Page Layout con los campos deseados.
3. Asignar permisos CRUD en el Perfil o Permission Set del usuario.
4. Incluir la Tab en la Lightning App correspondiente.
External Objects (Objetos Externos):
Se identifican por el sufijo
__x. Conectan con datos almacenados fuera de Salesforce (SAP, bases de datos externas) sin importar los datos. Usan Salesforce Connect (OData o Cross-Org adapter). Los datos se consultan en tiempo real.Big Objects:
Diseñados para almacenar volúmenes masivos de datos (miles de millones de registros) como datos históricos o de auditoría. Sufijo
__b. Tienen funcionalidad limitada (no soportan triggers, flows ni reportes estándar).Comparación de sufijos (pregunta frecuente de examen):
| Sufijo | Tipo | Ejemplo |
|---|---|---|
| (ninguno) | Objeto estándar | Account, Contact |
__c | Objeto/campo personalizado | Factura__c, Monto__c |
__r | Referencia a relación | Account__r.Name |
__x | Objeto externo | SAP_Order__x |
__b | Big Object | Audit_Log__b |
__mdt | Custom Metadata Type | Config_Setting__mdt |
__e | Platform Event | Order_Placed__e |
Puntos Clave
- ✓ Los objetos estándar no se pueden eliminar, solo personalizar
- ✓ Lead Conversion crea automáticamente Account + Contact + Opportunity
- ✓ Para que un Custom Object sea visible: Tab + Page Layout + Permisos + App
- ✓ External Objects (__x) consultan datos externos en tiempo real sin importarlos
- ✓ Los sufijos __c, __r, __x, __b, __mdt, __e son pregunta frecuente de examen
Desarrollo Declarativo vs Programático
Una de las preguntas más importantes del examen PAB es saber cuándo usar una solución declarativa (sin código) vs programática (con código).
Herramientas Declarativas (Point-and-Click):
- Flow Builder (automatización)
- Validation Rules (reglas de validación)
- Formula Fields (campos de fórmula)
- Process Builder (legacy, no usar para nuevos desarrollos)
- Workflow Rules (legacy)
- Approval Processes (procesos de aprobación)
- Lightning App Builder (diseño de interfaces)
- Schema Builder (modelado visual de datos)
- Report Builder (reportes y dashboards)
- Page Layouts, Record Types, Quick Actions
Herramientas Programáticas (requieren código):
- Apex: Lenguaje de programación similar a Java para lógica de servidor compleja.
- Visualforce: Páginas web personalizadas (legacy, reemplazado por LWC).
- Lightning Web Components (LWC): Componentes de interfaz modernos basados en estándares web.
- SOQL/SOSL: Lenguajes de consulta para datos.
- Apex Triggers: Lógica que se ejecuta antes/después de operaciones de base de datos.
Regla de Salesforce para el examen: SIEMPRE preferir la solución declarativa a menos que sea técnicamente imposible. Salesforce promueve el principio "clicks, not code".
¿Cuándo SÍ necesitas código (Apex/LWC)?
- Lógica que requiere más de 100 consultas SOQL en una transacción.
- Integraciones complejas con web services externos (REST/SOAP callouts).
- Interfaces de usuario altamente personalizadas que no se pueden crear con componentes estándar.
- Procesamiento masivo de datos (Batch Apex).
- Lógica en tiempo real con requisitos de rendimiento extremos.
- Funcionalidad que no existe en las herramientas declarativas.
¿Cuándo basta con Flow + herramientas declarativas?
- Crear o actualizar registros basándose en criterios.
- Enviar emails basados en cambios de registro.
- Crear formularios dinámicos para usuarios (Screen Flows).
- Automatizar aprobaciones.
- Programar tareas recurrentes (Schedule-Triggered Flows).
- La mayoría de la lógica de negocio estándar.
Herramientas Declarativas (Point-and-Click):
- Flow Builder (automatización)
- Validation Rules (reglas de validación)
- Formula Fields (campos de fórmula)
- Process Builder (legacy, no usar para nuevos desarrollos)
- Workflow Rules (legacy)
- Approval Processes (procesos de aprobación)
- Lightning App Builder (diseño de interfaces)
- Schema Builder (modelado visual de datos)
- Report Builder (reportes y dashboards)
- Page Layouts, Record Types, Quick Actions
Herramientas Programáticas (requieren código):
- Apex: Lenguaje de programación similar a Java para lógica de servidor compleja.
- Visualforce: Páginas web personalizadas (legacy, reemplazado por LWC).
- Lightning Web Components (LWC): Componentes de interfaz modernos basados en estándares web.
- SOQL/SOSL: Lenguajes de consulta para datos.
- Apex Triggers: Lógica que se ejecuta antes/después de operaciones de base de datos.
Regla de Salesforce para el examen: SIEMPRE preferir la solución declarativa a menos que sea técnicamente imposible. Salesforce promueve el principio "clicks, not code".
¿Cuándo SÍ necesitas código (Apex/LWC)?
- Lógica que requiere más de 100 consultas SOQL en una transacción.
- Integraciones complejas con web services externos (REST/SOAP callouts).
- Interfaces de usuario altamente personalizadas que no se pueden crear con componentes estándar.
- Procesamiento masivo de datos (Batch Apex).
- Lógica en tiempo real con requisitos de rendimiento extremos.
- Funcionalidad que no existe en las herramientas declarativas.
¿Cuándo basta con Flow + herramientas declarativas?
- Crear o actualizar registros basándose en criterios.
- Enviar emails basados en cambios de registro.
- Crear formularios dinámicos para usuarios (Screen Flows).
- Automatizar aprobaciones.
- Programar tareas recurrentes (Schedule-Triggered Flows).
- La mayoría de la lógica de negocio estándar.
Puntos Clave
- ✓ Principio fundamental del examen: siempre elegir la solución declarativa primero (clicks > code)
- ✓ Flow Builder reemplaza a Process Builder y Workflow Rules (ambos son legacy)
- ✓ Apex es necesario solo cuando las herramientas declarativas no pueden satisfacer el requisito
- ✓ LWC reemplaza a Visualforce para interfaces personalizadas modernas
- ✓ Si una pregunta del examen ofrece Flow Y Apex para el mismo escenario, la respuesta es Flow
AppExchange, Ediciones y Entornos de Salesforce
AppExchange es el marketplace de Salesforce donde se instalan aplicaciones (apps), componentes Lightning y soluciones de terceros. Es como la "app store" de Salesforce.
Tipos de listado en AppExchange:
- Apps (Managed Packages): Soluciones completas empaquetadas (ej: DocuSign, Conga).
- Lightning Components: Componentes individuales reutilizables en App Builder.
- Flow Templates: Plantillas de automatización preconstruidas.
- Bolt Solutions: Plantillas de comunidades/portales.
- Consulting Partners: Servicios de consultoría (no software).
Importante para el examen: Las soluciones de AppExchange pasan por un Security Review obligatorio por parte de Salesforce antes de ser publicadas.
Ediciones de Salesforce:
Para el examen: Enterprise Edition es la referencia estándar. La mayoría de preguntas asumen Enterprise.
Tipos de Entorno (Environments):
- Production: Entorno en vivo con datos reales de negocio. Solo hay UNO.
- Sandbox: Copia del entorno de producción para desarrollo y testing. Se pueden tener múltiples.
- Developer Edition: Org gratuita para aprender y desarrollar (NO es un sandbox).
- Scratch Org: Entorno temporal para desarrollo (Salesforce DX). Se autodestruye tras un período configurado.
- Trailhead Playground: Org gratuita para practicar en Trailhead.
Concepto importante: Production y Sandbox están conectados (misma org), lo que permite usar Change Sets para migrar configuraciones. Developer Edition y Scratch Orgs son orgs independientes.
Tipos de listado en AppExchange:
- Apps (Managed Packages): Soluciones completas empaquetadas (ej: DocuSign, Conga).
- Lightning Components: Componentes individuales reutilizables en App Builder.
- Flow Templates: Plantillas de automatización preconstruidas.
- Bolt Solutions: Plantillas de comunidades/portales.
- Consulting Partners: Servicios de consultoría (no software).
Importante para el examen: Las soluciones de AppExchange pasan por un Security Review obligatorio por parte de Salesforce antes de ser publicadas.
Ediciones de Salesforce:
| Edición | Custom Objects | Storage | Sandbox | Para quién |
|---|---|---|---|---|
| Essentials | 5 | Limitado | No | Pequeñas empresas |
| Professional | 50 | 10 GB | Developer | PYMES |
| Enterprise | 200 | 10 GB + 20MB/usr | Dev + Dev Pro + Partial | Empresas medianas-grandes |
| Unlimited | 2,000 | 10 GB + 120MB/usr | Todos los tipos | Grandes empresas |
| Developer Edition | 400 | 5 MB | No (es un sandbox en sí) | Desarrollo y testing |
Para el examen: Enterprise Edition es la referencia estándar. La mayoría de preguntas asumen Enterprise.
Tipos de Entorno (Environments):
- Production: Entorno en vivo con datos reales de negocio. Solo hay UNO.
- Sandbox: Copia del entorno de producción para desarrollo y testing. Se pueden tener múltiples.
- Developer Edition: Org gratuita para aprender y desarrollar (NO es un sandbox).
- Scratch Org: Entorno temporal para desarrollo (Salesforce DX). Se autodestruye tras un período configurado.
- Trailhead Playground: Org gratuita para practicar en Trailhead.
Concepto importante: Production y Sandbox están conectados (misma org), lo que permite usar Change Sets para migrar configuraciones. Developer Edition y Scratch Orgs son orgs independientes.
Puntos Clave
- ✓ AppExchange requiere Security Review antes de publicar apps
- ✓ Enterprise Edition es la referencia estándar del examen PAB
- ✓ Production y Sandbox están conectados (misma org); Developer Edition y Scratch Orgs son independientes
- ✓ Developer Edition NO es un sandbox — es una org independiente y gratuita
- ✓ Scratch Orgs son temporales y se usan con Salesforce DX (desarrollo moderno)