Documentacion Tecnica
Arquitectura, flujos de datos, modelos de datos, zonas geoespaciales y motor de busqueda de la plataforma MaxLeadsNow.
01 Vision General
MaxLeadsNow es una plataforma de inteligencia territorial B2B que combina busqueda de negocios en tiempo real con analisis geoespacial. Disenada para equipos de ventas que necesitan reconocimiento territorial sistematico.
La plataforma permite a representantes y gerentes de ventas identificar oportunidades comerciales en cualquier zona geografica, analizar la densidad y calidad de negocios existentes, y convertir esos datos en leads accionables para su pipeline de ventas.
02 Arquitectura
El sistema esta construido sobre una arquitectura moderna de aplicacion web con renderizado hibrido (servidor y cliente).
- Aplicacion web progresiva (Next.js + React 19)
- TypeScript estricto
- 35+ componentes UI (dark-mode nativo)
- Renderizador de mapas interactivo
- Base de datos PostgreSQL con ORM moderno
- Autenticacion JWT con cookies HTTP-only
- Motor de busqueda (indice de millones de negocios)
- Procesamiento geoespacial en servidor
El procesamiento geoespacial incluye calculo de areas geodesicas, deteccion de puntos dentro de poligonos (point-in-polygon) y generacion de metricas de densidad en tiempo real.
03 Motor de Busqueda
El motor de busqueda de negocios permite consultar un indice actualizado con millones de establecimientos registrados. La busqueda avanzada acepta los siguientes parametros:
| Parametro | Tipo | Descripcion |
|---|---|---|
keyword |
string | Tipo de negocio + terminos de busqueda |
location |
string | Ciudad o area metropolitana |
language |
string | Codigo de idioma (default: es) |
device |
string | Tipo de dispositivo para resultados contextuales |
Estructura de respuesta
Cada resultado del motor devuelve los siguientes campos:
{
"title": "Farmacia San Pablo Reforma",
"address": "Av. Paseo de la Reforma 222, Juarez, CDMX",
"phone": "+52 55 1234 5678",
"website": "https://ejemplo.com",
"rating": 4.6,
"reviewsCount": 312,
"category": "Farmacia",
"latitude": 19.4326,
"longitude": -99.1332
}
Categorias preconfiguradas
El sistema es extensible a cualquier categoria de negocio disponible en el indice.
04 Zonas Tacticas
Las zonas tacticas son regiones geograficas definidas por el usuario mediante herramientas de dibujo de poligonos sobre el mapa. Cada zona se almacena como un GeoJSON Polygon.
Datos de cada zona
| Campo | Descripcion |
|---|---|
geometry |
Array de coordenadas lat/lng que definen el poligono |
name |
Nombre asignado por el usuario |
color |
Color hexadecimal para visualizacion en mapa |
assignedRep |
Representante asignado (opcional) |
Metricas calculadas por zona
- Area: km2 calculados con algoritmo geodesico
- Densidad: negocios/km2
- Rating promedio: media ponderada
- Contactabilidad: % telefono, % web, % email
- Excelente: rating ≥ 4.5
- Bueno: 4.0 – 4.4
- Promedio: 3.0 – 3.9
- Bajo: < 3.0
- Sin rating
- Top 5 negocios: ranking por score compuesto
- Carga de trabajo: estimacion de jornada
Score compuesto
El ranking de los mejores negocios por zona utiliza la formula:
score = rating * log10(reviewsCount + 1)
Este calculo balancea la valoracion del negocio con su volumen de resenas, evitando que negocios con pocas resenas pero rating perfecto dominen el ranking.
Estimacion de carga de trabajo
tiempo_por_visita = 20 min (constante)
tiempo_traslado = ajustado por densidad (min: 5 min, max: 20 min)
jornada = 6 horas efectivas
visitas_por_dia = jornada / (tiempo_por_visita + tiempo_traslado)
05 Pipeline de Leads
Cada negocio identificado puede convertirse en un lead dentro del pipeline. Los leads avanzan a traves de estados definidos:
Datos de cada lead
Cada lead almacena: fuente, tipo de negocio, datos de contacto (nombre, telefono, email, sitio web, redes sociales), direccion completa, coordenadas GPS, valoracion, notas del operador y timestamps de creacion y actualizacion.
Fuentes de leads
Tipos de negocio
06 Importacion CSV
El sistema permite importar leads masivamente desde archivos CSV. El proceso es completamente automatizado con deduplicacion inteligente.
Proceso de importacion
name businessName phone email address city state website socialUrl leadType
duplicado = (businessName + city) coincide
OR (phone) coincide
csv_import.07 Modelo de Datos
El sistema opera con 4 entidades principales almacenadas en PostgreSQL:
Usuario {
id String @id
email String @unique
nombre String
activo Boolean @default(true)
createdAt DateTime
}
BusquedaGuardada {
id String @id
usuarioId String
nombre String
keyword String
resultados JSON // array de negocios encontrados
zonas JSON // GeoJSON con poligonos dibujados
totalResultados Int
createdAt DateTime
}
Lead {
id String @id
usuarioId String
fuente String // search, scraping_web, scraping_social, manual, csv_import
estado String // nuevo, en_revision, aprobado, rechazado, exportado
tipo String // farmacia, odontologo, pediatra, etc.
nombre String?
negocio String?
direccion String?
ciudad String?
estado_geo String?
telefono String?
email String?
web String?
redesSociales String?
valoracion Float?
latitud Float?
longitud Float?
notas String?
createdAt DateTime
updatedAt DateTime
}
Importacion {
id String @id
usuarioId String
fuente String
archivo String
total Int
nuevos Int
duplicados Int
createdAt DateTime
}
08 Seguridad
La seguridad del sistema se implementa en multiples capas:
- JWT firmado con algoritmo HS256
- Cookies HTTP-only (no accesibles desde JavaScript)
- Expiracion de sesion: 30 dias
- Middleware de autenticacion en todas las rutas protegidas
- Aislamiento de datos por usuario (cada consulta filtra por userId)
- HTTPS obligatorio en produccion
- Sin almacenamiento de datos sensibles en cliente
- Conexiones encriptadas (SSL/TLS)
- Credenciales gestionadas via variables de entorno
Listo para comenzar?
Accede al dashboard y empieza a buscar negocios en tu zona objetivo.
Ir al Dashboard arrow_forward