Sistema completo de calificación de leads con Agente de Voz IA + Meta Ads + N8N usando Claude Code
Construye en 2 horas un sistema automatizado que captura leads desde Meta Ads, los contacta mediante un agente de voz con IA, extrae información clave de la conversación y notifica a tu equipo solo cuando el lead está cualificado para comprar.
Por Martin Reche ·
Martin Reche · Sistemas de conversión con IA para negocios
Hemos construido sistemas de conversión para más de 50 negocios: desde el anuncio en Meta Ads hasta el cliente cerrado, pasando por la cualificación del lead y la venta. Todo lo que ves en esta guía está funcionando en negocios reales.
INTRODUCCIÓN
El sistema que califica leads mientras duermes
Este tutorial te guiará para construir un ecosistema completo de automatización comercial utilizando Claude Code como orquestador principal. El sistema captura leads desde publicidad en Meta (Facebook/Instagram), los contacta inmediatamente mediante un agente de voz con inteligencia artificial, extrae datos estructurados de la conversación y notifica a tu equipo comercial solo cuando el lead cumple criterios de cualificación específicos.
¿Por qué esto cambia el juego? Antes, este proyecto tomaba 1-2 semanas de desarrollo entre programadores, diseñadores y especialistas en ads. Ahora, usando Claude Code conectado mediante MCPs (Model Context Protocol) a tus herramientas, lo construyes en menos de 2 horas.
El flujo completo
1. Publicidad
Crea campaña en Meta Ads con formulario de captura
2. Captura
Webhook envía datos del lead a N8N automáticamente
3. Contacto
Agente de voz IA llama al lead en menos de 60 segundos
4. Análisis
IA extrae dolor, urgencia, CRM usado y estado emocional
5. Cualificación
Si califica, notifica al equipo por Slack con toda la info
STACK TECNOLÓGICO
Herramientas y requisitos necesarios
Claude Code (Anthropic)
IDE conversacional con capacidad de ejecutar código y conectar APIs mediante MCP
npm install -g @anthropic-ai/claude-codeCuenta en Retell AI
Plataforma para construir agentes de voz conversacionales con LLMs
https://www.retellai.com/N8N (Self-hosted o Cloud)
Orquestador de workflows de automatización con capacidad de webhooks
docker run -it --rm -p 5678:5678 n8nio/n8nMeta Business Manager
Acceso a Meta Ads para crear campañas con formularios de leads instantáneos
business.facebook.comAirtable
Base de datos para almacenar leads y resultados del análisis post-llamada
airtable.comSlack (opcional)
Canal para notificaciones internas cuando un lead califica
api.slack.com/appsMCP (Model Context Protocol): Es el protocolo que permite a Claude Code conectarse directamente a tus herramientas como si fuera un usuario humano, pero mediante APIs. Necesitarás configurar MCPs para N8N y Retell AI.
CONFIGURACIÓN INICIAL
Preparar Claude Code y los MCPs
Instalar y autenticar Claude Code
Claude Code es la herramienta central que actuará como tu equipo de desarrollo. Se instala mediante npm y requiere autenticación con tu cuenta de Anthropic.
npm install -g @anthropic-ai/claude-code
claude-auth loginConfigurar los MCPs (Model Context Protocol)
Los MCPs son las 'habilidades' que le das a Claude Code para que interactúe con plataformas externas. Necesitas configurar MCPs para N8N (gestión de workflows) y Retell AI (gestión de agentes de voz). Estos se configuran en el archivo de configuración de Claude Code.
{
"mcpServers": {
"n8n": {
"command": "npx",
"args": ["@modelcontextprotocol/server-n8n"],
"env": {
"N8N_API_KEY": "tu_api_key_de_n8n",
"N8N_HOST": "https://tu-instancia.n8n.cloud"
}
},
"retell": {
"command": "npx",
"args": ["@modelcontextprotocol/server-retell"],
"env": {
"RETELL_API_KEY": "sk_tu_api_key_de_retell"
}
}
}
}Seguridad API Keys: Nunca compartas estas claves en el chat de Claude Code. Guárdalas en variables de entorno o en el archivo de configuración MCP seguro. Claude Code accederá a ellas mediante el protocolo, no necesitas pegarlas en el chat.
¿Te trabas en algún paso? Lo vemos en una llamada desde 49€, con acciones por escrito.
Ver sesionesWORKFLOW 1: DISPARADOR
Conectar Meta Ads → N8N → Retell AI
Este workflow se ejecuta instantáneamente cuando alguien completa el formulario en tu anuncio de Meta. Su función es recibir los datos del lead, guardarlos en Airtable y disparar la llamada del agente de voz.
Crear el webhook en N8N
En N8N, crea un nuevo workflow y añade un nodo 'Webhook'. Configúralo como método POST y copia la URL generada. Esta URL es la que configurarás en Meta Ads para que envíe los datos del formulario.
{
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "meta-lead-capture",
"responseMode": "responseNode",
"options": {}
},
"name": "Webhook Meta Ads",
"type": "n8n-nodes-base.webhook",
"typeVersion": 1,
"position": [250, 300]
}
]
}Configurar el formulario de Meta Ads
En Meta Ads Manager, crea una campaña de generación de leads con formulario instantáneo. Configura los campos: Nombre, Teléfono, Email, Nombre de empresa, Leads por mes (cantidad), CRM actual. En la configuración de 'Configuración de webhook', pega la URL del webhook de N8N.
Campos obligatorios para personalización: El teléfono es crítico (para llamar), pero también captura el nombre y empresa para que el agente de voz pueda personalizar la llamada diciendo: 'Hola [Nombre], vi que trabajas en [Empresa]...'
Formatear datos y guardar en Airtable
Añade un nodo 'Code' en N8N para formatear los datos recibidos del webhook y extraer las variables necesarias. Luego conecta con el nodo de Airtable para crear un registro inicial del lead.
// Mapeo de datos desde Meta Ads
const leadData = {
leadId: $input.first().json.body.lead_id || $input.first().json.body.id,
nombre: $input.first().json.body.full_name || $input.first().json.body.name,
telefono: $input.first().json.body.phone_number,
email: $input.first().json().json.body.email,
empresa: $input.first().json.body.company_name,
leadsPorMes: $input.first().json.body.leads_per_month,
crmActual: $input.first().json.body.current_crm,
timestamp: new Date().toISOString(),
estado: "Nuevo - Pendiente de llamada"
};
return [{json: leadData}];Integración con Retell AI para disparar la llamada
Añade un nodo HTTP Request en N8N que se conecte a la API de Retell AI para crear la llamada. Debes usar el endpoint POST /v2/create-phone-call con el número del lead y las variables dinámicas para personalizar el contexto del agente.
{
"method": "POST",
"url": "https://api.retellai.com/v2/create-phone-call",
"headers": {
"Authorization": "Bearer {{$env.RETELL_API_KEY}}",
"Content-Type": "application/json"
},
"body": {
"from_number": "+1234567890",
"to_number": "={{ $json.telefono }}",
"override_agent_id": "agente_sofia_001",
"retell_llm_dynamic_variables": {
"nombre_lead": "={{ $json.nombre }}",
"empresa": "={{ $json.empresa }}",
"crm_actual": "={{ $json.crmActual }}",
"leads_mes": "={{ $json.leadsPorMes }}",
"tiempo_transcurrido": "menos de 60 segundos"
}
}
}Configuración de Outbound en Retell: Antes de probar, asegúrate de que tu agente en Retell AI tenga habilitada la capacidad de llamadas salientes (Outbound) y que el número from_number esté verificado y configurado en tu dashboard de Retell.
CONFIGURACIÓN DEL AGENTE
Crear el agente de voz 'Sofía' en Retell AI
El agente de voz es el corazón del sistema. Debe sonar humano, entender el contexto del negocio inmobiliario (o tu industria), hacer preguntas de descubrimiento y determinar si el lead es cualificado según criterios específicos.
Configurar el prompt del agente
En Retell AI, crea un agente nuevo y configura el LLM con un prompt detallado que incluya: su nombre (Sofía), el contexto de la empresa, el objetivo de la llamada (calificación), las preguntas obligatorias que debe hacer, y los criterios para determinar si califica o no.
Eres Sofía, asistente virtual de Nova (empresa de agentes de voz IA para inmobiliarias).
CONTEXTO: El lead {{nombre_lead}} de {{empresa}} completó un formulario hace {{tiempo_transcurrido}} solicitando información sobre nuestro servicio de agentes de voz que atienden llamadas perdidas para inmobiliarias.
TU OBJETIVO: Realizar una llamada de descubrimiento de 3-5 minutos para determinar si es un lead cualificado.
DATOS QUE DEBES EXTRAER OBLIGATORIAMENTE:
1. Dolor principal: ¿Por qué pierden llamadas? ¿Cuántas aproximadamente?
2. Volumen: ¿Cuántos leads entran por mes actualmente?
3. Equipo: ¿Cuántos comerciales tienen?
4. Timing: ¿Qué tan urgente es solucionar esto? (Escala 1-10)
5. CRM: ¿Qué sistema usan actualmente?
6. Horario preferido: ¿Cuándo prefieren que los contacte el equipo comercial?
CRITERIOS DE CUALIFICACIÓN (Marca como CUALIFICADO si cumple 3 de 4):
- Pierde más de 20 llamadas al mes
- Tiene al menos 3 agentes comerciales
- Urgencia mayor a 7/10
- Usa CRM (cualquiera)
INSTRUCCIONES DE COMPORTAMIENTO:
- Sé conversacional, no robótica
- Usa muletillas naturales ('mm', 'vale', 'entiendo')
- Si no califica, sé amable pero directa al despedirte
- Si califica, confirma datos y agenda siguiente contacto
- NUNCA digas que eres una IA o robotConfigurar la voz y personalidad
En Retell AI, selecciona una voz que suene natural y profesional. Configura parámetros como: velocidad de habla (recomendado 0.9-1.0), tono, y activa opciones de 'fillers' (muletillas) para que suene más humano. Configura también el nombre del agente y la empresa en las variables estáticas.
Variables dinámicas vs estáticas: Las variables dinámicas ({{nombre_lead}}, {{empresa}}) vienen del webhook de N8N y cambian en cada llamada. Las estáticas (nombre del agente, nombre de tu empresa) se configuran una vez en Retell.
WORKFLOW 2: ANÁLISIS POST-LLAMADA
Procesar resultados: Retell → N8N → Airtable → Slack
Una vez que Sofía cuelga la llamada, Retell AI envía un webhook con el análisis completo de la conversación. Este workflow extrae la información clave, actualiza el registro en Airtable y notifica al equipo si el lead está cualificado.
Configurar el webhook de post-call en Retell
En el dashboard de Retell AI, ve a la configuración de tu agente y en 'Post-Call Analysis' o 'Webhook', configura la URL del segundo webhook de N8N. Retell enviará un payload con el análisis detallado una vez finalizada la llamada.
{
"event": "call_completed",
"call_id": "call_abc123",
"agent_id": "agente_sofia_001",
"call_status": "completed",
"disconnection_reason": "user_hangup",
"post_call_analysis": {
"cualificado": true,
"dolor_principal": "Pierden 30-40 llamadas mensuales por falta de tiempo del equipo comercial",
"numero_agentes": "3-4 comerciales",
"crm_actual": "No tienen CRM formal, usan Excel",
"leads_perdidos_estimados": "30-40",
"tiempo_respuesta_actual": "No responden WhatsApp en horas pico",
"urgencia": "Alta, quiere solución inmediata",
"timing": "Quiere demo esta semana",
"hora_contacto": "Prefiere mañanas (9-11h)",
"sentimiento": "Positivo, muy interesado",
"resumen": "Martín es el fundador, toma decisiones. Frustrado por perder leads. Quiere demo personalizada."
},
"transcript": "[Texto completo de la conversación]",
"duration_seconds": 245,
"recording_url": "https://..."
}Filtrar por estado de llamada en N8N
Retell envía 3 estados diferentes: 'started' (inicio), 'ended' (fin), y 'post_call_analysis' (análisis completo). En N8N, añade un nodo 'IF' o 'Filter' para procesar solo cuando el evento sea 'post_call_analysis', ya que es el único que contiene los datos extraídos por el LLM.
// Solo procesar si es el evento de análisis post-llamada
if ($input.first().json.body.event === "post_call_analysis" ||
$input.first().json.body.post_call_analysis) {
return true;
}
return false;Parsear datos y actualizar Airtable
Extrae los campos del post_call_analysis y actualiza el registro del lead en Airtable. Mapea cada campo extraído (dolor_principal, urgencia, sentimiento, etc.) a las columnas correspondientes en tu base de datos.
const input = $input.first().json.body;
const analysis = input.post_call_analysis || {};
return [{
json: {
leadId: input.call_id,
cualificado: analysis.cualificado ? "Sí" : "No",
dolorPrincipal: analysis.dolor_principal || "No especificado",
numeroAgentes: analysis.numero_agentes || "No especificado",
crmActual: analysis.crm_actual || "No especificado",
leadsPerdidos: analysis.leads_perdidos_estimados || "No especificado",
urgencia: analysis.urgencia || "No especificado",
timing: analysis.timing || "No especificado",
horaContacto: analysis.hora_contacto || "No especificado",
sentimiento: analysis.sentimiento || "Neutral",
resumenEjecutivo: analysis.resumen || "",
duracionLlamada: input.duration_seconds,
urlGrabacion: input.recording_url,
estado: analysis.cualificado ? "Cualificado - Pendiente seguimiento" : "No cualificado",
fechaActualizacion: new Date().toISOString()
}
}];Configurar notificación condicional a Slack
Añade otro nodo 'IF' para verificar si el campo 'cualificado' es true. Si lo es, envía un mensaje detallado al canal de ventas de Slack con todos los datos extraídos para que el equipo comercial actúe inmediatamente.
{
"text": "🎯 NUEVO LEAD CUALIFICADO - LLAMADA COMPLETADA",
"blocks": [
{
"type": "header",
"text": {
"type": "plain_text",
"text": "🔥 Lead Cualificado: {{ $json.nombre }}"
}
},
{
"type": "section",
"fields": [
{
"type": "mrkdwn",
"text": "*Empresa:*\n{{ $json.empresa }}"
},
{
"type": "mrkdwn",
"text": "*Teléfono:*\n{{ $json.telefono }}"
},
{
"type": "mrkdwn",
"text": "*Dolor principal:*\n{{ $json.dolorPrincipal }}"
},
{
"type": "mrkdwn",
"text": "*Leads perdidos:*\n{{ $json.leadsPerdidos }}"
}
]
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Resumen de Sofía:*\n{{ $json.resumenEjecutivo }}"
}
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Próximo paso:* Contactar {{ $json.horaContacto }} | Sentimiento: {{ $json.sentimiento }}"
}
},
{
"type": "actions",
"elements": [
{
"type": "button",
"text": {
"type": "plain_text",
"text": "Escuchar llamada"
},
"url": "{{ $json.urlGrabacion }}",
"style": "primary"
}
]
}
]
}Doble vía de notificación: Configura también una notificación alternativa (menos detallada) para leads NO cualificados, así el equipo puede revisar si alguno merece seguimiento manual o entender por qué no calificaron.
TESTING Y DEBUGGING
Validar el sistema con Claude Code
Antes de activar la campaña publicitaria, debes probar todo el flujo end-to-end. Claude Code puede ayudarte a simular leads, detectar errores y corregir configuraciones automáticamente.
Simular un lead de prueba
Pide a Claude Code que ejecute un test del Workflow 1 enviando un payload JSON simulado al webhook de N8N. Esto verifica que la conexión Meta→N8N→Retell funcione sin necesidad de gastar presupuesto publicitario.
Claude, ejecuta un test end-to-end del Workflow 1:
1. Envía un payload simulado de Meta Ads con estos datos:
- Nombre: Martín Test
- Teléfono: [tu número personal]
- Empresa: Inmobiliaria Test
- Leads por mes: 50
- CRM: Excel
2. Verifica que el webhook responda 200
3. Confirma que se creó el registro en Airtable
4. Verifica que Retell recibió la orden de llamadaDepuración autónoma de errores
Si Claude Code detecta errores (como un 404 en el webhook o credenciales incorrectas), él mismo puede diagnosticar el problema y sugerir soluciones. Por ejemplo, si el workflow de post-call no se ejecuta, verificará si está activado (publicado) en N8N.
Error común: En la nueva versión de N8N, el interruptor de activar/desactivar workflow es visualmente sutil. Si el workflow 2 (post-call) no se ejecuta después de una llamada, 90% de probabilidades de que esté desactivado. Busca el botón 'Active' en la esquina superior derecha del editor.
Prueba de llamada real
Una vez pasado el test simulado, realiza una prueba real: usa tu propio número de teléfono en el formulario de prueba de Meta (o simula el webhook con tu número) y contesta la llamada. Verifica que Sofía mencione tu nombre, haga las preguntas de calificación y que, al terminar, recibas la notificación en Slack con los datos correctos.
MÉTRICAS Y OPTIMIZACIÓN
Dashboard de control y mejora continua
Una vez en producción, necesitas medir el rendimiento del sistema para optimizar tanto el agente de voz como la campaña publicitaria.
📊
Tasa de Cualificación
% de leads que pasan el filtro de Sofía vs total de llamadas. Meta: >30%
☎️
Tasa de Contestación
% de leads que contestan la llamada automática. Meta: >60% (primeros 5 min)
⏱️
Tiempo de Respuesta
Segundos entre formulario y llamada. Debe ser <60 segundos
🎯
Costo por Lead Cualificado
Presupuesto ads / leads cualificados. Clave para ROI
💬
Sentimiento Positivo
% de conversaciones marcadas como positivas/neutras vs negativas
🔊
Duración Promedio
Segundos de llamada. >180s indica buen engagement
Crear vista de métricas en Airtable
En Airtable, crea una vista de 'Dashboard' con gráficos que muestren: volumen de leads por día, tasa de cualificación, distribución de sentimientos, y los principales dolores detectados (tag cloud de los campos de texto libre).
CONCLUSIÓN Y PRÓXIMOS PASOS
Desplegar en producción y escalar
El sistema está completo cuando: (1) Meta Ads envía leads automáticamente, (2) Sofía llama y cualifica en tiempo real, (3) Airtable almacena toda la información estructurada, y (4) Slack notifica instantáneamente a ventas. Desde este punto, puedes escalar presupuesto publicitario o replicar el modelo para otros nichos.
¿Qué pasa si el lead no contesta la primera llamada?
Configura un segundo workflow en N8N que programe un reintento a los 30 minutos y un tercer intento al día siguiente. Retell AI permite programar llamadas futuras mediante su API.
¿Puedo cambiar el criterio de cualificación sin tocar código?
Sí, modifica el prompt del agente en Retell AI y ajusta la lógica condicional en el nodo IF de N8N que envía a Slack. Claude Code puede hacer estos cambios por ti mediante comandos de texto.
¿Funciona para otros sectores además de inmobiliarias?
Absolutamente. Solo necesitas cambiar el prompt de Sofía para adaptarlo a tu industria (ej: concesionarios, clínicas dentales, consultoras) y ajustar las preguntas de descubrimiento a los dolores específicos de ese sector.
¿Cuánto cuesta operar este sistema?
Costos aproximados: Retell AI ($0.05-0.10/minuto de llamada), N8N (gratis self-hosted o $20/mes cloud), Meta Ads (según presupuesto), Claude Code ($20/mes). Para 100 llamadas/mes, costo operativo ≈ $50-100.
Recuerda: Este sistema aprende y mejora. Revisa semanalmente las transcripciones de llamadas no cualificadas para ajustar el prompt de Sofía y detectar falsos negativos (leads buenos que no pasaron el filtro).
¿Quieres la guía paso a paso descargable?
Hemos preparado un PDF completo con todos los comandos exactos, prompts listos para copiar y pegar, y diagramas de flujo de los workflows de N8N para que repliques este sistema sin errores.
Agente de Voz Retell AI - Sofía Cualificadora de Leads Inmobiliarios
Agente de voz IA que contacta a tus leads en menos de 60 segundos y agenda reuniones solo con clientes cualificados.
- Lista para importar directamente en Retell AI
- Sin configurar nada desde cero
- Recibes el archivo JSON por email al instante
Automatización n8n - Disparador Ultrarrápido Meta Ads a Retell AI
Conecta tus formularios de Meta Ads con Retell AI para iniciar llamadas a leads en menos de 1 minuto.
- Lista para importar directamente en Retell AI
- Sin configurar nada desde cero
- Recibes el archivo JSON por email al instante
Automatización n8n - Análisis Post-Llamada y Triaje a Slack
Procesa los datos de tus agentes de voz, actualiza tu CRM y notifica a tu equipo comercial solo lo que importa.
- Importa el workflow en n8n en 2 minutos
- Sin construir nada desde cero
- Recibes el archivo JSON por email al instante
Si quieres ir más rápido
Sistemas de conversión que funcionan, no demos de IA
Soy Martin Reche. Hemos construido sistemas de conversión para más de 50 negocios: desde el anuncio en Meta Ads hasta el cliente cerrado, pasando por la cualificación del lead y la venta. Todo lo que ves en esta guía está funcionando en negocios reales. Si quieres aplicarlo a tu caso, lo vemos en una llamada: te digo qué montar, con qué y en qué orden, y te lo dejo por escrito. Y si prefieres que lo montemos por ti, eso es NovaChat.
Sistemas de conversión
Del anuncio al cliente cerrado: captación, seguimiento y venta en un solo flujo que funciona.
Cualificación de leads
Cada contacto se filtra, se atiende y se lleva a la venta sin que nadie lo persiga a mano.
Agentes de IA que atienden y venden
Voz, WhatsApp, web e Instagram: responden, cualifican y cierran citas 24/7.
Consultoría 1:1
Desde 49 €: te digo qué montar, con qué y en qué orden, por escrito.
Consultoría 1:1 · Google Meet
Una llamada y sales sabiendo qué hacer y qué no
Me cuentas tu caso en un formulario de dos minutos, pagas, eliges hora. Garantía simple: si en los primeros 10 minutos veo que no te puedo ayudar, te devuelvo el importe. Pack de 3 Revisiones por 249 € si quieres que te acompañe 90 días.
49€
30 min · Diagnóstico 1:1
99€
60 min · Revisión 1:1
149€
90 min · Estrategia 1:1
¿Prefieres que lo montemos por ti?
En NovaChat IA construimos agentes de voz, chatbots y automatizaciones para pymes. Tú lo usas, nosotros lo mantenemos.