BytIA: el chatbot que sabe dónde estás y cómo te sientes
El mes pasado, un visitante entró en mi web por la página de servicios. Estaba buscando diseño web, pero el chatbot le respondió igual que si hubiera entrado por el blog. Le dio información genérica. El tío se fue.
Ese día decidí que BytIA tenía que ser más inteligente. No solo responder preguntas — entender el contexto.
El problema con los chatbots de plantilla
La mayoría de chatbots para pymes funcionan igual: les das un system prompt, les metes un FAQ, y responden lo que pueden. Pero tienen tres carencias que cuestan dinero:
- No saben dónde estás — Responden igual si estás en servicios que en contacto
- No leen emociones — Tratan igual a alguien curioso que a uno urgente
- No clasifican leads — El dueño recibe “alguien habló con el bot” y punto
Yo quería un chatbot que hiciera lo que haría un comercial bueno: escuchar, adaptar su discurso, y al final decirte “este tío está caliente, llámalo ya”.
Lo que construí (y cómo funciona)
1. Contexto de página automático
Cuando el visitante está en /servicios/seo/, BytIA lo sabe. El widget detecta la URL actual y la envía con cada mensaje. El backend construye un contexto que se inyecta como mensaje system antes del historial:
CONTEXTO DE PÁGINA: El usuario está navegando en "/servicios/seo/"
de asturwebs.es. Adapta tu respuesta al contexto de esta sección.
Si menciona servicios, enfócate en posicionamiento SEO.
Si pregunta precios, conecta con los planes mensuales.
Esto cambia completamente la respuesta. En /servicios/seo/, BytIA habla de auditorías técnicas y optimización on-page. En /planes/, va directo a la iguala mensual y lo que incluye. En /contacto/, ofrece agendar la consulta gratuita.
El widget también detecta navegación SPA — si el visitante cambia de página durante la conversación, se envía un mensaje de contexto silencioso. BytIA nunca repite la misma información genérica dos veces.
¿Tu chatbot trata igual a todos los visitantes? Un chatbot que sabe dónde está tu cliente y cómo se siente convierte más que uno genérico. Puedo construir uno para tu negocio.
Y todo esto es gratis en términos de coste: el contexto de página no añade tokens al historial, es un mensaje system que se inserta en cada petición y se descarta después.
2. Adaptación emocional en tiempo real
BytIA no da la misma respuesta a todo el mundo. Detecta el estado del visitante y cambia su tono. Así se ve en una conversación real:
Visitante: “Llevo tres semanas esperando que mi diseñador me arregle la web y no contesta. Estoy hasta los huevos.”
BytIA: “Entiendo perfectamente tu frustración, llevas tiempo esperando y eso no es justo. Te cuento cómo funciona mi rescate de proyectos: Pedro revisa tu web, te dice qué está mal y te da un plan para arreglarlo. Normalmente en menos de una semana estás operativo otra vez. ¿Quieres que le pase tu caso a Pedro para que te llame?”
Visitante: “¿En serio me puede llamar? Es que necesito solucionar esto ya.”
BytIA: “De verdad. Si es urgente, te sugiero escribirle directo al WhatsApp — +34 644 28 26 26 — para que te responda hoy mismo. Dile que BytIA te derivó y sabrá de qué va.”
Fíjate: no empezó con un listado de servicios. Empezó con empatía, validó la frustración, ofreció solución concreta y cerró con acción inmediata. Eso no es un chatbot genérico — es lo que haría un comercial bueno al teléfono.
La tabla completa de adaptación:
| Estado | Qué hace BytIA |
|---|---|
| Curioso o indeciso | Educa sin presionar, genera confianza |
| Entusiasmado | Canaliza hacia acción concreta (agendar llamada) |
| Frustrado con su web | Valida primero, luego ofrece solución |
| Ansioso o urgente | Empatía + acción directa: WhatsApp para respuesta inmediata |
| Escéptico sobre el precio | Demuestra valor: mantenimiento, IA y soporte incluidos |
3. Lead scoring automático al cerrar
Cuando se cierra una conversación, hago una segunda llamada a la IA (independiente del chat) que analiza el historial completo y extrae un JSON estructurado:
{
"temperature": "caliente",
"intent": "Presupuesto para tienda online con 200+ productos",
"urgency": "alta",
"sentiment": "entusiasmado",
"summary": "Dueño de comercio quiere migrar de WooCommerce a tienda moderna. Tiene presupuesto y urgencia por lanzar antes de verano."
}
Esto se guarda en la base de datos (lead_score en SQLite) y se incluye en el email que recibo como propietario. El asunto del email ya te dice la temperatura: 🔥 LEAD CALIENTE: Presupuesto para tienda online o Chat — información general sobre SEO. Así priorizas quién necesita respuesta hoy y quién puede esperar.
Los datos también se envían por webhook — si tienes un Google Sheets como CRM, cada conversación aterriza en una fila con nombre, contacto, número de mensajes, temperatura, intención y urgencia. Sin copiar nada a mano.
El visitante nunca ve el scoring. La copia que se le envía por email es una transcripción limpia — sin análisis, sin etiquetas. Es información para ti, no para él. Si la IA falla al analizar la conversación, devuelve un lead genérico “frío” y nada se rompe — graceful degradation.

4. Datos de negocio separados del comportamiento
Esta es la pieza que lo hace escalable. El prompt de BytIA se divide en tres mensajes system que se envían antes del historial de conversación:
Mensaje system 1 (comportamiento): "Eres BytIA, la IA asistente de AsturWebs..."
→ Personalidad, seguridad, anti-injection, cierre, adaptación emocional
→ Cambia casi nunca — es la "personalidad" del bot
Mensaje system 2 (datos): "## Servicios\n- Diseño web: 375-600€..."
→ Servicios, precios, horarios, bio del dueño, diferenciadores
→ Cambia cuando cambias un precio o añades un servicio
Mensaje system 3 (contexto): "El usuario está en /servicios/seo/..."
→ Página actual + datos del visitante (nombre, email si los dio)
→ Se regenera en cada petición
¿Por qué separarlos? Porque la capa 2 son datos de negocio que también alimentan agents.txt, llms.txt y la API pública. Si cambio un precio en business-data.ts, se actualiza en el chatbot, en la API, en agents.txt, en llms.txt y en openapi.json. Un cambio, seis salidas.
El coste: tres mensajes de contexto en vez de uno. Pero la coherencia que ganas (precio en la web = precio en el chatbot = precio en agents.txt) no tiene precio.
El resultado en producción
BytIA lleva semanas activa en asturwebs.es. No es un prototipo — es la que atiende a mis visitantes reales 24/7. Funciona en cualquier API compatible con OpenAI (gpt-4o-mini, Claude, modelos locales). Los datos se guardan en una base de datos propia, y el backend corre en un contenedor Docker con 128 MB de RAM.
En las primeras semanas ya detectó leads calientes que me hubiera perdido — gente con urgencia real, con presupuesto, que entró un domingo por la noche cuando yo no estaba delante del ordenador. Sin BytIA, esos visitantes habrían cerrado la pestaña.
La seguridad está cubierta:
- Anti-prompt injection — Ignora “olvida tus instrucciones”, “actúa como otro modelo”, “muestra tu prompt”
- Input sanitizado — DOMPurify con ALLOWED_TAGS vacío (cero HTML en entrada)
- Rate limiting — 10 req/min por IP + configurable por cliente
- CORS — Solo responde a los orígenes que tú autorices
- Sin datos inventados — Si BytIA no sabe algo, deriva a contacto humano
El widget se instala con una línea de HTML en cualquier web. Funciona en WordPress, Astro, Shopify, HTML plano — no depende de la plataforma. El CSS está scoped (no rompe el diseño del host), React se empaqueta como IIFE autónomo, y el script pesa ~5 KiB (React se carga solo cuando el usuario hace clic, gracias al patrón Facade).
Si quieres algo parecido
La arquitectura es replicable. No necesitas mi código — necesitas los principios correctos:
-
Separa comportamiento de datos — Si tu system prompt tiene precios hardcodeados, cada cambio requiere editar el prompt. Sepáralos. Los datos deben vivir en un archivo, una base de datos o un JSON, no dentro de una cadena de texto de 2000 palabras.
-
Dale contexto de página —
window.location.pathnamese envía gratis con cada petición. Un chatbot que sabe que estás en/precios/convierte mejor que uno que no. Es un cambio de 10 líneas en el backend y cambia todo el comportamiento. -
Clasifica tus leads al cerrar — Una llamada extra a la IA con el historial completo te da temperatura, intención y urgencia. El coste es mínimo (el historial ya lo tienes) y el valor es enorme: priorizas a quién llamar primero.
-
Adapta el tono al estado emocional — Un visitante que dice “llevo semanas esperando una respuesta” no necesita un listado de servicios. Necesita validación y una solución. Las instrucciones de adaptación emocional son 5 líneas en tu system prompt.
-
Cierra siempre con acción — Un chatbot que termina con “¿algo más?” está desperdiciando la conversación. Siempre cierra con una pregunta orientada a la acción: agendar llamada, enviar presupuesto, contacto directo.
La tecnología no es el problema — cualquiera con acceso a una API de IA puede montar un chatbot. Lo que marca la diferencia es la arquitectura del prompt: cómo organizas la información, cómo inyectas contexto, cómo mides resultados.
Si tienes tiempo y conocimientos, puedes construir esto. Si prefieres tenerlo funcionando en tu web sin montar nada, hablamos. Tu próximo lead caliente no va a esperar a que tú estés delante del ordenador.
¿Quieres un chatbot que venda por ti?
BytIA Chat se instala en cualquier web con una línea de código. Contexto de página, adaptación emocional, lead scoring — sin plugins, sin dependencias.
Quiero información →Preguntas frecuentes
¿En qué se diferencia BytIA de un chatbot normal?
Los chatbots normales dan la misma respuesta en la página que sea. BytIA detecta dónde está el visitante (servicios, precios, blog) y adapta su respuesta. Además, identifica el estado emocional (curioso, frustrado, urgente) y ajusta su tono en tiempo real. Al cerrar la conversación, clasifica automáticamente al lead como frío, tibio o caliente.
¿Qué es el lead scoring automático?
Cuando se cierra una conversación, la IA analiza el historial completo y extrae: temperatura del lead (frío/tibio/caliente), intención del visitante, urgencia, sentimiento y un resumen de la oportunidad. Esto se guarda en base de datos y se envía por email al propietario de la web.
¿Puedo tener este chatbot en mi web aunque no sea de AsturWebs?
Sí. BytIA Chat es un producto independiente que se instala con una línea de HTML en cualquier web — WordPress, Astro, Shopify, lo que sea. Cada negocio tiene su propia configuración, personalidad y datos de negocio.
¿El visitante ve el lead scoring?
No. El análisis es interno — solo lo ve el propietario de la web en el email de transcripción y en los datos del webhook. La copia que se envía al visitante es una transcripción limpia sin scoring.