TL;DR: Para enriquecer leads entrantes con agentes, envía el correo electrónico y el dominio de cada registro a un webhook que inicie la ejecución de un agente. El agente enriquece los datos de la persona en People Data Labs y los de la empresa en Apollo, verifica el nombre contra una lista de sanciones, califica el resultado según tu ICP y registra una tarea por lead. Una persona revisa cada lead cualificado antes de que se envíe una respuesta. Pagas por lead en créditos de Firecrawl, no por usuario.
Cada nuevo registro llega con dos campos útiles: un correo electrónico y el dominio de una empresa. Alguien tiene que convertir eso en una decisión. ¿Se trata de un comprador potencial, un estudiante, un competidor o alguien con quien no puedes hacer negocios legalmente?
La solución habitual es pagar una licencia en una herramienta de enriquecimiento para cada persona que clasifica los leads. Apollo cobra por usuario, y su página de precios indica que todas las licencias de una cuenta comparten un mismo plan. Esto tiene sentido cuando son personas las que realizan las búsquedas. Sin embargo, cuando las hace un agente, la persona que revisa el resultado no necesita ninguna licencia.
Esta guía explica cómo construir ese flujo en Sharkly, usando Claude Code o Codex como entorno de ejecución y Firecrawl Alexandria como capa de datos. Cada precio en créditos que se muestra a continuación corresponde a la tarifa oficial de Firecrawl consultada el 3 de noviembre de 2026. No procesamos un lead real para este artículo, por lo que te recomendamos tomar los totales como ejemplos prácticos y verificar los precios en el playground antes de configurar la integración.
Por qué enriquecer leads entrantes con agentes
El enriquecimiento de leads entrantes consiste en obtener información sobre el puesto, la empresa y el grado de ajuste de un nuevo contacto antes de que una persona le dedique tiempo. Un agente puede realizar las búsquedas, aplicar tus reglas y redactar un informe de un párrafo. La decisión final sobre a quién responder sigue en manos de una persona.
Tres cosas cambian cuando un agente se encarga de las búsquedas:
- La facturación se basa en los leads. Una sola clave de Firecrawl cubre a todos los proveedores. Cada búsqueda tiene un precio fijado en créditos, y las búsquedas sin coincidencias en los proveedores que mencionamos a continuación no tienen coste.
- Las reglas se convierten en un archivo. Tu ICP reside en un archivo revisado que el agente lee en cada ejecución, no en la memoria de un evaluador.
- Cada lead pasa por los mismos controles. El registro número 40 del día se somete a la misma comprobación de sanciones que el primero.
El pipeline de enriquecimiento entrante de un vistazo
| Paso | Proveedor y funcionalidad | Precio de lista | Gratuito cuando |
|---|---|---|---|
| 1. El webhook inicia una ejecución | Sharkly Automation | 0 créditos | Siempre |
| 2. Enriquecer los datos de la persona | People Data Labs person/enrich |
60 créditos | La coincidencia queda por debajo de min_likelihood (404) |
| 3. Enriquecer los datos de la empresa | Apollo companies/bulk-enrich |
30 créditos por empresa coincidente | El dominio no coincide |
| 4. Verificar contra listas de sanciones | OpenSanctions (opensanctions-org) |
Consultar con find-tools |
Nunca lo des por sentado |
| 5. Calificar y enrutar | Tu archivo de reglas | 0 créditos | Siempre |

Paso 1: Un webhook inicia la ejecución del enriquecimiento
En Sharkly, una Automation es una regla perteneciente a un Space que asigna trabajo repetible a un Agent o Crew. Uno de sus tipos de activadores es un webhook: una URL secreta que acepta solicitudes POST de otro servicio. El backend de tu proceso de registro envía el nuevo lead a través de este método.
# From your signup handler. The URL is a secret; keep it in your app's env.
curl -X POST "$SHARKLY_LEAD_WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d '{"signup_id": "su_10482", "email": "[email protected]", "domain": "example-corp.com"}'
Sharkly muestra la URL completa una sola vez, cuando creas o regeneras el activador. A partir de ese momento, la tarjeta del activador solo indica que la URL está activa. Puedes añadir un secreto de firma para que las solicitudes también deban superar la verificación de firma.

Un detalle clave define el diseño: una Automation inicia la ejecución de un agente, no una tarea. Por ello, las instrucciones le indican al agente que registre la tarea del lead por sí mismo al finalizar. Los detalles de la ejecución conservan la carga útil del activador, lo que proporciona a cada lead un registro de los datos recibidos.
Paso 2: Enriquecer los datos de la persona a partir del correo electrónico
person/enrich de People Data Labs tiene un precio fijado de 60 créditos por llamada. Un email es suficiente como parámetro de entrada. El ajuste que controla tu gasto es min_likelihood, que va del 1 al 10 y tiene un valor predeterminado de 2. Si lo aumentas, las coincidencias dudosas devolverán un error 404 en lugar de un registro. La página del proveedor en Firecrawl lo explica con total claridad: «aquí un 404 es gratis, pero un registro erróneo no».
// enrich-lead.mjs: one call per signup, key injected as $FIRECRAWL_API_KEY
const call = (alexandria) =>
fetch("https://api.firecrawl.dev/v2/scrape", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.FIRECRAWL_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ alexandria }),
}).then((r) => r.json());
const person = await call({
provider: "people-data-labs",
capability: "person/enrich",
options: { email: lead.email, min_likelihood: 6, titlecase: true },
});
const p = person.alexandria?.[0];
if (p?.error) brief.errors.push(p.error); // check every result before using it
El registro incluye alrededor de 150 campos. Tu informe solo necesita cinco de ellos. Con valores de ejemplo, la parte que conserva el agente se ve así:
{
"full_name": "Jordan Example",
"job_title": "Director Of Platform Engineering",
"job_company_name": "Example Corp",
"linkedin_url": "linkedin.com/in/placeholder",
"likelihood": 8
}
Presta atención también al límite de cuota. A través de Alexandria, People Data Labs permite 50.000 llamadas a la API al año por organización cliente entre los endpoints de personas y empresas. Los reintentos cuentan para el total, y la cuota se reinicia el 1 de enero en horario UTC.
Paso 3: Enriquecer los datos de la empresa a partir del dominio
Los datos de empresa de Apollo abarcan financiación, número de empleados y tecnologías utilizadas. El propio ejemplo de Firecrawl utiliza la funcionalidad companies/bulk-enrich, que admite hasta diez dominios por llamada. La comparativa de Firecrawl de octubre de 2026 la sitúa en 30 créditos por empresa encontrada, siendo gratuitos los dominios sin coincidencia.
const company = await call({
provider: "apollo",
capability: "companies/bulk-enrich",
options: { "domains[]": [lead.domain] },
});
const org = company.alexandria?.[0]?.data?.organizations?.[0];
// org.name, org.estimated_num_employees, funding and technology fields
La página de Apollo en Alexandria incluye una función integrada llamada «CRM account data refresh». Esta actualiza los datos de las cuentas según su dominio y compara los nuevos valores con lo que ya contiene el CRM. Se trata de la misma llamada, pero orientada a tus cuentas existentes en lugar de a nuevos registros.
Paso 4: Verificar el lead contra una lista de sanciones
La categoría People en Alexandria incluye OpenSanctions, una base de datos de sanciones, PEP y personas de interés, además de la UK Sanctions List. La fase de exploración (discovery) es gratuita, así que haz que el agente localice la funcionalidad de verificación y su precio antes de realizar la primera llamada de pago:
firecrawl find-tools --options '{"providers": ["opensanctions-org"]}' --include-costs
La funcionalidad de dataset de OpenSanctions muestra un coste de 5 créditos por ejecución. No asumas que la búsqueda de entidades cuesta lo mismo; revisa el precio que devuelve find-tools. Comprueba también la licencia: OpenSanctions publica sus datos bajo CC BY-NC 4.0 y comercializa licencias independientes para verificaciones comerciales, por lo que un flujo de leads empresarial requiere la licencia adecuada.
Una coincidencia no implica que el agente descarte el lead. Simplemente significa que la tarea se asigna a una persona con la información de la coincidencia adjunta.
Paso 5: Calificar el ajuste con respecto a tu ICP
La calificación no tiene coste porque evalúa campos por los que ya pagaste. Define las reglas en una Sharkly Skill, de modo que cada ejecución consulte el mismo archivo y cualquier cambio en él pase por una revisión.
# inbound-icp.md (owner: head of sales)
qualify_if: employees >= 50 AND title in [Director, VP, Head, CTO] AND sanctions_match == false
nurture_if: employees < 50 OR title not senior
disqualify_if: free_email_domain OR known_competitor_domain
on_sanctions_match: route to Sales review with the match, never auto-reply
brief_fields: [name, title, company, employees, funding, score, reason, credits_spent]
Enrutar el lead en el tablero
El enrutamiento es donde Sharkly demuestra su verdadero valor. Los estados de las tareas se pueden configurar por tipo de tarea, y cada estado pertenece a una categoría fija. En el caso de los leads, basta con tres estados:
| Estado | Categoría | Responsable | Siguiente paso |
|---|---|---|---|
| Sales review | Unstarted | Una persona | Informe y borrador de respuesta en la tarea, revisados antes de enviarse |
| Nurture | Backlog | Nadie | Espera a una campaña posterior |
| Disqualified | Canceled | Nadie | Se conserva con el motivo indicado, sin más ejecuciones |
El agente crea la tarea como último paso de su ejecución:
sharkly task create \
--title "Lead: Example Corp (Director Of Platform Engineering)" \
--body-file brief.md \
--status "Sales review" \
--assignee <member> --output json
La asignación llega a la Inbox de la persona como una señal Primary. Si el agente redacta un primer borrador de respuesta, este se incluye en el cuerpo de la tarea. El agente nunca lo envía por su cuenta. Este punto de control sigue el mismo patrón que describimos en human-in-the-loop coding agents.
Desglose de créditos por lead
Para un lead en el que coinciden ambos enriquecimientos, los precios de lista se desglosan de la siguiente manera:
| Llamada | Créditos |
|---|---|
People Data Labs person/enrich |
60 |
Apollo companies/bulk-enrich (1 matched domain) |
30 |
| Sanctions screen | Precio de find-tools |
| Scoring and routing | 0 |
| Total antes de la verificación | 90 |
Según los precios de Firecrawl, el plan Hobby cuesta 19 $ por 5.000 créditos al mes, es decir, 0,0038 $ por crédito. Eso sitúa el coste de 90 créditos en 0,342 $ por lead. El plan Standard cuesta 99 $ por 100.000 créditos, o 0,00099 $ por crédito, con lo que el mismo lead costaría 0,0891 $. Omite la llamada de enriquecimiento de empresa en dominios de correo gratuito como gmail.com; de lo contrario, pagarás 30 créditos solo para enterarte del número de empleados de Google.
Con 100 leads coincidentes al mes gastarías 9.000 créditos. Como supera los 5.000 del plan Hobby, tendrías que comprar créditos adicionales o pasar a Standard. Haz este cálculo con tu propio volumen antes de elegir un plan.
Una advertencia respecto a la comparación por licencias: Apollo cobra por usuario. Clay no: su página de precios indica usuarios ilimitados por espacio de trabajo en todos los planes. El argumento aquí va más allá de un simple «cobrar por usuario es malo». Cuando los agentes realizan las búsquedas, la facturación depende del volumen de leads, no del número de personas que los leen.
Cómo integra Sharkly todo el flujo
Claude Code o Codex ejecutan las llamadas. Sharkly se encarga de que todo el trabajo asociado permanezca visible.
- La clave se mantiene fuera de las tareas. Configura
FIRECRAWL_API_KEYen las Environment Variables del Agent. Sharkly muestra estos ajustes en texto plano a los administradores del Agent, por lo que conviene usar una clave con permisos limitados a esta tarea. - Los agentes no consumen licencias de usuario. En Sharkly, una licencia corresponde a una persona. Los Agents, Crews, Computers y Runtimes no ocupan ninguna.
- Las ejecuciones dejan registro. El historial de ejecuciones de la Automation muestra los datos del activador, la ejecución del agente y cualquier motivo de error.
Antes de poner el webhook en producción, utiliza la opción Run now en la Automation con una carga útil de prueba. Luego, revisa algunas ejecuciones antes de habilitar los borradores automáticos de respuestas. La guía de Automations detalla cada tipo de activador.
Empieza con un solo webhook
Para enriquecer leads entrantes con agentes, empieza poco a poco. Un webhook, un agente, dos llamadas de enriquecimiento, un archivo de reglas y un estado de revisión. Pruébalo con tus próximos 20 registros y lee cada informe antes de que se envíe una respuesta. Comenzar con Sharkly es gratuito, y el consumo de modelos se gestiona a través del plan de Claude Code o Codex que ya tengas vinculado a tu Runtime.
Preguntas frecuentes
¿Cuánto cuesta enriquecer un lead entrante con Firecrawl?
Según las tarifas oficiales de Firecrawl, un lead que coincida tanto en People Data Labs como en Apollo cuesta 90 créditos antes de la verificación de sanciones. Eso equivale aproximadamente a 0,34 $ en el plan Hobby y a 0,09 $ en Standard, con facturación mensual.
¿Consume créditos un enriquecimiento fallido?
En estos dos proveedores, no. Si una coincidencia en People Data Labs no alcanza tu min_likelihood, devuelve un error 404 gratuito; y el enriquecimiento masivo de empresas de Apollo no cobra por los dominios sin coincidencia.
¿Puede el agente responder al lead por su cuenta?
Es mejor evitarlo. El agente crea la tarea con un borrador y es una persona quien envía la respuesta tras revisarla.
¿Es OpenSanctions gratuito para uso comercial?
No. Sus datos se distribuyen bajo licencia CC BY-NC 4.0, y las verificaciones comerciales requieren una de sus licencias de pago. Conviene comprobarlo antes de integrarlo en un flujo de ventas.
¿Necesito una licencia de Apollo para esto?
No se necesita ninguna licencia para las llamadas del agente, ya que se ejecutan a través de tu clave de Firecrawl. Es posible que Firecrawl solicite al administrador de la organización que acepte previamente los términos de datos del proveedor; en tal caso, el error que aparece es THIRD_PARTY_DATA_TERMS_REQUIRED.
¿Qué ocurre si Firecrawl solicita aceptar los términos en mitad de una ejecución?
La respuesta incluye una URL en requiresAction.url. El administrador de la organización puede aceptar los términos desde allí. La documentación de Firecrawl indica que los agentes necesitan autorización explícita del usuario antes de aceptar términos, por lo que el agente debe dejar la tarea en espera de una persona.



