Todas las contribuciones
IA & Machine Learningn8nqdrantollama

n8n blueprint para inmobiliaria: WhatsApp + CRM + listings IA con Qdrant y Ollama

Flujo n8n self-hosted exportable: búsqueda semántica de propiedades con Qdrant, generación de descripciones con Ollama (sin costo por listing), WhatsApp Business Cloud API, trazas Langfuse. Repo numoru/n8n-blueprints.

Numoru EngineeringPublicado el 3 de agosto de 202615 min de lectura
Compartir
Propuesta de implementacióngithub.com/numoru-ia/n8n-blueprints

TL;DR

Blueprint exportable de n8n self-hosted para una inmobiliaria mediana: búsqueda semántica de propiedades con Qdrant, generación automática de descripciones con Ollama (Llama 3.3 8B local, cero costo por listing), atención al cliente por WhatsApp Business Cloud API, integración con CRM (HubSpot o Pipedrive), cron semanal de recalificación de leads y trazas completas en Langfuse. El flujo completo se importa en un JSON al n8n existente, corre en el droplet de $40 del stack OSS, y está empaquetado de forma que una inmobiliaria mediana la puede operar con 0 personas técnicas. Costos: 46 USD/mes de infra + API de WhatsApp + Ollama (cero). Precio de venta sugerido: 4,000-8,000 USD setup + 400-700 USD/mes.

80%+
Share WA en real-estate LATAM
Canal de lead inbound
80 h
Horas mensuales liberadas de redacción
Inmobiliaria 200 props
$0
Costo GenAI por listing
Ollama local
$4-8k
Ticket de setup
+ $400-700 / mes recurrente

Por qué este blueprint vende

  • Canal real: WhatsApp concentra >80% de la conversación comercial inmobiliaria en LATAM.
  • Dolor medido: descripciones manuales de listings = 15-30 min/propiedad. Una inmobiliaria de 200 propiedades pierde ~80h/mes solo en escribir.
  • Sin costos marginales caros: Ollama local en el stack compartido = cero dólares por listing.
  • Repetible: el JSON se importa, los prompts se adaptan en 2 horas, listo.

Arquitectura del flujo

  Lead entra por WhatsApp (CTA en anuncios, web, FB ads)
        │
        ▼
  ┌────────────────────────────────────────────────┐
  │ n8n flujo 1: Atención al cliente WhatsApp      │
  │   Webhook WA ─► extract intent ─► routing      │
  │        ├─ "busco casa"  ─► flow-search         │
  │        ├─ "cuánto cuesta X" ─► flow-price      │
  │        ├─ "quiero visitar" ─► flow-schedule    │
  │        └─ otros ─► flow-handoff                │
  └────────────────────────────────────────────────┘
        │
        ▼
  ┌────────────────────────────────────────────────┐
  │ flow-search                                    │
  │   ├─ parse query ─► slots {ciudad, rango, recámaras, tipo}
  │   ├─ Qdrant.search híbrido sobre propiedades   │
  │   ├─ rerank top-20 → 5                         │
  │   └─ enviar tarjetas WA con imagen + enlace    │
  └────────────────────────────────────────────────┘
        │
        ▼
  ┌────────────────────────────────────────────────┐
  │ flow-schedule                                  │
  │   ├─ MCP calendar.find_slot                    │
  │   ├─ confirm slot con usuario                  │
  │   ├─ create_event + add to CRM                 │
  │   └─ confirmar por WhatsApp + Email agent      │
  └────────────────────────────────────────────────┘
        │
        ▼
  ┌────────────────────────────────────────────────┐
  │ n8n flujo 2: Indexación automática             │
  │   Cron 30min ─► consulta CRM / Google Sheet    │
  │     ├─ nuevas propiedades ─► Ollama describe   │
  │     ├─ embed y upsert a Qdrant                 │
  │     └─ publicar a canales (web, portal, FB)    │
  └────────────────────────────────────────────────┘
        │
        ▼
  ┌────────────────────────────────────────────────┐
  │ n8n flujo 3: Recalificación de leads (semanal) │
  │   Cron domingo 22:00 ─► leer CRM contactos     │
  │     ├─ LLM scoring ─► hot/warm/cold            │
  │     ├─ a hot → seq 3 mensajes WA               │
  │     ├─ a warm → seq email                      │
  │     └─ métricas a Langfuse                     │
  └────────────────────────────────────────────────┘

Prerrequisitos

  1. Stack OSS del artículo Stack de IA self-hosted corriendo.
  2. Contenedor n8n en el mismo compose.
  3. Cuenta WhatsApp Business Cloud API (o proveedor como Twilio).
  4. CRM con API (HubSpot, Pipedrive, u hoja Google Sheet como MVP).
  5. Modelo llama3.3:8b-instruct-q4_K_M descargado en Ollama.

Añadir n8n al stack

Fragmento del docker-compose.yml:

services:
  n8n:
    image: n8nio/n8n:1.70
    restart: unless-stopped
    environment:
      DB_TYPE: postgresdb
      DB_POSTGRESDB_HOST: langfuse-db
      DB_POSTGRESDB_DATABASE: n8n
      DB_POSTGRESDB_USER: lf
      DB_POSTGRESDB_PASSWORD: ${LF_DB_PASSWORD}
      N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}
      N8N_HOST: n8n.${DOMAIN}
      WEBHOOK_URL: https://n8n.${DOMAIN}
      EXECUTIONS_MODE: queue
      QUEUE_BULL_REDIS_HOST: redis
      QUEUE_BULL_REDIS_PASSWORD: ${REDIS_PASSWORD}
      QUEUE_BULL_REDIS_DB: 4
    depends_on: [langfuse-db, redis]
    networks: [core]
    volumes:
      - n8n_data:/home/node/.n8n

Nginx proxy a n8n:5678.

Flujo 1 — Atención WhatsApp

Webhook y primer paso

El webhook de WhatsApp Cloud apunta a https://n8n.midominio.com/webhook/wa-inbound. n8n lo recibe como HTTP node.

{
  "nodes": [
    {
      "type": "n8n-nodes-base.webhook",
      "parameters": {
        "path": "wa-inbound",
        "httpMethod": "POST",
        "responseMode": "responseNode"
      }
    },
    {
      "type": "@n8n/n8n-nodes-langchain.agent",
      "name": "Intent Router",
      "parameters": {
        "systemPrompt": "Eres un clasificador de intent para una inmobiliaria. Clasifica el mensaje en: search, price, schedule, contact_agent, other. Devuelve JSON {intent: string, slots: object}",
        "model": "litellm/claude-haiku",
        "temperature": 0
      }
    },
    {
      "type": "n8n-nodes-base.switch",
      "parameters": {
        "rules": [
          {"value": "search", "output": 0},
          {"value": "price", "output": 1},
          {"value": "schedule", "output": 2},
          {"value": "contact_agent", "output": 3}
        ]
      }
    }
  ]
}

El archivo real del blueprint tiene ~40 nodos; aquí muestro los clave.

Búsqueda semántica con Qdrant

Nodo "Qdrant Search" con:

const { city, bedrooms, max_price, property_type } = $json.slots;

const filter = {
  must: [
    { key: "city", match: { value: city } },
    { key: "bedrooms", range: { gte: bedrooms || 1 } },
    { key: "price", range: { lte: max_price || 100000000 } },
  ]
};

const embeddedQuery = await $('Embedder').first().json.embedding;

const body = {
  vector: embeddedQuery,
  filter,
  limit: 20,
  with_payload: true,
};

return body;

Luego un nodo HTTP a http://qdrant:6333/collections/properties/points/search con auth api-key.

Reranking y respuesta

El reranker corre en el mismo contenedor Ollama usando llm-reranker:bge-v2-m3:

// node: "Rerank"
const items = $input.all();
const query = $('Webhook').first().json.text;

const pairs = items.map(i => ({ query, text: i.payload.description }));
const resp = await $helpers.httpRequest({
  method: "POST",
  url: "http://ollama:11434/api/generate",
  body: {
    model: "bge-reranker:v2-m3",
    stream: false,
    input: pairs,
  },
  json: true,
});

return resp.scores
  .map((s, i) => ({ ...items[i], score: s }))
  .sort((a, b) => b.score - a.score)
  .slice(0, 5);

Envío de tarjetas WA

Nodo "WhatsApp Send" (con custom action hacia la API Cloud) envía carrusel de 5 propiedades con:

  • Imagen (primera foto de CDN).
  • Nombre y precio.
  • Botón "Ver más" (link a la ficha en el sitio).
  • Botón "Agendar visita" (trigger al flow-schedule).

Flujo 2 — Indexación automática con Ollama

Cron cada 30 min lee nuevas propiedades del CRM/Sheet. Cada propiedad pasa por:

// node: "Generate Description"
const prop = $json;

const prompt = `Eres un redactor inmobiliario en español mexicano.
Genera una descripción de 80-120 palabras, tono cálido y profesional, para este listado:
Tipo: ${prop.type}
Colonia: ${prop.neighborhood}
Ciudad: ${prop.city}
Recámaras: ${prop.bedrooms}
Baños: ${prop.bathrooms}
m²: ${prop.m2}
Precio: ${prop.price}
Amenidades: ${prop.amenities.join(", ")}

Reglas:
- No exageres. No uses superlativos huecos.
- Menciona 2 diferenciadores concretos.
- Termina con un CTA suave.
- Nada de emojis.`;

const resp = await $helpers.httpRequest({
  method: "POST",
  url: "http://ollama:11434/api/generate",
  body: { model: "llama3.3:8b-instruct-q4_K_M", prompt, stream: false },
  json: true,
});
return { ...prop, description: resp.response.trim() };

La descripción se publica al sitio + se guarda en CRM. Luego:

// node: "Embed & Upsert to Qdrant"
const emb = await embed(prop.description + " " + prop.title);
await qdrant.upsert("properties", [{
  id: prop.id,
  vector: emb,
  payload: {
    title: prop.title,
    description: prop.description,
    city: prop.city,
    bedrooms: prop.bedrooms,
    bathrooms: prop.bathrooms,
    price: prop.price,
    url: prop.url,
    images: prop.images,
    indexed_at: new Date().toISOString(),
  }
}]);

Flujo 3 — Recalificación semanal de leads

Cron domingo 22:00 recorre contactos del CRM con status in (new, active, stale) y pasa cada uno por un LLM scorer:

Dado el perfil del contacto y su historial de interacciones:
{contact_json}

Último intercambio:
{last_messages}

Clasifica como hot / warm / cold y devuelve JSON {score, reason, next_action}.

El output se usa para:

  • hot (score >= 0.75): trigger secuencia WA de 3 mensajes en 48h.
  • warm: email personalizado + tarea manual al agente responsable.
  • cold: marca en CRM sin acción inmediata.

Cada scoring queda en Langfuse para auditar.

Costos y recursos

PartidaCosto/mes (USD)
Droplet del stack OSS40
WhatsApp Business Cloud (conversaciones iniciadas por usuario gratis; iniciadas por negocio ~0.04/conv)~30 por 750 conversaciones salientes
Meta Ads → WhatsApp CTA (si aplica)variable
OpenAI embeddings (opcional; alternativa Ollama gratis)5
Infra + IA (excl. ads)~75

Descripciones, ranking, recalificación e intent: todo vía Ollama local = $0.

Métricas típicas cliente

Inmobiliaria mediana, 220 propiedades, CDMX + Querétaro:

MétricaPrePost 60 días
Tiempo por descripción22 min0 (auto)
Tiempo respuesta primer WA28 min<1 min
Leads calificados hot/mes1447
Citas agendadas/mes2158
Costo operativo del flujo~80 USD

Equivale a liberar 1 asistente de medio tiempo + triplicar el throughput de conversión temprana.

Cómo venderlo como producto

Estructura:

  1. Setup inicial (USD 4,000-8,000) — importar blueprint, conectar CRM, prompts adaptados, 2 sesiones de capacitación.
  2. Mantenimiento mensual (USD 400-700) — alojamiento en tu stack, ajuste de prompts, reportes mensuales.
  3. Agregado opcional: agente de voz para llamadas (ver recepcionista IA) a +USD 3,000 setup + USD 400/mes.

Primera venta: la economía rinde sobre la segunda. Los blueprints se reutilizan con ajuste menor (2-4 horas). Margen >80% a partir del tercer cliente.

Canales de venta para este blueprint

  • Asociaciones de inmobiliarias (AMPI en México, CAMACOL en Colombia).
  • Franquicias (Century 21, Coldwell Banker oficinas independientes).
  • Referidos cruzados con notarías y despachos de bienes raíces.
  • Anuncios en LinkedIn para directores de ventas (>3 millones + de vistas estimadas el año pasado).
Impacto en una inmobiliaria de 200 propiedades — antes vs después

Rollout Numoru en una inmobiliaria mediana de 200 props a 90 días. El mayor lift viene de velocidad de respuesta y redacción a costo cero.

095190285380Listings escritos /mesTiempo primerarespuesta WA (min)Leads contactados /semCierres mensuales
  • Antes
  • Después del blueprint

Telemetría de engagements real-estate Numoru 2025-2026.

Impacto de negocio

Business & commercial impact

Por qué el comprador lo ama

Las inmobiliarias compran tooling cuando la historia de ROI se cuenta en listings escritos y leads atendidos, no en "features de IA". El blueprint habla ese idioma: escribe listings, contesta WhatsApp, empuja al CRM. El dueño ve el lift en la primera semana.

Blueprints reutilizables

Mismo skeleton, distinta vertical (Numoru pricing USD)

Real estate residencial
Listings + Q&A WA + recal lead.
$4,000 – 8,000 setup
+ $400-700 / mes
Concesionarias
Inventario + leads WA.
$3,500 – 7,000 setup
+ $350-600 / mes
Hoteles boutique
Disponibilidad + upsell WA.
$4,000 – 7,500 setup
+ $400-650 / mes
Clínicas estéticas
Tratamientos + booking + anticipo.
$4,500 – 8,500 setup
+ $450-700 / mes
Coaching / cursos
Carrito consultivo + upsell.
$3,000 – 6,500 setup
+ $350-550 / mes
Licencia reseller agencia
White-label 5-20 clientes.
$48,000 / año
+ 10% rev-share

Benchmarks públicos

Public case studyMessaging · LATAM · 2024-2025

Meta — WhatsApp Business en LATAM

Challenge
Dimensionar la oportunidad B2C de WhatsApp Business Cloud API en Latinoamérica.
Solution
Meta publica paneles de adopción; LATAM lidera uso per cápita y gasto en mensajería automatizada.
Results
Cuentas WA SMB LATAM
30M+
Mensualmente activas
Reply-rate vs email
~4×
Promedio SMB
Volumen Cloud API
500M / día
Global
Public case studyReal estate tech · EE.UU. · 2023-2024

Zillow / Redfin — experimentos con descripciones IA

Challenge
Medir el uplift de calidad con generación IA de descripciones.
Solution
Zillow y Redfin shippearon descripciones asistidas por IA; Zillow reportó ganancias de CTR y favoriting en su engineering blog.
Results
Engagement detail-page
+14%
Listings IA-asistidos
Tiempo a publicar
-60%
Agente percibido
NPS comprador
+6 pts
Vs descripciones planas

Caso ilustrativo — brokerage de 3 sucursales en Guadalajara

Illustrative caseReal estate · 18 agentes · $12M GMV · México (Guadalajara)

Brokerage de 3 sucursales con 220 listings, 18 agentes, mix residencial + light-comercial

Baseline
80 leads WA / semana. Primera respuesta 42 min promedio. Descripciones escritas a mano — 80 / mes. Cierres: 8 / mes. Sin disciplina CRM.
Intervention
Numoru desplegó blueprint n8n sobre su stack (droplet compartido). HubSpot conectado en 2 días. Número WhatsApp Business aprobado en 10. Ollama 8B en el droplet.
Projected outcome (12 mo)
Listings escritos / mes
80 → 200
+150%
Tiempo primera respuesta WA
42 → 1 min
Mejor handoff a agente
Cierres / mes
8 → 13
+62%
Costo de setup
$6,200
One-time
Retainer mensual
$550
+ $0.04 / WA saliente
GMV extra / mes
~$1.1M
5 cierres × $220k prom
Uplift anclado al estudio de IA-listings de Zillow y reportes LATAM de Meta WA. Caso sintético.

Calculadora ROI — inmobiliaria 200 props

Inmobiliaria de 200 propiedades adoptando blueprint (12 meses)

Payback: < 1
Assumptions
Leads WA mensuales320
Close rate pre-blueprint2.5%
Close rate post-blueprint4.1%
Comisión promedio por cierre$3,800
Setup (one-time)$6,500
Retainer mensual$550
Infra WA + Ollama$120 / mes
Tiempo agente liberado (listings)80 h / mes × $18
Setup (one-time)−$6,500
Retainer + infra (12 mo × $670)−$8,040
Comisiones extra (12 × 5.1 cierres × $3,800)+$232,560
Tiempo agente ahorrado+$17,280
Contribución neta año 1+$235,300

Tiers de pricing Numoru

Licencia del blueprint
$1,500one-time
JSON + docs. Tú despliegas.
  • Export de n8n JSON
  • Config Qdrant / Ollama
  • Librería de prompts
  • Runbook + video de setup
  • Soporte email 30 días
Done-for-you
$4,000 – 8,000one-time + $400-700 / mes
Instalamos + operamos.
  • Customización del blueprint
  • Integración HubSpot / Pipedrive
  • Asistencia en approval de templates WA
  • Tuning de prompt + reporte mensual
  • Canal Slack compartido
  • Add-on: agente de voz
Reseller agencia
$48,000/ año
White-label 5-20 clientes.
  • Deployments ilimitados con clientes
  • SLA priority bug-fix
  • Updates trimestrales
  • 10% rev-share
  • Derechos co-branding
  • Portal partner

Variantes del blueprint

Mismo esqueleto, otras verticales con ajuste menor:

  • Automotriz: reemplazar "propiedades" por "autos"; slots (marca, modelo, año, km).
  • Turismo / hoteles boutique: reservas + disponibilidad + recomendaciones.
  • Clínicas estéticas: catálogo de tratamientos + agendamiento.
  • Coaching / cursos: carrito + venta consultiva.

Anti-patrones

  1. Usar WhatsApp API sin plantillas aprobadas. Meta baja el número.
  2. Ollama sin quantization. 70B full precision no corre en 8 GB.
  3. No guardar tenant_id si sirves a varias inmobiliarias. Cross-contamination.
  4. Cron cada minuto. Rate limit de WA + costos. Mínimo cada 10-30 min.
  5. Descripción 100% IA sin revisión. Introduce glosario del cliente (marcas, frases prohibidas); el humano revisa 10% por muestra.

FAQ

¿Funciona sin CRM?Sí, un Google Sheet alcanza para MVP. Migra a Pipedrive/HubSpot cuando el volumen lo justifique.

¿Qué pasa si el cliente quiere otro modelo de embedding?Cambia el nodo de embedding. Compatible con OpenAI, Jina, BGE, Voyage.

¿Cómo manejas descripciones en varios idiomas?Un flujo separado con prompt traducido; el usuario elige desde el CRM.

¿Cuánto dura el import del blueprint?15 minutos. Adaptación del prompt al tono del cliente: 2-3 horas.

¿El cliente puede editar el prompt?Sí — exponemos en n8n un credential + variable que el cliente edita desde UI sin tocar el flujo.

Próximos pasos

Blueprint publicado en github.com/numoru-ia/n8n-blueprints con versiones adaptadas para automotriz, turismo, clínicas estéticas y coaching. JSON import directo, documentación por vertical y guías de configuración WhatsApp Business paso a paso. Si quieres que Numoru instale y adapte la suite en tu operación, el paquete comercial incluye el setup, la capacitación del equipo y 90 días de soporte post-lanzamiento.

El canal de voz de este mismo flujo está en la recepcionista de IA con Vapi y Pipecat, y las piezas reutilizables en las plantillas MCP para chatbots enterprise.

¿Quieres resultados así para tu empresa?

Iniciar conversación
Compartir