1. ¿Qué es Repi?
Repi es una plataforma SaaS multi-tenant que permite crear, personalizar y desplegar un asistente de chat con inteligencia artificial para atención al cliente, sin escribir una línea de código. Cada cuenta (tenant) puede crear uno o varios asistentes, cada uno con su propia base de conocimiento, personalidad y personalización visual, gestionados desde el mismo panel.
Cada asistente responde preguntas usando solo la información que su dueño cargó — nunca inventa precios ni políticas — está disponible 24/7 sin concepto de horario de atención, y puede capturar datos de contacto de forma conversacional, sin formularios.
No es exclusivo para un solo tipo de negocio: lo usa directamente el dueño de una tienda, restaurante o clínica, y también agencias, freelancers y consultores que crean un asistente distinto por cada uno de sus clientes desde una única cuenta.
2. Cómo funciona
El flujo completo, de punta a punta:
- Registro y wizard inicial. Al crear la cuenta, un wizard guiado de 3 pasos (nombre → personalidad → sitio web opcional) crea el primer asistente.
- Base de conocimiento. Se carga a mano, subiendo un PDF/Word, o dejando que Repi escanee el sitio web del negocio.
- Personalización. Avatar, fondo del chat, color de acento, tipografía e ícono del widget, con guardado instantáneo.
- Configuración del objetivo. Se define qué debe priorizar el asistente (resolver dudas, captar leads, informar, etc.) y cómo y cuándo pedir datos de contacto.
- Distribución. El asistente se comparte por enlace público, código QR o un script embebible en cualquier sitio web.
- Conversación real. Un visitante escribe; el modelo de IA responde usando exclusivamente la base de conocimiento del asistente, y puede capturar sus datos de contacto de forma natural dentro de la charla.
- Seguimiento. El dueño recibe una notificación y un email por cada lead nuevo, y revisa conversaciones, leads y estadísticas reales desde el panel.
3. Conceptos técnicos
Multi-tenancy a nivel de aplicación
Muchos negocios comparten la misma base de datos y el mismo backend, pero
sus datos están completamente aislados entre sí: cada consulta a una tabla
de negocio filtra explícitamente por el tenant_id
derivado del usuario autenticado en la sesión, nunca de un parámetro que
envíe el cliente.
Autenticación por cookie httpOnly
La sesión vive en un JWT firmado dentro de una cookie httpOnly —
el JavaScript del navegador no puede leerla, a diferencia de guardar un
token en localStorage, que sería vulnerable a robo vía XSS.
El prompt como lógica de negocio
El comportamiento del asistente (qué puede decir, cuándo pedir datos de contacto, cómo reaccionar si no sabe algo) no vive en código imperativo, sino en un system prompt construido dinámicamente combinando la personalidad, la base de conocimiento, el objetivo configurado y las instrucciones de captura de leads. Es una decisión deliberada: toda la "inteligencia condicional" vive en lenguaje natural interpretado por el modelo, no en una máquina de estados programada a mano.
Protección SSRF
Cuando el escáner de sitio web pide "leé la información de esta URL", existe el riesgo de que apunte a una dirección interna de la propia infraestructura. Todo ese tipo de solicitud pasa por un único punto que resuelve el DNS antes de conectar, rechaza IPs privadas o de loopback, y valida cada redirección.
Persistencia de la conversación
El navegador del visitante guarda solo un identificador de sesión
(visitorSessionId) para reconocerlo entre visitas. El
contenido real de la conversación vive siempre en la base de datos —
nunca en el navegador — así que sobrevive a cerrar la pestaña o cambiar
de dispositivo.
4. El modelo de IA
El motor de inteligencia artificial de Repi es DeepSeek por defecto, al que se accede mediante una API compatible con la de OpenAI. Gracias a esa compatibilidad, la plataforma también puede correr sobre modelos de OpenAI (como GPT-4.1 Nano) — cambiar de proveedor es un cambio de configuración a nivel de plataforma, no una reescritura del producto.
El modelo recibe, en cada respuesta, un contexto compuesto por:
- La personalidad que el dueño definió para el asistente.
- Toda la base de conocimiento cargada — manual, extraída de PDF/Word, o escaneada del sitio web — con la regla central de que solo puede usar esa información, nunca inventar precios ni políticas.
- Que la disponibilidad es 24/7, sin ningún concepto de horario de atención.
- El objetivo configurado (resolver dudas, captar clientes, conseguir reservas o ventas, dar soporte, informar). Importante: Repi no tiene reservas, llamadas ni pagos integrados de verdad — estos objetivos cambian la forma de persuadir, pero la acción concreta siempre es pedir los datos de contacto configurados, nunca inventar que una reserva quedó agendada.
- Qué decir cuando no sabe algo (mensaje de fallback configurable).
- Cuándo y cómo pedir datos de contacto, según la configuración de captura de leads del asistente.
Cada mensaje registra los tokens de entrada, salida y caché que devuelve la propia API del modelo, como base para auditar el consumo por conversación. Como con cualquier modelo de lenguaje, la fiabilidad de este comportamiento depende de que el modelo siga instrucciones en lenguaje natural correctamente — no es 100% determinístico.
5. Manual de uso
Crear un asistente
El wizard de creación pide un nombre, una descripción de personalidad y, opcionalmente, el sitio web del negocio para escanearlo automáticamente. Una cuenta puede crear más de un asistente y todos se gestionan desde el mismo panel.
Cargar la base de conocimiento
- Texto manual — se escribe directamente en el panel.
- PDF o Word — se procesan en memoria (el archivo nunca se guarda en disco), quedan como borrador editable, y se confirman con el botón "Guardar cambios".
- Sitio web — Repi descubre las páginas vía
sitemap.xml(o enlaces internos si no existe), hasta un tope de 15 páginas, con progreso en tiempo real mientras las lee y guarda.
Personalizar la apariencia
Avatar y fondo del chat (imagen propia, hasta 5 MB), una paleta de 5 colores de acento, 5 tipografías y 4 íconos para la burbuja del widget. Los cambios de personalización se guardan al instante, sin borrador.
Compartir y hacer seguimiento
Una vez listo, el asistente se comparte (ver sección siguiente) y desde el panel se puede leer el historial completo de cada conversación, revisar los leads capturados y consultar estadísticas reales de conversaciones, mensajes y leads por rango de tiempo.
6. Distribución del asistente
Cada asistente se puede compartir de tres formas:
- Enlace público — una URL única (
/c/:slug) que abre una vista de chat minimalista, sin login. - Código QR — generado 100% del lado del cliente, sin depender de un servicio externo, listo para descargar e imprimir.
- Widget embebible — un script asíncrono que se agrega a cualquier sitio web y dibuja una burbuja flotante; el chat corre aislado dentro de un
iframe, sin colisionar con el CSS o JavaScript del sitio anfitrión.
7. Captura de leads
Repi no usa formularios dentro del chat. El propio modelo de IA identifica cuándo un visitante comparte sus datos de contacto durante la conversación y los adjunta de forma invisible al final de su respuesta — el visitante nunca ve ese marcador. El backend lo separa del texto, crea (o completa) el lead correspondiente, y dispara en paralelo una notificación en el panel y un email al dueño del asistente.
Qué campos pedir (nombre, email, teléfono, empresa, ciudad) y en qué momento hacerlo (nunca, siempre, al final de la conversación, ante intención de compra, o con una regla personalizada) se configura por asistente.
Limitación conocida: como la extracción depende de que el modelo use el marcador correctamente, no es un mecanismo 100% determinístico — es la variabilidad normal de un modelo de lenguaje siguiendo instrucciones.
8. Beneficios
- Sin código. Formularios, un wizard guiado y un botón de guardar — nunca una línea de configuración técnica.
- Fuente de verdad controlada. El asistente solo habla de lo que se cargó explícitamente, lo que reduce el riesgo de que invente precios o políticas.
- Captura de leads sin fricción. Sin formularios que la gente abandona a mitad de camino.
- Disponibilidad real 24/7, sin turnos ni personal humano detrás.
- Un panel para varios asistentes. Útil tanto para un negocio con un solo asistente como para agencias y freelancers que gestionan uno por cada cliente.
9. Planes y precio
Repi tiene un plan único de 19 €/mes, sin niveles ni letra pequeña.
Incluye 7 días de prueba gratuita. Para activarla es necesaria una tarjeta de pago válida desde el registro — no hay acceso al panel sin ella, ni siquiera durante la prueba. La suscripción se puede cancelar cuando se quiera desde el propio panel de facturación.
10. Seguridad y privacidad
- Sesión basada en JWT dentro de una cookie
httpOnly, no accesible desde JavaScript. - Aislamiento de datos entre negocios a nivel de aplicación, filtrando siempre por el tenant de la sesión.
- Protección SSRF en todo fetch a una URL que controla el usuario (el escáner de sitio web).
- Rate limiting en el chat público y en la verificación de email.
- Las imágenes que se suben (avatar, fondo del chat) se almacenan en un proveedor externo de almacenamiento de archivos.
El contenido de la base de conocimiento y los mensajes de cada conversación se envían al proveedor del modelo de IA (DeepSeek) para poder generar una respuesta — más detalle en la Política de Privacidad y los Términos y Condiciones.
11. Glosario
- Tenant
- Una cuenta de Repi — puede representar un negocio, o una agencia/freelancer que gestiona varios asistentes para distintos clientes.
- Asistente
- Un chatbot configurado dentro de un tenant, con su propia base de conocimiento, personalidad, personalización visual y configuración de leads.
shareSlug- El identificador único de un asistente dentro de su enlace público y su widget embebible.
- Base de conocimiento
- Toda la información que el asistente puede usar para responder — texto manual, PDF/Word extraído, o páginas escaneadas del sitio web.
- Lead
- Los datos de contacto de un visitante, capturados por el asistente durante una conversación.
- Widget
- La burbuja de chat flotante que se embebe en un sitio web de terceros mediante un script, distinta del enlace de chat público.
12. Historial de versiones
Primera versión publicada de la documentación de Repi.