Volver a Proyectos

TinoProp CRM

CRM inmobiliario propietario para el mercado español — gestión completa del ciclo de captación, venta y postventa

Escala del Proyecto

36Módulos funcionales
81Tablas en la BD
7Integraciones externas
52Provincias españolas
7Portales inmobiliarios
v1.2Versión actual

Descripción General

TinoProp CRM es un sistema de gestión comercial propietario diseñado específicamente para el mercado inmobiliario español. Cubre el ciclo completo de negocio: desde la captación de un propietario hasta el cierre de la operación, pasando por la gestión de visitas, la facturación con IVA español, la firma digital de contratos y la automatización de marketing.

El proyecto nació con una filosofía clara: cero dependencias externas. No usa Composer, no usa npm, no usa ningún framework. Es PHP puro, vanilla JavaScript y Bootstrap CDN, lo que lo hace desplegable en cualquier hosting compartido —como Hostinger— sin acceso SSH ni configuración de servidor.

Con 36 módulos interconectados, una base de datos de 81 tablas y documentación técnica completa, este CRM no es un CRUD básico: es una plataforma de negocio real con automatizaciones, integraciones con APIs externas, compliance RGPD y soporte para todo el flujo comercial de una agencia inmobiliaria española.

Tecnologías Utilizadas


PHP 8.3

MySQL / MariaDB

JavaScript ES6+

Bootstrap 5.3

PDO Prepared Stmts

Google Calendar API

Meta Cloud API

Stripe Payments

Twilio SMS

Generación PDF

SMTP / mail()

Apache / Hostinger

Todo el acceso a datos usa PDO con prepared statements. Sin ORMs, sin migraciones, sin capas de abstracción innecesarias. Las APIs externas se consumen con cURL puro, sin SDKs de terceros, para mantener cero dependencias instalables.

Los 36 Módulos del Sistema

Cada módulo sigue una estructura consistente: index.php (listado con filtros y paginación), form.php (crear/editar), ver.php (detalle completo) y delete.php.

Gestión de Leads y Clientes

📋 Prospectos

Pipeline de propietarios con 7 etapas (Nuevo Lead → Captado). Historial de contactos por tipo (llamada, email, visita, WhatsApp, nota), línea temporal de precio, temperatura del lead, detección de duplicados y edición inline vía AJAX.

👥 Clientes

Compradores, vendedores, inquilinos, inversores y propietarios. Múltiples tipos por cliente, preferencias de búsqueda, línea de actividad completa, etiquetas y acciones en bloque.

🏠 Propiedades

Inventario con más de 40 campos: superficies, habitaciones, certificado energético, referencia catastral, fotos con drag-reorder y control de publicación por portal inmobiliario.

🚶 Visitas

Programación con fecha, hora, agente, cliente y propiedad. 3 estados (pendiente / completada / cancelada). Valoración post-visita y seguimiento.

✅ Tareas

Gestión de tareas con prioridad, estado, fecha límite y asignación por agente. Visibles en calendario y en el panel de inicio.

🔁 Secuencia de Captación

Nurturing automatizado de prospectos: secuencias con pasos de email y SMS, condiciones de avance y tracking de apertura.

Ventas y Finanzas

📊 Pipelines (Kanban)

Tableros Kanban personalizables más allá del pipeline de prospectos estándar. Columnas, colores y acciones configurables por el administrador.

📄 Presupuestos

Generación de presupuestos con líneas de detalle, estados (borrador / enviado / aceptado / rechazado) y exportación a PDF.

📝 Contratos

Contratos digitales con firma en canvas, versionado de documentos y seguimiento de estado. Plantillas reutilizables con variables dinámicas.

💳 Pagos

Procesamiento de pagos con Stripe, confirmación vía webhook y historial de transacciones por cliente y concepto.

💰 Finanzas

Tracking de comisiones (venta / alquiler / honorarios), gastos e ingresos. IVA español a 4 tipos (21% / 10% / 4% / exento). Reporting por agente.

Calendario y Organización

📅 Calendario

Vista mensual unificada con visitas, tareas y próximos contactos. Vista por agente para administradores. Mini-calendario embebido en cada ficha de prospecto.

📆 Google Calendar

Sincronización OAuth2 real. Exporta los próximos 60 días de visitas, tareas y contactos. Mapeo bidireccional para evitar duplicados en sincronizaciones posteriores.

Marketing y Captación

📈 Marketing (Dashboard)

Panel KPI: leads captados, tasas de conversión, fuentes UTM, ranking de agentes y evolución temporal.

📧 Campañas

Drip campaigns con pasos secuenciales, condiciones de avance, periodos de espera y ramificación condicional. Ejecución vía cron.

📬 Email

Bandeja de entrada, composición y plantillas con variables dinámicas ({{nombre}}, {{email}}, etc.). Soporte SMTP y mail().

📱 Social Media

Planificación y publicación en Facebook, Instagram, LinkedIn y Twitter. Gestión de tokens por cuenta conectada.

📋 Formularios

Constructor de formularios web embebibles. Los envíos generan prospectos automáticamente y pueden disparar automatizaciones.

🌊 Funnels

Editor visual de embudos de venta/captación con pasos y tracking de sesiones de visitantes.

🌐 Landing Pages

Constructor de landing pages para campañas, vinculadas a formularios y funnels.

🧪 A/B Testing

Marco de comparación de variantes para campañas y landings. Registro de conversiones por variante.

⭐ Reputación

Solicitudes automáticas de reseñas de Google con tracking de respuesta. Gestión de reputación online.

📣 Anuncios

Integración con cuentas de Facebook Ads y Google Ads para tracking de rendimiento de campañas.

🤝 Afiliados

Programa de afiliados con tracking de referidos y cálculo de comisiones por conversión.

Comunicación

💬 WhatsApp Business

Integración con Meta Cloud API para recepción de mensajes entrantes con verificación HMAC. Chat dentro del CRM vinculado a cada prospecto o cliente.

📲 SMS (Twilio)

Envío de SMS vía Twilio con log de mensajes y estados de entrega.

💌 Conversaciones

Mensajería interna entre usuarios del CRM con hilos de conversación y soporte a adjuntos.

Contenido y Documentos

📰 Blog

Editor de artículos con HTML, categorías, etiquetas, estado de publicación y campos SEO (slug, meta descripción).

📂 Documentos

Gestión documental con organización por carpetas y vinculación a clientes, propiedades o prospectos.

🎓 Cursos

Creación de cursos online con lecciones y matrícula de alumnos. Módulo de formación interna o para clientes.

📊 Encuestas

Constructor de encuestas con recopilación de respuestas por formulario y análisis de resultados.

🖼️ Medios

Biblioteca centralizada de imágenes y archivos multimedia reutilizables entre módulos.

🗣️ Comunidad

Foro interno: hilos de publicaciones y respuestas entre usuarios del equipo.

Automatización e IA

⚡ Automatizaciones

Motor de reglas trigger/acción con constructor visual. Triggers: nuevo prospecto, nueva visita, cambio de etapa, contrato firmado, factura pagada, nuevo envío de formulario, entre otros. Acciones: enviar email, crear tarea, modificar campo, notificar, disparar webhook. Log de ejecuciones con estado y detalle de error.

🔄 Workflows

Constructor de flujos avanzados más allá de las automatizaciones simples. Lógica de ramificación y condiciones encadenadas.

🤖 IA / LLM

Integración con modelos de lenguaje para asistencia en redacción, respuestas automáticas y análisis. Historial de conversaciones y log de acciones.

📅 Booking

Sistema público de reserva de citas. Los visitantes reservan directamente desde una URL pública sin necesidad de cuenta.

Administración y Reportes

📊 Informes

Estadísticas de propiedades, clientes, visitas y finanzas. Ranking de agentes por conversión y comisiones. Exportación a CSV.

👤 Usuarios

Gestión de usuarios y roles con permisos granulares por módulo. Cada agente ve solo sus propios registros; el administrador ve todo.

⚙️ Ajustes

Configuración de tema (claro/oscuro), color primario, modo compacto, widgets del dashboard, notificaciones por email, conexión OAuth de Google Calendar y personalización de marca (whitelabel).

🏢 Portales Inmobiliarios

Control de publicación en los 7 principales portales españoles: Idealista, Fotocasa, Habitaclia, Pisos.com, Infocasa, Milanuncios y Fotocasa Pro. Estado y fecha de última publicación por portal y propiedad.

Base de Datos — 81 Tablas

El esquema cubre todo el modelo de negocio sin tablas intermedias innecesarias. Cada área funcional tiene sus propias tablas con relaciones claras y claves foráneas.

  • Core CRM: prospectos (60+ campos), historial_prospectos, clientes, propiedades (40+ campos), propiedad_fotos, visitas, tareas
  • Pipeline y ventas: pipelines, pipeline_etapas, pipeline_items, presupuestos, facturas, contratos, contrato_plantillas
  • Finanzas: finanzas, configuracion_pagos — comisiones, gastos e ingresos con IVA
  • Calendario: calendario_eventos, google_calendar_tokens, google_calendar_event_map — mapeo bidireccional para deduplicación
  • Marketing: campanas, campana_pasos, campana_contactos, formularios, formulario_envios, funnels, funnel_pasos, funnel_sesiones, landing_pages, marketing_utm
  • Email y comunicación: email_cuentas, email_mensajes, email_plantillas, whatsapp_mensajes, sms_mensajes
  • Automatización: automatizaciones, automatizacion_acciones, automatizacion_log, workflows, workflow_ejecuciones
  • Contenido: blog_posts, documentos, cursos, curso_lecciones, curso_matriculas, medios
  • Social y anuncios: social_cuentas, social_posts, ads_cuentas, ads_campanas
  • Afiliados: afiliados, afiliado_referidos, trigger_links, trigger_clicks
  • Encuestas y reputación: encuestas, encuesta_respuestas, resenas_solicitudes, reputacion_config
  • IA: ia_config, ia_conversaciones, ia_mensajes, ia_acciones_log
  • Campos personalizados: custom_fields + custom_field_values — sistema de campos dinámicos sin alterar el esquema
  • Auditoría: actividad_log, notificaciones, configuracion — trazabilidad completa de todas las acciones

Integraciones Externas

Todas las integraciones se implementan con cURL puro, sin SDKs de terceros, manteniendo la filosofía de cero dependencias.

Google Calendar API v3

OAuth2 completo (sin SDK). Sincronización de visitas, tareas y próximos contactos. Ventana de 60 días. Mapeo bilateral para deduplicar en resync.

Meta Cloud API (WhatsApp)

Recepción de mensajes entrantes con verificación HMAC de firma. Respuesta desde el CRM vinculada al historial del prospecto o cliente.

Stripe

Generación de links de pago y confirmación por webhook. Historial de transacciones por concepto y cliente.

Twilio

Envío de SMS y WhatsApp programático desde campañas o manualmente desde la ficha del contacto.

Facebook / Instagram

Gestión de tokens, publicación de posts programados, integración con Facebook Ads para tracking de campañas.

LinkedIn / Twitter

Publicación de contenido programado y gestión de cuentas sociales conectadas.

Google Places

Solicitudes automáticas de reseñas en Google. Tracking de estado de respuesta y configuración de reputación online.

Flujo Completo de Negocio

El sistema acompaña toda la operación, desde el primer contacto hasta el cobro de la comisión:

  1. Captación: El prospecto entra vía formulario embebido, booking público, o se crea manualmente. Se detectan duplicados automáticamente por teléfono y email.
  2. Pipeline: El lead avanza por 7 etapas (Nuevo Lead → 1er Contacto → Seguimiento → Visita Programada → Negociando → Captado → Descartado). Las automatizaciones disparan acciones en cada cambio de etapa.
  3. Contacto: Historial estructurado por tipo (llamada, email, visita, WhatsApp, nota). Cada contacto queda registrado con fecha, agente y detalle.
  4. Propiedad: Se vincula la propiedad al prospecto con seguimiento de cambios de precio, condiciones y estado de publicación en portales.
  5. Visita: Programación con sincronización automática a Google Calendar. Post-visita se registra valoración y siguientes pasos.
  6. Negociación: Generación de presupuesto en PDF, contrato digital con firma en canvas, seguimiento de estado.
  7. Cierre: Factura con IVA español, cobro vía Stripe o manual, registro de comisión en el módulo de finanzas.
  8. Postventa: Solicitud automática de reseña en Google, encuesta de satisfacción, seguimiento en el módulo de reputación.

Especialización para España

  • 52 provincias españolas en todos los selectores de dirección
  • Tipos de inmueble: Piso, Chalet, Adosado, Ático, Local, Nave, Garaje, Solar, Finca rústica, entre otros
  • Operaciones: Venta, alquiler, alquiler con opción a compra, traspaso
  • Campos específicos: Referencia catastral, certificado de eficiencia energética (A-G), escalera/piso/puerta por separado
  • IVA a 4 tipos: 21% / 10% / 4% / exento — cálculo automático en facturas y presupuestos
  • 7 portales inmobiliarios: Idealista, Fotocasa, Habitaclia, Pisos.com, Infocasa, Milanuncios y Fotocasa Pro
  • Validadores españoles: DNI, NIE, CIF, número de teléfono móvil y código postal (módulo dedicado)
  • RGPD / LGPD: Gestión de consentimiento, generación de textos legales (términos, privacidad, cookies), datos del DPO configurable
  • Zona horaria: Europe/Madrid en toda la aplicación
  • Formato de fecha y moneda: dd/mm/yyyy y € en toda la interfaz

Seguridad Implementada

  • Contraseñas: password_hash() con bcrypt. Nunca almacenadas en claro.
  • SQL Injection: 100% PDO con prepared statements. Sin concatenación de queries.
  • XSS: htmlspecialchars() en toda la salida HTML. Función post() con saneamiento automático.
  • CSRF: Tokens verificados en todos los formularios POST y peticiones AJAX.
  • Sesiones: session_regenerate_id() en login. Verificación de IP para prevenir hijacking.
  • Fuerza bruta: Bloqueo de 15 minutos tras 5 intentos fallidos de login.
  • Webhooks: Verificación HMAC de firma en todos los webhooks de Meta / WhatsApp.
  • Uploads: Validación de tipo MIME, lista blanca de extensiones, tamaño máximo 10 MB. Ejecución PHP deshabilitada en la carpeta de uploads via .htaccess.
  • Secretos: Todas las credenciales en .env. Nunca en código fuente.
  • Cifrado: AES para datos sensibles almacenados (encryption.php).
  • Installer: Bloqueado en producción si no existe INSTALLER_KEY en .env.

Motor de Automatizaciones

El módulo de automatizaciones permite configurar reglas trigger/acción desde la interfaz, sin código. Se ejecutan vía cron o en tiempo real según el trigger.

Triggers disponibles

  • Nuevo prospecto creado
  • Cambio de etapa en pipeline
  • Nueva visita programada
  • Nuevo envío de formulario
  • Contrato firmado
  • Factura pagada
  • Presupuesto aceptado
  • Nuevo cliente registrado

Acciones disponibles

  • Enviar email (con plantilla)
  • Enviar SMS vía Twilio
  • Crear tarea asignada
  • Modificar campo de registro
  • Notificar al agente
  • Disparar webhook externo

Cada ejecución queda registrada en automatizacion_log con estado (éxito / error) y detalle completo para auditoría y depuración.

Procesos Programados (Cron)

  • automatizaciones.php: Ejecuta automatizaciones programadas que no se disparan en tiempo real
  • campanas.php: Procesa los pasos pendientes de cada campaña de drip marketing
  • secuencia_captacion.php: Avanza las secuencias de nurturing de prospectos
  • backup.php: Copia de seguridad automática de la base de datos
  • resumen_semanal.php: Email de resumen semanal de KPIs a los administradores
  • purgar_logs.php: Limpieza de logs antiguos para mantener el rendimiento

Experiencia de Usuario

  • Modo oscuro completo: Toggle persistido en base de datos y local storage. Variables CSS para toda la interfaz.
  • Diseño responsive: Bootstrap 5.3, mobile-first, sin excepciones.
  • Campos personalizados: Los administradores pueden añadir campos extra a prospectos y clientes sin tocar el código.
  • Whitelabel: Logo, nombre de empresa y color primario configurables desde ajustes. Se inyectan como variables CSS en tiempo real.
  • Acciones en bloque: Selección múltiple para operaciones masivas en listados.
  • Paginación configurable: Items por página configurable por usuario (10 / 25 / 50 / 100).
  • Exportación: CSV en la mayoría de módulos, PDF en presupuestos y contratos.
  • Flash messages: Confirmaciones y errores persistidos en sesión y mostrados tras redirect.
  • AJAX inline: Edición de campos clave sin recargar la página (prospectos, estado de tareas, etc.).

Enfoque y Valor del Proyecto

Este CRM demuestra que se puede construir un sistema empresarial completo sin recurrir a frameworks pesados. La decisión de usar PHP puro con PDO y JavaScript vanilla no es por desconocimiento de Laravel o React: es una decisión deliberada para que el sistema funcione en el hosting más básico del mercado sin configuración adicional.

  • Cobertura funcional real: 36 módulos que cubren el 100% del ciclo de negocio inmobiliario, desde la captación hasta el cobro
  • Sin dependencias instalables: No hay vendor/, no hay node_modules/. Se sube el código y funciona.
  • Especialización de mercado: Diseñado para el mercado español con todas sus particularidades legales, fiscales y de portales
  • Seguridad por defecto: CSRF, prepared statements, bcrypt, HMAC, AES y validación estricta de uploads implementados desde la base
  • Documentación completa: Manual de usuario, manual técnico, especificaciones, guía de instalación, changelog y protocolo de QA
  • Arquitectura escalable: Soporte para +10.000 registros por tabla sin degradación. Cron jobs para procesos pesados en background.

Mi Rol

Desarrollador Full Stack — Arquitecto y Autor Único

Diseñé y desarrollé el sistema completo de forma independiente: análisis de requisitos del mercado inmobiliario español, diseño del esquema de 81 tablas, arquitectura modular de 36 módulos, implementación del backend en PHP puro, desarrollo del frontend con Bootstrap 5.3 y JavaScript vanilla, integración de todas las APIs externas (Google, Meta, Stripe, Twilio), motor de automatizaciones, sistema de roles y permisos, cumplimiento RGPD y documentación técnica completa.

El proyecto tiene licencia propietaria (todos los derechos reservados) y está en uso activo.

Estado del Proyecto

Estado: ✓ En Producción (v1.2.0)

El sistema evolucionó desde su lanzamiento inicial (v1.0.0, marzo 2026) hasta la versión actual v1.2.0, que incorporó modo oscuro completo, whitelabel por inyección de CSS, rediseño del módulo de automatizaciones con 4 nuevos triggers y corrección de vulnerabilidades identificadas en QA (incluyendo corrupción de JSON crítica en 13+ archivos y una vulnerabilidad XSS).