Frenos LinkedIn con n8n

Cupos diarios, ventana Europe/Madrid y pause_linkedin en CRM cuando se roza el límite (sin scrapers).
JSON límites LinkedIn: cupos, ventana Europe/Madrid, Slack y pause CRM. Frenos de prospección B2B sin scrapers en España · RGPD UE. Descarga Logixb2b.
Descarga el workflow
JSON listo para importar en n8n (Import from File). Sustituye solo REEMPLAZA_* y credenciales.
Qué resuelve este freno de prospección LinkedIn
La mayoría de bloqueos de cuentas no vienen de enviar mensajes, sino de enviarlos como un robot: mismo texto, ritmo imposible, fuera de horario y sin cupo escrito. Este workflow no automatiza clics en LinkedIn ni scrapea perfiles: automatiza el control. Recibe contadores agregados por cuenta comercial y decide si el outreach puede seguir, debe ir más despacio o debe pausarse.
Cuando se supera un cupo o se sale de la ventana Europe/Madrid, el flujo avisa por Slack, marca pause_linkedin en el CRM y deja constancia en Sheets. Tu cola humana (o cualquier herramienta asistida) consulta esa bandera antes de seguir. Así separas el canal LinkedIn del motor de disciplina operativa.
La guía educativa completa —mensaje all-in, secuencia de cuatro, frío vs tibio y checklist RGPD— está en /automatizar-prospeccion-linkedin-sin-arriesgar-cuenta. Este recurso es la mitad de implementación: el guardián de límites importable en n8n.
Qué necesitas antes de importar el JSON
Una instancia de n8n (local para probar, o Cloud/VPS UE) y una fuente de contadores diarios: una hoja interna, un campo del CRM o un formulario que registre conexiones, mensajes y visitas de perfil agregados, sin emails ni nombres de Leads.
Opcionalmente un Incoming Webhook de Slack, un endpoint HTTP de tu CRM/staging que acepte pause_linkedin=true, y una pestaña Google Sheets llamada LinkedIn (columnas: fecha, batchLabel, account, action, connections, messages, profile_views, complianceFlag, estado).
Decide de antemano los cupos conservadores (p. ej. 20 conexiones / 40 mensajes / 80 visitas) y la ventana laboral (09–18 Europe/Madrid). El JSON llega con placeholders REEMPLAZA_* a propósito.
Cómo está construido el workflow
El lienzo abre con el sticky INSTRUCCIONES y Manual Trigger linkedin. Config límites LinkedIn (Set) concentra cupos, warnPct, ventana horaria, URLs de Slack/CRM, token placeholder, sheetsId y batchLabel.
Payload de prueba (3 días) genera tres escenarios: dentro de límite, zona de aviso (~80%) y sobre límite / fuera de ventana. Evaluar cupos + ventana calcula breaches, warn, outsideWindow, action (ok | slow_down | pause_linkedin) y slackText.
IF Activar freno separa caminos: true → Slack alerta freno → CRM pause_linkedin → Append Sheets (freno); false → Append Sheets (OK). El workflow llega inactive y en timezone Europe/Madrid.
Cómo interpreta Evaluar cupos + ventana
El nodo Code lee connections, messages y profile_views del día junto con hourLocal. Compara cada contador con su techo en Config y calcula breaches (lista de cupos rotos) y warn cuando algún ratio supera warnPct sin llegar aún al hard stop.
Si hourLocal queda fuera de la ventana laboral Europe/Madrid, marca outsideWindow y fuerza action pause_linkedin aunque los cupos estén limpios. Así evitas outreach nocturno o en festivos mal configurados.
La salida tipada (ok | slow_down | pause_linkedin) alimenta el IF Activar freno. slow_down avisa sin pausar; pause_linkedin dispara Slack, CRM y Sheets freno. Documenta en Config el criterio exacto para que Ops y ventas hablen el mismo idioma.
Payload demo: tres días, tres decisiones
El payload de prueba incluye un día dentro de límite (action ok), uno en zona de aviso (~80 por ciento del cupo) y uno sobre límite o fuera de ventana (pause_linkedin). Ejecuta Manual Trigger sin credenciales reales y revisa slackText, breaches y action en cada item.
Si el día de aviso no dispara slow_down, baja warnPct o sube el volumen demo hasta ver la rama. Si el día de pausa no corta, revisa outsideWindow y los techos maxConnections / maxMessages / maxProfileViews.
Cuando las tres ramas cuadren con vuestra política escrita, sustituye el payload por Webhook o Schedule con el shape {account, date, connections, messages, profile_views, hourLocal}.
HITL operativo y lectura de pause_linkedin
Este JSON no escribe mensajes en LinkedIn. El HITL real es la cola humana o la herramienta asistida que consulta pause_linkedin en HubSpot o Pipedrive antes de seguir. Sin esa lectura, el freno solo deja ruido en Slack.
Acuerda con el equipo un SLA de revisión diaria del canal de alertas: quién reabre la cuenta, quién baja cupos tras un slow_down y cómo se registra el motivo en Sheets.
Si más adelante conectáis un LLM para redactar notas de alerta, mantened revisión humana: sois deployers bajo el EU AI Act Art. 4. Este flujo por defecto no genera copy de outreach.
Importar, probar y pasar a producción
En n8n: ⋯ → Import from File → assets/workflows/limites-prospeccion-linkedin-n8n.json. Ejecuta Manual Trigger y revisa las tres ramas del payload demo sin conectar Slack/CRM reales.
Ajusta cupos y ventana en Config hasta que el criterio coincida con vuestra política interna. Solo entonces crea credenciales reales (Slack webhook, Bearer del CRM, OAuth Sheets) y sustituye los placeholders.
En producción, reemplaza el Payload de prueba por un Webhook o Schedule que reciba {account,date,connections,messages,profile_views,hourLocal}. Cualquier cola de outreach debe leer pause_linkedin antes de continuar.
Subir n8n a producción 24/7 (VPS, Docker, Make, Zapier)
Un freno que solo corre en el portátil no protege la cuenta el viernes por la tarde. Opciones: n8n Cloud (importar, credenciales, Active) o self-hosted en VPS UE con Docker Compose, Postgres, HTTPS y GENERIC_TIMEZONE=Europe/Madrid.
En VPS UE (Hetzner, OVH, IONOS): Ubuntu, Docker Compose con n8n + Postgres, HTTPS, WEBHOOK_URL y N8N_ENCRYPTION_KEY. Firewall 80/443 (+ SSH). Backups de Postgres y export periódico del workflow.
Make/Zapier: Webhook de contadores → filtro de cupos/ventana → Slack → HTTP pause CRM → Sheets. Mismo mapa mental que este JSON; no copies secretos entre plataformas.
RGPD, minimización y EU AI Act
Este flujo está diseñado sin PII de Leads: solo contadores por cuenta. El RGPD sigue aplicando al outreach humano que escribes en LinkedIn (interés legítimo B2B, minimización, baja clara).
Si usáis IA para redactar mensajes sois deployers bajo el Reglamento (UE) 2024/1689; el Artículo 4 exige alfabetización desde febrero 2025. Este JSON no genera texto: solo frena.
Documenta cupos, ventana Europe/Madrid y quién reabre pause_linkedin tras cada alerta. Sin ese acuerdo, el freno se ignora a los pocos días. Detalle en /uso-responsable-de-ia-y-transparencia (informativo, no asesoramiento legal).
Preguntas frecuentes
¿Este JSON envía mensajes o invitaciones en LinkedIn?
No. Solo evalúa contadores, avisa y marca pause_linkedin. El envío sigue siendo humano o asistido fuera de este flujo.
¿Qué valores de cupo debo poner al empezar?
Parte de cifras conservadoras (p. ej. 20 conexiones / 40 mensajes / 80 visitas) y ventana 09–18 Europe/Madrid. Baja al primer aviso o caída de aceptación.
¿Por qué el payload no lleva emails de Leads?
Para minimizar datos: el freno no necesita PII. Los contadores por cuenta bastan para decidir ok / slow_down / pause.
¿Qué pasa si Sheets o Slack fallan al importar?
Es normal hasta que conectes OAuth de Sheets y un webhook real de Slack. Prueba primero la evaluación con Manual Trigger y desactiva temporalmente los nodos HTTP/Sheets si hace falta.
¿Dónde van mis tokens de CRM y Slack?
Nunca en el JSON descargado. Crea credenciales dentro de n8n y enlázalas en los nodos HTTP antes de Active.