Diagnóstico gratuito · 10 minutos
¿Tu empresa sobrevive 14 días sin ti?
8 preguntas que miden qué tan autónoma es tu operación. Obtén tu Índice de Autonomía y un plan de acción concreto.
78%
depende del dueño
81%
sin sistemas vivos
10 min
para tu diagnóstico
Sin spam. Tu resultado llega por lo correo con recomendaciones personalizadas.
01
Autonomíā=��Ʌѥل������(�����ȁ������ĵѕ�Ј�����Q��Ј����(�������������ĵ���ѕ�Ј�����
��ѕ�Ј����(������������ѥ��̈�����ѥ���]Ʌ�����(�����������ĵ��؈�(������������������ĵ�ѕ�������Mѕ���Aɕ�չф�ā����������(���������ѽ��������Ѹ����Ј����ѹ9��Ј�M��ե��є��H���ѽ��(������(����(��((�����M
I8���I��ձ�̀���(�������͍ɕ�������͍ɕ��I��ձЈ�(���������ɕ�ձе��ɐ�����ɕ�ձ�
�ɐ��(�����������ɕ�ձе�啉ɽ܈����ɕ�ձ�ɕ�ѥ������(�����������͍�ɔ���������(������������������͍�ɔ��մ�����͍�ɕ9մ���������(������������������͍�ɔ������������չѽ�������(������(�����������͍�ɔ���ȵ�Ʌ���(�������������͍�ɔ���Ȉ����͍�ɕ �Ȉ���(������(��������齹�A�������(�����́������ɕ�ձеѥѱ������ɕ�ձ�Q�ѱ������(�������������ɕ�ձе���������ɕ�ձ���������(�����������ɕ�ձе��٥��Ȉ���(�����������ɕ����ݸ�ѥѱ���Qԁ�չ�Յ�����ȁ�����ͧ��(�����������ɕ����ݸ��ɥ������ɕ����ݹɥ�����(�����������ф������(�������������ф��������ɍձ��Y%@�
܁M�ͧ��Ʌ�եф��(�������������ф�����������M�ͧ����������ѥ���=��Ʌѥټ�����ԁ�����(�������������ф��Ո��%���ѥ������́��̀ȁ�Օ���́�����ѕ�����ɥ�������́䁑�͗Ņ��́�ԁ����������ѽ�������M�������ɽ��ͼ���(�����������Ѹ��ф�����х1������ɕ������輽����������ɍձ�٥���������ѥ�����ɍձ��٥���хɝ���}������������ȁ���͕ͧ��Ʌ�եф��H��(������(�����������ɕ�ձе���ѕȈ�(���������ѽ��������Ѹ�ɕ�х�Ј����ѹI��х�Ј�Y��ٕȁ�����������ѽ��(������������������͡�ɔ����Ј�
�����є���є�ѕ�Ё�����ԁ��ե�����ɕ�ѥټ������(������(����(��((�͍ɥ���(����R�R�R �
=9%UI
‘M8�%IQ 1��R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R (���ĸ�Y���������輽���х���������ɕ�є�ѽ����(���ȸ�
ɕ��ո�ѽ��������͍�������ф�ɕ��ɑ���ɥє����Ʉ������͔���ɍձ��Y%@��P�1���́Q��Ё�ѽ������(���̸�A�������ѽ���������)����Ё%IQ 1}Q=-8����эё�ٽ ����@����������������ō����ō�����х��ᅉ��Ʌ��ř������ፔᕈɈ���ݕ���)����Ё%IQ 1} M�= ‘appODjgOu21oEpBjY’;
const AIRTABLE_TABLE = ‘tblMt125rJp1LYivj’;
const AIRTABLE_FIELDS = {
nombre : ‘fldI4rL2u3Ytqj9wo’,
email : ‘fldTRUTXAcTtR5Ywb’,
fecha : ‘fldr9VeovFXeTwY9G’,
puntaje : ‘fldPVmpzlltPv4Uyo’,
zona : ‘fldIP8i0h96mJVItR’,
estado : ‘fldT856yozKPQbOgK’,
whatsapp : ‘fldQuYWViGYsph9Qt’,
};
const CAL_LINK = ‘https://cal.com/circulovip/diagnostico-circulo-vip’;
let airtableRecordId = null;
async function captureLeadAirtable(nombre, email, whatsapp) {
if (!AIRTABLE_TOKEN || AIRTABLE_TOKEN === ‘TU_PERSONAL_ACCESS_TOKEN_AQUI’) return;
try {
const fields = {
[AIRTABLE_FIELDS.nombre] : nombre,
[AIRTABLE_FIELDS.email] : email,
[AIRTABLE_FIELDS.fecha] : new Date().toISOString(),
[AIRTABLE_FIELDS.estado] : ‘Capturado’,
};
if (whatsapp) fields[AIRTABLE_FIELDS.whatsapp] = whatsapp;
const res = await fetch(`https://api.airtable.com/v0/${AIRTABLE_BASE}/${AIRTABLE_TABLE}`, {
method: ‘POST’,
headers: { ‘Authorization’: `Bearer ${AIRTABLE_TOKEN}`, ‘Content-Type’: ‘application/json’ },
body: JSON.stringify({ fields })
});
const data = await res.json();
if (data.id) airtableRecordId = data.id;
} catch(e) { /* silencioso */ }
}
async function updateLeadAirtable(puntaje, zona) {
if (!AIRTABLE_TOKEN || AIRTABLE_TOKEN === ‘TU_PERSONAL_ACCESS_TOKEN_AQUI’ || !airtableRecordId) return;
try {
await fetch(`https://api.airtable.com/v0/${AIRTABLE_BASE}/${AIRTABLE_TABLE}/${airtableRecordId}`, {
method: ‘PATCH’,
headers: { ‘Authorization’: `Bearer ${AIRTABLE_TOKEN}`, ‘Content-Type’: ‘application/json’ },
body: JSON.stringify({ fields: {
[AIRTABLE_FIELDS.puntaje] : puntaje,
[AIRTABLE_FIELDS.zona] : zona,
[AIRTABLE_FIELDS.estado] : ‘Completado’,
}})
});
} catch(e) { /* silencioso */ }
}
// ─────────────────────────────────────────────────────────────────────────
const questions = [
{
tag: “Ausencia Directiva”,
text: “Si te tomas 14 días de vacaciones sin conexión, ¿qué ocurre con la facturación y las entregas?”,
context: “Sé honesto: piensa en la última vez que te ausentaste más de una semana.”,
options: [
{ letter: “A”, text: “La empresa se paraliza, los clientes se quejan y se postergan decisiones clave hasta mi regreso.”, pts: 0 },
{ letter: “B”, text: “El equipo sigue apagando incendios, pero con retrasos y fricciones operativas.”, pts: 5 },
{ letter: “C”, text: “La empresa factura y entrega con normalidad gracias a roles y sistemas predefinidos.”, pts: 10 },
]
},
{
tag: “Documentación (SOPs)”,
text: “¿Dónde vive el conocimiento operativo de tu empresa?”,
context: “El conocimiento no documentado es capital que se va con cada empleado que renuncia.”,
options: [
{ letter: “A”, text: “En mi cabeza y en la memoria de colaboradores «insustituibles».”, pts: 0 },
{ letter: “B”, text: “Hay manuales antiguos o carpetas dispersas en Drive/Word que nadie lee ni actualiza.”, pts: 5 },
{ letter: “C”, text: “Base de conocimiento centralizada con checklists y SOPs vinculados a las tareas diarias.”, pts: 10 },
]
},
{
tag: “Onboarding y Rotación”,
text: “¿Cuánto tarda un nuevo empleado en ser 100% productivo sin supervisión constante?”,
context: “Cada semana de integración ineficiente tiene un costo real en productividad y errores.”,
options: [
{ letter: “A”, text: “Más de 2 meses absorbiendo tiempo diario del dueño o jefes de área.”, pts: 0 },
{ letter: “B”, text: “Entre 3 y 5 semanas mediante capacitación informal y aprendizaje por prueba y error.”, pts: 5 },
{ letter: “C”, text: “Menos de 10 días siguiendo protocolos estandarizados, micro-videos y guías paso a paso.”, pts: 10 },
]
},
{
tag: “Delegación y Ownership”,
text: “Cuando asignas una responsabilidad a un líder de área, ¿qué obtienes?”,
context: “Delegar tareas no es lo mismo que delegar responsabilidad. ¿Cuál estás logrando?”,
options: [
{ letter: “A”, text: “Preguntas constantes sobre cómo proceder ante cualquier imprevisto menor.”, pts: 0 },
{ letter: “B”, text: “Ejecución de la tarea básica, pero sin iniciativa para optimizar ni resolver fallos.”, pts: 5 },
{ letter: “C”, text: “Ownership total: el líder ejecuta, propone mejoras y responde por los resultados del flujo.”, pts: 10 },
]
},
{
tag: “Traspasos Interdepartamentales”,
text: “¿Cómo fluye la información entre Ventas, Operaciones y Cobranzas?”,
context: “Los cuellos de botella interdepartamentales generan hasta un 40% de trabajo duplicado.”,
options: [
{ letter: “A”, text: “Mensajes informales por WhatsApp, datos perdidos y reclamos mutuos entre áreas.”, pts: 0 },
{ letter: “B”, text: “Planillas compartidas que se desactualizan y requieren reuniones constantes.”, pts: 5 },
{ letter: “C”, text: “Flujos sincronizados automáticamente mediante gestor de proyectos y criterios de pase claros.”, pts: 10 },
]
},
{
tag: “Automatización e IA”,
text: “¿Cómo aprovechan las herramientas modernas en tu operación?”,
context: “La brecha entre empresas que automatizan y las que no se duplica cada 18 meses.”,
options: [
{ letter: “A”, text: “El 100% de la carga administrativa (correos, traspasos, avisos) es manual.”, pts: 0 },
{ letter: “B”, text: “Uso básico de ChatGPT para redactar correos, sin integración en los flujos.”, pts: 5 },
{ letter: “C”, text: “Automatizaciones conectadas y Agentes de IA que atienden, filtran y procesan tareas 24/7.”, pts: 10 },
]
},
{
tag: “Atención al Cliente”,
text: “¿Qué sucede cuando entra una consulta o cotización fuera de horario?”,
context: “El 70% de los leads que no reciben respuesta en 5 minutos contactan a la competencia.”,
options: [
{ letter: “A”, text: “Queda sin respuesta hasta el día hábil siguiente (o respondo yo mismo de madrugada).”, pts: 0 },
{ letter: “B”, text: “Un mensaje automático genérico que pide al cliente esperar.”, pts: 5 },
{ letter: “C”, text: “Un Agente IA interactúa, califica el presupuesto y agenda la reunión en el calendario.”, pts: 10 },
]
},
{
tag: “Control de Calidad”,
text: “¿Cómo verificas que una entrega quedó bien hecha?”,
context: “Un error detectado por el cliente cuesta 5–10× más que uno detectado internamente.”,
options: [
{ letter: “A”, text: “Tengo que revisar personalmente cada trabajo antes de enviarlo al cliente.”, pts: 0 },
{ letter: “B”, text: “Confío en el criterio de cada empleado, descubriendo errores cuando el cliente reclama.”, pts: 5 },
{ letter: “C”, text: “Checklist de calidad estandarizado que el equipo valida antes de cerrar cada entrega.”, pts: 10 },
]
},
];
const zones = [
{
min: 0, max: 30,
key: ‘a’,
pillClass: ‘zone-a-pill’,
barColor: ‘#8B1A1A’,
label: ‘Zona Crítica’,
title: ‘Negocio Dependiente del Fundador’,
diag: ‘Tu empresa es un autoempleo de alto estrés. La facturación depende de tu presencia y tu capital intelectual está en riesgo constante. El primer paso es documentar los 3 procesos que más tiempo te consumen y asignar ownership claro a un líder de área.’,
},
{
min: 31, max: 60,
key: ‘b’,
pillClass: ‘zone-b-pill’,
barColor: ‘#B87E18’,
label: ‘Zona de Fricción’,
title: ‘Crecimiento Estancado por Falta de Sistemas’,
diag: ‘Tenés mandos medios pero carecen de sistemas que los respalden. Estás perdiendo hasta un 40% de rentabilidad en retrabajos, curvas de aprendizaje lentas y decisiones que escalan innecesariamente. El foco debe estar en estandarizar los traspasos críticos y activar un primer agente de IA.’,
},
{
min: 61, max: 80,
key: ‘c’,
pillClass: ‘zone-c-pill’,
barColor: ‘#2D6A4F’,
label: ‘Zona Autónoma’,
title: ‘Operación Predecible y Escalable’,
diag: ‘Tu empresa opera con alto nivel de autonomía y estructuras que respaldan al equipo. El siguiente nivel está en integrar agentes de IA avanzados para eliminar el 10–20% de fricción restante y escalar sin aumentar la plantilla.’,
},
];
let currentQ = 0;
let answers = new Array(8).fill(null);
let userName = ”;
// Screens
const screenIntro = document.getElementById(‘screenIntro’);
const screenQuestion = document.getElementById(‘screenQuestion’);
const screenResult = document.getElementById(‘screenResult’);
const progressBar = document.getElementById(‘progressBar’);
function showScreen(name) {
[screenIntro, screenQuestion, screenResult].forEach(s => s.classList.remove(‘active’));
document.getElementById(‘screen’ + name).classList.add(‘active’);
const root = document.getElementById(‘quiz-root’);
if (root) root.scrollIntoView({ behavior: ‘smooth’, block: ‘start’ });
else window.scrollTo({ top: 0, behavior: ‘smooth’ });
}
// Start
document.getElementById(‘btnStart’).addEventListener(‘click’, () => {
userName = document.getElementById(‘userName’).value.trim() || ‘tu empresa’;
const email = document.getElementById(‘userEmail’).value.trim();
const whatsapp = document.getElementById(‘userWhatsapp’).value.trim();
currentQ = 0;
answers = new Array(8).fill(null);
// Captura inmediata en Airtable (aunque no termine el test)
captureLeadAirtable(userName, email, whatsapp);
renderQuestion();
showScreen(‘Question’);
updateProgress();
});
function updateProgress() {
const pct = ((currentQ) / questions.length) * 100;
progressBar.style.width = pct + ‘%’;
}
function renderQuestion(direction = 1) {
const wrap = document.getElementById(‘questionWrap’);
wrap.style.animation = ‘none’;
void wrap.offsetWidth;
wrap.style.animation = ‘slideIn 0.4s cubic-bezier(0.4,0,0.2,1) both’;
const q = questions[currentQ];
const num = String(currentQ + 1).padStart(2, ‘0’);
document.getElementById(‘qCounter’).textContent = num;
document.getElementById(‘qTag’).textContent = q.tag;
document.getElementById(‘qText’).textContent = q.text;
document.getElementById(‘qContext’).textContent = q.context;
document.getElementById(‘qStep’).textContent = `Pregunta ${currentQ + 1} de ${questions.length}`;
const btnNext = document.getElementById(‘btnNext’);
btnNext.textContent = currentQ === questions.length – 1 ? ‘Ver mi resultado →’ : ‘Siguiente →’;
btnNext.classList.remove(‘enabled’);
const optWrap = document.getElementById(‘optionsWrap’);
optWrap.innerHTML = ”;
q.options.forEach((opt, idx) => {
const div = document.createElement(‘div’);
div.className = ‘option’;
if (answers[currentQ] === idx) div.classList.add(‘selected’);
div.innerHTML = `
${opt.letter}
${opt.text}
${opt.pts} pts
`;
div.addEventListener(‘click’, () => {
answers[currentQ] = idx;
optWrap.querySelectorAll(‘.option’).forEach(o => o.classList.remove(‘selected’));
div.classList.add(‘selected’);
btnNext.classList.add(‘enabled’);
});
optWrap.appendChild(div);
});
if (answers[currentQ] !== null) btnNext.classList.add(‘enabled’);
}
document.getElementById(‘btnNext’).addEventListener(‘click’, () => {
if (answers[currentQ] === null) return;
if (currentQ < questions.length - 1) {
currentQ++;
updateProgress();
renderQuestion();
} else {
progressBar.style.width = '100%';
showResults();
}
});
function showResults() {
let total = 0;
answers.forEach((a, i) => {
if (a !== null) total += questions[i].options[a].pts;
});
const zone = zones.find(z => total >= z.min && total <= z.max) || zones[0];
document.getElementById('resultGreeting').textContent =
`${userName.split(' ')[0]}, tu Índice de Autonomía Operativa es:`;
// Animate score
const scoreEl = document.getElementById('scoreNum');
let cur = 0;
const target = total;
const dur = 1200;
const start = performance.now();
function step(now) {
const t = Math.min((now - start) / dur, 1);
const ease = 1 - Math.pow(1 - t, 3);
scoreEl.textContent = Math.round(ease * target);
if (t < 1) requestAnimationFrame(step);
else scoreEl.textContent = target;
}
requestAnimationFrame(step);
// Score bar
setTimeout(() => {
const bar = document.getElementById(‘scoreBar’);
bar.style.background = zone.barColor;
bar.style.width = (total / 80 * 100) + ‘%’;
}, 100);
// Zone pill
document.getElementById(‘zonePill’).innerHTML =
`${zone.label} · ${total}/80 puntos
`;
document.getElementById(‘resultTitle’).textContent = zone.title;
document.getElementById(‘resultDiag’).textContent = zone.diag;
// Actualiza Airtable con puntaje y zona
updateLeadAirtable(total, zone.label + ‘ (‘ + total + ‘/80)’);
// Prefill Cal.com link con nombre y email capturados
const capName = document.getElementById(‘userName’).value.trim();
const capEmail = document.getElementById(‘userEmail’).value.trim();
const calUrl = CAL_LINK + ‘?name=’ + encodeURIComponent(capName) + ‘&email=’ + encodeURIComponent(capEmail);
setTimeout(() => {
const ctaLink = document.getElementById(‘ctaLink’);
if (ctaLink) ctaLink.href = calUrl;
}, 100);
// Breakdown
const grid = document.getElementById(‘breakdownGrid’);
grid.innerHTML = ”;
answers.forEach((a, i) => {
const pts = a !== null ? questions[i].options[a].pts : 0;
const div = document.createElement(‘div’);
div.className = ‘breakdown-item’;
div.innerHTML = `
${questions[i].tag}
${pts} / 10 pts
`;
grid.appendChild(div);
});
showScreen(‘Result’);
}
document.getElementById(‘btnRestart’).addEventListener(‘click’, () => {
currentQ = 0;
answers = new Array(8).fill(null);
progressBar.style.width = ‘0%’;
showScreen(‘Intro’);
});
