Fundamentos de Salesforce y desarrollo de aplicaciones CRM

1. ¿Qué es un CRM?

Un CRM (Customer Relationship Management) es un sistema utilizado para gestionar información y procesos relacionados con clientes, prospectos y otras interacciones comerciales.

Su función depende de la implementación, pero normalmente permite almacenar datos, registrar actividades y organizar procesos relacionados con clientes.

2. ¿Qué es Salesforce?

Salesforce es una plataforma que proporciona herramientas para construir y administrar aplicaciones empresariales, con un fuerte enfoque en la gestión de relaciones con clientes.

Dentro de Salesforce, la información se organiza principalmente mediante objetos, campos y registros.

La interfaz moderna de la plataforma utiliza Lightning Experience, desde donde los usuarios pueden acceder a aplicaciones, pestañas, registros y otras funciones disponibles según sus permisos.

3. Fundamentos de Salesforce

En Salesforce existen objetos estándar que cubren necesidades comunes de un CRM.

Entre ellos se encuentran:

  • Account: representa una cuenta o entidad con la que existe una relación.
  • Contact: representa una persona asociada con una cuenta.
  • Opportunity: representa una oportunidad de negocio.
  • Lead: representa un prospecto que puede convertirse en cliente.
  • Case: representa un caso utilizado para gestionar solicitudes o problemas de soporte.

Las Apps agrupan funcionalidades y elementos relacionados, mientras que las Tabs permiten acceder a determinados objetos u otras áreas de la aplicación.

4. Modelo de datos

El modelo de datos define cómo se estructura y relaciona la información.

Salesforce incluye objetos estándar y permite crear objetos personalizados para necesidades específicas.

Cada objeto puede contener campos personalizados con distintos tipos de datos.

Las relaciones permiten vincular registros entre objetos.

  • Lookup Relationship: establece una relación entre objetos sin imponer las mismas dependencias estructurales que una relación Master-Detail.
  • Master-Detail Relationship: establece una relación más estrecha entre un objeto detalle y su objeto maestro.
  • Record Types: permiten ofrecer diferentes procesos, valores disponibles y presentaciones dentro de un mismo objeto según la configuración establecida.

5. Seguridad

La seguridad de Salesforce se organiza mediante diferentes niveles de permisos y acceso.

  • Users: representan las cuentas de las personas que utilizan la organización.
  • Profiles: definen permisos y configuraciones base para los usuarios.
  • Permission Sets: permiten asignar permisos adicionales sin modificar necesariamente el perfil del usuario.
  • Roles: intervienen en la jerarquía de acceso y en la visibilidad de registros según la configuración de la organización.
  • Organization-Wide Defaults (OWD): establecen el nivel de acceso predeterminado a los registros.
  • Sharing Rules: permiten ampliar el acceso a determinados registros según reglas configuradas.
  • Field-Level Security: controla qué campos pueden consultar o modificar los usuarios.

La seguridad no depende de un solo elemento. Los distintos mecanismos trabajan juntos para determinar qué puede hacer un usuario y qué información puede consultar o modificar.

6. Automatización

Salesforce incluye herramientas para ejecutar lógica y controlar datos sin depender exclusivamente de código Apex.

  • Validation Rules: impiden guardar registros cuando no se cumplen determinadas condiciones.
  • Formula Fields: calculan valores a partir de otros campos y expresiones.
  • Roll-Up Summary Fields: permiten resumir información de registros relacionados cuando la relación y la configuración lo permiten.
  • Flows: permiten automatizar procesos y acciones.

Entre los tipos de Flow se encuentran:

  • Record-Triggered Flow: se ejecuta cuando ocurre un cambio en un registro que cumple las condiciones configuradas.
  • Screen Flow: permite construir procesos interactivos mediante pantallas.
  • Scheduled Flow: permite ejecutar un flujo de acuerdo con una programación definida.

7. SOQL

SOQL (Salesforce Object Query Language) es el lenguaje utilizado para consultar registros almacenados en Salesforce.

Algunos elementos frecuentes son:

SELECT Name
FROM Account
WHERE Name != null
ORDER BY Name
LIMIT 10
  • SELECT: indica los campos que se desean consultar.
  • WHERE: establece condiciones para filtrar registros.
  • LIMIT: limita la cantidad de registros devueltos.
  • ORDER BY: establece el orden de los resultados.
  • Relationship Queries: permiten consultar información relacionada entre objetos.
  • Aggregate Functions: permiten realizar operaciones como COUNT y otras funciones de agregación disponibles en SOQL.

SOQL está diseñado para consultar los datos almacenados en el modelo de Salesforce y tiene reglas propias que deben respetarse.

8. Apex

Apex es el lenguaje de programación utilizado para implementar lógica en la plataforma Salesforce.

Con Apex se pueden definir:

  • Clases
  • Métodos
  • Variables
  • List
  • Set
  • Map
  • Triggers

Un ejemplo sencillo de una estructura de clase es:

public class Ejemplo {
    public static String obtenerMensaje() {
        return 'Hola';
    }
}

Los Triggers permiten ejecutar código en respuesta a determinadas operaciones sobre registros.

Apex está sujeto a Governor Limits, que restringen el uso de determinados recursos para mantener controlada la ejecución dentro de la plataforma.

Por esta razón, una implementación debe considerar el uso eficiente de consultas, operaciones sobre registros y otros recursos disponibles.

Las Test Classes permiten probar el comportamiento del código Apex mediante pruebas automatizadas.

9. Lightning Web Components

Lightning Web Components (LWC) es un modelo para construir componentes de interfaz utilizando tecnologías web como HTML y JavaScript.

Un componente puede organizarse mediante distintos archivos, entre ellos los destinados a la estructura y comportamiento.

Algunos conceptos habituales son:

  • HTML: define la estructura visual del componente.
  • JavaScript: contiene la lógica del componente.
  • @api: permite exponer propiedades o métodos para la interacción con otros componentes.
  • @wire: proporciona un mecanismo para trabajar con datos y servicios de Salesforce de acuerdo con la configuración establecida.
  • Eventos: permiten comunicar información entre componentes.
  • Llamadas a Apex: permiten que un componente ejecute lógica Apex cuando la implementación lo requiere.

De forma simplificada:

LWC
  ->
JavaScript
  ->
Apex
  ->
Datos de Salesforce

10. Integraciones

Salesforce puede integrarse con sistemas externos mediante distintos mecanismos.

Entre los conceptos más habituales se encuentran:

  • REST API: permite intercambiar información mediante servicios HTTP.
  • JSON: formato utilizado con frecuencia para representar datos estructurados en integraciones.
  • Postman: herramienta que puede utilizarse para realizar y probar solicitudes HTTP.
  • Named Credentials: permiten configurar información relacionada con conexiones a servicios externos mediante la configuración correspondiente de Salesforce.
  • Callouts: permiten realizar solicitudes desde Salesforce hacia servicios externos cuando la configuración y las condiciones de la plataforma lo permiten.

Un flujo simplificado puede verse así:

Salesforce
   ->
REST API / Callout
   ->
Servicio externo
   ->
Respuesta
   ->
Salesforce

11. DevOps

El desarrollo de Salesforce también requiere herramientas y procesos para trabajar con código, configuración y despliegues.

Entre ellos se encuentran:

  • VS Code: editor utilizado para trabajar con proyectos de Salesforce.
  • Salesforce CLI: herramienta de línea de comandos para interactuar con organizaciones y proyectos.
  • Git: sistema de control de versiones utilizado para gestionar cambios en archivos y código.
  • Sandboxes: entornos separados de producción utilizados para desarrollo, pruebas y otras tareas.
  • Despliegues: procesos para trasladar metadatos y otros componentes entre organizaciones según la estrategia utilizada.

12. Reportes y Dashboards

Salesforce permite consultar y presentar información mediante Reports y Dashboards.

Los reportes permiten seleccionar datos y aplicar condiciones sobre los registros.

Entre los elementos que pueden utilizarse se encuentran:

  • Filtros: limitan los registros incluidos en el reporte.
  • Agrupaciones: organizan los resultados según determinados campos.
  • Reports: presentan información basada en los datos y condiciones configuradas.
  • Dashboards: muestran información de forma visual a partir de componentes basados en reportes.

13. Los 10 conceptos que conviene dominar primero

Cuando se necesita priorizar el aprendizaje de Salesforce, estos diez temas reúnen buena parte de los conceptos que aparecen en el desarrollo y administración de aplicaciones:

  1. Objetos y campos. Son la base del modelo de datos.
  2. Relaciones Lookup y Master-Detail. Definen cómo se conectan los objetos.
  3. Seguridad. Incluye Profiles, Permission Sets, Roles, Sharing y otras capas de acceso.
  4. Flows. Permiten automatizar procesos mediante configuración.
  5. SOQL. Permite consultar los datos de Salesforce.
  6. Apex. Permite implementar lógica mediante código.
  7. LWC. Permite construir componentes de interfaz.
  8. Reports y Dashboards. Permiten consultar y presentar información.
  9. Integraciones REST. Permiten comunicar Salesforce con sistemas externos.
  10. Governor Limits y buenas prácticas. Obligan a diseñar el código teniendo en cuenta los límites de recursos de la plataforma.

Consideraciones

Salesforce combina un modelo de datos basado en objetos, distintos mecanismos de seguridad, herramientas de automatización y lenguajes y APIs para desarrollar e integrar aplicaciones.

Los objetos y las relaciones determinan cómo se estructura la información. La seguridad controla el acceso. Flows, SOQL, Apex y LWC cubren distintas necesidades de automatización, consulta, lógica y presentación. Las integraciones conectan Salesforce con sistemas externos, mientras que las herramientas de DevOps permiten gestionar el desarrollo y los despliegues.

Comprender la relación entre estas áreas permite estudiar Salesforce como una plataforma completa y no como un conjunto aislado de funciones.

© Arturo Juárez Monroy