builder-crm
Health Gecti
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 11 GitHub stars
Code Uyari
- process.env — Environment variable access in drizzle.config.ts
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
CRM multicanal con agente de IA: WhatsApp, Instagram y Messenger en una bandeja. Califica leads, mueve el pipeline y deja la ficha al dia. Una instancia por cliente, adaptable con Claude Code sin tocar el nucleo.
Builder CRM
CRM multicanal con agente de IA, hecho para entregarle una instancia propia a cada
cliente. Una bandeja para WhatsApp, Instagram y Messenger, un agente que califica
leads y mueve el pipeline, y un arnes de Claude Code que adapta, despliega y prueba
una instancia con un solo prompt.
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 (verdocs/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.- Supabase cloud, un proyecto por cliente. Mas rapido, con panel y respaldos; el
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 enspecs/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 skilladaptar-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.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi