Soporte a clientes con sistema Help Desk en Drupal

Algunos tipos de soluciones con los que se puede extender una web a veces no son usados por no ser suficientemente conocidos. Uno de estos son las plataformas de soporte a usuarios, conocidadas también como plataformas de tickets o de Help Desk. Integrar un sistema de este tipo a una web en Drupal es bastante sencillo y se puede sofisticar hasta el grado de complejidad que se quiera, pero aunque se tenga la web contruida en cualquier otro sistema, es sencillo crear en un subdominio separado una web con un sistema de Help Desk en formato privado o público.

Para cualquier colectivo puede ser muy útil disponer de una web con un sistema de soporte, de help desk o de tiquets de peticiones: empresas comerciales, centros educativos, gestorías, servicios técnicos, comunidades de vecinos, agencias de viajes, talleres mecánicos, centros médicos y muchos otros. Organizar la forma de atender a los clientes o usuarios de un servicio reporta muchas ventajas de fidelización, pero sobre todo de organización interna para la entidad que ofrezca el servicio.

Drupal, debido a su potencia y flexibilidad en la creación de estructuras de datos y tipos de contenidos, es un entorno ideal para el desarrollo de soluciones web de este tipo. Prácticamente solo con herramientas de su interface gráfico, sin programar y en pocos pasos podemos:

  1. crear un tipo de contenido específico,
  2. añadir los campos necesarios,
  3. poner permisos en sus campos según roles de usuarios,
  4. crear listados con Views,
  5. activar comentarios para tener un histórico de cada asunto,
  6. activar marcadores para seguimiento,
  7. crear bloques de resumenes de incidencias o de comentarios,
  8. añadir un filtro en este views para mejorar la gestión
  9. disparar con Rules acciones diversas como enviar algún E-mail según los cambios de estado con una taxonomía que hayamos configurado a tal efecto.

En cualquier caso disponemos en la comunidad de Drupal de algunos módulos específicos para esta tarea con funcionalidades propias y muy interesantes.

Alternativas en Drupal

Entre las diversas soluciones específicas Case Tracker ha sido una de las más usadas durante mucho tiempo y dispone de versiones para Drupal 4, 5, 6 y 7. Además ha estado integrado en la suite de gestión de proyectos Open Atrium, una distribución de Drupal concebida para la gestión de proyectos con un enfoque e interface bastante particulares. Esta integración le hizo ganar bastante atención durante un tiempo y aparecieron diversos módulos que extendían sus funcionalidades.

En Case Tracker se definen áreas de soporte, que por su parte cada una va recibiendo incidencias. Innodus además incorpora un nivel intermedio de tareas para definir si es necesario subgrupos de división de las incidencias. También añadimos un control inicial que nos permite tener una visión estadística de la actividad de cada área de soporte, como vemos en el pantallazo de arriba. En cambio, en el pantallazo de abajo vemos como Case Tracker añade una serie de elementos a la zona de comentarios de los nodos de incidencias. Estos nodos son las páginas que han recibido la descripción de la incidencia o petición de soporte, y usa el sistema interno de comentarios de Drupal para estructurar un histórico de actuaciones sobre esa incidencia. CaseTracker permite cambiar el estado de la incidencia en cada comentario, así como asignarlo a nuevos miembros del equipo de soporte.

Vemos también en el pantallazo anterior como hemos usado el pequeño módulo "Comment notify" para que cada usuario pueda activar o desactivar en cada momento la posibilidad de que la web nos envíe a nuestro E-mail avisos de que hay comentarios nuevos del equipo por revisar en el histórico de seguimiento de la incidencia.

Con un número parecido de instalaciones también disponemos del módulo "Support". Este módulo ofrece un número mayor de funcionalidades que Case Tracker, también con extensiones que dan soporte a Views y al control de tiempo. Entre algunas funciones reseñables de este sistema que no tiene Case Tracker podemos valorar la posibilidad de definir un workflow más complejo de tickets, la posibilidad de recibir incidencias vía email, un sistema muy flexible de asignación de tickets tanto al equipo de soporte como a los usuarios o la posibilidad de integrarse con un módulo de gráficas para poder realizar valoraciones estadísticas.

Por otra parte el módulo Project Management es la evolución a Drupal 7 del anterior módulo de Drupal 6 llamado Storm. Ambos son una completa suite de módulos con gestión de organizaciones, personas, equipos, proyectos, tareas, tickets, tiempos, gastos, facturas y notas. El módulo es muy amplio, tiene un potente sistema de permisos propio y está a medio camino de un sistema CRM y de un sistema de gestión de proyectos. Con PM o Storm no solo se puede construir un sistema de soporte, sinó muchas cosas más, y es mucho más completo en la gestión de grupos de trabajo, y de gastos y facturas. La versión para Drupal 6 está más desarrollada y goza de algunas extensiones adiciones proporcionadas por otros usuarios, pero la versión de Drupal 7 llamada PM está teniendo un tiempo de desarrollo muy lento, al intentar adaptarse a las nuevas APIs de entidades de Drupal manteniendo las mismas funcionalidades de Storm.

Integración con sistemas eCommerce

Es muy interesante contemplar la integración de una herramienta de soporte en una web de comercio electrónico. Tener en la misma web con la que gestionamos los productos, las ventas y los pedidos, un sistema de soporte a nuestros clientes permite trabajar en un solo entorno con las ventajas que ello conlleva. Muchas webs olvidan justamente este aspecto que es el que puede hacer que un negocio online consiga no solo atraer clientes sinó tras la venta fidelizarlos.

En Ubercart se dispone del módulo "UC Ticket" como solución de soporte. Este módulo sigue sin estar disponible en Drupal 7, cosa que quizá no sea un problema para todas las tiendas montadas en Drupal 6 que no tienen interés en actualizarse. Las opciones de UC Ticket son bastantes completas: puede configurarse para recibir peticiones desde ciertas cuentas email, se integra con el sistema de pedidos, se integra con el módulo de contacto de Drupal, la información de cada cliente es mostrada en el ticket, dispone de un sistema de plantillas variable. Configurarlo puede tener sus complejidad pero resultará muy útil para muchas tiendas online.

Con cualquier otro sistema es fácil integrar las soluciones expuestas más atrás como Case Tracker o Support a través de módulos de referencia de nodos que nos permiten vincular los elementos del ecommerce con los nodos para incidencias de los sistemas de tickets. Hay en Drupal 7 diversos complementos a los módulos de vinculación de entidades a través de referencias para ampliar las funcionalidades en muchas formas.

Extensiones

A menudo puede ser interesante ampliar el sistema con un mecanismo de envío masivo de E-mails. En este caso las listas de emails desde los nodos de incidencias o de listas de usuarios filtrados por roles pueden recopilarse con un listado generado por el módulo Views. A partir de aquí si instalamos el módulo "Views Send" podremos usar nuestro listado de Views como selector de direcciones a las que enviar E-mails. Una vez hayamos filtrado el listado de usuarios a los que hay que hacer una notificación este módulo nos permite generar un mensaje incluso con variables (tokens en Drupal) para personalizar cada envío con datos de los miembros de la lista.

En otras ocasiones lo que resultará imprescindible es que todos los comentarios sobre una incidencia se manejen por parte del cliente vía E-mail. Para ello el módulo "Mailhandler" permite definir una cuenta de E-mail que se estará leyendo para importar mensajes E-mail en nodos del tipo de contenido que elijamos. Mailhandler no es un módulo sencillo de configurar y requiere el apoyo de otros módulos como Feeds, CTools o JobScheduler. Dispone de algunos submódulos complementarios y de varias páginas en la sección de ayuda de Drupal con documentación para comprender cómo usarlo.

Para poder hacer valoraciones del tiempo de respuesta dedicado en cada acción o caso, el módulo "Time tracker" nos ofrece una lista de submódulos que añaden funciones como: añadir un contador de tiempo a los nodos, añadir este contador a los comentarios, definir los intervalos como períodos de horas o duraciones, listados de tiempos por usuario en su página de actividad, integración con Views y Views Calc para listados con informes de actividad.

Un aspecto importante es la ergonomía, y vale la pena tener en cuenta que la gran flexibilidad de la capa gráfica de Drupal le permite mostrar distintas secciones de la web con capas visuales distintas. Si la web tiene un diseño propio y la capa visual de la zona pública sigue ese diseño quizá es mejor definir la zona de trabajo del help desk en una sección separada y aplicar una capa visual distinta, más adaptada al tipo de contenidos y datos de estas tareas.

Conclusiones

Decidir el formato final del sistema de soporte que integrar en una web es todo un trabajo de análisis que un consultor experimentado en estas plataformas puede solventar. Un sistema de soporte es un elemento básico de un sistema CRM, muy útil para poder agilizar por un lado el soporte a los clientes y por otro para valorar y gestionar el conocimiento del departamento de soporte. Estos sistemas tienen el efecto interno de mejorar la organización del servicio a clientes y el efecto externo de crear una imagen de marca que da apoyo a sus clientes y así consigue su fidelización. Tener un registro claro de todas las acciones realizas permite tener más claros los costes de negocio, y la estructura necesaria.

En el terreno tecnológico, las herramientas disponibles para Drupal se integran perfectamente con el resto de módulos y secciones permitiendonos hacer crecer una web que quizá solo muestra contenidos hacia un sistema dinámico muy productivo para la entidad que lo usa. Como cada organización tendrá sus características intrínsecas de funcionamiento será sin duda muy útil contactar con un consultor experto en Drupal que ayude en todo el proceso de definir la arquitectura del sistema, su implementación y desarrollo.