IA WhatsApp: añade condiciones de cobertura por compañía (coverage_rules) al prompt
This commit is contained in:
14
server.js
14
server.js
@@ -1610,6 +1610,16 @@ async function procesarConIA(ownerId, mensajeCliente, datosExpediente) {
|
|||||||
const instruccionesExtra = settings.ai_custom_prompt || "";
|
const instruccionesExtra = settings.ai_custom_prompt || "";
|
||||||
const empresaNombre = userData?.full_name || "nuestra empresa";
|
const empresaNombre = userData?.full_name || "nuestra empresa";
|
||||||
|
|
||||||
|
// 🧾 Condiciones de cobertura por compañía: cada regla tiene una "keyword" corta
|
||||||
|
// (ej. "santander") que buscamos DENTRO del campo Compañía del expediente, sin
|
||||||
|
// mayúsculas ni tildes. Así da igual si el texto viene envuelto en cosas de
|
||||||
|
// Multiasistencia/HomeServe (ej. "MULTI - Siniestros - Santander Generales
|
||||||
|
// proyecto Gesca") — con que contenga la palabra clave, coincide.
|
||||||
|
const normalizarTexto = (str) => String(str || "").toLowerCase().normalize("NFD").replace(/[̀-ͯ]/g, "");
|
||||||
|
const coverageRules = Array.isArray(settings.coverage_rules) ? settings.coverage_rules : [];
|
||||||
|
const companiaNormalizada = normalizarTexto(datosExpediente.compania);
|
||||||
|
const reglaCobertura = coverageRules.find(r => r.keyword && companiaNormalizada.includes(normalizarTexto(r.keyword)));
|
||||||
|
|
||||||
if (!settings.wa_ai_enabled) return null;
|
if (!settings.wa_ai_enabled) return null;
|
||||||
|
|
||||||
const pSettings = userData?.portal_settings || {};
|
const pSettings = userData?.portal_settings || {};
|
||||||
@@ -1998,6 +2008,10 @@ Eres el coordinador humano de "${empresaNombre}". Hablas de tú, de forma natura
|
|||||||
- ⛔ REGLA DE ORO DEL HORARIO: NUNCA propongas horas fuera de ese horario ni cruces el tramo de comer.
|
- ⛔ REGLA DE ORO DEL HORARIO: NUNCA propongas horas fuera de ese horario ni cruces el tramo de comer.
|
||||||
- Fines de semana solo si es una urgencia.
|
- Fines de semana solo si es una urgencia.
|
||||||
- Localidad del cliente actual: ${datosExpediente.poblacion || 'Localidad no especificada'}.
|
- Localidad del cliente actual: ${datosExpediente.poblacion || 'Localidad no especificada'}.
|
||||||
|
${reglaCobertura ? `
|
||||||
|
--- 🧾 CONDICIONES DE COBERTURA PARA ESTA COMPAÑÍA (${datosExpediente.compania}) ---
|
||||||
|
${reglaCobertura.text}
|
||||||
|
Menciona esto SOLO si el cliente pregunta por costes, materiales, o qué cubre el seguro. No lo repitas si no viene a cuento.` : ''}
|
||||||
|
|
||||||
--- ✅ HUECOS EXACTOS CALCULADOS POR EL SISTEMA ---
|
--- ✅ HUECOS EXACTOS CALCULADOS POR EL SISTEMA ---
|
||||||
${agendaDisponibleTexto}
|
${agendaDisponibleTexto}
|
||||||
|
|||||||
Reference in New Issue
Block a user