CMS - Carga CSV de Reclamaciones
Resumen
El sistema de carga de CSV para la Gestión de Reclamaciones permite subir y gestionar los datos del flujo de reclamaciones mediante dos archivos CSV: uno en inglés y otro en árabe. El sistema incluye validación, funcionalidad de vista previa y gestión de errores para garantizar la integridad de los datos.
Leyenda de códigos de referencia
Acciones
| Código | Definición |
|---|---|
| X | Ir al siguiente nodo |
| Q | Pregunta al cliente |
| QP | Pedir prueba al cliente, subir foto |
| S | Mostrar el pedido del cliente para elegir un artículo |
| CB | Devolver llamada al cliente |
| R | Reembolso |
| R30 | Reembolso del 30% del artículo por defecto |
| T | Valoración |
| TT | Transferencia del ticket a un agente para evaluación manual |
| QD | Cuadro de diálogo |
| QPD | Cuadro de diálogo y subida de foto |
| PHONE | Facilitar el teléfono del repartidor en el campo variable {%phone%} |
| R100P150 | Reembolso del 100% del valor del pedido, hasta 150 SAR |
Estado
| Código | Definición |
|---|---|
| CA | Cerrado - Abandonado |
| C | Cerrado |
| O | Abierto |
Condiciones
| Código | Definición |
|---|---|
| NOPHONE | El teléfono del repartidor no está disponible |
| YESPHONE | El teléfono del repartidor está disponible |
| RP | Reembolso de Garantía Platinum procesado |
| RNP | Reembolso de Garantía no procesado |
| GSE | Suscripción Gold caducada |
| GSNE | Suscripción Gold no caducada |
| GTP | El cliente pasó de Gold a Platinum |
| PSE | Suscripción Platinum caducada |
| PSNE | Suscripción Platinum no caducada |
| SLABD30 | Incumplimiento del SLA de entrega - Garantía Platinum de 30 min desde el inicio teórico de producción hasta la llegada al cliente |
| NOSLAB30 | No se ha incumplido el SLA de entrega Platinum de 30 min |
| SLABPU15 | Incumplimiento del SLA de recogida - Garantía Platinum de 15 min desde el inicio teórico hasta el fin real de producción |
| NOSLAB15 | No se ha incumplido el SLA de recogida Platinum de 15 min |
| SLABD | Incumplimiento del SLA de entrega (SLA = 40 min) |
| SLABPU | Incumplimiento del SLA de recogida (SLA = 15 min) |
| N | Sin condición |
| ITEMCHECKS | El artículo seleccionado del pedido debe ser únicamente un acompañamiento |
| NOSLAB | Sin incumplimiento de SLA en recogida ni en entrega |
| CHECKCUSTY | Se han añadido personalizaciones a la pizza |
| CHECKCUSTN | No se han añadido personalizaciones a la pizza |
| ORSPT | El pedido es para recoger en tienda (Pickup/Takeaway) |
| ORSD | El pedido es a domicilio (Delivery) |
| SLABD20 | El incumplimiento del SLA está entre 1 y 20 min |
| SLABD2035 | El incumplimiento del SLA está entre 20 y 35 min |
| SLABD3550 | El incumplimiento del SLA está entre 35 y 50 min |
| SLABD50+ | El incumplimiento del SLA supera los 50 min |
| WMP | Hay saldo disponible en el monedero (wallet) de la cuenta |
| WMPF | El saldo del monedero es 0 |
| EXEMPT | Si el reembolso se concede con Exempt en la Acción, no debe contabilizarse en el perfilado futuro del cliente |
Variables
| Código | Inglés | Árabe |
|---|---|---|
{%wallet%} |
(%AMOUNT%) in your wallet | (%AMOUNT%) في محفظتك. |
{%wallet%} |
(%Loyalty Points%) rewards points | (%Loyalty Points%) نقطة مكافأة. |
{%wallet%} |
(%AMOUNT%) in your wallet & (%Loyalty Points%) rewards points | (%AMOUNT%) في محفظتك و (%Loyalty Points%) نقطة مكافأة. |
{%currency%} |
SAR | ريال سعودي. |
{%currency%} |
AED | درهم إماراتي. |
(El contenido de esta tabla corresponde a los textos exactos que el sistema inserta en inglés y árabe; no se traduce para no alterar las cadenas reales usadas en producción.)
Niveles de fidelización (Loyalty Tiers)
| Código | Definición |
|---|---|
| S | Silver (Plata) |
| G | Gold (Oro) |
| P | Platinum (Platino) |
Tipos de cliente
| Código | Definición |
|---|---|
| H | Healthy (saludable / sin incidencias) |
| A | Alert (en seguimiento) |
| B | Abusive (abusivo) |
Flujo del proceso de carga
1. Selección de archivos
- CSV en inglés: contiene la estructura principal del flujo de reclamaciones con todos los datos de los nodos.
- CSV en árabe: contiene las traducciones al árabe de las descripciones de los nodos.
- Formato de archivo: solo se admiten archivos
.csv. - Requisito: ambos archivos deben seleccionarse antes de continuar.
2. Validación de archivos
El sistema realiza una validación exhaustiva en el siguiente orden:
- Validación de formato: comprueba la estructura del archivo y las columnas requeridas.
- Validación de datos: valida los tipos de datos y los campos obligatorios.
- Validación de flujo: verifica la lógica del flujo de los procesos de reclamación.
3. Ejecución de la carga
- Los archivos se suben a las tablas de la base de datos de pruebas (test).
- Los datos existentes de las reclamaciones de la marca seleccionada se sustituyen por los nuevos.
- La carga se realiza mediante transacciones, lo que garantiza la consistencia de los datos.
Requisitos de formato de archivo
Estructura del CSV en inglés
Columnas obligatorias (distinguen mayúsculas/minúsculas):
NODE_ID- Identificador numérico (obligatorio, único)CUST_ID- ID de cliente (numérico, obligatorio)PARENT_NODE_ID- Referencia al nodo padre (numérico o NULL)DESCRIPTION- Descripción del nodo en inglés (obligatorio, no vacío)SHORT_NAME- Nombre corto para mostrar (obligatorio)CUSTOMER_TYPE- Clasificación del tipo de clienteLOYALTY_TIER- Indicador de nivel de fidelizaciónACTION- Tipo de acción para este nodoCONDITION- Lógica condicional (si aplica)LAST_NODE- Indicador de nodo finalSTATUS- Estado del nodo
Separador de columnas: punto y coma (;)
Estructura del CSV en árabe
Columnas obligatorias (distinguen mayúsculas/minúsculas):
NODE_ID- Debe coincidir con el NODE_ID del CSV en inglés (numérico, obligatorio)CUST_ID- Debe coincidir con el CUST_ID del CSV en inglés (numérico, obligatorio)PARENT_NODE_ID- Referencia al nodo padre (numérico o NULL)Description (Arabic)- Traducción al árabe (obligatorio, no vacío)SHORT_NAME- Nombre corto en árabe
Separador de columnas: punto y coma (;)
Proceso de validación
Paso 1: Validación del formato del archivo
El sistema comprueba:
- ✅ El archivo contiene cabeceras y al menos una fila de datos
- ✅ Están presentes todas las columnas obligatorias
- ✅ El número de columnas coincide en todas las filas
- ✅ La codificación del archivo es compatible con UTF-8
Errores de formato habituales:
- Faltan columnas obligatorias
- Separador de columnas incorrecto (debe ser
;) - Archivos vacíos o que solo contienen la cabecera
- Número de columnas distinto entre filas
Paso 2: Validación del tipo de datos
El sistema valida:
- ✅
NODE_IDes numérico - ✅
CUST_IDes numérico - ✅
PARENT_NODE_IDes numérico o NULL - ✅ Los campos de texto obligatorios no están vacíos
- ✅ Las descripciones en árabe contienen texto válido
Errores de datos habituales:
- Valores no numéricos en campos de ID
- Campos de descripción vacíos
- Codificación de caracteres inválida
- Faltan valores en campos obligatorios
Paso 3: Validación del flujo
Comprobaciones avanzadas de validación:
- ✅ Integridad de la jerarquía de nodos
- ✅ Relaciones padre-hijo
- ✅ Detección de referencias circulares
- ✅ Validación de nodos finales
- ✅ Consistencia del tipo de acción
- ✅ Validación del patrón de variables
Indicadores de estado de la carga
Iconos de estado del archivo
- 🔄 Validando: validación del archivo en curso
- ✅ Validado: el archivo ha superado todas las comprobaciones
- ⏳ En espera: archivo en cola para validación
- ⚠️ Aviso: archivo seleccionado pero no validado
- ❌ Error: la validación ha fallado
Mensajes de estado de la carga
- 📤 "Uploading" (Subiendo): los archivos se están procesando en el servidor
- ✅ "Files uploaded successfully" (Archivos subidos correctamente): la carga finalizó sin errores
- ❌ "Upload failed" (Error en la carga): error del servidor durante el proceso de carga
Mensajes de error y soluciones
Errores de selección de archivo
| Error | Solución |
|---|---|
| "Select both English and Arabic CSV files" | Debe seleccionar tanto el CSV en inglés como el CSV en árabe |
| "Both files must be validated" | Haga clic en "Validate Files" tras seleccionar ambos archivos |
Errores de validación de formato
| Error | Causa | Solución |
|---|---|---|
| "File must contain header and at least one data row" | Archivo vacío o sin datos | Asegúrese de que el archivo tiene cabecera y filas de datos |
| "Missing required column: [COLUMN_NAME]" | No se encuentra una columna obligatoria | Añada la columna que falta a la cabecera del CSV |
| "Row X: Column count mismatch" | Número de columnas inconsistente | Asegúrese de que todas las filas tienen el mismo número de columnas |
| "Error reading CSV file" | Corrupción del archivo o problema de codificación | Vuelva a guardar el archivo como CSV UTF-8 con separador de punto y coma |
Errores de validación de datos
| Error | Causa | Solución |
|---|---|---|
| "Row X: NODE_ID must be numeric" | NODE_ID no numérico | Asegúrese de que NODE_ID contiene solo números |
| "Row X: CUST_ID must be numeric" | CUST_ID no numérico | Asegúrese de que CUST_ID contiene solo números |
| "Row X: PARENT_NODE_ID must be numeric or NULL" | Referencia de nodo padre inválida | Use números o exactamente "NULL" |
| "Row X: Arabic description is required" | Falta el texto en árabe | Añada la descripción en árabe para todos los nodos |
Errores de procesamiento en el servidor
| Error | Causa | Solución |
|---|---|---|
| "No valid English CSV data found" | Archivo en inglés vacío o inválido | Revise el formato y los datos del archivo en inglés |
| "No valid Arabic CSV data found" | Archivo en árabe vacío o inválido | Revise el formato y los datos del archivo en árabe |
| "English CSV row X: Invalid NODE_ID" | Fallo de validación en el servidor | Revise el formato y la unicidad del NODE_ID |
| "Arabic CSV row X: Missing Description (Arabic)" | Fallo de validación en el servidor | Asegúrese de que todas las descripciones en árabe están presentes |
| "Maximum 2 files allowed" | Se han subido demasiados archivos | Suba exactamente 2 archivos (inglés + árabe) |
Errores de validación del flujo
| Error | Causa | Solución |
|---|---|---|
| "The flow of both files must be validated" | No se ha realizado la validación del flujo | Haga clic en el botón "Validate Flow" |
| "The files have flow validation errors that must be corrected" | La validación del flujo encontró incidencias | Revise el cuadro de diálogo de validación de flujo para ver los errores concretos |
Guía de resolución de problemas
Problema: los archivos no se suben
Compruebe:
- Que ambos archivos estén seleccionados
- Que ambos archivos se hayan validado correctamente
- Que la validación de flujo haya finalizado sin errores
- Que la marca seleccionada sea la correcta
Problema: la validación falla repetidamente
Soluciones:
- Descargue los datos actuales para ver el formato esperado
- Compruebe la codificación del archivo (debe ser UTF-8)
- Verifique que el separador de columnas es el punto y coma (
;) - Asegúrese de que no hay caracteres ocultos ni formato adicional
Problema: la validación del flujo muestra errores
Acciones:
- Abra el cuadro de diálogo de validación de flujo
- Revise los mensajes de error concretos
- Compruebe las relaciones padre-hijo en los datos
- Verifique la integridad de la jerarquía de nodos
- Corrija los datos y vuelva a validar
Problema: la carga falla tras la validación
Investigación:
- Compruebe la conexión con el servidor
- Verifique los límites de tamaño de archivo
- Revise la consola del navegador en busca de errores
- Contacte con el administrador del sistema si el problema persiste
Notas técnicas
Comportamiento del sistema
- Entorno: las cargas de CSV siempre van al entorno de pruebas (test)
- Sustitución de datos: los datos de reclamaciones existentes se sustituyen por completo al subir un CSV en el entorno de pruebas
- Seguridad transaccional: las cargas fallidas no corrompen los datos existentes
- Procesamiento de archivos: los archivos se procesan de forma secuencial durante la validación
- Límites de memoria: los archivos grandes pueden provocar problemas de rendimiento en el navegador
Buenas prácticas
Preparación del archivo
- Use una codificación consistente: guarde los archivos CSV como UTF-8
- Compruebe los separadores: use el punto y coma (
;) como separador de columnas - Valide los NODE_ID: asegúrese de que los NODE_ID coinciden entre el archivo en inglés y el archivo en árabe
- Revise las descripciones: verifique que todas las descripciones sean coherentes y estén completas
Prevención de errores
- Uso de plantillas: use una exportación de datos existente como plantilla para nuevas cargas
- Validación de datos: revise los datos en una hoja de cálculo antes de exportar
- Estrategia de copia de seguridad: conserve los archivos originales como copia de seguridad antes de procesarlos
- Pruebe con un conjunto de datos pequeño: valide el proceso con un subconjunto de datos primero
Estrategia de carga
- Validación secuencial: complete la validación de archivos antes de la validación de flujo
- Revisión antes de subir: compruebe todos los mensajes de validación antes de la carga final
- Selección de marca: verifique que la marca correcta está seleccionada antes de subir
- Momento de la carga: realice las cargas en horas de bajo tráfico