Sync CRM ↔ Sheets

Bidireccional ligera: CRM a Sheets y alertas de desvío.
Sincroniza CRM y hojas de cálculo con n8n. Workflow JSON de reporting ligero para ventas B2B en España. Logixb2b España. Para España y la UE. Sin SaaS caro.
Descarga el workflow
JSON listo para importar en n8n (Import from File). Sustituye solo REEMPLAZA_* y credenciales.
Por qué sincronizar el CRM con Google Sheets (y solo en un sentido)
Muchos equipos comerciales en España siguen usando una hoja de Google Sheets para reporting, previsión o para compartir datos con dirección, aunque el CRM sea la fuente de verdad.
Este flujo resuelve la parte más segura del problema: copia contactos del CRM a Sheets en un solo sentido, cada hora, sin permitir que la hoja empuje cambios de vuelta al CRM. Es una decisión deliberada: la sincronización bidireccional multiplica el riesgo de sobrescribir datos importantes por error, y en la mayoría de los casos no hace falta.
Además, muchas herramientas de dirección o de finanzas (paneles de control, informes trimestrales) leen directamente de Google Sheets porque es más rápido de montar que un dashboard conectado al CRM. Este flujo actúa como el puente fiable entre ambos mundos, sin que nadie tenga que exportar un CSV a mano cada semana.
Qué necesitas antes de importar el flujo
Necesitas acceso de lectura a la API de tu CRM (una URL o endpoint que devuelva contactos), una cuenta de Google con permisos de edición sobre la hoja de destino, y un canal de Slack para recibir avisos si la sincronización falla. Define de antemano qué columnas quieres en la hoja: Email, Nombre, Empresa y fecha de última actualización suele ser suficiente para la mayoría de reportings.
Decide también quién tendrá acceso a esa hoja. Si va a contener datos de contacto de clientes, no debería estar compartida con cualquiera con el enlace; limita el acceso a las personas que realmente necesitan consultarla.
Si tu CRM pagina los resultados (por ejemplo, devuelve 100 contactos por página), confirma si el endpoint que vas a usar soporta traer todos los contactos de una vez o si el flujo necesita un bucle de paginación; de lo contrario, la hoja solo reflejará una parte del CRM sin que nadie se dé cuenta.
Configurar el flujo: horario, lectura del CRM y escritura en Sheets
Importa el JSON en n8n. Verás un horario que se ejecuta cada hora, una llamada de lectura al CRM, un mapeo de filas usando el email como clave, la escritura en Google Sheets y una rama de aviso a Slack si algo falla en la lectura o en la escritura. Conecta las credenciales del CRM y de Google Sheets desde el apartado de Credenciales de n8n, con una cuenta de trabajo, no una cuenta personal.
Configura la URL de lectura del CRM, la URL o ID de la hoja de destino, y el webhook de Slack para los avisos de error.
Decide también qué hacer con las filas de contactos que ya no existen en el CRM (por ejemplo, si se borraron o se fusionaron).
Probar en staging antes de tocar la hoja del equipo
Antes de conectar la hoja que usa dirección o el equipo comercial, prueba el flujo contra una hoja de pruebas independiente y compara manualmente unas cuantas filas frente a los datos reales del CRM. Ejecuta el flujo una vez de forma manual (Execute step) y revisa que las filas se generan correctamente, sin duplicados y sin campos desplazados.
Solo cuando estés seguro de que el mapeo es correcto y estable, cambia el destino a la hoja real del equipo. Aunque parezca un paso extra innecesario, esta prueba en staging es la que evita que dirección reciba un informe con datos incorrectos justo antes de una reunión importante.
Aprovecha también esta fase para medir cuánto tarda la ejecución completa con vuestro volumen real de contactos; si el CRM tiene miles de registros, puede que necesites ajustar la frecuencia del horario para no saturar los límites de la API de Google Sheets.
Qué hacer cuando falla la sincronización
Si la lectura del CRM o la escritura en Sheets falla, por ejemplo, por un cambio de permisos o una caída temporal del servicio, el flujo debe avisar en Slack con el código de error y la hora, en vez de fallar en silencio. Revisa este aviso con la misma prioridad que revisarías una alerta de producción, porque una hoja desactualizada durante días puede llevar a decisiones basadas en datos obsoletos.
Documenta un pequeño protocolo interno: quién revisa la alerta, cómo se relanza la ejecución manualmente si hace falta, y a partir de cuántas horas de fallo hay que avisar directamente al responsable del reporting.
Añade también una nota visible en la propia hoja (por ejemplo, en la primera fila) con la fecha y hora de la última sincronización correcta. Así cualquiera que abra la hoja sabe de un vistazo si los datos son de esta mañana o llevan tres días parados.
RGPD, acceso a la hoja y minimización de datos
Antes de copiar contactos reales a una hoja de cálculo, revisa que tenéis base legal para ese tratamiento y que la hoja no queda expuesta más allá de quien realmente necesita esos datos. Google Sheets no tiene los controles de acceso granular de un CRM, así que es buena práctica limitar el número de campos exportados al mínimo necesario para el reporting.
Evita exportar campos sensibles (notas internas, historial de conversaciones) que no aportan valor al informe pero sí aumentan el riesgo si la hoja se comparte por error con quien no debería tenerla.
Make, Zapier y errores comunes al sincronizar
En Make o Zapier, la misma lógica se monta con un módulo de horario, la acción de lectura del CRM y la acción nativa de Add/Update Row de Google Sheets, con un router o filtro para capturar errores y avisar. El principio de un solo sentido aplica igual en cualquiera de las tres plataformas.
Los errores más comunes son: permisos de la cuenta de Google que caducan sin avisar, cambiar accidentalmente el rango de escritura y sobrescribir cabeceras, y no controlar qué pasa si el CRM devuelve una lista vacía, lo que puede vaciar la hoja en lugar de dejarla como estaba. Añade una comprobación explícita antes de escribir si la respuesta del CRM viene vacía.
Importar, configurar y producción 24/7
En n8n: ⋯ → Import from File → el JSON de este recurso. El flujo llega inactive. Abre el sticky INSTRUCCIONES del lienzo y el nodo Config/Set: URLs, umbrales y placeholders. Enlaza credenciales reales (HTTP Header Auth, OAuth Google Sheets, Slack Incoming Webhook, CRM Private App) — nunca dejes tokens en el archivo versionado.
Prueba una ejecución Manual o un evento de test (formulario, webhook, cron forzado). Revisa CRM, Sheets o Slack. Solo entonces Active. Timezone del workflow: Europe/Madrid.
Para que corra solo hace falta n8n online. Self-hosted UE: VPS Hetzner/OVH/IONOS (o panel con Docker) → Ubuntu → Docker Compose (n8n + Postgres) → HTTPS con Caddy/Nginx → N8N_HOST, WEBHOOK_URL, GENERIC_TIMEZONE=Europe/Madrid, N8N_ENCRYPTION_KEY. Alternativa: n8n Cloud (importas, conectas credenciales y Active; vigila límites). Make/Zapier: mismo mapa mental; este JSON es el esqueleto n8n.
EU AI Act y RGPD: qué es y por qué tu empresa debe aplicarlo
El Reglamento (UE) 2024/1689 (EU AI Act) ya está en vigor. Si tu empresa usa n8n con nodos de IA (Gemini, OpenAI, Claude, etc. ) en ventas o operaciones, actuáis como desplegadores (deployers): no hace falta ser el fabricante del modelo.
En paralelo, el RGPD (AEPD) aplica porque el flujo trata datos de contacto B2B. Base jurídica, minimización y, si hay perfiles automatizados a escala, evaluación de impacto. AI Act y RGPD se acumulan: un fallo puede implicar ambas autoridades.
Este recurso ayuda en la práctica: placeholders sin secretos, Europe/Madrid, opción self-hosted en VPS UE (soberanía de datos), registro de ejecuciones en n8n (logs) y espacio para human-in-the-loop (aprobación antes de acciones sensibles). Detalle: /uso-responsable-de-ia-y-transparencia. Texto informativo, no asesoramiento legal.
Preguntas frecuentes
¿Por qué solo en un sentido (CRM a Sheets) y no bidireccional?
Porque la sincronización bidireccional multiplica el riesgo de que un cambio manual en la hoja sobrescriba datos correctos del CRM. Empezar en un sentido es más seguro y cubre la mayoría de necesidades de reporting.
¿Con qué frecuencia se sincroniza?
El flujo por defecto se ejecuta cada hora, pero puedes ajustar el horario según cuánto necesitéis que la hoja esté al día frente a la carga que soporta vuestra API de CRM.
¿Qué pasa si dos contactos tienen el mismo email?
El flujo usa el email como clave de coincidencia; si hay duplicados en el CRM, probablemente se reflejen también en la hoja, así que conviene resolver duplicados en el CRM primero.
¿Puedo sincronizar con Excel Online en vez de Google Sheets?
La lógica es la misma, pero necesitarás cambiar el nodo de escritura por el conector de Microsoft Excel/SharePoint, con sus propias credenciales.
¿Cómo sé si la sincronización ha fallado?
El flujo envía un aviso a Slack con el código de error y la hora cuando la lectura o la escritura no funcionan, así no dependes de revisar la hoja manualmente cada día.
¿Quién debería tener acceso a la hoja sincronizada?
Solo las personas que necesiten consultar esos datos para su trabajo; evita compartir el enlace de forma abierta dentro de la empresa si contiene datos de contacto.