Outreach con IA: prospeccion + mensaje personalizado + sin spam

AgentesNexo
··6 min lectura

Para que sirve esta guia

Para generar leads de forma sistematica sin que el equipo comercial pierda horas buscando prospectos y redactando mensajes uno por uno. Esta guia es para equipos de ventas, founders y operadores de negocios B2B que quieren escalar el primer contacto sin escalar headcount.

Un pipeline de outreach efectivo tiene tres partes: encontrar quien vale la pena contactar, decir algo especifico y relevante a esa persona, y hacerlo al ritmo adecuado para no quemar el canal. Un agente IA puede resolver las tres si se configura correctamente.

Requisitos previos

  • Fuente de datos de prospectos: Google Maps API, Apollo, LinkedIn Sales Navigator o una lista propia en CSV
  • Cuenta de email con dominio propio (no Gmail de consumo) o instancia de Evolution API para WhatsApp
  • Acceso a Claude API o un agente configurado con memoria
  • Node.js 20+ o Python 3.11+ para los scripts de automatizacion
  • Variables de entorno configuradas: nunca credenciales en el codigo

Como calificar leads antes de contactar

El error mas comun es volcar 10.000 registros y mandar el mismo mensaje a todos. El agente calificador resuelve esto antes de que llegue al paso de envio.

El agente recibe una lista de empresas (nombre, sitio web, sector, tamano estimado) y devuelve una puntuacion del 1 al 10 con criterios definidos:

typescript
const calificarLead = async (lead: Lead): Promise<CalificacionLead> => {
  const respuesta = await claude.messages.create({
    model: #43a047">"claude-sonnet-4-5",
    max_tokens: 256,
    system: #43a047">`Eres un calificador de leads B2B para servicios de automatizacion con IA.
Criterios:
- Puntuacion 1-10 segun fit con automatizacion de procesos
- Descarta si: sin web, sector excluido (retail informal, gobierno), menos de 5 empleados
- Aprueba si: usa CRM, tiene equipo comercial, sector tech/servicios/salud/logistica`,
    messages: [{ role: #43a047">"user", content: `Califica este lead: ${JSON.stringify(lead)}` }]
  });
  return parsearCalificacion(respuesta.content[0].text);
};

Resultado practico: de 1.000 registros crudos, el agente filtra y deja 150-300 con fit real. Solo esos avanzan al siguiente paso.

Como enriquecer el contexto antes de escribir

Un mensaje personalizado necesita contexto especifico. El agente visita el sitio web del prospecto, lee su pagina de "Acerca de" o su ultimo post, y extrae tres datos clave: que hace la empresa, cual es su desafio visible, que elemento concreto mencionar para demostrar que se leyo.

bash
# Enriquecimiento via scraping ligero
curl -s #43a047">"https://r.jina.ai/https://empresa.com/about" | \
  claude -p #43a047">"Extrae en JSON: {sector, problema_visible, dato_relevante}. Max 3 oraciones cada campo."

Con esos datos, el agente tiene suficiente para generar un mensaje que no parezca de plantilla masiva.

Como generar mensajes especificos por canal

La regla del outreach efectivo: una sola call to action, algo especifico de la empresa, no mas de 80 palabras en el cuerpo.

typescript
const generarMensaje = async (lead: LeadEnriquecido, canal: 'email' | 'whatsapp'): Promise<string> => {
  const instruccion = canal === 'email'
    ? #43a047">`Redacta un email de primer contacto (asunto + cuerpo, max 80 palabras en el cuerpo).
       Menciona: ${lead.dato_relevante}. Problema que resolvemos: ${lead.problema_visible}.
       CTA: una sola pregunta cerrada para agendar 15 minutos.
       Tono: directo, sin floritura, sin "espero que estes bien".`
    : #43a047">`Redacta un mensaje de WhatsApp de primer contacto (max 60 palabras).
       Sin saludos genericos. Una sola pregunta al final.`;

  const respuesta = await claude.messages.create({
    model: #43a047">"claude-haiku-4-5",
    max_tokens: 200,
    messages: [{ role: #43a047">"user", content: instruccion + `\nDatos: ${JSON.stringify(lead)}` }]
  });
  return respuesta.content[0].text;
};

Se usa Haiku para esta tarea porque es rapido y economico. Para generar 200 mensajes de 80 palabras, Haiku produce resultados comparables a Sonnet al 10% del costo. Sonnet se reserva para la calificacion, donde el razonamiento importa mas.

Como enviar sin quemar el canal

Este paso es donde la mayoria de los sistemas de outreach automatizado fallan. Enviar demasiado rapido activa filtros antispam o provoca bloqueos. Las reglas minimas que funcionaron en produccion:

Email:

  • Maximo 50 nuevos contactos por dia con un dominio recien calentado; 100-150 una vez establecida la reputacion
  • Intervalo aleatorio entre envios: 3 a 8 minutos (no exacto: un intervalo fijo es senal de bot)
  • Tasa de rebote objetivo: por debajo del 2%. Si supera ese umbral, pausar y limpiar la lista

WhatsApp via Evolution API:

  • Maximo 30-50 mensajes nuevos por dia con una cuenta sin historial previo
  • Delay minimo de 30 a 90 segundos entre mensajes
  • El agente debe variar el texto: mismo mensaje para todos es la forma mas rapida de un bloqueo
typescript
const enviarConDelay = async (mensajes: MensajeConDestinatario[]) => {
  for (const item of mensajes) {
    await enviar(item);
    // Delay aleatorio real: no es lo mismo que Math.random() exacto
    const base = 3 * 60 * 1000;
    const variacion = Math.random() * 5 * 60 * 1000;
    await sleep(base + variacion);
  }
};

Arquitectura del sistema

Fuente de datos (CSV / Apollo / Maps API)
        ↓
Agente calificador (Claude Sonnet)
  — filtra ~20-30% del total con fit real
        ↓
Agente enriquecedor (Jina.ai + Claude Haiku)
  — extrae 3 datos clave por empresa
        ↓
Agente redactor (Claude Haiku)
  — genera mensaje por canal y por perfil
        ↓
Cola de envio con rate limiting real
        ↓
Email (Resend / SMTP propio) o WhatsApp (Evolution API)
        ↓
BD: estado por lead (enviado / abierto / respondio / sin respuesta)
        ↓
Agente de seguimiento (dia 3 si no respondio)

Cada agente opera de forma independiente y escribe en la misma base de datos. El agente de seguimiento es un quinto componente que lee el estado y genera el mensaje de recontacto. En la practica, duplica la tasa de respuesta respecto a no hacer seguimiento.

Lo que aprendimos en produccion

La calificacion es donde esta el ROI. Contactar 200 leads calificados produce mas respuestas que 2.000 sin filtrar. El prompt del agente calificador es lo que mas vale la pena iterar.

Haiku es suficiente para mensajes breves. Para 80 palabras, el resultado es indistinguible de Sonnet en la mayoria de los casos. El ahorro es del 90% en esa tarea especifica.

El followup no es opcional. La mayoria de las respuestas llegan al segundo o tercer contacto, no al primero. Incluirlo en el diseno inicial ahorra tener que volver a construirlo despues.

Dos dominios en paralelo. Rotar el envio entre dos dominios calentados en momentos distintos duplica el volumen diario posible sin afectar la reputacion de ninguno.

Trazar todo. Cada mensaje generado, prompt usado, resultado y timestamp quedan en la BD. Si la tasa de apertura baja, se puede hacer AB testing de prompts sin tocar el codigo.

En resumen

  1. Calificar la lista cruda con un agente: filtrar al 20-30% con fit real antes de gastar en envios
  2. Enriquecer cada lead con 3 datos concretos del sitio o LinkedIn del prospecto
  3. Generar un mensaje especifico por lead y por canal (email o WhatsApp) con Haiku
  4. Enviar con delays aleatorios, limites diarios y trazabilidad por registro
  5. Ejecutar seguimiento automatico a dia 3 para los que no respondieron

Si quieres implementar este pipeline en tu negocio sin construirlo desde cero, en AgentesNexo lo hacemos por ti. Escribenos en agentesnexo.com o por WhatsApp al +591 67564218

Si quieres implementar este pipeline en tu negocio sin construirlo desde cero, en AgentesNexo lo hacemos por ti. Escribenos en agentesnexo.com o por WhatsApp al +591 67564218

Articulos relacionados