Full text
Equation Chapter 1 Section 1 Trabajo Fin de Grado Ingeniería de las Tecnologías de las Comunicaciones Salesforce como CRM en la Administración de Fincas Autor: Sara Cabeza Muñoz Tutor: Antonio Jesús Sierra Collado Dpto. Ingeniería Telemática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2024
iii Trabajo Fin de Grado Ingeniería de las Tecnologías de las Telecomunicaciones Salesforce como CRM en la Administración de Fincas Autor: Sara Cabeza Muñoz Tutor: Antonio Jesús Sierra Collado Dpto. Ingeniería Telemática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2024
v Trabajo Fin de Grado: Salesforce como CRM en la Administración de Fincas Autora: Sara Cabeza Muñoz Tutor: Antonio Jesús Sierra Collado El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros: Presidente: Vocales: Secretario: Acuerdan otorgarle la calificación de: Sevilla, 2024 El Secretario del Tribunal
vii Agradecimientos En primer lugar, me gustaría expresar mi gratitud a mi tutor, Antonio Jesús, por su paciencia y su tiempo. A mi familia, sobre todo a mis padres, por su apoyo incondicional. A mi hermana, por creer en mí en todo momento. A Pablo, por estar siempre a mi lado y animarme cuando lo necesitaba. Este trabajo refleja todo lo que he aprendido tanto en clase como en el mundo laboral, agradecer también a mis compañeros por sus consejos y enseñanzas a lo largo del camino.
ix Resumen Este Trabajo de Fin de Grado estudia el desarrollo e implementación de un sistema en Salesforce para su uso como herramienta de gestión de relaciones con clientes en el ámbito de la administración de fincas. Este sector en auge requiere soluciones eficientes para la gestión de relaciones con los clientes y la optimización de procesos internos y, dada la complejidad de la gestión inmobiliaria y las nuevas demandas del mercado, la utilización de sistemas Customer Relationship Management (CRM) como modelo de negocio mejora no sólo la atención al cliente y la gestión comercial, sino también el proceso de venta y la productividad. En primer lugar, se presenta una introducción a los conceptos relacionados con CRM, a la que acompañan la descripción de los objetivos y la estructura del proyecto. Después, la sección dedicada al estado del arte ofrecerá una visión general acerca de CRM, centrándose en las soluciones basadas en la nube y analizando a su vez las principales plataformas del mercado actual: Salesforce, SAP y Oracle. Aquí, nos detendremos especialmente en Salesforce por ser la elegida para el caso de estudio que se llevará a cabo posteriormente. Habiendo seleccionado Salesforce como la herramienta a emplear en nuestro proyecto, se considera oportuno profundizar en su ecosistema de forma que se cubran aspectos clave como la configuración de datos, la automatización de procesos y el desarrollo de funcionalidades a través de herramientas como Apex o componentes Lightning, que permiten adaptar la plataforma a las necesidades específicas de la empresa. La siguiente sección gira en torno al elemento principal del proyecto: el caso de estudio. Por tanto, se detallará la creación e implementación de una solución Salesforce para la empresa “AdminFincas”, compañía ficticia dedicada a la gestión de propiedades. El contexto, los objetivos y la metodología de trabajo empleada se definirán primeramente para dar paso al análisis funcional y técnico donde se explican la arquitectura del sistema y las funcionalidades específicas que necesita nuestra empresa. Después, se presentará el desarrollo de la solución señalando a su vez las herramientas utilizadas y las decisiones técnicas que guiaron el proceso de ejecución. También se muestran las pruebas que se realizaron para su validación. Finalmente, se revelan las conclusiones extraídas de los datos que obtuvimos y se plantean algunas líneas de trabajo de cara al futuro. A lo largo del estudio, se presta especial atención a cómo las funciones de Salesforce (configuración de datos, automatización de procesos, capacidades de personalización, etc.) pueden aprovecharse para satisfacer las necesidades específicas de las empresas de gestión de propiedades. Este proyecto demuestra cómo una solución CRM bien implementada puede mejorar el servicio al cliente, agilizar los procesos de ventas y mejorar la productividad general en el sector de la gestión de propiedades. Palabras clave: CRM, Salesforce, administración de fincas, automatización de procesos
xvii ÍNDICE DE FIGURAS Figura 2-1. Productos de Salesforce. 11 Figura 2-2. Arquitectura de Salesforce. 11 Figura 2-3. Ejemplo de flujo de pantalla en Flow Builder. 13 Figura 2-4. Cómo funciona Apex en Salesforce. 14 Figura 2-5. Ejemplo de clase Apex. 15 Figura 2-6. Ejemplo de trigger. 16 Figura 2-7. Ejemplo de consulta SOQL. 17 Figura 2-8. Data Import: inserción masiva de registros. 18 Figura 2-9. Ejemplo de código Visualforce. 18 Figura 2-10. Ejemplo de interfaz Visualforce dentro de Salesforce. 19 Figura 2-11. Arquitectura de componentes en Salesforce 20 Figura 3-1. Metodología AGILE. 22 Figura 3-2. Jerarquía de roles dentro del sistema. 24 Figura 3-3. Modelo de datos. 25 Figura 3-4. Configuración de la aplicación CRM. 31 Figura 3-5. Notificación tarea “Candidato pendiente de cualificación” 32 Figura 3-6. Clase Apex “ConvertirCandidatoApex”. 33 Figura 3-7. Flujo “Lead: Gestión Candidato”. 34 Figura 3-8. Desencadenador “TriggerCandidato”. 35 Figura 3-9. Acción (Account) “Modificar Contacto”. 36 Figura 3-10. Flujo “Account: Actualizar Contacto Principal”. 36 Figura 3-11. Flujo “Account: Validar Datos” 37 Figura 3-12. Desencadenador “ComprobarDatosValidados”. 37 Figura 3-13. Mapa de cuentas validadas de AdminFincas. 38 Figura 3-14. Estructura del componente Lightning mapaCuentas. 38 Figura 3-15. Controlador JavaScript del componente mapaCuentas. 38 Figura 3-16. Helper JavaScript del componente mapaCuentas. 39 Figura 3-17. Clase Apex MapaCuentasController para recuperar cuentas validadas. 39 Figura 3-18. Selector de servicios en la oportunidad. 40 Figura 3-19. Estructura del componente Lightning servicioSelector. 40 Figura 3-20. Controlador JavaScript del componente servicioSelector. 41 Figura 3-21. Helper JavaScript del componente servicioSelector. 42 Figura 3-22. Clase Apex “ServicioSelectorController” para recuperar los servicios 43 Figura 3-23. Proceso de aprobación “Oportunidad: Aprobaciones Oportunidad”. 44
Figura 3-24. Notificación tarea de aprobación “Oportunidad pendiente de aprobación”. 44 Figura 3-25. Flujo “Opportunity: Gestión Oportunidad”. 45 Figura 3-26. Desencadenador “EtapaOportunidad”. 45 Figura 3-27. Notificación tarea “Nuevo contrato pendiente de firma”. 46 Figura 3-28. Desencadenador “TriggerContrato”. 47 Figura 3-29. Flujo “Case: Gestión Caso”. 48 Figura 4-1. Salesforce Developer Org. 50
xix
1 1 INTRODUCCIÓN En este primer apartado se expondrán los temas a tratar en este trabajo de forma introductoria, se analizará el concepto de CRM (Customer Relationship Management, o Gestión de Relaciones con los Clientes), señalando la importancia e impacto que actualmente tienen las diferentes soluciones CRM para las empresas y los problemas que estas solventan, atendiendo particularmente a mejorar la gestión de una administradora de fincas. Además, con el fin de mostrar un alcance global del proyecto, se plantearán una serie de objetivos que se esperan lograr una vez haya finalizado el estudio planteado en este trabajo. Así como también, se detallará la estructura que seguirá la memoria para una mejor comprensión. 1.1 Customer Relationship Management La Gestión de las Relaciones con Clientes (CRM), se refiere al conjunto de prácticas, estrategias comerciales y tecnologías orientadas a la relación con el cliente. Se trata de administrar y analizar las relaciones de una empresa con sus clientes (y futuros clientes potenciales) para entablar una buena relación con ellos, con objetivo de impulsar el crecimiento del negocio. La llegada de los CRM ha revolucionado la forma en la que las empresas interactúan con sus clientes, manejan sus datos y optimizan sus procesos de ventas. Los sistemas CRM, como Salesforce, proporcionan una plataforma centralizada para la gestión, el seguimiento y la organización de las relaciones con los clientes, mejorando así el servicio al cliente y el rendimiento de la empresa. Salesforce, uno de los principales proveedores de software CRM basado en la nube, proporciona una experiencia única, ya que su uso permite crear relaciones más significativas con los clientes. Ofrece un completo conjunto de funciones diseñadas para el servicio, el marketing y las ventas, garantizando una gestión de contactos sin complicaciones, pues simplifica la gestión de presupuestos y proporciona inteligencia integrada para mejorar la productividad de la empresa. Uno de los tipos de empresa que utilizan software CRM son las administradoras de fincas, pues el aumento de comunidades de vecinos y la alta competencia en el sector, han llevado a los administradores de fincas a buscar herramientas que mejoren su rentabilidad y eficacia. En la actualidad, uno de los principales problemas a los que se enfrentan los administradores de fincas es la cantidad de gestiones que tienen que realizar y, el uso de este software les proporciona una experiencia centrada en el cliente, la cual es una parte fundamental en el modelo de estos tipos de negocio. Con este proyecto, se pretende abordar e implementar una solución CRM basada en Salesforce que se adapte a las necesidades específicas de una empresa de gestión de viviendas para comunidades de vecinos. La flexibilidad que presenta Salesforce permite crear un sistema CRM utilizando tanto funciones por defecto como personalizadas, ofreciendo así una solución a medida que agiliza los procesos, mejora el servicio al cliente y aumenta los ingresos. Por lo tanto, el sistema se diseñará para gestionar eficazmente los datos de los usuarios, optimizar los procesos de ventas y marketing y desarrollar una mejor relación con el cliente en toda la organización. Como resultado, este trabajo de fin de grado proporcionará una guía sobre el desarrollo de un sistema CRM con Salesforce, demostrando su aplicación en un escenario real, en nuestro caso el contexto de una empresa que gestiona viviendas para comunidades de vecinos. El objetivo es mostrar cómo un sistema CRM bien implementado puede mejorar las operaciones comerciales, contribuir a una mejor relación con los clientes y, en última instancia, impulsar el crecimiento de la empresa.
Introducción 2 1.2 Objetivos El objetivo principal de este trabajo es desarrollar un sistema CRM basado en Salesforce para una empresa administradora de fincas que le permita gestionar su modelo de negocio desde un único entorno de trabajo. Para ello, en el desarrollo de este caso de estudio se abordarán diferentes objetivos: • Definir el concepto de CRM, sus diferentes tipos y detallar sus características principales. • Exponer las ventajas y desventajas asociadas al uso de un CRM. • Realizar un análisis de los CRMs más destacados en el mercado actual. • Analizar en profundidad el CRM de Salesforce y justificar el uso de esta tecnología en la solución propuesta. • Desarrollar el caso de estudio previamente definido. El propósito principal de esta implementación del sistema en Salesforce es centralizar la información, lo cual facilita su seguimiento y mejora la eficiencia. Además, se espera que tenga un impacto significativo en las ventas y expansión de clientes en la empresa administradora de fincas; así como también un impacto positivo en la experiencia del cliente, pues ofrece una experiencia personalizada y transparente. 1.3 Estructura de la memoria Tal como se mencionaba en la introducción, una vez que los objetivos que se pretenden alcanzar han sido establecidos, es necesario organizar el trabajo en diferentes capítulos, manteniendo un hilo conductor coherente para su desarrollo. Primero, los usuarios necesitan comprender los conceptos y tecnologías involucrados, así como sus respectivas ventajas e inconvenientes. Sobre esta base, el siguiente paso implica diseñar un caso de estudio para abordar los objetivos Determinados. Posteriormente, la solución elegida debe ser implementada, configurada y puesta a prueba. Una vez completadas estas etapas, podremos extraer conclusiones y exponer posibles mejoras del proyecto. Para aclarar, abordaremos todos estos temas siguiendo los siguientes puntos, que abarcarán todo el alcance del proyecto: • Estudio del estado del arte: se definirá qué es un CRM y se analizarán los diferentes proveedores de CRM que existen actualmente. Entre estos, se explicará detalladamente qué es Salesforce, ya que será la tecnología que se implementará en el caso de estudio. • Análisis del caso de estudio: se expondrán las necesidades de la empresa administradora de fincas y se realizará el análisis de casos de uso. Además, se expondrá detalladamente cómo se va a desarrollar la solución propuesta. • Implementación de la solución: se detallarán las configuraciones y procesos aplicados, para que el usuario se familiarice con cada concepto de forma práctica. • Puesta en marcha, pruebas de funcionamiento y demostración de los resultados: se expondrá un plan de pruebas para lograr nuestro propósito, que la solución funcione como lo esbozado en el apartado de diseño. • Toma de conclusiones: se realizará un análisis global del proyecto, estableciendo ventajas e inconvenientes, así como proyectar posibles líneas futuras.
3 2 ESTADO DEL ARTE En este apartado, se describirá en primer lugar qué es un CRM, junto con sus diferentes tipos y características generales, así como los CRM basados en la nube. Después, se entrará en detalle en la plataforma escogida para la solución propuesta en este trabajo, Salesforce. Explorando aspectos específicos como la configuración de datos en dicha plataforma CRM la automatización de procesos y el desarrollo de soluciones personalizadas. 2.1 CRM Existen diversas definiciones sobre Customer Relationship Management, de entre todas ellas podemos llegar a la conclusión de que se trata de una combinación de tecnología y estrategia con el objetivo de optimizar la interacción con los clientes y mejorar la satisfacción de estos. Desde el enfoque tecnológico, el CRM consiste en una plataforma informática diseñada para registrar y analizar las interacciones entre la empresa y los usuarios, y generar informes sobre ellas, centrándose en el marketing, la gestión comercial y la atención al cliente. A nivel estratégico, se refiere al conjunto de tácticas que abarcan el análisis de las interacciones con los clientes, la anticipación de necesidades, la optimización de la rentabilidad, el aumento de las ventas y la personalización de campañas para atraer nuevos clientes y retener los actuales. Al integrar el CRM en sus operaciones, las empresas pueden obtener una ventaja competitiva en el mercado actual al ofrecer experiencias excepcionales a los clientes que impulsan la fidelidad, la promoción y la rentabilidad a largo plazo. Su objetivo es mejorar las relaciones comerciales, ayudando a conservar a los clientes e impulsar el crecimiento de las ventas. Los sistemas CRM ayudan en la gestión de contactos, gestión de ventas productividad y más, permitiendo una visión general de cada cliente a lo largo de todo su ciclo de vida. La idea de CRM existe desde hace mucho tiempo, en las primeras etapas del comercio, cuando era crucial mantener relaciones con compradores y vendedores. El concepto de CRM ha evolucionado desde entonces, el enfoque básico de mantenimiento de registros y contabilidad ha dado paso a la era digital de la gestión automatizada de los datos de los clientes. Los hechos clave incluyen la aparición del marketing de bases de datos en la década de 1980, el desarrollo de productos de automatización de la fuerza de ventas en la década de 1990 y la introducción de soluciones de CRM basadas en la nube a finales de la década de 1990. El CRM ha seguido evolucionando con los avances tecnológicos, lo que ha llevado a la integración de la información de redes sociales, el CRM en dispositivos móviles y el auge de la IA, además de big data en los sistemas de CRM. La característica principal de un CRM en cualquier contexto es su capacidad para recopilar y organizar la información de clientes potenciales a lo largo de todas las fases del negocio, al mismo tiempo que gestiona las relaciones con los clientes ya establecidos. No obstante, al centrarnos en el CRM como una plataforma, es conveniente señalar más detalladamente sus principales características a continuación: • Almacenamiento de información de clientes: permite almacenar datos de clientes actuales y potenciales, como nombres, direcciones, números de teléfono, interacciones con la empresa, correos electrónicos, entre otros. Esto se logra a través de bases de datos integradas en la plataforma CRM. • Centralización de herramientas de gestión: agrupa diversas herramientas de gestión dentro de un mismo entorno de trabajo, facilitando el acceso y la operatividad dentro de la plataforma. • Automatización de tareas repetitivas: incluye herramientas que permiten desarrollar automatizaciones para ejecutar tareas de manera programada, simplificando procesos y aumentando la eficiencia. • Análisis y reporting: proporciona herramientas para generar informes y así medir el rendimiento de los servicios de la empresa, evaluar la satisfacción del cliente, identificar tendencias y oportunidades, y tomar decisiones informadas. • Feedback entre empresa y cliente: dispone de mecanismos para generar comunicaciones, como correos o avisos, hacia los clientes registrados, asegurando que toda interacción entre la empresa y el cliente
Estado del Arte 4 quede registrada y sea accesible dentro del entorno de trabajo. Estas características señalan la importancia de los CRM como plataformas completas que no solo se enfocan en la gestión de contactos, sino que también ofrecen un amplio espectro de funcionalidades diseñadas para optimizar la gestión de relaciones con los clientes, automatizar procesos y proporcionar información estratégica que contribuye al crecimiento y éxito de la empresa. En función del objetivo de la empresa, el modelo CRM puede clasificarse en tres tipos principales: • CRM operativo: Se centra en la automatización de los procesos de cara al cliente, como ventas, marketing y servicio, para mejorar la eficiencia y la experiencia del cliente. • CRM analítico: Hace hincapié en el análisis de los datos de los clientes para fundamentar las decisiones estratégicas y fortalecer las relaciones con los clientes. • CRM colaborativo: Tiene como objetivo mejorar la comunicación y la colaboración con los clientes a través de diversos canales, garantizando una experiencia de cliente coherente. Estos sistemas ofrecen una variedad de ventajas y desventajas, que podemos resumir en la siguiente tabla: Ventajas Desventajas Mejora de las relaciones con los clientes (mayor fidelización y retención de clientes) Elevados costes de implantación Mejora del rendimiento de las ventas Requisitos de formación (Seguridad y protección de datos) Aumento de la productividad No es adecuado para todas las empresas Tabla 2-1. Principales ventajas y desventajas de un CRM. 2.1.1 CRM en la Nube El término ‘nube’ se refiere en este contexto al espacio de almacenamiento virtual de información o sistemas informáticos que los usuarios pueden utilizar sin necesidad de instalar dispositivos de hardware. El almacenamiento en la nube elimina las preocupaciones sobre las limitaciones de capacidad de almacenamiento, a diferencia de los dispositivos físicos, ya que ofrece un espacio prácticamente ilimitado para el almacenamiento de datos (las empresas pueden comprar o alquilar el espacio de almacenamiento necesario, con la flexibilidad de ampliarlo según sus necesidades, sin tener que instalar hardware). En el apartado anterior se ha mencionado que podemos encontrar 3 tipos diferentes de CRM, sin embargo, la clasificación de los tipos de CRM no se limita únicamente a su usabilidad dentro de la empresa, sino que también se determina según su ubicación física, dando lugar a la siguiente clasificación: • CRM Local El CRM Local, también llamado CRM On-Premise, se refiere a los sistemas CRM que están alojados en los servidores físicos de una empresa (es necesario que el software se instale directamente en estos). La particularidad de este tipo de CRM es que depende del equipo informático interno de la empresa para su mantenimiento, resolución de problemas y actualizaciones. Ofrece a las empresas un control total sobre su propio entorno CRM, lo que incluye la seguridad de sus datos y opciones de personalización. Sin embargo, también supone importantes costes iniciales elevados en hardware, licencias de software y posibles ampliaciones, así como la necesidad de un equipo informático cualificado.
5 Salesforce como CRM en la Administración de Fincas • CRM en la Nube El CRM en la Nube, o CRM Cloud, se basa en la tecnología de cloud computing 1 para alojar el software en servidores remotos gestionados por el proveedor de CRM. Este modelo elimina la necesidad de que las empresas instalen el sistema CRM en ordenadores locales o cuenten con un equipo de TI dedicado al mantenimiento del software. Estas soluciones en línea pueden denominarse software como servicio (SaaS), ya que ofrecen la flexibilidad de acceder al sistema CRM desde cualquier lugar y en cualquier momento, mediante un navegador web en cualquier dispositivo con conexión a Internet. Este tipo de CRM reduce de forma significativa los costes iniciales, facilita la escalabilidad y garantiza que las empresas siempre tengan acceso a las últimas funciones y actualizaciones de seguridad sin intervención manual. CRM Ventajas Desventajas On-Premise Mayor control del servidor por parte de los equipos de TI. Un corte de energía puede ocasionar retrasos en el uso del sistema. Los costos iniciales, incluyendo configuración e instalación, son elevados. Se requiere contratar a un equipo de TI para administrar el servidor y realizar mantenimiento. Menos flexible y las actualizaciones pueden ser costosas. Cloud Disponible las 24 horas del día, los 7 días de la semana. Accesible desde cualquier ubicación y dispositivo móvil. Requiere una inversión inicial mínima. No necesita mantenimiento del servidor y las actualizaciones son automáticas. Acompaña de manera segura el crecimiento de la empresa. Depende de la conexión a Internet, aunque puede sincronizarse con datos offline. Tabla 2-2. Diferencias entre CRM On-Premise y Cloud. 2.1.2 CRMs destacados en el mercado actual Dada la gran variedad de CRMs basados en la nube disponibles para las empresas, se va a realizar un breve análisis de los más importantes del mercado actualmente para poder tomar una decisión sobre cuál es el más indicado para implantar en el proyecto. Antes de continuar, se van a definir algunos conceptos que clarificarán la comprensión del análisis: 1 Se refiere a la disponibilidad bajo demanda de recursos de computación como servicios a través de Internet.
Estado del Arte 12 A continuación, se ofrecerá una visión general del modelo de datos y las herramientas claves del entorno Salesforce, mostrando solo las secciones más relevantes de las funciones principales de la plataforma CRM. 2.2.1 Configuración de datos en Salesforce Un modelo de datos define la estructura de una base de datos organizando las tablas de forma lógica. En Salesforce, el modelo de datos está basado en objetos, donde los objetos representan tablas en la base de datos. Cada objeto contiene campos (columnas) y registros (filas). Un registro es una instancia de un objeto, lo que significa que un objeto puede tener varios registros, cada uno de los cuales almacena valores en sus campos. Salesforce incluye objetos estándar como Cuenta, Oportunidad, Caso y Cliente potencial, que son componentes del CRM listos para usar que pueden modificarse dentro de ciertos límites. Cada objeto estándar dispone de campos que permiten al programador definir el objeto según los requisitos del sistema que se está creando. Además, los usuarios pueden crear objetos personalizados para satisfacer sus necesidades específicas, ya que los objetos estándar sólo tienen 5 campos estándar y todos los demás campos deben ser creados por el desarrollador. Estos dos tipos de objetos permiten crear un modelo de datos alineado con el modelo de negocio de la empresa. Los componentes clave de un objeto son: • Campos: Almacenan información específica dentro de un registro. Disponibles en varios tipos como texto, numérico, fecha, lista, fórmula y casilla de verificación. • Relaciones: Campos que vinculan datos entre objetos. Existen varios tipos, como las relaciones de búsqueda (lookup), que conectan un objeto con otro de manera opcional, y las relaciones maestrodetalle (master-detail), que crean una relación dependiente entre dos objetos, donde el objeto detalle hereda propiedades del objeto maestro. • Formatos de página: Determinan la disposición visual de campos, botones, enlaces y componentes en las páginas de registro de los objetos, ofreciendo diferentes plantillas de visualización en función del tipo de registro. • Páginas de registro: Presentan la información de los registros individuales. • Tipos de registro: Diferencian procesos de negocio, diseños de página y valores en listas de selección entre los usuarios. Permiten personalizar la presentación o comportamiento de los registros según diferentes necesidades. • Botones: Permiten ejecutar procesos que ayudan a los usuarios en la gestión de los datos. • Enlaces y acciones: Permiten una navegación fluida entre las páginas de registro, proporcionando un mayor control sobre los procesos. • Reglas de validación: Garantizan la integridad y calidad de los datos, evaluando condiciones específicas y mostrando mensajes de error cuando los datos no cumplen con criterios establecidos. 2.2.2 Automatización en Salesforce La automatización en Salesforce se refiere al uso de herramientas y funciones dentro de la plataforma para automatizar tareas repetitivas y procesos complejos, mejorando así la eficacia de las operaciones. Salesforce ofrece varias herramientas "Point-and-Click" que permiten a los usuarios configurar estas automatizaciones sin necesidad de amplios conocimientos de programación a través de interfaces intuitivas. Entre las herramientas más destacadas de Salesforce se incluyen: • Flow Builder: es una herramienta que permite a los usuarios diseñar procesos empresariales mediante una interfaz de arrastrar y soltar. Existen varios tipos de flujos: Flujos de pantalla (Screen Flows), se utilizan para guiar a los usuarios a través de pasos o formularios, recopilar datos y mostrar información de forma dinámica. Flujos iniciados automáticamente (Auto-launched Flows), se ejecutan automáticamente sin necesitar interacción del usuario y pueden ser lanzados por diferentes eventos (comúnmente utilizados para tareas en segundo plano). Flujos desencadenados por programación (Scheduled Flows), se ejecutan a horas específicas, lo que permite a las empresas automatizar tareas recurrentes según un calendario establecido.
13 Salesforce como CRM en la Administración de Fincas • Process Builder: es otra herramienta que permite crear procesos automatizados y es útil para automatizaciones más básicas. Sin embargo, es importante tener en cuenta que Salesforce está eliminando Process Builder en sustitución de Flow Builder, ya que ofrece una funcionalidad más avanzada y una mayor flexibilidad. Es por esto por lo que se recomienda a los usuarios que pasen sus automatizaciones a Flow Builder para el futuro. • Workflow Rules: son reglas de automatización simples que permiten definir acciones automatizadas según ciertos criterios. Son fáciles de configurar y utilizar, y pueden activar diversas acciones, como la actualización de campos, la creación de tareas y la actualización de registros relacionados. Sin embargo, a medida que Salesforce continúa evolucionando, se recomienda a los usuarios a utilizar Flow Builder. Figura 2-3. Ejemplo de flujo de pantalla en Flow Builder. 2.2.3 Desarrollo en Salesforce La implementación de un CRM en Salesforce no solo requiere de la configuración de datos y la automatización de flujos de trabajo, sino también del desarrollo de funcionalidades e interfaces personalizadas para satisfacer las necesidades de la empresa. Para ello, los desarrolladores necesitan conocimientos en lenguajes de programación, integración de sistemas y creación de aplicaciones personalizadas. Además, estos pueden aprovechar las herramientas y extensiones que ofrece Salesforce para todas las etapas del desarrollo de aplicaciones, como la consola de desarrollo, un IDE capaz de crear, depurar y probar aplicaciones dentro de un entorno de Salesforce. 2.2.3.1 Apex Apex es un lenguaje de programación (propiedad de Salesforce) orientado a objetos que permite a los desarrolladores ejecutar instrucciones de control y transacción de flujo. Utiliza una sintaxis similar a la del lenguaje Java y se integra con procedimientos de base de datos. Apex permite a los desarrolladores agregar lógica empresarial para la mayoría de los eventos del sistema.
Estado del Arte 14 Criterio/Lenguaje Java Apex Espacio de trabajo En el respectivo software En la nube Licencia Necesario Opcional Coste Alto Medio Crear informes y dashboards Complejo Simple Gestión de datos Manual Automatizado Tabla 2-7. Diferencias entre Java y Apex. El lenguaje Apex se caracteriza por: • Facilidad de uso: está basado en Java y C#, lo que incluye variables, expresiones, sintaxis de bucles, objetos y arrays. Cuando Apex introduce nuevos elementos, utiliza una sintaxis y semántica fácil de interpretar. • Centrado en los datos: está diseñado para procesar múltiples consultas y declaraciones DML en una sola unidad de trabajo simple en la plataforma. • Rigurosidad: lenguaje de programación fuertemente tipado que utiliza referencias directas a objetos y nombres de campos. Los errores en tiempo de compilación ocurren si las referencias son inválidas. • Alojamiento: el código Apex se guarda, compila y ejecuta en el servidor de Salesforce por lo que no necesita ninguna herramienta adicional para programar. • Adaptación al entorno Multitenant: está diseñado para funcionar eficientemente en el entorno multitenant de la plataforma Salesforce, donde múltiples organizaciones comparten los mismos recursos. Cualquier código que viole los límites falla y envía mensajes de error fáciles de entender. • Actualización automática: el lenguaje Apex no necesita ser reescrito cuando se actualiza, ya que el código se almacena como metadatos en la plataforma. Apex se actualiza automáticamente cuando Salesforce se actualiza. • Facilidad de pruebas: proporciona soporte incorporado para la creación y ejecución de pruebas unitarias. Incluye resultados de pruebas que indican qué partes del código pueden ser más eficientes. • Versionado: el código Apex se puede guardar en distintas versiones de la API. Figura 2-4. Cómo funciona Apex en Salesforce. Además, el código Apex es particularmente útil para añadir funcionalidad a los disparadores, que se tratarán más adelante.
15 Salesforce como CRM en la Administración de Fincas ➢ Clases Apex Las clases Apex son un componente fundamental en el lenguaje de programación Apex, utilizado en la plataforma Salesforce. representan modelos o estructuras lógicas que facilitan la creación y manipulación de objetos Apex. Una clase Apex puede contener otras clases, métodos, variables y código estático, proporcionando así un modo sencillo de implementar y ampliar la funcionalidad de los objetos en Salesforce. Las clases Apex soportan diversos mecanismos de Salesforce, incluyendo automatizaciones, llamadas a la base de datos, componentes Lightning y disparadores (triggers). Esto permite a los desarrolladores crear soluciones integrales que interactúan eficazmente con múltiples aspectos de la plataforma, ofreciendo una amplia gama de funcionalidades. Para asegurar la calidad del código desarrollado, es obligatorio que cada clase Apex esté acompañada de una clase de prueba. Estas clases test tienen como objetivo verificar el correcto funcionamiento del código y deben cubrir al menos el 75% del mismo. Actúan como bancos de prueba que ejecutan el código en situaciones simuladas, activando diferentes partes de la clase Apex para determinar si la prueba es exitosa o no. Esto es crucial para asegurar que el código desplegado en entornos de producción sea de alta calidad y libre de errores. Figura 2-5. Ejemplo de clase Apex.
Estado del Arte 16 ➢ Triggers En Salesforce, los disparadores son componentes clave que permiten la ejecución de acciones personalizadas antes o después de que ocurran eventos específicos en los registros de la base de datos. Estos eventos pueden incluir la inserción, actualización o eliminación de registros. Existen dos tipos principales de disparadores: • Before Triggers: Se utilizan para realizar acciones antes de que los registros se guarden en la base de datos. Estas acciones se aplican exclusivamente al propio registro que ha activado el evento. Son útiles para la validación de datos o para modificar valores del registro antes de que se confirme su almacenamiento. • After Triggers: Se ejecutan después de que los registros se han guardado en la base de datos. A diferencia de los Before Triggers, las acciones en After Triggers pueden afectar tanto al registro que activó el evento como a otros registros independientes. Esto es especialmente útil para la actualización de registros relacionados o para la creación de registros adicionales basados en los cambios realizados. Figura 2-6. Ejemplo de trigger. Dentro de los disparadores, existen variables de contexto que proporcionan información crucial sobre los valores de un registro en un momento dado. Estas variables permiten acceder a los valores anteriores y nuevos de los registros afectados, facilitando así la implementación de lógica compleja basada en las diferencias de estado. En la Figura 2-6. Ejemplo de trigger. se pueden observar las siguientes variables: Variable Uso isInsert Devuelve true si este desencadenador se activó debido a una operación de inserción en la interfaz de usuario de Salesforce, Apex o la API. isDelete Devuelve true si este desencadenador se activó debido a una operación de eliminación en la interfaz de usuario de Salesforce, Apex o la API. isBefore Devuelve true si este desencadenador se ha activado antes de que se haya guardado cualquier registro. isAfter Devuelve true si este desencadenador se ha activado después de que se hayan guardado todos los registros. Tabla 2-8. Variables de contexto para desencadenadores. Los triggers son esenciales para la implementación de reglas de negocio y seguridad en Salesforce. Se utilizan para asegurar que los registros cumplen con ciertos criterios o reglas antes de que se confirmen los cambios. Por ejemplo, pueden verificar que un registro cumple con políticas de seguridad específicas o que los datos introducidos son válidos. Además, los triggers pueden gestionar la creación y eliminación de jerarquías dentro del sistema. Por ejemplo, al eliminar una cuenta matriz, un disparador puede configurarse para eliminar automáticamente todas las cuentas hijas y otros registros asociados, asegurando así la integridad y coherencia de los datos.
17 Salesforce como CRM en la Administración de Fincas 2.2.3.2 Base de datos Las bases de datos de Salesforce utilizan una variante del estándar SQL denominada SOQL (Salesforce Object Query Language), desarrollada por Salesforce. Además, las operaciones DML (Data Manipulation Language) permiten la inserción, actualización o eliminación de registros dentro del entorno de trabajo. La combinación de SOQL con estas operaciones da como resultado un modelo de gestión de datos para la manipulación integral de bases de datos. Tanto las operaciones de consulta como las de modificación de registros pueden incorporarse en el código Apex. ➢ SOQL (lenguaje de consulta de objetos de Salesforce) Una consulta SOQL tiene la siguiente sintaxis: • SELECT: especifica los campos deseados en la consulta, separados por comas. • FROM: indica el objeto del que obtener los campos. • WHERE: opcional, añade condiciones en los campos del objeto para filtrar los registros en función de criterios específicos. Figura 2-7. Ejemplo de consulta SOQL. Las consultas permiten recuperar registros de la base de datos a nivel de tabla, exportar datos en varios formatos (CSV, JSON, XML), modificar campos y eliminar registros. ➢ DML (lenguaje de manipulación de datos) Salesforce admite seis operaciones DML: • INSERT: añade un registro a la base de datos. • UPDATE: modifica un registro en la base de datos. • UPSERT: si el registro existe, lo actualiza; si no, inserta un nuevo registro. • DELETE: elimina un registro de la base de datos. • UNDELETE: recupera un registro eliminado de la base de datos. • MERGE: fusiona hasta tres registros en uno, eliminando los demás y vuelve a crear los registros relacionados. Cada registro de Salesforce tiene un ID de entorno único, lo que garantiza la integridad de los datos durante las operaciones DML. Estas operaciones pueden realizarse en un único registro o en bloque en una lista de registros, recomendándose las operaciones en bloque para evitar alcanzar los límites de llamadas de Apex (150 por transacción). Salesforce Inspector es una extensión de Google Chrome que facilita la interacción con la base de datos de Salesforce mediante SOQL (funcionalidad Data Export) y DML (funcionalidad Data Import), un ejemplo de uso es la inserción masiva de registros de un objeto, como se observa en la siguiente figura.
Estado del Arte 18 Figura 2-8. Data Import: inserción masiva de registros. 2.2.3.3 Visualforce Visualforce es un framework de Salesforce diseñado para el desarrollo de interfaces web personalizadas dentro del entorno de Salesforce, reemplazando las interfaces estándar. Las páginas Visualforce se construyen utilizando tres lenguajes básicos del desarrollo web: HTML, JavaScript y CSS. Aunque su sintaxis difiere del HTML estándar, los elementos funcionan de manera similar. A continuación, se muestra un ejemplo de la parte HTML de una página Visualforce: Figura 2-9. Ejemplo de código Visualforce.
19 Salesforce como CRM en la Administración de Fincas Esta página se vería de la siguiente forma: Figura 2-10. Ejemplo de interfaz Visualforce dentro de Salesforce. Las páginas Visualforce permiten crear interfaces de usuario personalizadas, desde páginas completas hasta listas relacionadas, ofreciendo funcionalidades adicionales no disponibles en las opciones estándar de Salesforce. Las clases Apex actúan como controladores o constructores de estas páginas, gestionando los datos necesarios y evitando sobrecargar los triggers, que se limitan a realizar comprobaciones esenciales y mostrar mensajes de error o éxito. A pesar de sus ventajas, Visualforce tiene una limitación importante: no está optimizado para dispositivos móviles. Aunque esto no fue un problema en sus inicios, hoy en día es necesario considerar soluciones que ofrezcan mejor compatibilidad y rendimiento en estos dispositivos. Por esta razón, se utilizan otros componentes, los cuales se explicarán en el siguiente apartado. 2.2.3.4 Componentes Lightning Los componentes Lightning son aplicaciones web dinámicas diseñadas para dispositivos móviles y de escritorio dentro del entorno de Salesforce. Desarrollados para sustituir a las páginas Visualforce, ofrecen mayor eficiencia y funcionalidad. Al igual que Visualforce, los componentes Lightning se basan en tres lenguajes básicos del desarrollo web (HTML, JS y CSS). Cada componente Lightning comienza y termina con la notación <aura:component>, equivalente a la etiqueta <html> en una página web. Esta notación define la parte visual de la aplicación web. La funcionalidad se implementa con JavaScript, que actúa como el controlador de la aplicación. Además de HTML, JavaScript y CSS, los componentes Lightning pueden utilizar clases Apex para aumentar sus funcionalidades. Las clases Apex pueden manejar automatismos y acceder a la base de datos de Salesforce, integrando la lógica de negocio.
Estado del Arte 20 Figura 2-11. Arquitectura de componentes en Salesforce 2.2.3.5 Informes y paneles Los informes permiten a los usuarios del sistema supervisar el progreso de los objetos deseados con la frecuencia que deseen. Para realizar el seguimiento de dichos objetos, o bien se utilizarán los informes que Salesforce proporciona para objetos estándar o bien se crearán tipos de informes personalizados; ya que es posible crear informes sobre objetos simples o sobre objetos relacionados. Tras determinar el objeto en cuestión, el usuario tiene la posibilidad de escoger los campos del objeto que más le convengan en caso de que no le interesen todos los campos. Además, Salesforce permite exportar los datos del informe a un fichero Excel, lo cual resulta muy útil a la hora de controlar la evolución con la frecuencia seleccionada. También se podrán diseñar gráficos a partir de los datos recibidos, que a su vez se podrán utilizar como cuadros de mando. Asimismo, el usuario dispone de diferentes intervalos que ofrece Salesforce para poder programar la ejecución de los informes. De este modo, ya no tiene que actualizar manualmente los informes para comprobar su seguimiento. Una vez ejecutado el informe programado, Salesforce enviará una notificación al usuario vía email para que se pueda realizar la exportación de datos.
21 3 CASO DE ESTUDIO Tras haber presentado una visión global tanto de los sistemas CRM, como de las funcionalidades y capacidades de Salesforce, en este capítulo se expondrá el caso de estudio que se va a desarrollar con el fin de alcanzar los objetivos de este trabajo. 3.1 Diseño de la solución Dado que la administración de fincas implica tanto la gestión de relaciones con propietarios y la captación de nuevas comunidades de vecinos (aspectos cubiertos por Sales Cloud) como la atención de incidencias, mantenimiento y servicio al cliente (aspectos cubiertos por Service Cloud), se integrarán ambas nubes para crear un sistema personalizado que combine lo mejor de ambas plataformas y se ajuste a los requerimientos de la empresa que se definirán más adelante. 3.1.1 Contexto El caso de estudio a tratar proviene de una empresa administradora de fincas ficticia cuyos requisitos funcionales se basan en requisitos reales. Partiendo de esta premisa, se plantea el siguiente escenario: La empresa AdminFincas es una administradora de fincas establecida en Sevilla cuyos clientes actuales son a nivel provincial. Como se acaba de mencionar, esta empresa se especializa en la gestión de fincas, es decir, su actividad principal se centra en la administración y mantenimiento de propiedades y comunidades de propietarios. Esta empresa comenzó siendo una compañía de servicios variados, ofreciendo servicios integrales que incluían el mantenimiento y reparación de inmuebles, gestión de arrendamientos, asesoramiento en ventas de propiedad, y la administración de comunidades de propietarios. Desde hace un par de años, como parte de su estrategia de crecimiento y mejora de sus servicios, la empresa decidió especializarse exclusivamente en la administración de fincas para convertirse en un referente en este sector. Actualmente, la empresa depende de herramientas básicas de Microsoft Office, lo que limita la productividad de los empleados y dificulta la capacidad de la empresa para alcanzar sus objetivos. Al implementar un CRM de Salesforce, AdminFincas pretende unificar los datos de la empresa y mejorar el control de los servicios que realizan a sus clientes, lo que implica un mejor rendimiento de las ventas. A continuación, se van a describir los objetivos que se pretenden alcanzar tras la implementación del proyecto. 3.1.2 Objetivos AdminFincas busca superar las limitaciones de sus herramientas actuales de Microsoft Office y alcanzar nuevos niveles de eficiencia y productividad, por ello, los objetivos específicos de la empresa para este proyecto se detallarán a continuación: 1. Centralización de datos y creación de un sistema único de gestión: unificar toda la información relacionada con propiedades, comunidades de vecinos y proveedores en una única plataforma centralizada. Esto mejorará el funcionamiento de la empresa, eliminando bases de datos múltiples y reduciendo duplicaciones y errores. También se va a abarcar la gestión de clientes, oportunidades, facturas y contratos. 2. Automatización de tareas y ahorro de recursos: automatizar procesos administrativos repetitivos como el envío de notificaciones, para que el personal se enfoque en actividades de mayor valor estratégico, optimizando los recursos tecnológicos y reduciendo costes. 3. Mejora en la comunicación y consolidación de relaciones: fortalecer las relaciones con los clientes, manteniendo una comunicación eficiente con estos, para poder proporcionar un servicio más personalizado y atento.
Caso de estudio 28 Nombre del campo Tipo de dato Descripción Número de propiedades Número Indica el número de propiedades relacionadas con la cuenta. Número de propietarios Número Muestra el número de residentes de la propiedad. Referencia Catastral Texto (20) Se indica la referencia catastral de la propiedad. Detalles de la propiedad Picklist Se muestra una lista con características de la propiedad (Área de Juegos Infantiles, Áreas Verdes, Ascensor, Conserjería, Garaje, Gimnasio, Piscina, etc.) Descripción Texto (121) Espacio para más detalles o anotaciones si fuera necesario. Solvencia Currency (16,2) Solvencia financiera del cliente. ¿Morosidad? Picklist Mediante una lista se seleccionará si hay morosidad o no. Riesgo de abandono Picklist A través de una lista se determinará si el grado de riesgo de abandono: alto, medio o bajo Valor de la propiedad Currency (16,2) Valor económico de la propiedad Historial de inversiones Área de texto Espacio en el que se aportan datos relevantes sobre anteriores inversiones de la propiedad Estado de infraestructura Picklist Lista que muestra los diferentes estados de la infraestructura: excelente, buena, regular, pobre y crítica. Eficiencia Energética Picklist Mediante una lista se podrá seleccionar la letra correspondiente a la eficiencia energética de la propiedad (A-G) ¿Datos validados? Casilla Si los datos se dan por validados se marcará la casilla. Tabla 3-4. Objeto Cuenta (campos). 3.1.4.2.4 Servicio Se ha creado el objeto personalizado “Servicio” para gestionar los servicios ofrecidos por la empresa, que se negociarán en la oportunidad comercial con el cliente. Se van a diferenciar según el tipo de cliente. Nombre del campo Tipo de dato Descripción Código de servicio Numeración automática Número asignado automáticamente como identificador del servicio. Nombre del servicio Texto (80) Breve descripción del servicio prestado a modo de identificación. Tipo de servicio Picklist Mediante una lista se escoge el tipo de servicio: Administración, Consultoría, Gestión, Mantenimiento o Seguridad. Descripción del Servicio Texto (20) Muestra brevemente las características del servicio Precio del Servicio Currency (16,2) Se indica el coste anual del servicio. Propietario de la cuenta Lookup (User) Se muestra el nombre del Administrador del sistema CRM (Sara Cabeza Muñoz). Fecha Inicio Fecha Indica la fecha del comienzo del servicio. Fecha Fin Fecha Muestra la fecha en la que finaliza el servicio. Servicio Vigente Casilla Si el servicio está vigente se marca la casilla. Tabla 3-5. Objeto Servicio (campos).
29 Salesforce como CRM en la Administración de Fincas 3.1.4.2.5 Oportunidad El objeto estándar de Salesforce “Oportunidad” u “Opportunity” se utiliza para relacionar el objeto “Cuenta” con otros objetos en base a unos estados. Dentro de nuestro proyecto se implementará para gestionar las oportunidades comerciales de los clientes. Nombre del campo Tipo de dato Descripción Nombre de la oportunidad Texto (120) Identificación de la oportunidad Código Oportunidad Comercial Numeración automática Número asignado automáticamente como identificador del servicio. Tipo de Oportunidad Picklist Cliente existente - Actualización ; Cliente existente - Sustitución; Nuevo cliente. Nombre de la cuenta Lookup (Account) Se combina la información sobre el tipo de cliente, la dirección y código postal para identificar la propiedad. Código de la cuenta Texto (30) Muestra el código personalizado asignado a cada cuenta a modo de identificador. Etapa Picklist Listado de los estados de la oportunidad: Pendiente Gestión, En Negociación, Pendiente Aprobación; Ganada ; Perdida Probabilidad Percent (3,0) Porcentaje de probabilidad de cerrar con éxito la oportunidad. Presidente de la comunidad Lookup (Contact) Muestra a la persona de contacto. Detalles de la propiedad Picklist En una lista aparecen las características de la propiedad (Área de Juegos Infantiles, Áreas Verdes, Ascensor, Conserjería, Garaje, Gimnasio, Piscina, etc.) Propietario de la oportunidad Lookup (User) Se muestra el nombre del gestor de “AdminFincas”, será Sara Consultor Ventas. Fecha Cierre Fecha Indica la fecha en la que se cierra la oportunidad. Descripción Área de texto Espacio para más detalles o anotaciones si fuera necesario. Tabla 3-6. Objeto Oportunidad (campos). 3.1.4.2.6 Contrato El objeto estándar “Contrato” o “Contract” se utiliza para lidiar con los activos de la empresa dentro del sistema. En este proyecto se usará para gestionar la información de los contratos en vigor o que hayan sido anulados por los clientes. Nombre del campo Tipo de dato Descripción Número del contrato Número Número identificador del contrato. Estado Picklist A través de una lista se determina el estado del contrato: creado, en vigor o anulado. Oportunidad origen Lookup (Opportunity) Oportunidad que ha originado el contrato. Nombre de la cuenta Lookup (Account) Cuenta asociada al contrato. Fecha Inicio Fecha Indica la fecha del comienzo del contrato. Duración del contrato Número(4, 0) Duración del contrato en meses.
Caso de estudio 30 Nombre del campo Tipo de dato Descripción Fecha Fin Fecha Muestra la fecha en la que vence el contrato. Firmado por el cliente Lookup(Contact) Identifica el cliente que firma el contrato. Fecha de firma del cliente Fecha Fecha en la que el cliente firma el contrato. Firmado por la compañía Lookup(User) Identifica quién de la empresa firma el contrato. Fecha de firma compañía Fecha Fecha en la que el representante de la empresa firma el contrato. Propietario del contrato Lookup (User) Se muestra el nombre del gestor de “AdminFincas” que sea propietario del contrato, será Sara Gestor Activos. Aviso de vencimiento del propietario Lista de selección Indica un aviso de vencimiento a 15, 30, 45, 60, 90 o 120 días del fin del contrato. Lista de servicios Texto (40) Lista de los servicios contratados. Importe total servicios Currency (16,2) Se indica el coste anual de los servicios contratados. Medio de pago Picklist Mediante una lista se seleccionará el medio de pago: Domiciliación bancaria, Efectivo, Transferencia, Bizum o Impagado Periodicidad Picklist A través de una lista se muestran los periodos de pago: Mensual, Trimestral, Semestral o Anual. Condiciones especiales Texto (40) Campo de texto para detallar condiciones particulares o excepciones del contrato. Tabla 3-7. Objeto Oportunidad (campos). 3.1.4.2.7 Caso El objeto “Caso” o “Case” es un objeto estándar de Salesforce utilizado para gestionar la atención al cliente de la empresa. Dentro del proyecto se usará para gestionar las consultas, quejas y reclamaciones de los clientes de la empresa. Nombre del campo Tipo de dato Descripción Número del caso Numeración automática Número asignado automáticamente como identificador del caso. Asunto Texto (255) Breve descripción de la situación. Nombre del contacto Lookup (Contact) Muestra a la persona de contacto. Nombre de la cuenta Lookup (Account) Se indica la cuenta vinculada al caso. Tipo Picklist Mediante una lista se determina el tipo de caso: Reclamación, Petición u Otro. Teléfono del contacto Phone Muestra el número de teléfono de la persona de contacto. Correo electrónico del contacto Email Indica la dirección de correo electrónico de la persona de contacto. Origen del caso Picklist Una lista muestra el medio de donde proviene el caso: Teléfono, Email o WhatsApp. Contrato Lookup (Contract) Muestra el contrato vinculado al caso. Motivo del caso Picklist Se indica a través de una lista Administración, Consultoría, Gestión, Mantenimiento, Seguridad u Otro. Descripción Área de texto Espacio para más detalles o anotaciones si fuera necesario. Comentarios internos Área de texto Espacio para comentarios internos de los usuarios.
31 Salesforce como CRM en la Administración de Fincas Nombre del campo Tipo de dato Descripción Estado Picklist A través de una lista se seleccionará el estado del caso (Pendiente/Cerrado). Prioridad Picklist Determinará la importancia del caso: Alta, Media o Baja. Propietario del caso Lookup (User) Se muestra el nombre del gestor de “AdminFincas”, será Sara Atención Cliente. Fecha apertura Fecha Indica la fecha del comienzo del servicio. Fecha cierre Fecha Muestra la fecha en la que finaliza el servicio. Servicio relacionado Lookup (Servicio) Se indica el servicio al que se refiere el caso. Tabla 3-8. Objeto Caso (campos). 3.1.4.3 Análisis técnico En este apartado se describen las funcionalidades más destacables de los procesos de ventas y postventa desde una perspectiva técnica basada en Salesforce, explicando qué automatismos y herramientas deben implementarse para cubrir los requisitos necesarios en cada caso de uso. Se ha optado por crear una nueva aplicación desde cero, basada en la nube de Servicios de Salesforce: Figura 3-4. Configuración de la aplicación CRM.
Caso de estudio 32 A continuación, se van a exponer los casos de uso a nivel técnico: • Caso de uso 1: Gestión de candidatos Tal y como se define en el análisis funcional, este caso de uso es el primer paso en el proceso de ventas y consiste en la gestión de los datos de los clientes potenciales y la posibilidad de convertirlos en clientes una vez que hayan superado ciertos procesos internos de cualificación. El registro del objeto estándar “Lead” debe crearse con estado “Pendiente Cualificación” y tras su creación, debe generarse una tarea asociada al candidato con asunto “Candidato pendiente de cualificación”. Esta tarea irá destinada a un analista de la empresa para que determine la aptitud del candidato, vencerá a los 7 días y se enviará una notificación por correo como aparece en la siguiente imagen: Figura 3-5. Notificación tarea “Candidato pendiente de cualificación” Cuando se decida el futuro del candidato, el analista debe poder actualizar su estado a “Apto” o “No Apto”. En caso de no ser apto, el candidato se queda en la base de datos del sistema, y en caso de ser apto, se convierte automáticamente a cliente, generándose un contacto y una cuenta relacionados entre sí con la información insertada en el candidato. Todo este caso de uso se va a manejar con el flujo “Lead: Gestión candidatos”, creado con la herramienta Flow Builder, que invoca a la clase Apex “ConvertirCandidatoApex”:
33 Salesforce como CRM en la Administración de Fincas Figura 3-6. Clase Apex “ConvertirCandidatoApex”.
Caso de estudio 34 Figura 3-7. Flujo “Lead: Gestión Candidato”. Además, para el objeto Lead, deben crearse las siguientes reglas de validación: - Dirección obligatoria: Debe informar todos los campos de la dirección para que esta sea válida. - Formato documentación: El número de documento debe tener 8 dígitos seguidos de una letra mayúscula. - Formato referencia catastral: La referencia catastral debe seguir uno de los formatos válidos. - Formato teléfono y móvil: Los números de teléfono y móvil deben tener 9 dígitos y comenzar con los prefijos correctos para España. Por último, dada la importancia de la coherencia de datos en el registro de Candidato, se ha implementado un desencadenador que se ejecuta antes de la inserción de un nuevo candidato. Este trigger realiza las siguientes verifica que el estado del candidato sea "Pendiente cualificación" tras la creación del mismo, y valida el código postal y la provincia del candidato:
35 Salesforce como CRM en la Administración de Fincas Figura 3-8. Desencadenador “TriggerCandidato”. • Caso de uso 2: Gestión de clientes El siguiente paso en el proceso de ventas es gestionar los clientes de la empresa. Para ello se utiliza el objeto estándar de Salesforce “Account”, cuyos campos definidos en el modelo de datos almacenan la información del expediente del cliente. El registro de cuenta creado tras la conversión del cliente llevará asociado un contacto principal o presidente de la comunidad, dependiendo del tipo de cliente que se trate. Este contacto podrá modificarse desde el botón “Modificar Contacto”, que insertará un nuevo registro del objeto estándar “Contact” en la base de datos del sistema y lo asociará al registro de cuenta. Para la creación del contacto, se utiliza una nueva acción en el objeto Account y el flujo “Account: Actualizar Contacto Principal” relaciona este nuevo contacto con la cuenta:
Caso de estudio 36 Figura 3-9. Acción (Account) “Modificar Contacto”. Figura 3-10. Flujo “Account: Actualizar Contacto Principal”. Además, dado que el objeto Cuenta es el elemento central del modelo de datos del sistema, es vital garantizar que se informen todos los datos necesarios para poder formalizar la relación comercial con oportunidades. Para ello, debe implementarse un flujo que verifique la validez de la información ingresada y, en caso de que todos los campos estén informados (se evaluarán diferentes campos según el tipo de cuenta), se informará un check. En función de esta casilla de datos validados, un nuevo desencadenador permitirá la creación de oportunidades si los datos están validados.
37 Salesforce como CRM en la Administración de Fincas Figura 3-11. Flujo “Account: Validar Datos” Figura 3-12. Desencadenador “ComprobarDatosValidados”.
Caso de estudio 44 - Pendiente Aprobación: Una vez que se ha llegado a un acuerdo preliminar con el cliente y se tienen todos los servicios seleccionados, debe avanzar a esta etapa. Aquí se lanza el proceso de aprobación interno que determinará si una oportunidad será ganada o perdida, con aprobación unánime. Los aprobadores deben recibir una notificación por correo: Figura 3-23. Proceso de aprobación “Oportunidad: Aprobaciones Oportunidad”. Figura 3-24. Notificación tarea de aprobación “Oportunidad pendiente de aprobación”.
45 Salesforce como CRM en la Administración de Fincas - Cerrada/Ganada: Si las aprobaciones son favorables y se decide proceder, la oportunidad pasa a esta etapa. Aquí se finaliza el proceso de venta con éxito y se procede a la generación del contrato con el cliente. - Cerrada /Perdida: Si se determina que la oportunidad no es beneficiosa para la empresa y se rechaza una de las tareas de aprobación pendientes, la oportunidad se marca como perdida. Para la gestión global de este caso de uso debe utilizarse un nuevo flujo que permita las acciones descritas en las etapas, así como un desencadenador que no permita movimientos indeseados entre etapas: Figura 3-25. Flujo “Opportunity: Gestión Oportunidad”. Figura 3-26. Desencadenador “EtapaOportunidad”.
Caso de estudio 46 • Caso de uso 4: Gestión de activos Los activos de la empresa corresponden a los contratos con sus clientes. El contrato debe generarse cuando se gana la oportunidad con estado “Nuevo” y al gestor de activos se le asignará una nueva tarea para indicarle que el contrato está pendiente de firma. Figura 3-27. Notificación tarea “Nuevo contrato pendiente de firma”. Cuando el gestor reciba esta notificación, deben informarse todos los datos necesarios, como fecha de inicio del contrato y la duración, así como gestionar la firma del contrato (tanto del cliente como la de la compañía). Al tratarse de unos campos sensibles, se deben incluir reglas de validación: - Fecha de firma del cliente: Debe ingresar la fecha de firma del cliente cuando el contrato ha sido firmado por el cliente. - Fecha de firma de la compañía: Debe ingresar la fecha de firma de la compañía cuando el contrato ha sido firmado por un representante de la compañía. - Fecha de inicio del contrato: La fecha de inicio del contrato no puede ser anterior a la fecha actual. - Información Comercial: Debe informar los campos Periodicidad y Medio de pago para poder activar el contrato. Una vez informados los campos, el gestor puede actualizar el estado del contrato a “En Vigor”, bloqueando el registro para que no pueda modificarse ningún campo salvo el estado, ya que el contrato debe poder anularse en cualquier momento. Para la gestión íntegra de este caso de uso debe crearse un nuevo desencadenador, que realice lo indicado:
47 Salesforce como CRM en la Administración de Fincas Figura 3-28. Desencadenador “TriggerContrato”. • Caso de uso 5: Gestión de casos En este caso de uso, nos ocupamos del servicio de atención al cliente. Para ello, utilizamos el objeto estándar de Salesforce “Case”, que recoge la información registrada por el cliente de la petición o reclamación a tratar. Este objeto nos permite vincular al cliente con la consulta del servicio de atención al cliente. Los casos se diferencian por los campos tipo y motivo, que permiten clasificarlos atendiendo a su prioridad: si el tipo es “Petición” y el motivo es “Mantenimiento”, el caso se creará con prioridad “Alta”; si se tratase de una “Reclamación” y el motivo fuese “Mantenimiento”, el caso se crearía con prioridad “Media”. El resto de motivos se tratarán con prioridad “Baja”.
Caso de estudio 48 Cuando se cree un caso, además de clasificarlo, el sistema debe asignarle una tarea al agente de atención al cliente para que este, cuando revise y solucione el caso, pueda cerrarlo. Este proceso debe realizarse a través de un nuevo flujo: Figura 3-29. Flujo “Case: Gestión Caso”.
49 4 IMPLEMENTACIÓN DEL ESCENARIO La implementación realizada en el caso de estudio se ha descrito en los apartados anteriores indicando los fragmentos de código y automatismos más relevantes del entorno de trabajo. En este apartado se realizarán comentarios y se expondrán las herramientas utilizadas, así como los pasos que se han llevado a cabo durante el desarrollo e implementación del escenario. 4.1 Consideraciones previas Debido a que se trata de una demo con la versión gratuita de Salesforce, únicamente se disponen de dos licencias para usuarios, es decir, solo pueden estar activos dos usuarios, uno el administrador del sistema y a través de la otra licencia se ha ido activando y desactivando usuarios para comprobar el funcionamiento de este CRM. Además, el almacenamiento es muy limitado, al igual que la cantidad de objetos y registros que se pueden gestionar. Tampoco se tienen disponibles algunas funcionalidades avanzadas, lo que restringe las capacidades del sistema para simular un entorno empresarial más completo. Debido a estas limitaciones, ha sido necesario priorizar las funcionalidades esenciales del CRM, enfocándose en los procesos básicos de gestión y automatización, y adaptando el desarrollo a los recursos disponibles en esta versión. 4.2 Herramientas utilizadas en el desarrollo Las herramientas que se han usado para el desarrollo han sido las siguientes: - Salesforce Inspector es una extensión de navegador diseñada para facilitar la gestión de datos en Salesforce. Permite explorar y editar registros, exportar datos a formatos como CSV, y ejecutar consultas SOQL directamente desde el navegador. También ofrece una visión clara de la estructura y metadatos de los objetos en Salesforce, ayudando a los usuarios a entender mejor la organización y configuración de los datos. En esencia, Salesforce Inspector proporciona una manera más eficiente y directa de interactuar con los datos en Salesforce, lo que es especialmente útil para administradores y desarrolladores. - VSCode (Visual Studio Code) con Salesforce CLI es una combinación efectiva para el desarrollo y gestión de aplicaciones en Salesforce. VSCode, un editor de código se complementa con Salesforce CLI, una herramienta de línea de comandos que facilita la administración y automatización de tareas en Salesforce. Juntas, permiten a los desarrolladores escribir y depurar código de Apex, Visualforce, y Lightning Web Components de manera eficiente, gestionar metadatos, ejecutar pruebas, y automatizar procesos, todo desde un entorno integrado y accesible. Esta combinación optimiza el flujo de trabajo y mejora la productividad en el desarrollo de aplicaciones Salesforce. - Developer Console para Apex es una herramienta basada en la web en Salesforce que permite a los desarrolladores escribir, ejecutar y depurar código Apex de manera interactiva. Ofrece funcionalidades clave como la ejecución de bloques de código Apex, la depuración con puntos de interrupción y rastreo en tiempo real, y la visualización de logs de ejecución detallados. También facilita la ejecución de consultas SOQL y SOSL para recuperar datos, así como la gestión y revisión de pruebas unitarias. En resumen, proporciona un entorno integral para desarrollar, probar y solucionar problemas en el código Apex dentro de la plataforma Salesforce. - Salesforce Trailhead es una plataforma de aprendizaje en línea que ofrece cursos interactivos y módulos para enseñar a los usuarios sobre Salesforce, desde fundamentos básicos hasta habilidades avanzadas. Proporciona rutas de aprendizaje estructuradas, preparación para certificaciones oficiales, y desafíos prácticos para aplicar conocimientos en entornos reales. Los usuarios ganan puntos y medallas por completar lecciones, lo que gamifica el aprendizaje y motiva el progreso. Además, Trailhead incluye una comunidad activa y recursos adicionales para apoyar el desarrollo profesional continuo. En
Implementación del escenario 50 50 resumen, Trailhead es una herramienta integral para adquirir y mejorar habilidades en Salesforce de manera interactiva y accesible. 4.3 Desarrollo Una vez presentadas las herramientas que se han utilizado para desarrollar el proyecto, en este apartado se explicarán los pasos realizados para el desarrollo. El primer paso consiste en crear una organización en Salesforce, lo que supone un espacio en la nube dedicado a nuestra empresa, donde se almacenan todos los datos de los clientes, como cuentas, contactos, oportunidades, casos, y otros datos personalizados relevantes para el negocio. Se trata de una Developer Org, es decir, una organización de desarrollo. A diferencia de otras, estas organizaciones son gratuitas y están diseñadas para el desarrollo de aplicaciones y funcionalidades personalizadas, lo que las convierte en una opción ideal para llevar a cabo la solución propuesta. A continuación, se presenta una imagen de la página donde se creó la organización: Figura 4-1. Salesforce Developer Org. Llevar a cabo el diseño de un proyecto en Salesforce supone un proceso estructurado que abarca varias etapas esenciales para garantizar un despliegue exitoso. A continuación, se van a exponer los pasos que se han seguido para la implementación de nuestro proyecto en Salesforce de la mano de la empresa AdminFincas. 1. Preparación del entorno de trabajo Tras crear la organización en Salesforce como se ha mencionado antes, se configuró un entorno apto para nuestro trabajo con los datos y ajustes necesarios, como cuentas, contactos y oportunidades, para asegurarnos que las configuraciones básicas estuvieran listas antes de avanzar. Además, se definieron los requisitos funcionales y se alineó al equipo de desarrollo con los stakeholders con el fin de garantizar una capacitación adecuada que preparase el terreno para una ejecución fluida y coordinada del proyecto. 2. Creación del modelo de datos Salesforce facilita la creación de modelos de datos complejos sin necesidad de programación, lo que nos permite estructurar la información de una manera más eficiente. Por tanto, podemos crear objetos personalizados directamente en la plataforma, definiendo campos, configurando relaciones entre ellos y añadiendo reglas de
51 Salesforce como CRM en la Administración de Fincas validación para asegurar la coherencia y la integridad de los datos. Gracias a las herramientas que Salesforce nos proporciona, este procedimiento resulta rápido y sencillo, ya que se puede llevar a cabo solamente con unos clics. 3. Desarrollo de la lógica de negocio con Apex Ahora comienza la parte más técnica del desarrollo. Para implementar reglas de negocio complejas, utilizando Apex, el lenguaje de programación de Salesforce, se han creado Triggers para responder a eventos clave, como la creación o actualización de registros. También se ha usado Apex para el manejo de componentes. Para cumplir con los requisitos de Salesforce, se han desarrollado clases test que aseguraran al menos un 75% de cobertura del código, garantizando así la fiabilidad y correcto funcionamiento del sistema bajo diversas condiciones. 4. Creación de interfaces de usuario Para diseñar interfaces de usuario intuitivas y adaptadas a las necesidades de los usuarios, se ha utilizado el Lightning App Builder para desarrollar páginas Lightning personalizadas, creando vistas específicas para cada perfil de usuario y asegurando un acceso rápido a la información relevante. Además, se han creado componentes Lightning reutilizables que mejoran la experiencia del usuario y optimizan la disposición de la información. Para una personalización más avanzada, también se ha utilizado Visualforce, consiguiendo una interfaz amigable que satisficiera las necesidades del proyecto. 5. Pruebas y validación Este apartado se expondrá con más detalle en la siguiente sección del documento, pero esencialmente se trata de realizar una serie de pruebas para asegurar que todo funciona correctamente. Una vez validado el sistema, se puede proceder al despliegue de la solución CRM.
53 5 PUESTA EN MARCHA Y PRUEBAS Una vez se ha finalizado el desarrollo de la solución, resulta indispensable atender a su implementación. La puesta en marcha del proyecto y las diferentes pruebas que se deben llevar a cabo son esenciales para asegurar que las funcionalidades aplicadas funcionan según los requisitos establecidos, confirmando que el sistema está listo para su uso. 5.1 Configuración En situaciones para empresas reales, cuando se administra una organización, es común contar con múltiples entornos Sandbox, cada uno dedicado a diferentes fases del proceso de desarrollo, como pruebas y validación. Para estos entornos, uno de los usos más comunes es el de desarrollo y pruebas, donde se realiza la mayor parte de ajustes antes de implementar los cambios en un entorno de producción. No obstante, en este caso particular, al tratarse de un trabajo de fin de grado realizado en una Developer Edition, no ha sido necesario configurar entornos adicionales. Dado que esta edición de Salesforce proporciona un entorno suficientemente flexible para manejar tanto el desarrollo como las pruebas, todas las actividades relacionadas con el proyecto se han llevado a cabo dentro de un único entorno operativo, lo que ha simplificado significativamente el proceso. Esto ha permitido concentrar todos los esfuerzos en el desarrollo del proyecto sin la necesidad de gestionar múltiples entornos. 5.2 Pruebas de funcionamiento En este capítulo se presentan las pruebas realizadas para el sistema, organizadas en una tabla para facilitar su comprensión. Para cada prueba diseñada, se indica el resultado esperado, junto con el resultado real obtenido al ejecutar la prueba, lo que permite verificar si la prueba ha sido exitosa o no. Se pueden encontrar capturas de pantalla que justifican el resultado real en el Anexo del documento. Prueba Resultado esperado Resultado Candidato Crear candidato El candidato se crea correctamente Validar que la dirección sea obligatoria Error al no ingresar dirección Validar que los apellidos sean obligatorios Error al no ingresar apellidos Validar que el Nº de documento sea obligatorio Error al no ingresar número de documento Validar formato correcto de Ref catastral Error al ingresar formato incorrecto de Ref catastral Validar formato correcto de teléfono y móvil Error al ingresar formato incorrecto de teléfono/móvil Verificar que los campos del candidato estén rellenos Error si hay campos obligatorios vacíos Comprobar que el candidato no apto no crea cuenta ni contacto No se crean cuenta ni contacto si el candidato es no apto Validar que al pasar a apto se cree cuenta y contacto Se crean correctamente cuenta y contacto al pasar a apto
Referencias 2 2 Staff, S. (2024, 10 julio). The History of Salesforce. Salesforce. https://www.salesforce.com/news/stories/thehistory-of-salesforce/?bc=HA Trailhead. (s. f.). Trailhead | La manera divertida de aprender. https://trailhead.salesforce.com/es/ Vieira, S. (2024, 5 julio). Administrador de fincas: qué es y qué papel tiene en la comunidad de vecinos. Metrovacesa. https://metrovacesa.com/blog/administrador-de-fincas-que-es-y-funciones
3 Salesforce como CRM en la Administración de Fincas ANEXO En este apartado se van a adjuntar capturas de las pruebas funcionales realizadas que validan el funcionamiento correcto del sistema: 1. CANDIDATO ● Crear candidato ● Dirección obligatoria
Anexo 4 4 ● Apellidos obligatorio ● Nº de documento obligatorio
5 Salesforce como CRM en la Administración de Fincas ● Ref catastral con formato ● Teléfono y móvil con formato
Anexo 6 6 ● Campos de candidatos rellenos ● Candidato no apto (no hay cuenta ni contacto)
7 Salesforce como CRM en la Administración de Fincas
Anexo 8 8 ● Pasar candidato a apto y se crea cuenta y contacto
9 Salesforce como CRM en la Administración de Fincas ● Se crea tarea (correo)
Anexo 10 10 2. CUENTA ● Ref catastral obligatoria
11 Salesforce como CRM en la Administración de Fincas ● Modificar cuenta ● Crear nueva oportunidad sin validación de datos
Anexo 18 18 ● Aprobación de oportunidades
19 Salesforce como CRM en la Administración de Fincas 4. CONTRATO ● Generación contrato
Anexo 20 20 ● Datos obligatorios
21 Salesforce como CRM en la Administración de Fincas
Anexo 22 22 ● Contrato en vigor ● No deja modificar datos
23 Salesforce como CRM en la Administración de Fincas 5. CASOS ● Creación de caso
Anexo 24 24 ● Datos obligatorios
25 Salesforce como CRM en la Administración de Fincas ● Prioridad del caso alta y estado pendiente ● Asignado a Atención al cliente y creación de tarea
Anexo 26 26 ● Actualizar caso a Cerrado
27 Salesforce como CRM en la Administración de Fincas