feat: refactor schedule storage to vanity_hr schema, update onboarding command to /registro, and enhance horario flow with short name collection

This commit is contained in:
Marco Gallegos
2025-12-20 22:43:34 -06:00
parent 338108d7b7
commit d66e8118eb
16 changed files with 570 additions and 405 deletions

View File

@@ -2,114 +2,118 @@
"flow_name": "horario",
"steps": [
{
"state": 0,
"state": -3,
"variable": "INTRO_READ",
"type": "keyboard",
"question": "ANTES DE DEFINIR TUS HORARIOS\n\nLee con atención:\n\n• Estos horarios se usarán para control de asistencia y reportes\n• Selecciona únicamente los botones disponibles\n• El sistema convertirá automáticamente a formato 24 hrs\n\nCuando estés listo, continúa.",
"options": ["Continuar"],
"next_step": 1
"question": "ANTES DE DEFINIR TUS HORARIOS\n\nLee con atención:\n\n• Estos horarios se usarán para control de asistencia y reportes\n• Selecciona únicamente los botones disponibles\n• El sistema convertirá automáticamente a formato 24 hrs\n\nCuando estés lista, confirma para continuar.",
"options": ["Continuar"]
},
{
"state": -2,
"variable": "INTRO_NAME",
"type": "info",
"question": "NOMBRE CORTO\n\nEste nombre se usará para mensajes internos, reportes y notificaciones."
},
{
"state": -1,
"variable": "SHORT_NAME",
"type": "text",
"question": "¿Cómo te dicen normalmente?"
},
{
"state": 0,
"variable": "INTRO_HOURS",
"type": "info",
"question": "DEFINICIÓN DE HORARIOS\n\nDefine tu horario habitual por día usando botones AM / PM."
},
{
"state": 1,
"variable": "SHORT_NAME",
"type": "text",
"question": "¿Cómo te dicen normalmente?",
"next_step": 2
},
{
"state": 2,
"variable": "MONDAY_IN",
"type": "keyboard",
"question": "Lunes · Hora de entrada",
"options": ["10:00 AM","11:00 AM","12:00 PM","1:00 PM","2:00 PM","3:00 PM"],
"next_step": 3
"options": ["10:00 AM", "11:00 AM", "12:00 PM", "1:00 PM", "2:00 PM", "3:00 PM"]
},
{
"state": 3,
"state": 2,
"variable": "MONDAY_OUT",
"type": "keyboard",
"question": "Lunes · Hora de salida",
"options": ["4:00 PM","5:00 PM","6:00 PM","7:00 PM","8:00 PM"],
"next_step": 4
"options": ["4:00 PM", "5:00 PM", "6:00 PM", "7:00 PM", "8:00 PM"]
},
{
"state": 4,
"state": 3,
"variable": "TUESDAY_IN",
"type": "keyboard",
"question": "Martes · Hora de entrada",
"options": ["10:00 AM","11:00 AM","12:00 PM","1:00 PM","2:00 PM","3:00 PM"],
"next_step": 5
"options": ["10:00 AM", "11:00 AM", "12:00 PM", "1:00 PM", "2:00 PM", "3:00 PM"]
},
{
"state": 5,
"state": 4,
"variable": "TUESDAY_OUT",
"type": "keyboard",
"question": "Martes · Hora de salida",
"options": ["4:00 PM","5:00 PM","6:00 PM","7:00 PM","8:00 PM"],
"next_step": 6
"options": ["4:00 PM", "5:00 PM", "6:00 PM", "7:00 PM", "8:00 PM"]
},
{
"state": 6,
"state": 5,
"variable": "WEDNESDAY_IN",
"type": "keyboard",
"question": "Miércoles · Hora de entrada",
"options": ["10:00 AM","11:00 AM","12:00 PM","1:00 PM","2:00 PM","3:00 PM"],
"next_step": 7
"options": ["10:00 AM", "11:00 AM", "12:00 PM", "1:00 PM", "2:00 PM", "3:00 PM"]
},
{
"state": 7,
"state": 6,
"variable": "WEDNESDAY_OUT",
"type": "keyboard",
"question": "Miércoles · Hora de salida",
"options": ["4:00 PM","5:00 PM","6:00 PM","7:00 PM","8:00 PM"],
"next_step": 8
"options": ["4:00 PM", "5:00 PM", "6:00 PM", "7:00 PM", "8:00 PM"]
},
{
"state": 8,
"state": 7,
"variable": "THURSDAY_IN",
"type": "keyboard",
"question": "Jueves · Hora de entrada",
"options": ["10:00 AM","11:00 AM","12:00 PM","1:00 PM","2:00 PM","3:00 PM"],
"next_step": 9
"options": ["10:00 AM", "11:00 AM", "12:00 PM", "1:00 PM", "2:00 PM", "3:00 PM"]
},
{
"state": 9,
"state": 8,
"variable": "THURSDAY_OUT",
"type": "keyboard",
"question": "Jueves · Hora de salida",
"options": ["4:00 PM","5:00 PM","6:00 PM","7:00 PM","8:00 PM"],
"next_step": 10
"options": ["4:00 PM", "5:00 PM", "6:00 PM", "7:00 PM", "8:00 PM"]
},
{
"state": 10,
"state": 9,
"variable": "FRIDAY_IN",
"type": "keyboard",
"question": "Viernes · Hora de entrada",
"options": ["10:00 AM","11:00 AM","12:00 PM","1:00 PM","2:00 PM","3:00 PM"],
"next_step": 11
"options": ["10:00 AM", "11:00 AM", "12:00 PM", "1:00 PM", "2:00 PM", "3:00 PM"]
},
{
"state": 11,
"state": 10,
"variable": "FRIDAY_OUT",
"type": "keyboard",
"question": "Viernes · Hora de salida",
"options": ["4:00 PM","5:00 PM","6:00 PM","7:00 PM","8:00 PM"],
"next_step": 12
"options": ["4:00 PM", "5:00 PM", "6:00 PM", "7:00 PM", "8:00 PM"]
},
{
"state": 12,
"state": 11,
"variable": "SATURDAY_IN",
"type": "keyboard",
"question": "Sábado · Hora de entrada",
"options": ["10:00 AM","11:00 AM","12:00 PM","1:00 PM","2:00 PM","3:00 PM"],
"next_step": 13
"options": ["10:00 AM", "11:00 AM", "12:00 PM", "1:00 PM", "2:00 PM", "3:00 PM"]
},
{
"state": 13,
"state": 12,
"variable": "SATURDAY_OUT",
"type": "info",
"question": "Sábado · Hora de salida\n\nLa salida del sábado queda registrada automáticamente a las 6:00 PM.",
"next_step": -1
"question": "Sábado · Hora de salida\n\nLa salida del sábado queda registrada automáticamente a las 6:00 PM."
},
{
"state": 99,
"variable": "FLOW_END",
"type": "info",
"question": "HORARIOS REGISTRADOS\n\nTus horarios quedaron guardados correctamente. Si necesitas un ajuste, notifícalo a administración."
}
]
}
}

View File

@@ -1,10 +1,22 @@
{
"flow_name": "leave_request",
"steps": [
{
"state": "INTRO_ALERT",
"variable": "AVISO_INICIAL",
"question": "⏱️ SOLICITUD DE PERMISO POR HORAS\n\nConfirma que le avisaste a tu manager y que necesitas registrar un permiso formal.",
"type": "keyboard",
"options": ["Continuar"]
},
{
"state": "INTRO_SCOPE",
"variable": "INTRO_SCOPE",
"question": "SECCIÓN ÚNICA · FECHAS, HORARIO Y MOTIVO\n\nResponde exactamente lo que se te pide para evitar rechazos.",
"type": "info"
},
{
"state": "PERMISO_CUANDO",
"question": "⏱️ **Solicitud de Permiso**\n\n¿Para cuándo lo necesitas?",
"handler": "recibir_cuando_permiso",
"question": "¿Para cuándo lo necesitas?",
"type": "keyboard",
"options": ["Hoy", "Mañana", "Pasado mañana", "Fecha específica"],
"next_step": [
@@ -21,7 +33,6 @@
{
"state": "PERMISO_ANIO",
"question": "¿Para qué año es el permiso? (elige el actual o el siguiente)",
"handler": "recibir_anio_permiso",
"type": "keyboard",
"options": ["current_year", "next_year"],
"next_step": "INICIO_DIA"
@@ -29,14 +40,12 @@
{
"state": "INICIO_DIA",
"question": "¿En qué *día* inicia el permiso? (número, ej: 12)",
"handler": "recibir_inicio_dia",
"type": "text",
"next_step": "INICIO_MES"
},
{
"state": "INICIO_MES",
"question": "¿De qué *mes* inicia?",
"handler": "recibir_inicio_mes",
"type": "keyboard",
"options": [
"Enero", "Febrero", "Marzo",
@@ -49,14 +58,12 @@
{
"state": "FIN_DIA",
"question": "¿Qué *día* termina?",
"handler": "recibir_fin_dia",
"type": "text",
"next_step": "FIN_MES"
},
{
"state": "FIN_MES",
"question": "¿De qué *mes* termina?",
"handler": "recibir_fin_mes",
"type": "keyboard",
"options": [
"Enero", "Febrero", "Marzo",
@@ -69,15 +76,20 @@
{
"state": "HORARIO",
"question": "¿Cuál es el horario? Ej: `09:00-11:00` o `Todo el día`.",
"handler": "recibir_horario",
"type": "text",
"next_step": "MOTIVO"
},
{
"state": "MOTIVO",
"question": "Entendido. ¿Cuál es el motivo o comentario adicional?",
"handler": "recibir_motivo_fin",
"type": "text"
"type": "text",
"next_step": "FLOW_END"
},
{
"state": "FLOW_END",
"variable": "FLOW_END",
"question": "✅ Gracias. Tu permiso quedó registrado y RH revisará la información. Si necesitas otro, vuelve a iniciar con /permiso.",
"type": "info"
}
]
}
}

View File

@@ -1,55 +1,67 @@
{
"flow_name": "onboarding",
"steps": [
{
"state": -2,
"variable": "AVISO_INICIAL",
"question": "⚠️ AVISO IMPORTANTE\n\nEste formulario crea tu expediente oficial.\n\n• Lee cada pregunta con atención.\n• Responde solo lo que se te pide.\n• Escribe /cancelar en cualquier momento para detener el proceso.\n\nConfirma cuando estés lista.",
"type": "keyboard",
"options": ["Comenzar"]
},
{
"state": -1,
"variable": "INTRO_PERSONALES",
"question": "SECCIÓN 1 · DATOS PERSONALES\n\nUsaremos tu información exactamente como aparece en tus documentos oficiales.\n\n(Confirma para continuar)",
"type": "keyboard",
"options": ["Continuar"]
},
{
"state": 0,
"variable": "NOMBRE_SALUDO",
"question": "¿Cómo te gusta que te llamemos?",
"type": "text",
"next_step": 1
"type": "text"
},
{
"state": 1,
"variable": "NOMBRE_COMPLETO",
"question": "Escribe tus nombres (SIN apellidos), exactamente como aparecen en tu INE.",
"type": "text",
"next_step": 2
"type": "text"
},
{
"state": 2,
"variable": "APELLIDO_PATERNO",
"question": "Apellido paterno:",
"type": "text",
"next_step": 3
"type": "text"
},
{
"state": 3,
"variable": "APELLIDO_MATERNO",
"question": "Apellido materno:",
"type": "text",
"next_step": 4
"type": "text"
},
{
"state": 4,
"variable": "CUMPLE_DIA",
"question": "Fecha de nacimiento · Día (solo número, ej. 13)",
"type": "text",
"next_step": 5
"type": "text"
},
{
"state": 5,
"variable": "CUMPLE_MES",
"question": "Fecha de nacimiento · Mes",
"type": "keyboard",
"options": ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"],
"next_step": 6
"options": [
"Enero", "Febrero", "Marzo",
"Abril", "Mayo", "Junio",
"Julio", "Agosto", "Septiembre",
"Octubre", "Noviembre", "Diciembre"
]
},
{
"state": 6,
"variable": "CUMPLE_ANIO",
"question": "Fecha de nacimiento · Año (4 dígitos)",
"type": "text",
"next_step": 7
"type": "text"
},
{
"state": 7,
@@ -59,7 +71,7 @@
"options": ["Coahuila", "Nuevo León", "Otro"],
"next_steps": [
{ "value": "Otro", "go_to": 7.1 },
{ "value": "default", "go_to": 8 }
{ "value": "default", "go_to": 7.5 }
]
},
{
@@ -67,70 +79,68 @@
"variable": "ESTADO_NACIMIENTO_OTRO",
"question": "Escribe el nombre del estado donde naciste.",
"type": "text",
"next_step": 8
"next_step": 7.5
},
{
"state": 7.5,
"variable": "INTRO_ADMIN",
"question": "SECCIÓN 2 · DATOS ADMINISTRATIVOS\n\nEstos datos se usan para contrato, nómina y comunicación oficial.\n\n(Confirma para continuar)",
"type": "keyboard",
"options": ["Continuar"]
},
{
"state": 8,
"variable": "RFC",
"question": "RFC completo (13 caracteres, sin espacios):",
"type": "text",
"next_step": 9
"type": "text"
},
{
"state": 9,
"variable": "CURP",
"question": "CURP completo (18 caracteres):",
"type": "text",
"next_step": 10
"type": "text"
},
{
"state": 10,
"variable": "CORREO",
"question": "Correo electrónico personal:",
"type": "text",
"next_step": 11
"type": "text"
},
{
"state": 11,
"variable": "CELULAR",
"question": "Número de celular (10 dígitos):",
"type": "text",
"next_step": 12
"type": "text"
},
{
"state": 12,
"variable": "CALLE",
"question": "Domicilio · Calle:",
"type": "text",
"next_step": 13
"type": "text"
},
{
"state": 13,
"variable": "NUM_EXTERIOR",
"question": "Domicilio · Número exterior:",
"type": "text",
"next_step": 14
"type": "text"
},
{
"state": 14,
"variable": "NUM_INTERIOR",
"question": "Domicilio · Número interior (0 si no aplica):",
"type": "text",
"next_step": 15
"type": "text"
},
{
"state": 15,
"variable": "COLONIA",
"question": "Domicilio · Colonia:",
"type": "text",
"next_step": 16
"type": "text"
},
{
"state": 16,
"variable": "CODIGO_POSTAL",
"question": "Código Postal (5 dígitos):",
"type": "text",
"next_step": 17
"type": "text"
},
{
"state": 17,
@@ -138,7 +148,7 @@
"question": "Ciudad de residencia:",
"type": "keyboard",
"options": ["Saltillo", "Ramos Arizpe", "Arteaga", "Otro"],
"next_steps": [
"next_steps": [
{ "value": "Otro", "go_to": 17.1 },
{ "value": "default", "go_to": 18 }
]
@@ -155,167 +165,179 @@
"variable": "ROL",
"question": "Rol dentro del equipo:",
"type": "keyboard",
"options": ["Belleza", "Staff (Recepción)", "Marketing"],
"next_step": 19
"options": ["Belleza", "Staff (Recepción)", "Marketing"]
},
{
"state": 19,
"variable": "SUCURSAL",
"question": "Sucursal principal:",
"type": "keyboard",
"options": ["Plaza Cima (Sur)", "Plaza O (Carranza)"],
"next_step": 20
"options": ["Plaza Cima (Sur)", "Plaza O (Carranza)"]
},
{
"state": 20,
"variable": "INICIO_DIA",
"question": "Fecha de ingreso · Día:",
"type": "text",
"next_step": 21
"type": "text"
},
{
"state": 21,
"variable": "INICIO_MES",
"question": "Fecha de ingreso · Mes:",
"type": "keyboard",
"options": ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"],
"next_step": 22
"options": [
"Enero", "Febrero", "Marzo",
"Abril", "Mayo", "Junio",
"Julio", "Agosto", "Septiembre",
"Octubre", "Noviembre", "Diciembre"
]
},
{
"state": 22,
"variable": "INICIO_ANIO",
"question": "Fecha de ingreso · Año:",
"type": "keyboard",
"options": ["2024", "2025", "2026"],
"next_step": 23
"options": ["2024", "2025", "2026"]
},
{
"state": 22.5,
"variable": "INTRO_EMERGENCIA",
"question": "SECCIÓN 3 · CONTACTO DE EMERGENCIA\n\nEsta persona solo será contactada en una emergencia real.\n\n(Confirma para continuar)",
"type": "keyboard",
"options": ["Continuar"]
},
{
"state": 23,
"variable": "REF1_NOMBRE",
"question": "Referencia 1 · Nombre completo:",
"type": "text",
"next_step": 24
"variable": "EMERGENCIA_NOMBRE",
"question": "Contacto de emergencia · Nombre completo:",
"type": "text"
},
{
"state": 24,
"variable": "REF1_TELEFONO",
"question": "Referencia 1 · Teléfono:",
"type": "text",
"next_step": 25
"variable": "EMERGENCIA_TEL",
"question": "Contacto de emergencia · Teléfono:",
"type": "text"
},
{
"state": 25,
"variable": "REF1_TIPO",
"question": "Referencia 1 · Relación:",
"variable": "EMERGENCIA_RELACION",
"question": "Relación con el contacto de emergencia:",
"type": "keyboard",
"options": ["Familiar", "Amistad", "Trabajo", "Académica", "Otra"],
"options": ["Padre/Madre", "Pareja", "Hermano/a", "Hijo/a", "Amigo/a", "Otro"],
"next_steps": [
{ "value": "Otra", "go_to": 25.1 },
{ "value": "Otro", "go_to": 25.1 },
{ "value": "default", "go_to": 26 }
]
},
{
"state": 25.1,
"variable": "REF1_TIPO_OTRA",
"question": "Especifíca la relación con la Referencia 1:",
"variable": "EMERGENCIA_RELACION_OTRA",
"question": "Describe la relación con tu contacto de emergencia:",
"type": "text",
"next_step": 26
},
{
"state": 26,
"variable": "REF2_NOMBRE",
"question": "Referencia 2 · Nombre completo:",
"type": "text",
"next_step": 27
"variable": "INTRO_REFERENCIAS",
"question": "SECCIÓN 4 · REFERENCIAS PERSONALES\n\nNecesitamos 3 referencias reales que te conozcan.\n\n(Confirma para continuar)",
"type": "keyboard",
"options": ["Continuar"]
},
{
"state": 27,
"variable": "REF2_TELEFONO",
"question": "Referencia 2 · Teléfono:",
"type": "text",
"next_step": 28
"variable": "REF1_NOMBRE",
"question": "Referencia 1 · Nombre completo:",
"type": "text"
},
{
"state": 28,
"variable": "REF2_TIPO",
"question": "Referencia 2 · Relación:",
"type": "keyboard",
"options": ["Familiar", "Amistad", "Trabajo", "Académica", "Otra"],
"next_steps": [
{ "value": "Otra", "go_to": 28.1 },
{ "value": "default", "go_to": 29 }
]
},
{
"state": 28.1,
"variable": "REF2_TIPO_OTRA",
"question": "Especifíca la relación con la Referencia 2:",
"type": "text",
"next_step": 29
"variable": "REF1_TELEFONO",
"question": "Referencia 1 · Teléfono:",
"type": "text"
},
{
"state": 29,
"variable": "REF3_NOMBRE",
"question": "Referencia 3 · Nombre completo:",
"variable": "REF1_TIPO",
"question": "Referencia 1 · Relación:",
"type": "keyboard",
"options": ["Familiar", "Amistad", "Trabajo", "Académica", "Otra"],
"next_steps": [
{ "value": "Otra", "go_to": 29.1 },
{ "value": "default", "go_to": 30 }
]
},
{
"state": 29.1,
"variable": "REF1_TIPO_OTRA",
"question": "Especifica la relación con la Referencia 1:",
"type": "text",
"next_step": 30
},
{
"state": 30,
"variable": "REF3_TELEFONO",
"question": "Referencia 3 · Teléfono:",
"type": "text",
"next_step": 31
"variable": "REF2_NOMBRE",
"question": "Referencia 2 · Nombre completo:",
"type": "text"
},
{
"state": 31,
"variable": "REF3_TIPO",
"question": "Referencia 3 · Relación:",
"type": "keyboard",
"options": ["Familiar", "Amistad", "Trabajo", "Académica", "Otra"],
"next_steps": [
{ "value": "Otra", "go_to": 31.1 },
{ "value": "default", "go_to": 32 }
]
},
{
"state": 31.1,
"variable": "REF3_TIPO_OTRA",
"question": "Especifíca la relación con la Referencia 3:",
"type": "text",
"next_step": 32
"variable": "REF2_TELEFONO",
"question": "Referencia 2 · Teléfono:",
"type": "text"
},
{
"state": 32,
"variable": "EMERGENCIA_NOMBRE",
"question": "Contacto de emergencia · Nombre completo:",
"variable": "REF2_TIPO",
"question": "Referencia 2 · Relación:",
"type": "keyboard",
"options": ["Familiar", "Amistad", "Trabajo", "Académica", "Otra"],
"next_steps": [
{ "value": "Otra", "go_to": 32.1 },
{ "value": "default", "go_to": 33 }
]
},
{
"state": 32.1,
"variable": "REF2_TIPO_OTRA",
"question": "Especifica la relación con la Referencia 2:",
"type": "text",
"next_step": 33
},
{
"state": 33,
"variable": "EMERGENCIA_TEL",
"question": "Contacto de emergencia · Teléfono:",
"type": "text",
"next_step": 34
"variable": "REF3_NOMBRE",
"question": "Referencia 3 · Nombre completo:",
"type": "text"
},
{
"state": 34,
"variable": "EMERGENCIA_RELACION",
"question": "Relación con el contacto de emergencia:",
"variable": "REF3_TELEFONO",
"question": "Referencia 3 · Teléfono:",
"type": "text"
},
{
"state": 35,
"variable": "REF3_TIPO",
"question": "Referencia 3 · Relación:",
"type": "keyboard",
"options": ["Padre/Madre", "Esposo/a", "Pareja", "Hijo/a", "Hermano/a", "Amigo/a", "Otro"],
"options": ["Familiar", "Amistad", "Trabajo", "Académica", "Otra"],
"next_steps": [
{ "value": "Otro", "go_to": 34.1 },
{ "value": "default", "go_to": -1 }
{ "value": "Otra", "go_to": 35.1 },
{ "value": "default", "go_to": 99 }
]
},
{
"state": 34.1,
"variable": "EMERGENCIA_RELACION_OTRA",
"question": "Especifíca la relación con el contacto de emergencia:",
"type": "text",
"next_step": -1
"state": 35.1,
"variable": "REF3_TIPO_OTRA",
"question": "Especifica la relación con la Referencia 3:",
"type": "text",
"next_step": 99
},
{
"state": 99,
"variable": "FLOW_END",
"question": "✅ ¡Gracias!\n\nTu registro quedó completo. RH validará la información y te confirmará los siguientes pasos.\n\nSi necesitas corregir algo, escribe /cancelar y empieza de nuevo.",
"type": "info"
}
]
}
}

View File

@@ -2,15 +2,28 @@
"flow_name": "vacations",
"steps": [
{
"state": "INICIO_DIA",
"question": "🌴 **Solicitud de Vacaciones**\n\nVamos a registrar tu descanso. ¿Qué *día* inicia? (número, ej: 10)",
"handler": "recibir_inicio_dia",
"state": -2,
"variable": "AVISO_GENERAL",
"question": "🌴 SOLICITUD DE VACACIONES\n\nAntes de registrar tus fechas confirma que:\n\n• Ya hablaste con tu manager\n• Las fechas no se traslapan con guardias críticas\n• Sabes que el bot notificará al equipo de RH\n\nConfirma para continuar.",
"type": "keyboard",
"options": ["Continuar"]
},
{
"state": -1,
"variable": "INTRO_FECHAS",
"question": "SECCIÓN ÚNICA · FECHAS Y MOTIVO\n\nComparte las fechas exactas del descanso y cualquier comentario relevante.",
"type": "info"
},
{
"state": 0,
"variable": "INICIO_DIA",
"question": "¿Qué *día* inicia tu descanso? (número, ej: 10)",
"type": "text"
},
{
"state": "INICIO_MES",
"state": 1,
"variable": "INICIO_MES",
"question": "¿De qué *mes* inicia?",
"handler": "recibir_inicio_mes",
"type": "keyboard",
"options": [
"Enero", "Febrero", "Marzo",
@@ -20,22 +33,22 @@
]
},
{
"state": "INICIO_ANIO",
"question": "¿De qué *año* inicia?",
"handler": "recibir_inicio_anio",
"state": 2,
"variable": "INICIO_ANIO",
"question": "¿De qué *año* inicia? (elige el actual o el siguiente)",
"type": "keyboard",
"options": ["current_year", "next_year"]
},
{
"state": "FIN_DIA",
"state": 3,
"variable": "FIN_DIA",
"question": "¿Qué *día* termina tu descanso?",
"handler": "recibir_fin_dia",
"type": "text"
},
{
"state": "FIN_MES",
"state": 4,
"variable": "FIN_MES",
"question": "¿De qué *mes* termina?",
"handler": "recibir_fin_mes",
"type": "keyboard",
"options": [
"Enero", "Febrero", "Marzo",
@@ -45,17 +58,23 @@
]
},
{
"state": "FIN_ANIO",
"question": "¿De qué *año* termina tu descanso?",
"handler": "recibir_fin_anio",
"state": 5,
"variable": "FIN_ANIO",
"question": "¿De qué *año* termina tu descanso? (elige el actual o el siguiente)",
"type": "keyboard",
"options": ["current_year", "next_year"]
},
{
"state": "MOTIVO",
"state": 6,
"variable": "MOTIVO",
"question": "Entendido. ¿Cuál es el motivo o comentario adicional?",
"handler": "recibir_motivo_fin",
"type": "text"
},
{
"state": 99,
"variable": "FLOW_END",
"question": "✅ Solicitud registrada.\n\nRH validará la información y te confirmará si las fechas quedan asignadas. Si necesitas cambiar algo, vuelve a iniciar con /vacaciones.",
"type": "info"
}
]
}
}