Rebeca 2.0 + Meta Connector — Guía del Sistema

Rebeca 2.0 + Meta Connector — Guía del Sistema JSON 15-May-2025

Agente virtual de ventas · Beca Inmobiliaria · beca.pe · n8n + Odoo Meta Connector

Leyenda:
Rebeca / n8n (inteligencia y automatización)
Meta Connector (mensajería y control humano)
Ambos trabajan juntos

🤝 Dos sistemas, un solo equipo

Rebeca y el Meta Connector trabajan siempre juntos. Rebeca es la inteligencia — piensa, responde y califica al cliente. El Meta Connector es el intermediario — recibe los mensajes de WhatsApp/Messenger/Instagram, los entrega a Rebeca, y decide en Odoo cuándo el bot responde y cuándo toma el control un asesor humano.

🔌 Meta Connector
Odoo · gestiona conversaciones
🤖 Rebeca (n8n + GPT-4.1)
Inteligencia · califica leads
🏗️ Odoo CRM
Fuente de verdad del negocio
Los 3 tipos de flujo que maneja Rebeca
Prompt A

Conversacional estándar

Flujo completo de 8 pasos: política → datos → proyectos → detalle → tipologías → cotización → pago → cierre. También cubre T2+ de leads de formulario o masivo (cuando el onboarding ya ocurrió).

✅ Condición: cualquier mensaje que no sea formulario T1 ni flow masivo
Prompt B

Formulario web — Onboarding

El cliente llenó un formulario en beca.pe. Ya tiene nombre, proyecto y tipo de departamento. Rebeca salta los pasos 1, 2 y 3 y presenta directamente el proyecto con sus tipologías disponibles.

✅ Condición: rebeca_attend=true Y es_nuevo=true (primer mensaje del bot)
Prompt C

Flow Masivo — Reactivación NUEVO

El cliente respondió una campaña masiva enviada a contactos antiguos. Política y datos ya están en Odoo. Tiene 3 rutas: agendar visita (cierre directo), marcar perdido, o responder según intención.

✅ Condición: is_flow_masivo=true
🔌 Meta Connector
📲

Recibe y entrega mensajes

Actúa como portero entre los canales de mensajería y el sistema. Cuando llega un mensaje, lo registra en Odoo y lo pasa a Rebeca. Cuando Rebeca responde, el Meta Connector lo envía al cliente.

  • Crea la conversación en Odoo automáticamente al primer mensaje
  • Controla si el bot está activo o si responde un asesor
  • Registra de qué anuncio vino el cliente
  • Reactiva la conversación si el cliente escribe después de cerrada
🤖 Rebeca / n8n
🧠

Piensa, califica y guía

Es la inteligencia del sistema. Antes de responder, verifica Blacklist, detecta Stop, pre-detecta DNI, arma el prompt correcto (A/B/C) y consulta el CRM. Luego genera la respuesta y la devuelve al Meta Connector.

  • Filtra números bloqueados (Blacklist) antes de procesar
  • Detecta palabras de baja/stop (Grupo A y B) y marca el lead como perdido
  • Pre-detecta DNI en el mensaje y consulta Sisweb automáticamente
  • Selecciona el Prompt A, B o C según el tipo de flujo
  • Guía al cliente por los 8 pasos del flujo de ventas (Prompt A)
  • Actualiza el CRM y registra el follow-up en PostgreSQL
🤝 Ambos
🔄

El momento clave: el traspaso

Cuando Rebeca termina su trabajo, le avisa al Meta Connector. El Meta Connector apaga el bot automáticamente y la conversación queda lista para el asesor humano en Odoo.

  • Rebeca marca la conversación como terminada (chatbot_finished=true)
  • El Meta Connector detecta ese cambio y desactiva el bot
  • El asesor ve toda la ficha del cliente en Odoo
  • Si el asesor toma control manualmente, el Meta Connector también apaga el bot
🤖 Rebeca / n8n
🛡️

Guardianes: Blacklist + Stop NUEVO

Dos capas de protección que actúan antes de que el agente procese cualquier mensaje. Evitan respuestas innecesarias y gestionan bajas automáticamente.

  • Blacklist: números bloqueados (lista fija en el flujo) — respuesta silenciada
  • Stop Grupo A (duro): "stop", "no me contacten", "dar de baja", "unsubscribe" → lead marcado como perdido (lost_reason_id=4) y bot apagado
  • Stop Grupo B (suave): "no gracias", "ya compré", "no me interesa" → mismo resultado

¿Qué pasa desde que el cliente escribe hasta que el asesor lo atiende?

0

Guardias previos: Blacklist y Stop Nuevo

Antes de cualquier procesamiento, el flujo verifica si el número está en la lista negra (Blacklist) o si el mensaje es una solicitud de baja (Stop Grupo A o B). Si se detecta alguno, el flujo termina sin enviar respuesta al agente IA. El lead se marca como perdido.

1

El cliente escribe por WhatsApp, Messenger o Instagram Meta Connector

El Meta Connector recibe el mensaje, crea la conversación en Odoo con estado "nuevo" y captura el origen del anuncio si vino de una campaña de Facebook.

2

Pre-procesamiento: DNI, contexto, selección de prompt Rebeca / n8n

Rebeca detecta si el mensaje contiene un DNI (8 dígitos), lo consulta en Sisweb automáticamente. Luego crea o recupera el lead, arma el contexto del agente y selecciona el prompt correcto: A (conversacional), B (formulario T1) o C (flow masivo).

3

Rebeca guía al cliente Rebeca / n8n

Prompt A: flujo completo de 8 pasos. Prompt B: directo al detalle del proyecto. Prompt C: rutas de reactivación (visita, perdido, o según intención). En cada turno actualiza el CRM con lo que aprende y registra el follow-up en la tabla rebeca_followups.

4

Si el cliente no responde: recordatorio automático Meta Connector + n8n

Pasadas 48 horas sin respuesta, el sistema actúa solo. n8n realiza una llamada de voz automática al cliente (ElevenLabs + Twilio). El Meta Connector tiene su propio sistema de recordatorios por plantillas de WhatsApp. Hasta 3 intentos.

5

Rebeca cierra y el Meta Connector entrega al asesor Ambos

Rebeca marca la conversación como finalizada. El Meta Connector detecta ese cambio, apaga el bot automáticamente y la conversación queda en manos del asesor en Odoo, con toda la ficha del cliente lista.

🏁 ¿Qué recibe el asesor cuando Rebeca termina?

Toda esta información ya está en Odoo, lista para que el asesor retome sin preguntar nada.

👤 Nombre completo 🏢 Proyecto de interés 🛏️ Tipología elegida 💰 Precio visto 🏦 Forma de pago 📋 Perfil financiero (DNI) ⭐ Nivel de interés 📱 Canal de origen 📣 Campaña de publicidad 💬 Resumen de la conversación
Proyectos activos que Rebeca presenta
Proyecto 1 · ID 55
Velvet
Pueblo Libre
Entrega inmediata
Proyecto 2 · ID 96
Eighth Avenue
Jesús María
Entrega inmediata
Proyecto 3 · ID 163
Landart
Magdalena del Mar
Nov 2026
Proyecto 4 · ID 382
Bellagio
Jesús María
Jul 2027
Proyecto 5 · ID 405
Áncora
Miraflores
Nov 2026
Así habla Rebeca con cada cliente — haz clic en cada paso para ver el ejemplo
En cada paso:
Lo que hace Rebeca
Lo que hace el Meta Connector
⚠️ Nota: Los pasos 1-8 corresponden al Prompt A (conversacional). Los leads de formulario (Prompt B) entran directamente en el Paso 4. Los flows masivos (Prompt C) tienen su propio flujo de 1-2 turnos.
PASO 1

Saludo y política de privacidad

⚠️ Omitido en leads de formulario y flows masivos
El cliente escribe por primera vez. Rebeca lo saluda y le pide aceptar la política de privacidad. En WhatsApp aparecen botones Sí / No mediante el tag [BUTTONS:]. En Messenger e Instagram pide respuesta por texto.
Ejemplo — WhatsApp
👤
Hola, quiero información sobre departamentos
10:32
👋 ¡Hola! Soy Rebeca, asesora de Beca Inmobiliaria.
Construimos espacios pensados para personas como tú, que buscan comodidad, estilo y calidad. 🏡

Para continuar necesitamos tu autorización para tratar tus datos personales según nuestra Política de Privacidad. Revísala en: https://beca.pe/politicas-de-privacidad/

 
No
10:32 ✓✓
🤖
🆕 En WhatsApp: botones interactivos nativos vía [BUTTONS:]. En Messenger/Instagram: texto libre "Sí o No"
👤
10:33
¿Qué hace cada sistema en este paso?
🛡️ Pre-guardias (antes del agente)
  • Verifica Blacklist: si el número está bloqueado, termina sin procesar
  • Detecta Stop Grupo A/B: si el mensaje es baja, marca perdido y cierra
  • Detecta DNI en el mensaje y lo pre-consulta en Sisweb si existe
🔌 Meta Connector
  • Recibe el mensaje y crea la conversación en Odoo con estado "nuevo"
  • Captura el origen del anuncio si vino de una campaña (ad_id, campaña)
  • Activa el bot automáticamente
🤖 Rebeca / n8n — Prompt A
  • Crea el lead en el CRM antes de responder
  • Detecta el canal (WhatsApp/Messenger/Instagram) y adapta el formato
  • Si el cliente menciona proyecto en T1 → lo guarda como proyecto_inicial pero igual muestra la política
  • Si dice NO: se despide y no continúa
Si rechaza: Rebeca se despide. Si escribe de nuevo después, retoma desde el Paso 2 sin mostrar la política otra vez. Aceptación tácita ("ok", "dale") también es válida.
PASO 2

Datos personales (nombre)

⚠️ Omitido en leads de formulario y flows masivos
Rebeca pide el nombre (ya no el DNI — ese se captura automáticamente si el cliente lo incluye). Si había un proyecto_inicial, saluda con ese contexto. Solo pregunta una vez — si no da datos, igual sigue.
¡Hola! Anotado tu interés en Áncora 😊 Para darte una atención personalizada, ¿me compartes tu nombre completo?
10:33 ✓✓
🤖
👤
María Torres, DNI 45678901
10:34
⚡ El DNI fue pre-detectado antes de llegar al agente → Sisweb ya fue consultado automáticamente. El agente NO necesita volver a ejecutar actualizar_contacto.
¡Gracias, María! Ahora déjame presentarte los detalles de Áncora 🏢
10:34 ✓✓
🤖
¿Qué hace cada sistema en este paso?
🆕 Pre-detección de DNI (antes del agente)
  • Regex busca exactamente 8 dígitos en el mensaje
  • Si encuentra DNI → llama a Sisweb y Pre-actualiza Contacto automáticamente
  • El agente recibe el contexto ya procesado; no repite la llamada
🤖 Rebeca / n8n
  • Si da nombre → ejecuta actualizar_contacto (solo si exists=false)
  • Si da DNI voluntariamente → sistema ya procesó; no ejecuta nada adicional
  • Nombre oficial de Sisweb es definitivo; ignora apodos posteriores
  • Si se desvía o pregunta por proyecto → avanza al Paso 3 sin insistir
Lo que queda: nombre oficial, DNI, ingresos estimados, calificación crediticia y estado civil — sin que el cliente lo haya declarado explícitamente.
PASO 3

Presentación de proyectos

⚠️ Omitido en leads de formulario y flows masivos
Rebeca presenta los 5 proyectos. Si hay un proyecto_inicial exacto, va directo al Paso 4. Si hay preferred_district, filtra. Si hay uno solo en ese distrito, salta la lista sin esperar confirmación.
María, aquí te presento los proyectos disponibles para que puedas conocer las opciones que tenemos para ti:

✅ Pueblo Libre: Velvet - Entrega inmediata
✅ Jesús María: Eighth Avenue - Entrega inmediata
✅ Jesús María: Bellagio - En Construcción (Entrega Jul 2027)
✅ Magdalena del Mar: Landart - En Construcción (Entrega Nov 2026)
✅ Miraflores: Áncora - En Preventa (Entrega Nov 2026)

¿Hay algún proyecto que te interese conocer con más detalle? 🏠
10:35 ✓✓
🤖
👤
Me interesa Áncora en Miraflores
10:36
¿Qué hace cada sistema en este paso?
🤖 Rebeca / n8n
  • Si proyecto_inicial exacto → guarda proyecto_id y salta directo al Paso 4
  • Si proyecto_inicial es distrito → filtra y si es único, salta al Paso 4
  • Si dormitorios ya fueron mencionados → los guarda en dormitorios_buscados (no volverá a preguntar)
✅ El proyecto elegido queda guardado en el CRM con su proyecto_id. Si fue por distrito, ese dato también queda registrado.
PASO 4

Detalle del proyecto + Inventario 🆕 Ruta limitada

Rebeca ejecuta EN SILENCIO y EN PARALELO las 3 herramientas de inventario. Según la cantidad de tipologías únicas, elige la ruta: Normal (≥3 tipologías) o Inventario Limitado (≤2 tipologías). Si ya sabe dormitorios, fusiona Pasos 4+5 en un solo mensaje.
Ruta Normal — sin dormitorios previos
Te presento toda la información sobre Áncora 🏢✨

📍 Miraflores · 💰 Desde $195,000 · 📅 Nov 2026 · 🏦 BCP
👉 Google Maps · 🔭 Tour Virtual
📄 Brochure-Ancora.pdf
🖼️ Imagen proyecto

[SPLIT]
¿Y de cuántos dormitorios estás buscando? 🛏️
10:37 ✓✓
🤖
🆕 RUTA INVENTARIO LIMITADO (≤2 tipologías): sin brochure, sin pregunta de dormitorios — muestra todas las tipologías en el mismo mensaje con el tag [SPLIT]
⚠️ VELVET EXCEPCIÓN: brochure_url PROHIBIDO para proyecto_id=55, incluso si tiene valor
¿Qué hace cada sistema en este paso?
🤖 Rebeca / n8n — Evaluación de Ruta
  • Ejecuta consultar_proyecto + consultar_departamentos_disponibles + consultar_departamentos_separados EN PARALELO antes de escribir
  • Cuenta tipologías únicas por campo 'tipologia' (combina ambas listas)
  • ≥3 únicas → Ruta Normal | ≤2 únicas → Ruta Inventario Limitado
  • Si dormitorios_buscados tiene valor → fusiona Paso 4+5 en un solo mensaje (INV-4)
  • Ejecuta actualizar_lead obligatorio en este turno
🔌 Meta Connector
  • Entrega el PDF y las imágenes al cliente a través del canal
  • Registra los mensajes enviados en el historial de Odoo
Lo que queda: proyecto elegido, datos del proyecto, inventario cargado. Si ruta limitada: tipologías ya mostradas, se espera elección directa.
PASO 5

Tipologías disponibles 🆕 Fallback de ambientes

Solo se ejecuta si el Paso 4 no fusionó (el cliente acaba de responder cuántos dormitorios busca). Re-ejecuta SIEMPRE ambas herramientas de inventario — nunca usa datos de turnos anteriores.
Caso 1 — dormitorios exactos disponibles
👤
2 dormitorios
10:38
Tenemos estas opciones disponibles:

🖼️ Tipo A: 2 dorm · 2 baños · 68m²
🖼️ Tipo B: 2 dorm · 1 baño · 62m²

¿Te interesa alguno? Indícame el tipo para mostrarte más detalles y el precio. 😊
10:39 ✓✓
🤖
🆕 Caso 2 (sin dorm exactos): intro "¡En Áncora contamos con departamentos de N ambientes disponibles!" — calcula ambientes = dormitorios + estudio + gimnasio. Sin mencionar "estudio" ni "gimnasio" visiblemente.
¿Qué hace cada sistema en este paso?
🤖 Rebeca / n8n — INV-4
  • SIEMPRE re-ejecuta consultar_departamentos_disponibles + consultar_departamentos_separados
  • Caso 1: existe cantidad_dormitorios==N → filtra estrictamente, intro normal
  • Caso 2: no existe cantidad_dormitorios==N → fallback ambientes (total_ambientes = dorm + estudio + gimnasio)
  • Máximo 8 tipologías, agrupadas por campo 'tipologia'
  • PROHIBIDO mencionar "estudio", "gimnasio" o "espacio flexible" — solo "ambientes"
Importante: si el cliente dice "ese" o "el primero" sin identificador claro → Derivación Anticipada inmediata (interés máximo).
PASO 6

Cotización real

El cliente eligió una tipología con identificador claro ("Tipo A", "el 10"). Rebeca muestra todos los pisos disponibles de esa tipología, precio por piso, área, baños y valor diferencial. Datos siempre del inventario en memoria — nunca inventados.
¡Listo! Aquí los detalles del departamento Tipo A 🏢✨

🏢 Piso: 3 / 8 / 14
📐 Área total: 68m² · 🛏️ 2 dorm. · 🚿 2 baños
🍳 Cocina abierta · 👁️ Vista calle
💰 S/. 195,000 (P3) | S/. 209,000 (P8) | S/. 225,000 (P14)
✨ Acabados premium, pisos de porcelanato

[SPLIT]
¿Este departamento cumple con tus expectativas?
10:41 ✓✓
🤖
¿Qué hace cada sistema en este paso?
🤖 Rebeca / n8n
  • Usa datos del inventario ya en memoria (no hace nueva consulta)
  • Muestra TODOS los pisos de esa tipología, nunca solo uno
  • PROHIBIDO ABSOLUTO mencionar precios de estacionamiento o depósito
  • Ejecuta actualizar_lead con tipología vista y precio en chatbot_summary
INV-3: si la respuesta incluye cotización, el actualizar_lead DEBE tener m² y precio. INV-1: si hay [MEDIA:] de tipología, TIPOLOGÍAS VISTAS no puede quedar en "—".
PASO 7

Forma de pago

Rebeca pregunta si el cliente planea comprar financiado o al contado, y si tiene crédito hipotecario preaprobado. No ejecuta actualizar_lead aquí — la info se consolida en el Paso 8.
¡Qué bueno que te interese! Una última pregunta para que el asesor se prepare mejor 😊:

🏦 ¿Cómo has pensado comprar?
• ¿Financiado con un banco?
• ¿Al contado?
• ¿Tienes crédito hipotecario preaprobado?
10:43 ✓✓
🤖
👤
Financiado, tengo precalificación del BCP
10:44
¿Qué hace cada sistema en este paso?
🤖 Rebeca / n8n
  • Solo recoge la respuesta — sin consultas adicionales
  • Guarda la forma de pago para el resumen final del Paso 8
  • project_interest_rating = 5 si menciona crédito preaprobado, cita, o visita
Lo que queda: forma de pago preferida y si tiene crédito preaprobado.
PASO 8

Cierre y entrega al asesor 🏁 🆕 Mensaje dinámico por hora

Rebeca cierra con un mensaje de despedida que cambia según la hora actual en Perú (UTC-5). Si faltan datos (nombre/DNI), los solicita una vez. Si el canal no es WhatsApp, también pide el celular antes.
Mensaje de cierre dinámico
9am–12pm: "¡Excelente! Un asesor humano se contactará contigo para brindarte mayor información o coordinar una visita al proyecto. ¡Que tengas un excelente día! ☀️"

12pm–7pm: "... ¡Que tengas una excelente tarde! 😊"

7pm–11pm: "... ¡Que tengas una excelente noche! 🌙"

11pm–9am: "... Ten en cuenta que nuestro horario de atención es de 9 a.m. a 11 p.m., por lo que recibirás respuesta en el próximo horario disponible."
10:45 ✓✓
🤖
🏁 Rebeca deja de responder. chatbot_finished=true. El asesor tiene el control completo.
¿Qué hace cada sistema en este paso?
🤖 Rebeca / n8n
  • Si canal ≠ WhatsApp → pide celular primero (antes de nombre/DNI)
  • Valida si faltan nombre o DNI y los pide UNA sola vez
  • Ejecuta actualizar_lead con chatbot_finished=true, rúbricas y chatbot_summary completo ANTES del mensaje de cierre
  • Registra en rebeca_followups el último mensaje para tracking de follow-ups
🔌 Meta Connector
  • Detecta chatbot_finished=true y apaga el bot automáticamente
  • La conversación queda visible para el asesor en Odoo
  • Si el cliente escribe de nuevo, el mensaje llega directo al asesor
El asesor recibe: Nombre · Proyecto · Tipología · Precio visto · Forma de pago · Calificación crediticia · Rúbricas de interés · Resumen completo con chatbot_summary.
Situaciones frecuentes y cómo las maneja el sistema

📋 Lead desde formulario web

El cliente llenó un formulario en beca.pe. El sistema ya sabe quién es, qué proyecto le interesa y qué tipo de departamento busca.
1
Odoo detecta el formulario y activa Rebeca automático
2
El Meta Connector crea la conversación y activa el bot Meta Connector
3
Rebeca usa Prompt B (T1): ejecuta 4 herramientas en silencio y presenta proyecto + tipologías filtradas por tipo_de_departamento Rebeca
4
T2 en adelante usa Prompt A normal. Los datos ya están en Odoo.

📣 Flow Masivo — Reactivación NUEVO

Campaña enviada a contactos antiguos vía WhatsApp. El cliente respondió un mensaje masivo con opciones. Política, nombre y DNI ya están en Odoo.
1
Rebeca detecta is_flow_masivo=true → usa Prompt C Rebeca
A
Ruta Agendar Visita: cierre directo en 1 turno, project_interest_rating=5, chatbot_finished=true. El asesor coordina la visita.
B
Ruta Marcar Perdido: lead marcado como perdido (lost_reason_id=4), mensaje de despedida, cierre.
C
Ruta por Intención: interpreta la respuesta del cliente (dormitorios vs. info general) y ejecuta el flujo de tipologías o detalle de proyecto.

📣 Lead desde anuncio de Facebook

El cliente hizo clic en un anuncio antes de escribir. El sistema captura el origen automáticamente.
1
El Meta Connector recibe el mensaje con los datos del anuncio (ad_id, campaña) Meta Connector
2
n8n consulta en Facebook el nombre de campaña, audiencia, anuncio exacto y rango de edad/ciudad del targeting n8n
3
Todo queda guardado en el CRM con facebook_campaign, facebook_group_ads y facebook_audience
4
Rebeca atiende con el flujo normal sin interrupciones

🚫 Cliente envía STOP o solicita baja NUEVO

El cliente escribe una frase de desuscripción. El sistema actúa antes de que el agente IA procese el mensaje.
1
Nodo Detectar Stop normaliza el mensaje (sin tildes, minúsculas, sin puntuación) n8n
A
Grupo A (duro): "stop", "no me contacten", "dar de baja", "unsubscribe", "no molesten" → lead marcado como perdido + chatbot_finished=true
B
Grupo B (suave): "no gracias", "ya compré", "no me interesa", "gracias pero no" → misma acción: perdido + cierre
El agente IA no responde. No hay mensaje enviado al cliente. Lead queda como Perdido en Odoo.

📱 Cliente por WhatsApp

Canal principal con todas las funciones disponibles.
Política con botones interactivos nativos [BUTTONS: | btn_si:Sí, btn_no:No] Meta Connector
Imágenes, PDFs y botones dentro del chat
Notas de voz transcritas automáticamente con Whisper Rebeca
PROHIBIDO pedir celular — ya lo tenemos del canal
Recordatorios automáticos — llamada de voz + mensaje, hasta 3 intentos con 48h de espera n8n

🚪 Cuándo pasa el control al asesor

5 formas distintas de pasar de Rebeca a un asesor humano. En todos los casos el Meta Connector apaga el bot.
A
Cierre natural (Paso 8): chatbot_finished=true → Meta Connector apaga el bot
B
Derivación anticipada: cliente pide asesor, cita o visita → cierre inmediato con project_interest_rating=5. Si no hay nombre, pide nombre primero.
C
El asesor toma control: clic en "Tomar control" en Odoo → Meta Connector apaga el bot Meta Connector
D
Sin respuesta: recordatorios hasta 3 intentos, luego el asesor retoma manualmente
E
STOP detectado: lead marcado como perdido automáticamente, sin respuesta al cliente NUEVO
Situaciones que Rebeca maneja automáticamente con reglas específicas
⚡ Si el cliente hace esto…
✅ Rebeca / el sistema hace esto
🛡️ Número está en la Blacklist NUEVO Teléfono bloqueado internamente en el flujo
El flujo detecta el número antes de procesar el mensaje. No llama al agente IA. No envía ninguna respuesta. La conversación simplemente se ignora.
🚫 Escribe una frase de baja (Stop Grupo A o B) NUEVO "stop", "no me contacten", "no gracias", "ya compré", "dar de baja"
El nodo Detectar Stop actúa antes del agente IA. Marca el lead como Perdido (lost_reason_id=4) y chatbot_finished=true. No se envía ningún mensaje al cliente.
🔢 Incluye su DNI en cualquier mensaje NUEVO "Mi DNI es 12345678", "María Torres, 12345678"
El nodo Detectar DNI encuentra el patrón (exactamente 8 dígitos) antes del agente. Pre-consulta Sisweb y Pre-actualiza el Contacto automáticamente. El agente recibe el contexto ya enriquecido y no repite la consulta.
🏭 Dice que es proveedor o quiere vender algo "Ofrezco servicios de marketing", "Tengo un catálogo"
Solo si lo declara EXPLÍCITAMENTE. Lo redirige a logistica1@beca.pe y a https://beca.pe/conviertete-en-proveedor/. La conversación termina ahí. Ante duda → asume cliente.
📅 Pide hablar con un asesor o agendar visita "Quiero hablar con alguien", "¿Me pueden llamar?", "Quiero visitarlo"
Derivación Anticipada: si no tiene nombre registrado, primero pide el nombre (1 turno). Luego ejecuta actualizar_lead con project_interest_rating=5 + chatbot_summary con "⚠️ OBSERVACIONES: Derivación anticipada". Responde EXACTAMENTE el mensaje de cierre dinámico por hora.
👉 Señala una tipología sin nombrarla "Ese", "Este me gusta", "El primero", "El de la foto"
Referencias deícticas = intención de visita. Se activa la Derivación Anticipada inmediatamente. EXCEPTO si usa un identificador claro ("Tipo 10", "el 12") — en ese caso avanza al Paso 6 con esa tipología.
🛏️ Pide dormitorios no disponibles "Busco 4 dormitorios"
INV-4 / Fallback Ambientes: Si no hay cantidad_dormitorios==N, calcula total_ambientes = dormitorios + estudio + gimnasio. Si hay tipologías con total_ambientes ≥ N → intro especial. Si nada cumple → muestra todo el inventario. PROHIBIDO pedir permiso o disculparse antes de mostrar opciones.
🏢 Proyecto con pocas tipologías (Inventario Limitado) NUEVO
Si el inventario combinado tiene ≤2 tipologías únicas: Ruta Inventario Limitado. Sin brochure, sin preguntar dormitorios. Fusiona todo en un solo mensaje con todas las tipologías disponibles.
🖼️ Pide fotos de áreas comunes o interiores "¿Tienen fotos de la piscina?", "¿Cómo se ve la cocina?"
Solo si el cliente lo pide explícitamente. Ejecuta consultar_imagenes_areas_comunes o consultar_imagenes_interiores con proyecto_id activo. Envía UN [MEDIA:] por cada elemento del array 'imagenes' según su orden. NUNCA proactivamente.
🅰️ Pregunta por estacionamiento o depósito "¿Incluye cochera?", "¿Cuánto cuesta el estacionamiento?"
PROHIBIDO ABSOLUTO inventar precio (ni "desde X", ni "referencial"). Responde que se vende por separado según disponibilidad y que el asesor confirmará el precio. Continúa con la cotización SOLO del departamento.
🔇 Escribe después de que la conversación fue cerrada
El Meta Connector detecta que el bot está apagado. El mensaje llega directo al asesor humano en Odoo. Si la conversación estaba en estado "cerrada", el Meta Connector la reactiva automáticamente.
👤 El asesor quiere tomar el control del chat
Clic en "Tomar control" en Odoo — o supervisor asigna a otro asesor. El Meta Connector apaga el bot de inmediato. El asesor asignado queda sincronizado también en el lead del CRM.
¿Con qué herramientas trabaja el sistema?
Leyenda:
Parte de Rebeca / n8n
Parte del Meta Connector
🔌

Meta Connector

Gestiona conversaciones y control humano — Odoo

El módulo que conecta WhatsApp, Messenger e Instagram con el CRM. Decide si responde el bot o el asesor, y gestiona todo el estado de cada conversación.

  • Crea la conversación en Odoo automáticamente al primer mensaje
  • Activa y desactiva el bot según la situación
  • Permite que asesores tomen control con un clic
  • Sincroniza el asesor entre la conversación y el lead del CRM
  • Captura de qué anuncio vino el lead (campaña, audiencia, targeting)
  • Reactiva conversaciones cerradas si el cliente escribe de nuevo
  • Envía recordatorios por plantillas nativas de WhatsApp (cron propio)
🤖

Rebeca — n8n + GPT-4.1-mini

Inteligencia y automatización del flujo

El orquestador que hace pensar a Rebeca. Aplica guardias previos, selecciona el prompt (A/B/C), consulta el CRM, genera respuestas y actualiza todo en tiempo real.

  • Blacklist: filtra números bloqueados antes de procesar
  • Stop Grupo A/B: detecta bajas automáticamente, marca lead perdido
  • Pre-detección de DNI en el mensaje → consulta Sisweb automática
  • Selección de Prompt A/B/C según tipo de flujo
  • Guía al cliente por los 8 pasos de ventas (Prompt A)
  • Consulta proyectos, tipologías e inventario en tiempo real
  • Actualiza el CRM con cada dato que aprende del cliente
  • Transcribe notas de voz a texto con Whisper
  • Ejecuta recordatorios automáticos con llamada de voz (ElevenLabs + Twilio)
🏗️

Odoo CRM

El cerebro del negocio

Fuente de verdad del sistema. Todo lo que Rebeca y el Meta Connector hacen queda registrado aquí para que el asesor pueda retomar sin preguntar nada.

  • Leads y contactos con todo su historial
  • Proyectos, tipologías e inventario actualizado en tiempo real
  • chatbot_summary con resumen estructurado de cada conversación
  • Rúbricas de interés por dimensión (location, price, delivery, interest, communication)
  • Datos de la campaña de marketing que generó el lead
  • Estado: bot activo / chatbot_finished / conversación con asesor humano
🔍

Sisweb

Perfil financiero por DNI

Con solo el DNI del cliente, devuelve su perfil financiero completo. El asesor llega a la reunión sabiendo con quién trata — sin que el cliente lo haya declarado.

  • Nombre y apellidos oficiales (prevalece sobre cualquier apodo)
  • Edad y estado civil
  • Ingresos mensuales estimados
  • Calificación crediticia
  • Nivel educativo (Sunedu)
🐘

PostgreSQL

Memoria interna y seguimiento

Almacena el historial de cada conversación para que Rebeca recuerde lo hablado, y registra el estado de follow-ups para los recordatorios automáticos.

  • Últimos 40 mensajes de cada conversación (n8n_rebeca / Postgres Chat Memory)
  • Registro de teléfonos y sesiones activas (rebeca_sessions)
  • rebeca_followups: session_id, lead_id, canal, último mensaje del bot, last_activity — usado para detectar si hay follow-up pendiente sin enviar
  • Limpieza de memoria al detectar conversación nueva (is_nuevo=true)
📘

Facebook / Meta API

Trazabilidad de campañas

Cuando un lead viene de un anuncio, el sistema consulta Facebook para saber exactamente de qué campaña llegó. Incluye datos de targeting para que marketing conozca el perfil del audience.

  • Nombre de la campaña publicitaria
  • Grupo de anuncios y audiencia objetivo
  • Anuncio específico que generó la conversación
  • Targeting: rango de edad (age_range) y ciudades del audience
Proyectos activos en el sistema (IDs reales)
ID 55
Velvet
Pueblo Libre
Entrega inmediata
ID 96
Eighth Avenue
Jesús María
Entrega inmediata
ID 163
Landart
Magdalena del Mar
Nov 2026
ID 382
Bellagio
Jesús María
Jul 2027
ID 405
Áncora
Miraflores
Nov 2026
⚠️ Excepciones especiales del sistema:
Velvet (ID 55): PROHIBIDO enviar brochure_url en cualquier ruta (Normal, Limitada, Formulario, Masivo).
Estacionamiento / Depósito: precios NUNCA disponibles en ninguna herramienta. Siempre derivar al asesor.
Acabados: si finishes_chart_image tiene valor → solo esa imagen. Si es null → "Los detalles de acabados te los compartirá nuestro asesor". Nada más.