Apollo/Cognism al CRM

Puntúa personas de Apollo o Cognism y sube al CRM solo los Leads que pasan el umbral (Europe/Madrid).
JSON Apollo/Cognism → CRM: score fit, upsert HubSpot/Pipedrive y checklist RGPD de enriquecimiento de datos B2B en España. Logixb2b · Europe/Madrid · UE.
Descarga el workflow
JSON listo para importar en n8n (Import from File). Sustituye solo REEMPLAZA_* y credenciales.
Qué resuelve este flujo Apollo/Cognism → CRM
Apollo.io y Cognism devuelven listas largas de personas, pero no todas sirven: un intern sin teléfono no vale lo mismo que un Head of Sales con email verificado y móvil directo. Volcar el lote entero al CRM sin filtrar ensucia la base, satura al equipo comercial con ruido y complica cualquier reporting de origen de Lead. Este workflow de n8n calcula un fitScore por persona (email con confianza mínima, teléfono móvil presente, país UE, cargo que encaja con tu ICP) y solo hace upsert en HubSpot o Pipedrive de los Leads que superan un umbral configurable.
El resto no se descarta en silencio: cae en una rama Skip fit bajo umbral que también queda trazada, por si luego quieres revisar el criterio o el proveedor de datos. El flujo funciona igual con Apollo que con Cognism (cambia solo un parámetro provider), así que sirve también para comparar en la práctica qué proveedor te da mejor ratio de Leads que pasan el corte con tu mismo ICP.
El análisis completo de cobertura, precisión de teléfono, precio y RGPD entre ambos proveedores está en el artículo /apollo-io-vs-cognism-comparativa-prospeccion-b2b.
Qué necesitas antes de importar el JSON
Una instancia de n8n (local para probar, o ya en Cloud/VPS) y, cuando quieras conectar datos reales, una cuenta con API key de Apollo.io o de Cognism (no hace falta tener las dos: eliges una con el parámetro provider). También un CRM de destino con acceso API: Private App de HubSpot con scopes de contactos, o api_token de Pipedrive.
Opcionalmente una hoja de Google Sheets con una pestaña llamada Fit (columnas: fecha, batchLabel, provider, email, fitScore, complianceFlag, estado) para dejar constancia de cada lote, y un Incoming Webhook de Slack si quieres que el equipo se entere del resumen sin entrar a n8n.
Define de antemano tu fitThreshold (umbral mínimo de score) y tus icpKeywords (cargos que buscas: ventas, revops, growth…). El JSON llega con placeholders REEMPLAZA_* y YOUR_*_API_KEY a propósito, pensados para sustituirse por credenciales de n8n, nunca pegados en el archivo.
Cómo está construido el workflow
El lienzo abre con el sticky INSTRUCCIONES y el Manual Trigger fit. Config fit Apollo/Cognism (Set) concentra provider, crmProvider, URLs y API keys placeholder de ambos proveedores, minEmailConfidence, requirePhone, icpKeywords, fitThreshold, sheetsId, slackWebhookUrl y batchLabel.
Desde Config salen dos ramas en paralelo: Fetch personas (Apollo/Cognism), un HTTP Request que llega desactivado (disabled) apuntando a la API real, y Payload de prueba (sample), un Code que genera 3 personas de ejemplo con distinto fitScore esperado. Ambas convergen en Normalizar + fitScore, que calcula el score y un complianceFlag por persona.
IF fitScore ≥ umbral separa dos caminos: los que pasan van a Upsert Lead CRM (HTTP, con email como idProperty) → Append log fit Sheets → Slack resumen fit; los que no pasan van a Skip fit bajo umbral (NoOp), una rama vacía a propósito para que puedas engancharle tu propio registro si quieres auditar los descartes. El workflow llega inactive y en timezone Europe/Madrid.
Cómo se calcula el score y el complianceFlag
El nodo Normalizar + fitScore suma puntos por señales objetivas: +25 si el email tiene formato válido, +20 si su emailConfidence supera minEmailConfidence, +20 si hay teléfono móvil (y resta si requirePhone=true y no lo hay), +15 si el país está en la lista de UE que trae el Code, y +20 si el cargo (title) contiene alguna de tus icpKeywords. El resultado se acota entre 0 y 100.
Todos esos pesos y la lista de países UE viven directamente en el código del nodo Code, en JavaScript legible: si tu ICP valora más el cargo que el teléfono, o quieres añadir Bélgica o Irlanda a la lista de países, edita ahí mismo sin tocar el resto del flujo.
El complianceFlag es un aviso simple: ok_ue_minimizar_datos para personas de un país UE (recuerda igualmente minimizar campos) o revisar_base_juridica_extra_ue para contactos fuera de la UE, donde la base jurídica del tratamiento del dato de contacto merece una revisión aparte antes de subirlo al CRM.
Importar, probar sin gastar créditos y conectar la API real
En n8n: ⋯ → Import from File → assets/workflows/apollo-cognism-fit-prospeccion-n8n.json. Con Fetch personas (Apollo/Cognism) desactivado tal como llega, ejecuta Manual Trigger fit: correrá sobre las 3 personas del Payload de prueba y verás en vivo cómo cambia el fitScore según email, teléfono, país y cargo de cada una.
Ajusta fitThreshold e icpKeywords en Config hasta que el resultado del payload de prueba se parezca al criterio que aplicarías a mano. Solo entonces activa Fetch personas, crea una credencial de n8n (Header Auth o Query Auth) con tu API key real de Apollo o Cognism y desactiva el nodo Payload de prueba para no mezclar datos ficticios con reales.
En Upsert Lead CRM sustituye crmBaseUrl y crmToken por tu Private App de HubSpot o tu api_token de Pipedrive vía credenciales de n8n; el upsert usa el email como idProperty, así que ejecutar el mismo lote dos veces actualiza en vez de duplicar.
Subir n8n a producción 24/7 (VPS, Docker, Cloud)
Un fitScore que solo corre en tu portátil no sirve para prospección continua. Para producción tienes dos caminos: (1) n8n Cloud, donde importas el JSON, conectas credenciales y das a Active sin gestionar servidor, vigilando el límite de ejecuciones de tu plan; o (2) self-hosted en un VPS de la UE (Hetzner, OVH, IONOS o similar) con Ubuntu, Docker + Docker Compose, imagen de n8n con Postgres, HTTPS vía Caddy o Nginx y variables GENERIC_TIMEZONE=Europe/Madrid, N8N_ENCRYPTION_KEY y WEBHOOK_URL bien configuradas.
Pasos habituales en VPS: crear la máquina en región UE → conectar por SSH → instalar Docker → levantar el compose con n8n y su base de datos → abrir el puerto 443 → crear el usuario owner → Import from File → credenciales de Apollo/Cognism, CRM, Sheets y Slack → una ejecución de prueba con Manual Trigger → Active.
Make o Zapier siguen el mismo mapa: HTTP fetch al proveedor de datos → Router o Paths que aplican el mismo criterio de score → creación o actualización del Lead en el CRM → Google Sheets → Slack. Este JSON es el esqueleto n8n; si trabajas en Make o Zapier, replica la lógica de puntuación sin copiar secretos entre plataformas.
RGPD, interés legítimo B2B y EU AI Act para deployers
El Reglamento (UE) 2024/1689 (EU AI Act) ya está en vigor. Automatizar decisiones sobre qué Lead entra o no en el CRM con nodos de IA en n8n te convierte en desplegador (deployer), aunque no fabriques ningún modelo: desde el 2 de febrero de 2025 el Artículo 4 exige alfabetización en IA del personal que opera estos sistemas, y conviene conservar logs de cada decisión y dejar un punto de supervisión humana antes de descartar Leads en masa.
En paralelo, el RGPD (AEPD) aplica porque el flujo trata datos de contacto de personas físicas (email, teléfono) obtenidos por Apollo o Cognism. La base jurídica habitual en este contexto B2B es el interés legítimo, siempre documentado, con minimización de campos y atención especial al complianceFlag cuando el contacto está fuera de la UE.
En la práctica, este recurso ayuda con placeholders sin secretos reales, timezone Europe/Madrid, la opción de self-hosting en VPS UE para mantener los datos en territorio europeo, y logs de ejecución en n8n que sirven de rastro de auditoría. Detalle completo en /uso-responsable-de-ia-y-transparencia. Texto informativo, no sustituye asesoramiento legal.
Preguntas frecuentes
¿Qué umbral de fitThreshold debería usar?
Depende de tu ICP y de cuánto ruido tolera tu equipo. Empieza en 60 con el payload de prueba, revisa qué personas pasan y ajusta hasta que el criterio se parezca al que aplicarías manualmente antes de conectar la API real.
¿Puedo cambiar de Apollo a Cognism sin rehacer el flujo?
Sí. Cambia provider en Config fit Apollo/Cognism (apollo|cognism); el nodo Fetch ya elige la URL y la API key correctas según ese valor, y el resto del flujo (score, IF, upsert) no cambia.
¿Para qué sirve el Payload de prueba (sample)?
Trae 3 personas de ejemplo con distinto email, teléfono, país y cargo para que veas el fitScore en acción sin gastar créditos de la API de Apollo o Cognism ni tocar tu CRM real hasta estar seguro del criterio.
¿Dónde van mis API keys de Apollo, Cognism y del CRM?
Nunca en el JSON descargado: ese archivo trae placeholders (YOUR_APOLLO_API_KEY, REEMPLAZA_CRM_TOKEN) a propósito. Crea credenciales reales dentro de n8n (Header Auth o Query Auth) y enlázalas en los nodos HTTP correspondientes.
¿Qué columnas necesita la pestaña Fit de Sheets?
fecha, batchLabel, provider, email, fitScore, complianceFlag y estado. Son las mismas que escribe el nodo Append log fit Sheets; si añades columnas propias, hazlo después de estas para no romper el mapeo.