Falla en descarga de archivos PDF vía Chat Bot de WhatsApp
Descubre qué validaciones hacer para solucionar problemas de descarga de archivos PDF enviados por el bot y mejora la experiencia de tus usuarios.
Table of Contents
Síntoma o Necesidad
El cliente reporta una falla intermitente en la descarga de archivos PDF a través de flujos de un Chat Bot de WhatsApp. Al ingresar a la opción de descarga del documento requerido, el bot no descarga todos los archivos correspondientes en el primer intento. Sin embargo, si el cliente realiza la consulta de la misma información por segunda vez, el bot logra listar y permitir la descarga de todos los documentos correctamente.
Contexto / Escenario
- Este comportamiento se presenta en el servicio de Chat Bot a través de flujos en el canal de WhatsApp. Ha sido identificado puntualmente en operaciones que manejan integraciones complejas para la consulta masiva de documentos.
- El inconveniente puede presentarse cuando el bot interactúa con un WebService externo mediante componentes de REST API para procesar la opción de descarga requerida y posteriormente "Descargar doc".
- Un escenario particular puede presentarse cuando a través del bot se requiere descargar múltiples archivos a la vez, lo que somete al flujo a un ciclo de peticiones que depende de una variable de conteo (como $intentos_global) para no exceder los límites operativos del bot.
Respuesta / Solución
Información Mínima a Solicitar
Para poder documentar correctamente el caso, replicar el escenario y proceder con el escalamiento, debes recopilar los siguientes datos del entorno del cliente:
- Datos de la Infraestructura: Nombre de la operación afectada, Servidor de la operación y Servidor de chat.
- Datos del Enrutamiento: Routing (RP) Chat afectado y el Número del conector de WhatsApp.
- Impacto: Porcentaje (%) de afectación y Fecha exacta de inicio de la indisponibilidad o intermitencia del servicio.
- Evidencias: Documentación clara de la falla y de las pruebas realizadas (por ejemplo, capturas de pantalla del flujo interrumpido y captura del debug).
Validaciones Iniciales / Troubleshooting
PARA EL ANALISTA: Antes de escalar el caso, debes ejecutar los siguientes pasos para diagnosticar el problema:
- Valida la actualización y los recursos disponibles del servidor donde se encuentra la operación.
- Verifica que la validación del nombre se esté haciendo de manera correcta, teniendo en cuenta la escritura adecuada (incluyendo el uso de mayúsculas o minúsculas, según el caso).
- Genera pruebas intentando replicar el incidente para obtener evidencias.
- Migra el Routing Chat a un ambiente de pruebas de una operación diferente y asócialo a un conector, para validar si allí también se replica la novedad.
- Migra y valida el comportamiento en un Routing Chat de pruebas dentro de la misma operación.
- Verifica el tamaño y el tipo de los archivos que están resultando afectados.
- Identifica y verifica los chats afectados (usando los ID Chats) dentro del reporte 9 de Diagram Reports.
- Realiza un debug dentro del flujo. Documenta si al realizar una consulta con X número de documentos, el proceso se detiene al llegar a algún número de archivo en específico y solo habilita la descarga de algunos archivos, o valida en qué cantidad de archivos habilita la descarga.
- Agrega la variable $intentos_global dentro de un componente replychat para facilitar el seguimiento del flujo.
- Valida la respuesta del WebService del lado del cliente o administrador para garantizar su total estabilidad.
- Ajusta y optimiza la lógica del flujo del Chat Bot para evitar que el ciclo de peticiones de archivos llegue al límite de los 4000 intentos globales.
Al revisar el caso, el analista debe realizar pruebas de trazabilidad completa, por ejemplo, realizando consultas desde la línea de pruebas para reproducir el flujo completo. A través de estas pruebas, se confirma que las solicitudes de los componentes salen correctamente hacia el WebService y que el archivo PDF sí se genera y descarga cuando la respuesta externa es válida.
Escalamiento
Una vez ejecutadas las validaciones iniciales sin encontrar una solución inmediata, el caso se debe escalar al Nivel 3 (Equipo Digital), con documentación y evidencia completa del caso.
Posibles Causas
La intermitencia podría estar presentándose debido a dos posibles motivos:
- Falla del proveedor externo: En algunos casos, el WebService no devuelve la respuesta correctamente, lo que detiene el proceso de inmediato en el componente del REST API.
- Límite de la lógica del flujo: El flujo finaliza antes de completar la descarga porque se alcanza el límite máximo establecido en la condición if ($intentos_global >= 4000), impidiendo que se complete la carga y descarga de todos los PDFs.