Desarrollo de aplicaciones integradas con Salesforce

Salesforce

,

Apps

Desarrollo de aplicaciones integradas con Salesforce

Jorge Ruiz | may 20, 2020

El liderazgo de Salesforce en el mercado de aplicaciones para el manejo de relaciones con el cliente (CRM) nadie lo discute, sin embargo, las crecientes necesidades de los usuarios de negocio abren nuevas vertientes a un ritmo vertiginoso.

Desmarcarse de un mercado tan brutalmente competitivo no es una opción y cada día es más necesario ampliar su funcionalidad para adaptarse a dichas necesidades e integrarse con otros sistemas dentro de las organizaciones.

Tras una serie de hitos empresariales, Salesforce se plantea como un modelo Platform-as-a-Service creado para dotar a sus módulos SaaS (Sales,  Service, Marketing, Community, etc) de herramientas y servicios de automatización de procesos de negocio, APIs de integración con aplicaciones externas, entre otras muchas cosas. Por tanto se convertiría así en lo que hoy se denomina CRM.

Captura de pantalla 2020-05-20 a las 14.08.09

Oportunidades de negocio para empresas

En este artículo te presentamos la visión estratégica empresarial que es posible adoptar para el desarrollo de aplicaciones alrededor de Salesforce gracias a dos hitos empresariales que Salesforce propició con la compra de Heroku y Mulesoft.

 
1. Heroku Platform

Heroku es una plataforma de cloud público (PaaS) que permite extender la funcionalidad estándar de Salesforce mediante el desarrollo de aplicaciones. 

Concrétamente aplicaciones de lado back-end con hasta 8 lenguajes permitidos, sirviendo a su vez como hosting y almacenamiento de datos (Progress DB) de dichas aplicaciones. En la siguiente imagen, se muestra un modelo clásico de infraestructura para soportar una aplicación web unida a la plataforma Salesforce con la tecnología Heroku Connect:

Captura de pantalla 2020-05-20 a las 14.10.26

Esto trae consigo un impacto de valor añadido como explicamos en los puntos siguientes:

  • UX / Movilidad:

Favorecer la experiencia de usuario con una customización sin restricciones.  

Te preguntarás, ¿no podría hacer esto mismo con Salesforce communities? Salesforce Communities es uno de los módulos que constituyen el SaaS de Salesforce y nos permite crear aplicaciones web integradas en la plataforma. Como parte del SaaS que es, hereda la misma infraestructura como puede ser la base de datos centralizada, sistemas de permisos, etc. Sin embargo, a través de Heroku permiten desacoplar por completo las tecnologías front-end y back-end que usa Salesforce abriendo una abanico de posibilidades.

Por tanto podrás elegir qué tecnología usar, por ejemplo desde un punto de vista front-end, tecnologías como cross-platform para tener tu aplicación desarrollada en diferentes plataformas (android, ios, desktop, PWA, etc) con un único código fuente (ahorro en costes) y aprovechando funciones móviles nativas (cámara, notificaciones push, modo offline, giroscopio,GPS,etc).

Desde un punto de vista back-end, el código utilizado por Salesforce es de su propiedad, limitando el posible uso de librerías o sdks que puedan ser necesarios en algunos proyectos empresariales.

Por citar algunos ejemplos de casos de uso, podrían ser el engagement de empleados (escaneo de códigos QR, gestión de inventarios) o tickets.


  • Procesos de aprobación

Dentro de las amplias posibilidades que ofrece Heroku,  podríamos externalizar procesos de aprobación sobre objetos de negocio gestionados en Salesforce. Esto permite implementar de forma externa la jerarquía de aprobadores y determinados pasos de aprobación, de tal forma que se racionalice el uso de licencias de Salesforce con la consiguiente optimización de costes.

Además, es posible crear aplicaciones amigables y personalizadas como se explicó en el anterior punto para facilitar el proceso y adaptarlo a cada perfil que participa en el proceso.

Algunos ejemplos de estos procesos podrían ser aprobación de presupuestos, candidatos, viajes, horas extras, formaciones, etc.

  • Acceso público / Backup

Disponer de una segunda base de datos sincronizada con Salesforce para almacenar información importante dará tranquilidad a tu negocio,  permitiendo además la posibilidad hacer rollbacks en casos de necesidad.

Además, podrás utilizarla para exponer datos específicos de manera pública sin necesidad de autenticación.

Por citar algún ejemplo de caso de uso, estos podrían ser un portal público donde presentar una serie de productos o servicios que ofrece la empresa, ya sea a nivel educativo o negocio.

Sin embargo, cabe mencionar que además de Heroku, existen otros cloud públicos como pueden ser AWS o Google Cloud Platform, donde podrás  desplegar tus aplicaciones. Perderás la funcionalidad de Heroku Connect aunque tendrás la posibilidad de comunicarse con Salesforce a través de sus APIs de plataforma point-to-point o con Mulesoft api-led, explicado en detalle en la siguiente sección.

 

2. Mulesoft Anypoint Platform

Mulesoft Anypoint Platform es un una plataforma de integración cloud (iPaaS) que permite el desarrollo de APIs de integración a través de su herramienta de desarrollo Anypoint Studio y su lenguaje Dataweave.

Con Mulesoft, Salesforce ha abierto un nuevo paradigma de integraciones a partir de su modelo Api-led connectivity, que le permitirá sacar todo el partido a la información de sus sistemas. Este paradigma se presenta de la siguiente manera:

Captura de pantalla 2020-05-20 a las 14.13.15

Como podemos ver en el diagrama, el modelo api-led se apoya sobre 3 capas fundamentales: sistema, proceso y experiencia. Con ellas, se va generando una red de micro servicios integrados reutilizables. Más adelante acercaremos este modelo a un caso práctico real para llegar a un mayor entendimiento.

 

Impacto de la tecnología Salesforce en la organización

 

  • Reutilización / Ahorro de costes

La efectividad y productividad en cualquier empresa del sector TIC es clave. Vivimos en un mundo tecnológico que cada vez busca más la reutilización de recursos para abaratar costes.

Llevándolo al terreno de las integraciones, ¿para qué desarrollar algoritmos repetidas veces en diferentes sistemas cliente, pudiendo efectuar un desarrollo centralizado?

Poniendo un ejemplo práctico para entender mejor la idea, podemos    pensar en un proceso de negocio que toma datos de diferentes sistemas SAP, Azure y Salesforce.

Cada uno de ellos tendrá su API de sistema que abstrae de la complejidad de conexión y acceso específico de cada una. Tendrán además unas APIs de proceso que reúnen los datos de los tres sistemas, relacionándolos y conjuntándolos en nuevos objetos. Por último serán consumidos por APIs de experiencia que entregan los datos en el formato deseado al sistema cliente.

Como sistemas cliente podemos pensar como cualquier aplicación que toma el rol de cliente, es decir, consumidor de los datos. Por ejemplo.  una empresa que dispone de diferentes aplicaciones usadas por sus propios empleados que necesitan alimentarse de un mismo proceso de negocio o partes de él y por tanto, poder acometer sus necesidades empresariales recibiendo los datos desde un lugar centralizado para todos ellos.

  • Consumo de APIs / Facilidad de uso

Cualquier sistema cliente debería desentenderse de los cambios complejos que les van afectando a los datos en cualquier proceso de negocio.

Quizá se preguntes, ¿Por qué no usar las integraciones punto a punto convencionales? Es decir, por ejemplo Salesforce ya expone unas APIs que pueden ser consumidas desde cualquier parte para acceder a sus datos. 

A la pregunta anterior te puedo decir que en parte estás en lo cierto, pero te pondré un ejemplo: 

Para un proceso sencillo de Salesforce como podría ser un proceso de aprobación, está la API expuesta para las diferentes peticiones a realizar documentada por Salesforce. Veamos una imagen comparativa entre el modelo de integraciones punto a punto (Request 1) y el modelo de integración api-led de Mulesoft (Request 2):

 

Captura de pantalla 2020-05-20 a las 14.14.51

Si contabilizamos las integraciones de la Request 1, podrían ser hasta cuatro, e implica al mismo tiempo que el sistema cliente desarrolle en su backend un algoritmo que ayude a simplificar los datos que le llegan de los cuatro endpoints diferentes y relacionarlos

¿Qué te parece si nos abstraemos de esta complejidad y le permitimos al sistema cliente comunicarse de una manera mucho más eficiente? 

Como puedes ver en la Request 2, con tan solo dos peticiones se realiza el ciclo completo del proceso de aprobación. Además, no involucra al backend a realizar ningún tipo de lógica de negocio, quedando implementada con Dataweave y permitiendo tenerla centralizada en un mismo lugar para ser reusable.

 

Caso de uso práctico

 

En el siguiente video os presentamos una aplicación móvil que puede ser un perfecto ejemplo de aplicación que se conecta a Salesforce a través de Mulesoft.  

En él se puede ver la ejecución del ciclo completo de un proceso de aprobación de Salesforce, en el cual el sistema cliente se ve muy favorecido a la hora de consultar y actualizar los datos.

 

 

Si estás interesado en saber más del desarrollo de aplicaciones integradas con Salesforce, escríbenos o ponte en contacto con nosotros y te ayudamos.

¡Suscríbete!