From a94f34884f2a8603917afa90949b3fd18226bf00 Mon Sep 17 00:00:00 2001 From: marsalva Date: Fri, 28 Aug 2026 20:53:41 +0000 Subject: [PATCH] =?UTF-8?q?IA=20WhatsApp:=20a=C3=B1ade=20condiciones=20de?= =?UTF-8?q?=20cobertura=20por=20compa=C3=B1=C3=ADa=20(coverage=5Frules)=20?= =?UTF-8?q?al=20prompt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/server.js b/server.js index 2fc0c02..8515545 100644 --- a/server.js +++ b/server.js @@ -1610,6 +1610,16 @@ async function procesarConIA(ownerId, mensajeCliente, datosExpediente) { const instruccionesExtra = settings.ai_custom_prompt || ""; 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; 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. - Fines de semana solo si es una urgencia. - 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 --- ${agendaDisponibleTexto}