Por Qué Construimos Nuestro Propio CRM en Vez de Usar Salesforce o HubSpot
Cuando IAmanos empezó a crecer en clientes y prospectos, necesitábamos un CRM. La decisión obvia era usar algo existente: Salesforce, HubSpot, Zoho, Pipedrive. Todos hacen CRM. Todos tienen millones de usuarios.
Probamos HubSpot Free. Después de 2 semanas, lo abandonamos. La razón no fue técnica — fue contextual. HubSpot no entiende cómo se vende en México.
No tiene WhatsApp integrado como canal nativo (WhatsApp Business API aparte con costo adicional). Los templates de email están en inglés o español de España. Las métricas están pensadas para equipos de 20 vendedores, no para un solopreneur. Y el pricing escala rápido: cuando necesitas lo bueno, pagas $800-$1,200 USD/mes.
Así que hicimos lo que hacemos mejor: lo construimos desde cero con Claude Code. El resultado es Lead Desk (leads.iamanos.com): un CRM de ventas diseñado específicamente para el proceso de venta de IAmanos, integrado con nuestro cotizador, con WhatsApp como canal principal, y con cada feature pensada para el mercado mexicano.
Este artículo documenta las 5 fases de construcción, las decisiones técnicas, y cómo el CRM se usa en la práctica diaria. Si estás considerando construir tu propio CRM (o hacer uno para un cliente), esto es el blueprint.
Build vs Buy: El Análisis que Hicimos Antes de Escribir una Línea de Código
Opción 1: Salesforce
| Aspecto | Evaluación |
|---|---|
| Precio | $25-$300/usuario/mes. Para 1 usuario: $300/mes por el plan que realmente sirve (Professional) |
| Funcionalidad | 10,000 features. Usaríamos el 2%. |
| WhatsApp nativo | No. Requiere integración de terceros ($200-500/mes adicional) |
| Personalización | Posible pero compleja. Salesforce admin es un skill especializado. |
| Español MX | Traducción genérica. No localizado para México. |
| Veredicto | Overkill y caro para un solopreneur. |
Opción 2: HubSpot
| Aspecto | Evaluación |
|---|---|
| Precio | Free tier disponible. Bueno escala a $800-$1,200/mes. |
| Funcionalidad | Excelente para marketing + ventas. Free tier es limitado pero funcional. |
| WhatsApp nativo | Solo en planes pagados. Integración básica. |
| Personalización | Moderada. Custom properties sí, custom flows limitados en free. |
| Español MX | Mejor que Salesforce pero todavía genérico. |
| Veredicto | Buena opción si aceptas sus limitaciones. La dejamos después de 2 semanas por no integrarse con nuestro flujo de cotizador. |
Opción 3: Construir con Claude Code
| Aspecto | Evaluación |
|---|---|
| Precio | $0/mes (corre en VPS existente de $200/mes compartido con 35+ apps) |
| Funcionalidad | Exactamente lo que necesitamos. Ni más, ni menos. |
| WhatsApp nativo | Diseñado WhatsApp-first desde el día 1. |
| Personalización | 100%. Es nuestro código. |
| Español MX | 100%. Escrito por y para mexicanos. |
| Tiempo de desarrollo | ~2 semanas (5 fases) |
| Veredicto | Ganador. Costo casi cero, personalización total, integración perfecta con el ecosistema. |
Cuándo comprar y cuándo construir
La decisión de build vs buy depende de 3 factores:
- ¿Usarás más del 30% de las features del producto existente? Si no, estás pagando por features que no necesitas.
- ¿Necesitas integración profunda con tus herramientas existentes? Si sí, construir da integración nativa. Las integraciones de terceros siempre tienen fricción.
- ¿Puedes construirlo en menos de 1 mes? Si sí (con Claude Code), el ROI es inmediato. Si tardarías 6 meses, mejor compra.
Las 5 Fases de Construcción de Lead Desk
Fase 1: Pipeline Kanban (Días 1-3)
Lo primero que necesita un CRM es un pipeline visual. Lead Desk tiene un pipeline kanban con columnas arrastrables:
- Nuevo: Lead recién llegado (automático desde Cotizador o manual)
- Contactado: Se envió el primer WhatsApp/email
- Demo Programada: Tiene fecha de demo agendada
- Propuesta Enviada: Recibió cotización formal
- Negociación: Está en proceso de decidir
- Ganado: Cerrado positivo
- Perdido: No compró (con razón registrada)
Cada card del kanban muestra: nombre del prospecto, empresa, valor del deal, días en la etapa actual, y última interacción. Drag & drop entre columnas actualiza el estado instantáneamente.
Construcción: Claude Code generó el pipeline completo en 6 horas. Incluye: componente kanban con dnd-kit, API routes para CRUD de leads, modelo Prisma con estados y timestamps.
Fase 2: Gestión de Tareas (Días 4-5)
Cada lead tiene tareas asociadas: “Llamar a Juan el jueves”, “Enviar propuesta a María”, “Dar seguimiento a demo de la semana pasada”.
El sistema de tareas tiene:
- Creación rápida desde la card del lead
- Fecha de vencimiento con alertas
- Prioridad (alta/media/baja)
- Asignación (a mí mismo o a un asesor)
- Tareas automáticas: cuando un lead pasa a “Demo Programada”, se crea automáticamente una tarea de “Preparar demo” para 1 día antes
Fase 3: WhatsApp Templates + Integraciones (Días 6-8)
En México, WhatsApp es el canal de ventas #1. Lead Desk tiene templates de WhatsApp para cada etapa del pipeline:
- Primer contacto: “Hola [nombre], soy Arturo de IAmanos. Vi que estás interesado en [servicio]. ¿Puedo enviarte una demo de 10 min?”
- Post-demo: “Gracias por tu tiempo, [nombre]. Te comparto la cotización formal: [link cotizador]. ¿Alguna duda?”
- Seguimiento: “[nombre], ¿tuviste oportunidad de revisar la propuesta? Estoy disponible para aclarar cualquier duda.”
- Cierre: “¡Listo! Iniciamos tu proyecto. El primer entregable lo tendrás el [fecha]. ¿Alguna pregunta antes de arrancar?”
Los templates se copian al clipboard con un click y se pegan directamente en WhatsApp Web. No hay integración con la API de WhatsApp Business (todavía) — es deliberado para evitar los costos y complejidades de la API oficial.
Fase 4: Dashboard de Métricas (Días 9-11)
El dashboard muestra:
- Pipeline value: Suma del valor de todos los deals abiertos
- Conversión por etapa: % de leads que avanzan de cada etapa a la siguiente
- Tiempo promedio en pipeline: Cuántos días tarda un lead de “Nuevo” a “Ganado”
- Deals ganados este mes: Conteo y valor total
- Deals perdidos: Conteo y razón más común de pérdida
- Actividad reciente: Último contacto, última tarea completada, próxima tarea vencida
- Leads por fuente: Cotizador, WhatsApp directo, email, referido
Fase 5: Panel Admin + Catálogo (Días 12-14)
El panel admin permite:
- Gestión de usuarios: Admin (Arturo) y asesores con permisos diferenciados
- Catálogo de servicios: Modelo CatalogService con tiers y features. Cada tier tiene nombre, precio, features incluidas. Esto alimenta las cotizaciones y se sincroniza con el cotizador público.
- Configuración: Etapas del pipeline, templates, fuentes de leads, alertas
Admin login: admin@iamanos.com. Asesor login: asesor@iamanos.com. Cada uno ve solo sus leads o todos dependiendo del rol.
Detalles de implementación de cada fase
Cada fase se implementó con Claude Code siguiendo el principio de iteraciones pequeñas. La Fase 1 (Pipeline) fue la más intensiva: definir los modelos Prisma, crear las API routes para CRUD de leads, construir el componente kanban con drag & drop, y conectar todo con la base de datos.
La Fase 2 (Tareas) se construyó sobre la Fase 1 — cada tarea está asociada a un lead, y las tareas automáticas se disparan con triggers de Prisma middleware cuando un lead cambia de etapa. Esto permite reglas como: “cuando un lead entre a Demo Programada, crear tarea ‘Preparar demo personalizada’ con vencimiento 1 día antes de la fecha de demo”.
La Fase 3 (WhatsApp + Integraciones) fue la más impactante en productividad. Antes de los templates, cada WhatsApp era redactado desde cero. Ahora son 2 clicks: abrir template, copiar. Los templates usan variables dinámicas ([nombre], [empresa], [servicio]) que se reemplazan automáticamente con datos del lead. El historial de comunicación se registra con un campo de notas tipo log — cada interacción se agrega con timestamp.
La Fase 4 (Métricas) usa queries de Prisma con aggregaciones para calcular las métricas en tiempo real. No hay ETL ni data warehouse — las queries directas a PostgreSQL son suficientes para un volumen de cientos de leads (no miles). Si el volumen escalara a miles, consideraríamos vistas materializadas o un cache layer.
La Fase 5 (Admin + Catálogo) fue la más rápida porque es principalmente CRUD — y CRUD es donde Claude Code brilla. Los modelos CatalogService, CatalogTier, y CatalogTierFeature se generaron con sus forms, validaciones, y listados en una tarde.
Integración con el Cotizador: El Lead Entra Solo
La integración más valiosa de Lead Desk es con nuestro cotizador público. Cuando un prospecto completa una cotización en coti.iamanos.com, los datos se envían automáticamente a Lead Desk.
El flujo técnico
- Prospecto llena el cotizador: nombre, email, empresa, servicio, presupuesto
- Cotizador llama a
syncToLeadDesk()ensrc/lib/leadDesk.ts - POST request a
/api/intakede Lead Desk con los datos del lead - Lead Desk crea el lead con status “Nuevo” en el pipeline
- Se crea tarea automática: “Contactar lead del cotizador en las próximas 2 horas”
- Arturo recibe notificación (task vencida) y contacta por WhatsApp
El proceso es fire-and-forget desde el cotizador: si Lead Desk no responde (mantenimiento, error), la cotización se guarda localmente y el lead no se pierde. La sincronización se reintenta en el background.
Por qué esta integración importa
Sin la integración, el flujo era: prospecto cotiza → email de notificación → Arturo lee el email → copia datos a un Excel → contacta al prospecto. Tiempo entre cotización y primer contacto: 2-8 horas.
Con la integración: prospecto cotiza → Lead Desk crea lead → tarea de contacto aparece → Arturo contacta. Tiempo: 30 minutos a 2 horas. La velocidad de respuesta en ventas es directamente proporcional a la tasa de conversión.
Stack Técnico: Lo Que Corre Debajo del Capó
| Componente | Tecnología | Decisión |
|---|---|---|
| Framework | Next.js 16 + TypeScript | Fullstack, Server Components para dashboard rápido |
| ORM | Prisma 7 con @prisma/adapter-pg | Tipos generados, migraciones declarativas |
| Base de datos | PostgreSQL 16 (Alpine) | Robusto, JSON support para metadata flexible |
| Autenticación | NextAuth v5 | Admin + asesor roles con session-based auth |
| Estilos | Tailwind CSS | Utility-first, consistente con el ecosistema |
| Drag & Drop | dnd-kit | Pipeline kanban nativo, accesible, performante |
| Deploy | Docker + Traefik en VPS | SSL automático, contenedor isolado con su propio PostgreSQL |
Modelos Prisma clave
Lead Desk tiene ~15 modelos Prisma. Los más importantes:
- Lead: nombre, email, empresa, teléfono, fuente, status, valor del deal, etapa del pipeline, historial de notas
- Task: título, descripción, fecha vencimiento, prioridad, estado, asignado a, lead asociado
- PipelineStage: nombre, orden, color, reglas automáticas (crear tarea al entrar)
- WhatsAppTemplate: nombre, contenido con variables [nombre], [empresa], [servicio], etapa asociada
- CatalogService: nombre, descripción, activo
- CatalogTier: nombre, precio, duración estimada, features
- User: email, rol (ADMIN/ADVISOR), nombre
Decisión técnica interesante: Prisma 7 con adapter-pg
Prisma 7 ya no usa el connection URL directamente en schema.prisma. En su lugar, usamos @prisma/adapter-pg + PrismaPg en lib/prisma.ts con un archivo prisma.config.ts que configura el adapter. La connection string viene de las variables de entorno del contenedor Docker. Esto permite que el mismo código apunte a diferentes PostgreSQL (local para dev, contenedor para producción) sin cambiar el schema.
Un Día Real Usando Lead Desk: De Lead a Cliente
Así es como Lead Desk se usa en la práctica diaria.
9:00 AM — Revisión matutina
Abro leads.iamanos.com. El dashboard muestra: 3 tareas vencidas de ayer (seguimientos que no hice), 2 leads nuevos del cotizador del fin de semana, pipeline value de $38,000 USD en deals abiertos.
9:15 AM — Contactar leads nuevos
Lead 1: María López de Veterinaria Santa Fe. Cotizó el plan de $5,000 para “sistema de citas con chatbot”. Abro la card, hago clic en el template de WhatsApp “Primer contacto”. Se copia: “Hola María, soy Arturo de IAmanos. Vi tu cotización para un sistema de citas con chatbot para tu veterinaria. ¿Tienes 10 minutos para que te muestre cómo funciona WouWou?”. Pego en WhatsApp Web. Muevo la card a “Contactado”. Tarea automática: “Seguimiento si no responde en 48h”.
10:30 AM — Demo con prospecto
Pedro Ramírez de Imprenta Digital MX tiene demo agendada. Abro su card: notas de la conversación anterior (“interesado en cotizador automático, tiene 3 sucursales, presupuesto ~$7,500”). Hago la demo de PrintDesk por videollamada. Al terminar, actualizo notas: “Demo bien recibida. Le preocupa la integración con su sistema de producción. Va a consultar con su socio. Seguimiento: lunes”.
2:00 PM — Seguimientos
3 tareas vencidas. Abro cada una, envío el WhatsApp correspondiente, registro la respuesta. Un lead dice “ya no me interesa” → lo muevo a “Perdido” con razón “Presupuesto”. Otro dice “lo estamos evaluando” → nueva tarea para el viernes.
5:00 PM — Revisión de métricas
Dashboard: 1 deal movido a “Negociación” ($5,000), 1 deal perdido ($2,500). Tasa de conversión de esta semana: 2 demos de 4 contactados (50%). Tiempo promedio en pipeline: 12 días.
Todo este flujo pasa en Lead Desk + WhatsApp Web. No hay otro sistema. No hay Excel, no hay notas adhesivas, no hay “me acuerdo que le dije que le llamaba”.
Lo que aprendimos de nuestro propio uso
Después de usar Lead Desk durante meses, emergen patrones claros:
El seguimiento gana deals. El 60% de los deals ganados requirieron 3+ contactos. Sin el CRM, esos seguimientos se habrían perdido. La tarea automática “seguimiento si no responde en 48h” es la feature más valiosa del sistema — no la más sexy, pero la que genera revenue.
El tiempo de respuesta importa más que la calidad del pitch. Los leads que contactamos en menos de 2 horas (desde que llegan del cotizador) tienen tasa de conversión 3x mayor que los que contactamos después de 24 horas. La integración automática con el cotizador fue la decisión técnica más impactante en revenue.
Las razones de pérdida son oro. Cada deal que se pierde se registra con razón: “presupuesto”, “timing”, “eligió competidor”, “ghost” (dejó de responder). Después de 50 deals perdidos, el patrón es claro: el 45% se pierde por presupuesto. Eso nos dice que o bajamos precios, o mejoramos la comunicación de valor, o nos enfocamos en prospectos con mayor presupuesto. Sin datos, sería intuición.
Las métricas simples bastan. Empezamos queriendo dashboards complejos con 20 gráficas. Terminamos usando 4 métricas: pipeline value total, deals ganados este mes, tasa de contacto (% de leads contactados en <24h), y NPS estimado (basado en feedback post-venta). Lo demás es ruido.
Construir Tu CRM: Más Fácil y Barato de Lo Que Crees
Lead Desk se construyó en 2 semanas con Claude Code. Corre en el mismo VPS de $200/mes que las otras 35+ apps. No tiene costo mensual de licencia. Y hace exactamente lo que necesitamos — ni más, ni menos.
Evolución post-lanzamiento
Lead Desk no se quedó estático después de las 5 fases. Cada semana se agregan mejoras basadas en uso real:
- Filtros de búsqueda avanzada: Buscar leads por rango de valor, por fuente (cotizador vs WhatsApp vs referido), por fecha de último contacto, por etapa actual. Esto fue request directo de uso — cuando tienes 100+ leads, necesitas filtrar.
- Notas con timestamp automático: Cada nota se guarda con fecha y hora. El historial completo de interacciones con un prospecto está en una timeline cronológica. Esto es invaluable cuando retomas un lead después de 2 semanas — puedes leer exactamente qué se dijo y cuándo.
- Export a Excel: Para reportes que necesitan compartirse con equipo o socios, un botón exporta los datos del pipeline a Excel con formato limpio. A veces la herramienta más sofisticada del mundo necesita hablar con la más simple.
El costo de construir un CRM equivalente como servicio para un cliente: $5,000-$7,500 USD. Comparado con $300/mes × 12 meses = $3,600/año de Salesforce (y eso solo por 1 usuario, sin las features buenas), el ROI se paga en 1-2 años. Y después es gratis para siempre.
Si tu proceso de ventas tiene particularidades que los CRMs genéricos no manejan — WhatsApp como canal principal, cotizador integrado, catálogo personalizado, métricas específicas — un CRM a medida es la respuesta. Y con Claude Code, se construye en semanas, no en meses.
Visita nuestras apps en producción para ver Lead Desk y el resto del ecosistema. Conoce cómo aplicamos automatización con IA en cada proyecto. Y si quieres tu propio CRM a medida, la fábrica de apps está lista.
Preguntas Frecuentes
¿Cuánto cuesta construir un CRM desde cero con IA?
$5,000-$7,500 USD. Se construye en ~2 semanas con Claude Code. Sin costo mensual de licencia después — corre en VPS compartido.
¿Conviene más construir un CRM o usar Salesforce/HubSpot?
Construir si usas <30% de las features genéricas, necesitas integración profunda, y puedes hacerlo en <1 mes. Comprar si necesitas features enterprise o tu proceso es estándar.
¿Lead Desk se integra con WhatsApp?
Sí, con templates que se copian al clipboard y se pegan en WhatsApp Web. Sin API oficial para evitar costos y complejidad. Templates personalizables por etapa del pipeline.
¿Cómo entran leads automáticamente desde el cotizador?
POST automático a /api/intake cuando un prospecto completa la cotización. Lead se crea con status “Nuevo” y tarea de contacto automática.
¿Qué tecnologías usa Lead Desk?
Next.js 16 + TypeScript, Prisma 7 + PostgreSQL, NextAuth v5, Tailwind, dnd-kit para kanban, Docker + Traefik. Construido con Claude Code en ~2 semanas.



