El Customer Service Center (CSC) es un nuevo portal que ofrece a los clientes de Bonitasoft un lugar centralizado para acceder a los servicios proporcionados como parte de la suscripción a Bonita Enterprise: soporte técnico, Expert Corner, auditoría, actualización de versiones, formación y solicitudes de servicios profesionales. Se ha desarrollado para ofrecer una experiencia de usuario mejorada y actualizada para clientes abonados.
Fui el responsable de la parte técnica de este proyecto: dimensionamiento, diseño de la arquitectura del proyecto, implementación de algunas de las funciones y mucho más. En este artículo, destacaré algunos de los retos técnicos y mi experiencia como «cliente» que desarrolla el proyecto desde cero en la plataforma de automatización de procesos digitales basada en Bonita Cloud.
De asesor experto a cliente-usuario
Desde que empecé como asesor de servicios profesionales en Bonitasoft hace unos años, he sido responsable de acompañar a varios usuarios de Bonita Enterprise en el momento en el que han trasladado sus procesos empresariales a la plataforma basada en la nube.
Cuando comenzamos a desarrollar el Customer Service Center internamente en Bonita, mi función pasó de ser «asesor» a «cliente-usuario». Este cambio reforzó algunas de mis convicciones y abrió nuevas perspectivas que, sin duda, serán beneficiosas para nosotros y nuestros usuarios.
Pero, antes de entrar en detalle, me gustaría hablar un poco sobre la plataforma y su versión en la nube.
¿Qué es Bonita?
Bonita es una plataforma abierta de automatización de procesos digitales (DPA) basada en la gestión de procesos empresariales (BPM) para crear aplicaciones basadas en procesos. Los equipos de TI y de negocios la utilizan para crear aplicaciones empresariales completas rápidamente. Bonita Cloud es toda la plataforma Bonita ofrecida como una plataforma como servicio (PaaS) protegida, resistente a los fallos y escalable. Está operada y gestionada por Bonitasoft, y los usuarios desarrollan en ella sus aplicaciones empresariales personalizadas.
Como asesor de servicios profesionales, trabajo con los equipos de atención al cliente y de éxito del cliente. Cuando los clientes tienen dudas, dificultades o decisiones difíciles, participo para proporcionarles la ayuda especializada que necesitan. Entre bambalinas, trabajo con los equipos de operaciones en la nube e I+D, la parte invisible del iceberg, para ofrecer soluciones.
La edición Bonita Cloud, al igual que la edición local de Bonita, es una plataforma de código bajo, rica y extensible para crear aplicaciones. Algunas de las prácticas que utilizo en el desarrollo local están restringidas en la edición Bonita Cloud, pero esto resultó ser una oportunidad para crear una mejor aplicación al final.
De cómo las limitaciones superan los límites de lo que es posible
Una de las cosas que más solemos tratar son las extensiones disponibles para los usuarios de Bonita. (La extensibilidad es una de las principales propuestas de Bonita). Sin embargo, el empaquetado de PaaS conlleva algunas limitaciones de extensibilidad.
Cuando un cliente se enfrenta a una restricción, trabajamos para encontrar un enfoque alternativo que funcione con el servicio en la nube, o para encontrar una solución externa estándar para conectar con la plataforma, si es necesario. En este último caso, mi función como asesor de servicios profesionales es proporcionar explicaciones y directrices, pero no implementarlas.
Sin embargo, para el desarrollo del Customer Service Center, como estábamos haciendo la implementación nosotros mismos, nos teníamos que «manchar las manos» con la plataforma en la nube, yendo más allá de sus límites.
Y como antiguo experto en IaaS/PaaS para un gran proveedor de servicios en la nube, me gustaría destacar que, según mi experiencia, en la mayoría de los proyectos, rara vez se puede crear una solución completa en un único servicio de PaaS. De este modo, este proyecto nos ofreció la oportunidad de ver cómo combinar la plataforma en la nube con otros servicios internos y en la nube.
Asunción de los retos de desarrollo del Customer Service Center
Antes de profundizar en los retos técnicos con los que nos topamos, me gustaría dar un poco de contexto. El Customer Service Center es el principal centro de comunicación entre la empresa y sus clientes. Los desarrolladores y los usuarios empresariales lo utilizan para abrir solicitudes de soporte, experiencia y formación. Necesitan poder descargar versiones de productos o generar licencias. Cuando haya información que compartir, la empresa puede utilizarla para enviar notificaciones. Y el uso del Customer Service Center está condicionado al estado de suscripción de cada cliente.
Tiene que ser escalable, fiable y seguro
El Customer Service Center se implementa en la plataforma en la nube. El entorno de producción en la nube se agrupa en contenedores que se ejecutan detrás de un equilibrador de carga, y se hacen copias de seguridad de las bases de datos a diario. HTTPS se impone por defecto, así como mediante políticas de seguridad.
Integración con Salesforce: sí, es posible
El Customer Service Center se centra en los clientes. La empresa utiliza Salesforce como su CRM, que cuenta con un amplio conjunto de API con las que comunicarse. Queríamos mostrar la información contenida en diferentes objetos de Salesforce en tablas de resumen o vistas detalladas. Sin embargo, solicitar objetos de Salesforce cada vez que se necesitan es lento y puede degradar significativamente la experiencia del usuario . Para mitigar este problema, decidimos almacenar en caché la información. Dado que la plataforma basada en la nube se ejecuta en un entorno en clúster, decidimos utilizar Hazelcast, una caché distribuida de datos
El almacenamiento de archivos se basa en soluciones AWS integradas
Algunas de las funciones del Customer Service Center requieren el envío y la recepción de archivos: adjuntar archivos de registro a un caso, descargar versiones de productos, generar archivos de licencia, etc. El uso del sistema de archivos local no es una opción en una PaaS y no queríamos depender de (S)FTP(S) por motivos de seguridad. En un entorno en la nube, el enfoque más natural es depender del almacenamiento de objetos. Todos los proveedores de servicios en la nube ofrecen SDK de Java que facilitan su integración dentro de conectores de integración y extensiones de API de REST, y los usamos ampliamente en este proyecto.
Superación de la limitación de la PaaS con Functions
Para generar licencias, necesitamos ejecutar algunos archivos jar ejecutables. Una de las principales limitaciones de una PaaS es que no se puede acceder a los sistemas subyacentes, en particular, a la infraestructura. Localmente, no hay problema en ejecutar partes de código externas (secuencias de comandos de shell, jars, etc.) desde el entorno de la plataforma. En un entorno en la nube, esto no es posible.
Decidimos utilizar Functions, ya que son fáciles de integrar a través de los SDK de Java de la mayoría de los proveedores de servicios en la nube. Y esta opción ofrece una amplia gama de posibilidades, ya que podemos escribir funciones en multitud de idiomas para muchos fines.
Hagamos que todo sea visible
En una aplicación basada en procesos empresariales, los procesos se mueven paso a paso a través de las tareas o acciones. Queríamos que el Customer Service Center mostrara notificaciones visuales del progreso de un proceso. Una solución sencilla era exponer una extensión de una API de Rest para comprobar el estado del proceso desde la caché distribuida de Hazelcast.
Construimos un laboratorio y descubrimos innovación
El proyecto Customer Service Center resultó ser un laboratorio excelente para que un asesor de servicios profesionales experimentara con las posibilidades de nuestra propia plataforma Bonita en la nube.
Aunque siempre he pensado que trabajaba con profesionales talentosos y dedicados, la frecuencia y la calidad de las interacciones de nuestro equipo del proyecto me han dado aún más confianza en lo que los «bonitasóftilos» aportan a nuestros clientes.
Con el apoyo de todo el ecosistema, ¡nuestro equipo de atención al cliente de Bonitasoft ha creado una solución innovadora que esperamos que aporte una gran experiencia al cliente!