diff --git a/server.js b/server.js index a29a0e2..64847cd 100644 --- a/server.js +++ b/server.js @@ -959,11 +959,11 @@ async function procesarConIA(ownerId, mensajeCliente, datosExpediente) { } else if (esUrgencia) { directivaEstricta = `馃洃 ESTADO ACTUAL: URGENCIA. Tranquiliza al cliente y dile que el t茅cnico est谩 avisado. NO PROPONGAS HORAS.`; } else if (hayCitaPendiente) { - directivaEstricta = `馃洃 ESTADO ACTUAL: CITA PENDIENTE DE APROBACI脫N POR T脡CNICO.\n馃搮 Propuesta actual: El d铆a ${datosExpediente.cita_pendiente_fecha} ${tramoPendiente}.\nTU 脷NICO OBJETIVO: Informar al cliente que estamos esperando confirmaci贸n.\n鈿狅笍 EXCEPCI脫N CR脥TICA (REAGENDAR/CANCELAR): Si el cliente pide CAMBIAR, CANCELAR o ANULAR esta propuesta, DEBES PERMITIRLO. Ofrece un hueco libre nuevo y, si acepta, MANDA OBLIGATORIAMENTE el c贸digo: [PROPUESTA:YYYY-MM-DD HH:mm]`; + directivaEstricta = `馃洃 ESTADO ACTUAL: CITA PENDIENTE DE APROBACI脫N.\n馃搮 Propuesta actual: El d铆a ${datosExpediente.cita_pendiente_fecha} ${tramoPendiente}.\nTU 脷NICO OBJETIVO: Informar que esperamos confirmaci贸n.\n鈿狅笍 EXCEPCI脫N: Si el cliente pide CAMBIAR o CANCELAR, ofr茅cele un hueco libre nuevo y si acepta, lanza la etiqueta oculta: [PROPUESTA:YYYY-MM-DD HH:mm]`; } else if (tieneCitaConfirmada) { - directivaEstricta = `馃洃 ESTADO ACTUAL: CITA CONFIRMADA para el ${datosExpediente.cita} ${tramoConfirmado}. Recuerda la cita.\n鈿狅笍 EXCEPCI脫N CR脥TICA (REAGENDAR): Si el cliente pide CAMBIARLA o CANCELARLA, DEBES PERMITIRLO. Busca un hueco libre nuevo y, si acepta, MANDA OBLIGATORIAMENTE el c贸digo: [PROPUESTA:YYYY-MM-DD HH:mm]`; + directivaEstricta = `馃洃 ESTADO ACTUAL: CITA CONFIRMADA para el ${datosExpediente.cita} ${tramoConfirmado}. Recuerda la cita.\n鈿狅笍 EXCEPCI脫N: Si el cliente pide CAMBIARLA o CANCELARLA, ofr茅cele un hueco libre nuevo y si acepta, lanza la etiqueta oculta: [PROPUESTA:YYYY-MM-DD HH:mm]`; } else { - directivaEstricta = `馃煝 ESTADO ACTUAL: PENDIENTE DE AGENDAR CITA.\nTU OBJETIVO: Acordar fecha y hora. NUNCA ofrezcas horas ocupadas. Fines de semana solo URGENCIAS.\n鈿狅笍 MUY IMPORTANTE: Si el cliente ACEPTA FIRMEMENTE un hueco, a帽ade AL FINAL el c贸digo: [PROPUESTA:YYYY-MM-DD HH:mm]`; + directivaEstricta = `馃煝 ESTADO ACTUAL: PENDIENTE DE AGENDAR CITA.\nTU OBJETIVO: Acordar fecha y hora. NUNCA ofrezcas horas ocupadas. Fines de semana solo URGENCIAS.\n鈿狅笍 MUY IMPORTANTE: Si el cliente ACEPTA un hueco, acl谩rale que le pasas la propuesta al t茅cnico para confirmaci贸n final. A帽ade AL FINAL la etiqueta oculta: [PROPUESTA:YYYY-MM-DD HH:mm]`; } const promptSistema = ` @@ -4007,7 +4007,7 @@ app.post("/webhook/evolution", async (req, res) => { }); if (respuestaIA) { - const matchPropuesta = respuestaIA.match(/\[PROPUESTA:(\d{4}-\d{2}-\d{2}) (\d{2}:\d{2})\]/); + const matchPropuesta = respuestaIA.match(/\[PROPUESTA:\s*(\d{4}-\d{2}-\d{2})\s+(\d{2}:\d{2})\]/i); if (matchPropuesta) { const fechaSugerida = matchPropuesta[1]; const horaSugerida = matchPropuesta[2];