diegovasquez-ai/builder-crm
diegovasquez-ai/builder-crm has 27 GitHub stars and 17 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-14 18:33 UTC. Last push 2026-11-11.
Measured star growth
- in 24h
- 0
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
About
ARM open source y self-hosted: CRM agentico con WhatsApp, Instagram y Messenger en una bandeja. El agente responde, califica, completa la ficha y mueve el pipeline. Una instancia por cliente, adaptable con Claude Code.
AIREADME.md
OriginalBuilder CRM
Un ARM open source y self-hosted: el CRM agentico que actua en vez de esperar. Una bandeja para WhatsApp, Instagram y Messenger donde el agente de IA no espera a que alguien cargue los datos: responde al instante, califica al lead, completa su ficha, mueve el pipeline y deriva al asesor cuando le toca. Mas un arnes de Claude Code que adapta, despliega y prueba una instancia por cliente con un solo prompt.
ARM (Agentic Relationship Management) es el CRM operado por agentes de IA. El CRM
clasico guarda, organiza y espera a que el vendedor se acuerde; este observa la
conversacion, decide el siguiente paso dentro de las reglas que le pongas y lo ejecuta
sobre el CRM. Que hace exactamente el agente, con que herramientas y donde se le ponen
los limites: docs/AGENTE.md.
Open source, licencia MIT: usalo, modificalo, desplegalo para tus clientes y cobra por eso. Nacio dentro de la comunidad IA Builder Lab, que es donde se ensena a usarlo, pero no hace falta ser miembro de nada para que sea tuyo.
"Adapta Builder CRM para una inmobiliaria llamada Casa Sur, con modulo de propiedades y agendamiento de visitas, y despliegalo en mi Coolify." Claude escribe la spec, configura, construye, despliega, prueba y entrega la URL.
Que trae el nucleo
- Login con roles admin y asesor (Supabase Auth): un asesor ve solo sus contactos.
- Bandeja multicanal en tiempo real (Zernio: WhatsApp, Instagram DM, Messenger), ventana de 24 h y plantillas de WhatsApp.
- Contactos con ficha, documentos (bucket S3 opcional), campos personalizados por cliente y resumen del agente.
- Pipeline kanban con etapas configurables que el agente puede mover.
- Agente de IA (OpenRouter, modelo por variable): lee el historial, responde por el canal, actualiza la ficha, mueve etapas, registra actividades, deja un resumen y deriva a una persona (pausa por conversacion).
- Reportes reales por periodo y dashboard honesto.
- Ajustes: canales, agente por canal, equipo, notificaciones push.
- Entrar con Google y otros proveedores, opcional: ver
docs/GOOGLE-AUTH.md. - Invitaciones por correo y "olvide mi contrasena", opcional: ver
docs/CORREO.md. Sin esto, el admin crea la cuenta y pasa la contrasena temporal a mano, que es como viene de fabrica. - Automatizaciones (disparador -> filtros -> acciones), PWA instalable.
- Simulador: chatear con el agente sin ningun canal conectado (demos y autoverificacion).
- Modulos: todo lo especifico de un cliente vive en
modules/y se enciende por configuracion. Plantilla de nicho incluida: inmobiliaria (propiedades + visitas).
Requisitos
- Node.js 22 y npm. Nada mas para probarlo: el modo local trae su propia base.
En Windows, clona en una ruta corta (
C:\proyectos\...): con carpetas muy anidadas, el compilador de Next falla por el limite de caracteres del sistema de archivos. - Para una instancia de verdad: una cuenta de Supabase (un proyecto por cliente;
el plan gratuito alcanza), o tu propio Postgres mas GoTrue en el VPS (ver
docs/SUPABASE-EN-VPS.md). - Para desplegar: un VPS con Coolify y un dominio.
- Opcional: OpenRouter (agente), Zernio (canales), bucket S3 (documentos).
- Claude Code con el repo abierto; ver
CLAUDE.mdydocs/MCP.md.
Probarlo en tu PC (2 minutos, sin crear ninguna cuenta)
git clone https://github.com/diegovasquez-ai/builder-crm.git && cd builder-crm
npm install
npm run local
Y ya esta: http://localhost:3000 con el CRM lleno de datos de demostracion. No hace
falta Supabase, ni Docker, ni un archivo .env.
npm run local levanta un Postgres embebido (un paquete de npm compilado a
WebAssembly, guardado en .local/db), aplica las mismas migraciones que una instancia
desplegada —con su RLS—, carga los datos demo y abre el CRM. No hay login: en modo
local no hay servidor de autenticacion, asi que entras directo como administrador y el
menu lateral te lo recuerda.
npm run local -- --reset |
borra la base local y empieza de cero |
npm run local -- --sin-datos |
sin datos de demostracion |
npm run local -- --puerto 3001 |
otro puerto |
Para que el agente responda en el simulador hace falta una clave de OpenRouter:
copia .env.example a .env.local y pone OPENROUTER_API_KEY. Sin ella el CRM
funciona igual (los mensajes entran a la bandeja y crean el contacto), solo que nadie
contesta del otro lado.
Lo que el modo local no tiene, porque necesita una instancia de verdad: login, equipo con roles, invitaciones por correo y la busqueda semantica del modulo propiedades (el Postgres embebido no trae pgvector).
Con tu propio Supabase (para adaptar y desplegar)
cp .env.example .env.local # completar al menos Supabase (4 variables)
npm run db:migrar # crea tablas, RLS y el trigger del primer admin
npm run dev # http://localhost:3000
- Abre
/signup: mientras no haya miembros, el registro esta abierto y la primera cuenta queda como administrador. Despues se cierra solo. - En el inicio pulsa Cargar demo (o
npm run seed) para ver el CRM lleno. - Abre Simulador y chatea con el agente (necesita
OPENROUTER_API_KEY). - Conecta WhatsApp/Instagram/Messenger cuando quieras: skill
conectar-zernio.
Sin interfaz: npm run admin:crear -- --email [email protected] --password 'xxxxxxxx'.
Desplegar en Coolify
Resumen (el detalle paso a paso esta en la skill deploy-coolify):
Base y Auth. Dos caminos y conviene elegir antes de empezar:
- Supabase cloud, un proyecto por cliente. Mas rapido, con panel y respaldos; el plan gratuito pausa los proyectos inactivos.
- Autoalojados en el mismo Coolify (Postgres + GoTrue): sin cuenta de Supabase,
sin pausas y sin costo por cliente, pero los respaldos son tuyos. Es el camino de
la instancia de demostracion. Guia:
docs/SUPABASE-EN-VPS.md.
Despues, desde tu maquina:
npm run db:migrarynpm run admin:crear.En Coolify: aplicacion desde el repo (build pack Dockerfile, puerto 3000, dominio) y las variables de
.env.example, todas en runtime. No hace falta marcar ninguna como "Build Variable": desde 1.2.2 el servidor le pasa al navegador la configuracion publica en tiempo de ejecucion, asi que la misma imagen sirve para cualquier instancia. ElDockerfileigual acepta lasNEXT_PUBLIC_*como build args, por si construis en una plataforma que las hornea (Vercel).Deploy. Las migraciones corren solas al arrancar el contenedor.
curl https://<dominio>/api/health->{"ok":true,"version":"<la del package.json>","db":"ok"}.node scripts/seed-demo.mjs --url https://<dominio>ynode scripts/verificar-instancia.mjs --url https://<dominio> --email ... --password ....
Tambien funciona con docker compose up -d --build (solo la app; la base es
Supabase) o en Vercel (vercel.json + barridos por GitHub Actions).
Adaptarlo a un cliente (sin tocar el nucleo)
Zona del cliente: config/cliente.ts (marca, pipeline, campos, agente),
config/modulos.json, modules/<nombre>/, public/marca/, specs/<cliente>/.
Nucleo: src/, supabase/, scripts/, Docker. Reglas en
specs/CONSTITUCION.md.
// config/cliente.ts
import { plantillaInmobiliaria } from "./plantillas/inmobiliaria";
export default definirConfig({ ...plantillaInmobiliaria, marca: { ...plantillaInmobiliaria.marca, nombre: "Casa Sur" } });
config/modulos.json: { "activos": ["propiedades", "visitas"] } -> npm run db:migrar.
Con Claude Code: abre el repo y pide la adaptacion en lenguaje natural; la skill
adaptar-a-cliente sigue el flujo entender -> especificar -> configurar -> construir ->
desplegar -> probar -> entregar. Para un modulo nuevo: crear-modulo. Para una
plantilla nueva: nueva-plantilla-nicho.
Estructura
config/ zona del cliente: cliente.ts, modulos.json, plantillas/
modules/ modulos (ejemplo, propiedades, visitas, _plantilla)
public/marca/ logo e icono del cliente
specs/ constitucion, plantilla de spec, specs del nucleo y del cliente
tests/ invariantes que fallan en silencio (firma, ventana 24h, roles)
.local/ base embebida del modo local (no se versiona)
src/ nucleo (app, lib, components, db)
supabase/ migraciones del nucleo (base, RLS, primer admin)
scripts/ migrar, crear-admin, seed-demo, verificar-instancia, zernio:*
docker/, Dockerfile, docker-compose.yml
.claude/skills/ el arnes: 7 skills del flujo one-shot
docs/ MCP, agente, Zernio, Supabase en tu VPS, entrar con Google, correo
Scripts
| Comando | Que hace |
|---|---|
npm run local |
probarlo en tu PC sin cuentas: Postgres embebido, datos demo, sin login |
npm run dev / build / start |
desarrollo contra tu Supabase, build, servidor |
npm test |
invariantes del nucleo (vitest, sin base ni red, ~1 s) |
npm run typecheck / lint |
gate tecnico (CI corre los tres + build) |
npm run db:migrar / db:status |
migraciones del nucleo + modulos activos |
npm run admin:crear -- --email --password |
crea o promueve un administrador |
npm run claves:supabase / auth:preparar |
base y Auth en tu propio VPS, sin Supabase cloud |
npm run seed |
datos de demostracion (POST /api/seed/demo) |
npm run verificar -- --url ... |
autoverificacion de una instancia |
npm run zernio:setup / zernio:webhook / zernio:whatsapp |
canales via Zernio (connect:whatsapp para Meta directo) |
npm run pwa:icons |
iconos de la PWA desde public/marca/icono.png |
npm run sync:tokko |
catalogo del modulo propiedades desde Tokko |
Versiones
La version corre en package.json, se ve en /api/health y al pie del menu. SemVer
desde el punto de vista de quien opera una instancia:
| Cuando sube | |
|---|---|
Mayor (2.0.0) |
Hay que hacer algo a mano al actualizar (variable nueva obligatoria, cambio del contrato de modulos o de conectores). |
Menor (1.1.0) |
Funciones nuevas. Actualizar es mergear y redesplegar. |
Parche (1.0.1) |
Arreglos. Actualizar es mergear y redesplegar. |
Como traer una version nueva a una instancia adaptada: ACTUALIZAR.md.
Cambios por version: CHANGELOG.md. Secretos, roles y RLS:
SEGURIDAD.md.
Licencia
MIT. Copyright (c) 2026 Diego Vásquez. Podes usarlo, copiarlo, modificarlo,
desplegarlo para tus clientes, cobrar por eso y distribuirlo. La unica condicion es
conservar el aviso de copyright. Sin garantia: quien despliega una instancia es
responsable de sus datos, de sus credenciales y de lo que el agente le responda a las
personas que escriben. El texto completo esta en LICENSE.
Nacio como fork de auto-crm, tambien MIT; su
aviso de copyright se conserva en NOTICE, junto con el de las dependencias.
La arquitectura de entrega para agencias toma ideas de
vocero-crm.