Demostración Interactiva

Panel de prospectos y métricas para abogados

Dashboard de captación para despachos jurídicos: embudo de conversión, tablero Kanban de clientes, métricas de ROI y plantillas de seguimiento.

Quiero esta herramienta en mi sitio
← Todas las funciones
Aviso legal: Información general con fines informativos; no sustituye la asesoría ni el patrocinio legal de un abogado. Los despachos, nombres y cifras presentados son ficticios y corresponden a datos de ejemplo.
📊 Métricas reales de captación: Datos simulados para mostrar cómo tu sitio web atrae y convierte clientes
Visitas al Mes
3,420
▲ +24% vs mes anterior
Prospectos Captados
142
▲ +18% captados
Citas Agendadas
48
▲ 33.8% de conversión
Clientes Cerrados
18
▲ +5 clientes nuevos
Tasa de Conversión
12.6%
▲ Alto rendimiento

📍 Prospectos por Canal de Origen

■ Google SEO / Orgánico: 45% (64)
■ WhatsApp Directo: 30% (43)
■ Redes Sociales: 15% (21)
■ Recomendaciones: 10% (14)

📈 Embudo de Conversión del Sitio

Visitas Totales: 3,420100%
Prospectos que interactuaron: 1424.1%
Citas Agendadas: 4833.8%
Contratos Cerrados: 1837.5%

📋 Tablero de Seguimiento Comercial (Mueve los prospectos) Arrastra o usa las flechas ◀ ▶

📥 Nuevo2
💬 Contactado2
🗓️ Cita Agendada1
📑 Propuesta1
✅ Cliente1

💰 Proyección de Ingresos Generados por el Sitio

Calcula el valor que aporta este ecosistema digital en función del valor medio de tus asuntos jurídicos.

$ MXN
Facturación Estimada Este Mes:
$450,000 MXN
Basado en 18 clientes cerrados

🔒 Privacidad garantizada: no guardamos nada en esta página. Los cálculos y simulaciones se procesan localmente en tu navegador.

const PROSPECTOS_INICIALES = [ { id: 'p1', nombre: 'Carlos Mendoza', tel: '55 1234 5678', materia: 'Derecho Penal', fecha: 'Hoy 10:15', col: 'nuevo' }, { id: 'p2', nombre: 'Mariana Salinas', tel: '442 876 5432', materia: 'Derecho Laboral', fecha: 'Hoy 09:20', col: 'nuevo' }, { id: 'p3', nombre: 'Laura Treviño', tel: '81 4455 6677', materia: 'Derecho Familiar', fecha: 'Ayer', col: 'contactado' }, { id: 'p4', nombre: 'Grupo Constructor Bajío', tel: '442 998 1122', materia: 'Derecho Mercantil', fecha: 'Ayer', col: 'contactado' }, { id: 'p5', nombre: 'Dra. Gabriela Vega', tel: '55 6677 8899', materia: 'Derecho Civil', fecha: '12 Oct', col: 'cita' }, { id: 'p6', nombre: 'Ing. Martín Morales', tel: '55 3344 5566', materia: 'Derecho Laboral', fecha: '11 Oct', col: 'propuesta' }, { id: 'p7', nombre: 'Inmobiliaria Delta S.A.', tel: '442 112 3344', materia: 'Derecho Mercantil', fecha: '10 Oct', col: 'cerrado' } ]; let PROSPECTOS = []; const KANBAN_STORAGE_KEY = 'mktdmx_abogados_kanban_v1'; const PLANTILLAS_SEGUIMIENTO = { contactado: 'Hola {NOMBRE}, recibimos tu consulta en el sitio web de nuestro despacho. Con gusto te atiendo para revisar tu asunto de {MATERIA}. ¿Tendrás disponibilidad para una breve llamada hoy?', cita: 'Estimado(a) {NOMBRE}, le confirmamos que su cita de asesoría jurídica para su asunto de {MATERIA} ha quedado reservada. Recuerde tener a la mano sus documentos base.', propuesta: 'Estimado(a) {NOMBRE}, le hemos remitido la propuesta formal de servicios profesionales para su asunto de {MATERIA}. Quedamos a sus órdenes para resolver cualquier duda.', cerrado: 'Bienvenido(a) a nuestro despacho, {NOMBRE}. Su expediente ha sido dado de alta formalmente. En breve su abogado titular se pondrá en contacto.' }; function initKanban() { try { const raw = localStorage.getItem(KANBAN_STORAGE_KEY); if (raw) PROSPECTOS = JSON.parse(raw); else PROSPECTOS = [...PROSPECTOS_INICIALES]; } catch(e) { PROSPECTOS = [...PROSPECTOS_INICIALES]; } renderizarKanban(); calcularROI(); } function renderizarKanban() { ['nuevo', 'contactado', 'cita', 'propuesta', 'cerrado'].forEach(col => { const w = document.getElementById('cards-' + col); w.innerHTML = ''; const items = PROSPECTOS.filter(p => p.col === col); document.getElementById('badge-col-' + col).textContent = items.length; items.forEach(p => { const card = document.createElement('div'); card.className = 'k-card'; card.draggable = true; card.ondragstart = (e) => drag(e, p.id); card.innerHTML = ` ${p.materia} ${p.nombre}
${p.tel} • ${p.fecha}
`; w.appendChild(card); }); }); guardarKanbanStorage(); } function drag(ev, id) { ev.dataTransfer.setData("text", id); } function allowDrop(ev) { ev.preventDefault(); } function drop(ev, destCol) { ev.preventDefault(); const id = ev.dataTransfer.getData("text"); const p = PROSPECTOS.find(x => x.id === id); if (p && p.col !== destCol) { p.col = destCol; renderizarKanban(); dispararSeguimiento(p, destCol); } } function moverCard(id, dir) { const cols = ['nuevo', 'contactado', 'cita', 'propuesta', 'cerrado']; const p = PROSPECTOS.find(x => x.id === id); if (!p) return; const idx = cols.indexOf(p.col); const nextIdx = idx + dir; if (nextIdx >= 0 && nextIdx < cols.length) { p.col = cols[nextIdx]; renderizarKanban(); dispararSeguimiento(p, p.col); } } function dispararSeguimiento(p, col) { if (col === 'nuevo') return; const plantilla = PLANTILLAS_SEGUIMIENTO[col] || ''; const texto = plantilla.replace('{NOMBRE}', p.nombre).replace('{MATERIA}', p.materia); const m = document.getElementById('modal-seguimiento-auto'); m.style.display = 'block'; document.getElementById('seg-explicacion').textContent = `El prospecto "${p.nombre}" avanzó a la columna "${col.toUpperCase()}". Mensaje automatizado listo para enviar:`; document.getElementById('seg-texto').value = texto; } function abrirSeguimientoDirecto(id) { const p = PROSPECTOS.find(x => x.id === id); if (p) dispararSeguimiento(p, p.col === 'nuevo' ? 'contactado' : p.col); } function enviarMensajeSimuladoWhatsApp() { const txt = document.getElementById('seg-texto').value; window.open(`https://wa.me/524461216313?text=${encodeURIComponent(txt)}`, '_blank'); document.getElementById('modal-seguimiento-auto').style.display = 'none'; } function guardarKanbanStorage() { try { localStorage.setItem(KANBAN_STORAGE_KEY, JSON.stringify(PROSPECTOS)); } catch(e) {} } function restablecerProspectosEjemplo() { PROSPECTOS = [...PROSPECTOS_INICIALES]; renderizarKanban(); calcularROI(); } function calcularROI() { const hon = parseFloat(document.getElementById('roi-honorario').value) || 25000; const cerrados = 18; // Clientes cerrados del mes const total = hon * cerrados; document.getElementById('roi-resultado').textContent = `$${total.toLocaleString('es-MX')} MXN`; } window.addEventListener('DOMContentLoaded', () => { initKanban(); });