Guía actualizada para automatizar Salesforce con n8n (2026)
Guía técnica para automatizar Salesforce con n8n en un equipo B2B: cómo crear la Connected App con el flujo OAuth y los scopes correctos, cuándo elegir Platform Events, un outbound message o un sondeo por SOQL como disparador, cómo trabajar con Lead, Contact, Account y Opportunity sin duplicarlos gracias al upsert por External ID, cómo separar el sandbox de producción, y cómo interpretar los governor limits y el límite diario de API antes de que corten un flujo en plena jornada comercial en España y la UE.
La mayoría de las guías sobre conectar n8n con un CRM tratan a Salesforce como un formulario genérico con campos de texto. No lo es: tiene un modelo de datos con objetos relacionados entre sí, un lenguaje de consulta propio (SOQL), autenticación por OAuth 2.0 a través de una Connected App, y un conjunto de límites, de API y de ejecución interna, los governor limits, que decide cuánto puede pedirle un flujo externo. Automatizar Salesforce con n8n bien montado no consiste en arrastrar un nodo HTTP: consiste en decidir qué dispara el flujo, qué scopes necesita el token OAuth, cómo evitas crear el mismo Lead u Opportunity dos veces, y qué pasa el día que la organización devuelve REQUEST_LIMIT_EXCEEDED en plena jornada comercial.
Transcripción del vídeo
Integrar Salesforce con n8n permite automatizar tareas que de otro modo exigen clics repetitivos en la interfaz: sincronizar contactos, crear oportunidades, actualizar etapas, disparar acciones cuando cambia un campo o consolidar datos hacia hojas de cálculo y sistemas externos. Salesforce expone una API robusta; n8n ofrece nodos dedicados con decenas de operaciones.
Salesforce mantiene dos experiencias de interfaz —Lightning y Classic— y en cuentas de prueba o ediciones limitadas algunas opciones de menú no aparecen donde esperas. Si no ves el acceso directo para crear aplicaciones conectadas, entra en Configuración avanzada y busca Aplicaciones o App Manager.
Por qué automatizar Salesforce con n8n bien montado evita sorpresas en producción
Un flujo de n8n conectado a Salesforce que funciona en la demo de la primera semana y falla en la tercera casi siempre comparte el mismo origen: se diseñó pensando en el camino feliz, sin decidir de antemano qué pasa con un refresh token revocado o un límite diario de peticiones que se agota a media tarde.
El coste real es el primer Lead duplicado, y Salesforce cambia más de lo que asume un flujo estático
Este artículo no repite la guía de HubSpot ni la de webhooks genéricos
Qué es (y qué no es) automatizar Salesforce con n8n
Antes de tocar un solo nodo conviene fijar qué resuelve esta automatización y qué queda fuera de su alcance.
No es sustituir Salesforce, ni una integración de una sola dirección
n8n no reemplaza a Salesforce como sistema de registro de tus Leads, Contacts, Accounts y Opportunities: actúa como la capa que lo conecta con todo lo que vive fuera, tu web, tu ERP, tu herramienta de enriquecimiento, tu canal de Slack, sin copiar datos a mano. Y aunque es habitual pensar la automatización solo como meter datos en Salesforce, el mismo flujo puede leer datos para llevarlos a otro sistema: un cambio de etapa de Opportunity que dispara una notificación externa, o un campo de Account que alimenta un panel de reporting fuera del CRM.
No es algo que se configura una vez y se olvida
La Connected App de Salesforce. OAuth, scopes y el token que de verdad importa
Crear la Connected App con el flujo OAuth correcto para un proceso desatendido
Los scopes mínimos y el perfil del usuario de integración importan por igual
Disparadores del flujo. Platform Events, outbound messages o sondeo por SOQL
Los Platform Events tienen la menor latencia; los outbound messages aprovechan la lógica ya construida
El sondeo por SOQL sigue siendo razonable cuando no hace falta reaccionar en segundos
Un nodo de tipo Schedule que ejecuta cada cierto intervalo una consulta SOQL sobre registros modificados desde la última ejecución, filtrando por el campo SystemModstamp o por LastModifiedDate, evita exponer cualquier endpoint público, no consume el límite de suscripciones de streaming y es más fácil de depurar que un evento asíncrono, a costa de una latencia igual al intervalo elegido. La clave para que el sondeo no pierda registros es guardar de forma fiable la marca de tiempo de la última ejecución correcta, no solo confiar en que la próxima vez ya cogerá lo que falte.
Lead, Contact, Account y Opportunity. Cómo se relacionan los objetos clave
El Lead es un prospecto sin cualificar, y su conversión puede dejarse a Salesforce o controlarse desde n8n
Un Lead vive en su propia tabla, independiente de Contact, Account y Opportunity, y representa a alguien de quien todavía no sabes si merece convertirse en una oportunidad real. Cuando se cualifica, Salesforce lo convierte, de forma nativa, con el mapeo configurado en Lead, o mediante la llamada de conversión de la API, en un Contact asociado a un Account y, si procede, en una Opportunity nueva. Si la cualificación depende de datos externos, como una puntuación calculada fuera de Salesforce, el flujo puede crear directamente esos tres registros y marcar el Lead como convertido, ganando control total sobre el mapeo.
El Account y el Contact conviven bajo un mismo prospecto, y la Opportunity vive en un proceso de venta propio
SOQL frente a REST. Cuándo consultar y cuándo crear o actualizar
SOQL es el lenguaje para preguntar, la API de sObjects para escribir
SOQL (Salesforce Object Query Language) es el lenguaje para leer registros con condiciones, relaciones y ordenaciones, parecido a SQL pero adaptado al modelo de objetos de Salesforce; desde n8n se ejecuta como una petición GET al endpoint de consulta, y es la herramienta correcta para el sondeo programado. Para crear, actualizar o eliminar un registro, en cambio, la API REST de sObjects expone un endpoint por objeto que acepta POST, PATCH y DELETE en JSON.
La API Composite agrupa operaciones relacionadas; la Bulk API asume los volúmenes grandes
Evitar duplicados. Upsert por External ID y reglas de coincidencia
El External ID convierte la creación en una operación atómica
Las reglas de duplicados nativas y los reintentos de eventos completan la protección
Sandbox frente a producción. Cómo separar entornos sin arriesgar datos reales
Un sandbox es, a efectos de la API, una organización distinta
com ), su propia Connected App y sus propios límites diarios de API.
Cada entorno necesita su propia credencial en n8n, nunca una compartida
Governor limits y límite diario de API. Lo que de verdad hay que vigilar
Salesforce impone dos tipos de límites, y confundirlos lleva a diagnosticar mal el error cuando el flujo falla bajo carga.
El límite diario de peticiones de API depende de la edición y del número de licencias
Los governor limits viven dentro de la organización, no en n8n
Los governor limits son restricciones internas que Salesforce aplica a cualquier código que corre dentro de su plataforma, triggers de Apex, Flows complejos, para que ningún proceso monopolice recursos compartidos. Un flujo de n8n no ejecuta Apex directamente, pero si sus llamadas disparan un trigger poco eficiente, una carga masiva puede hacerlo fallar con errores de demasiadas filas de consulta o demasiadas operaciones DML, que hay que diagnosticar mirando el trigger, no el flujo de n8n. La solución es repartir la carga en lotes pequeños con pausa entre ellos, preferir la Bulk API para volúmenes grandes y activar el reintento con espera creciente de los nodos HTTP de n8n.
El patrón práctico. Lead nuevo, cualificación y Opportunity con aviso al comercial
Paso uno. Detectar el Lead creado con el disparador adecuado
Paso dos. Cualificar los campos mínimos antes de decidir nada sobre la Opportunity
Con el identificador recibido, el flujo consulta el Lead completo por SOQL y comprueba los campos que definen si merece avanzar, email válido, empresa informada, teléfono, LeadSource reconocido, y cruza esa información con el Account asociado para que la futura Opportunity nazca ya vinculada a la empresa correcta, no como un registro huérfano.
Paso tres. Convertir el Lead, crear la Opportunity y avisar al comercial correcto
Si el Lead cualifica, el flujo lo convierte, de forma nativa o creando manualmente Account, Contact y Opportunity, y comprueba si ya existe una Opportunity abierta en esa empresa para no duplicar el pipeline; si no existe, la crea en la etapa inicial correcta y asigna el propietario según tu regla de reparto. El último paso notifica al comercial asignado por Slack o email con un enlace directo a la Opportunity, cerrando el ciclo sin copiar un solo dato a mano.
Errores frecuentes de conexión. Invalid_grant, acceso insuficiente y límite excedido
invalid_grant. El refresh token dejó de ser válido, no está mal escrito
INSUFFICIENT_ACCESS y REQUEST_LIMIT_EXCEEDED. Permiso insuficiente y límite diario agotado
Comparativa. Qué disparador usar para conectar n8n con Salesforce según el caso
Referencia rápida antes de decidir con qué disparador arranca cada flujo nuevo entre n8n y Salesforce.
| Disparador | Latencia | Complejidad | Cuándo usarlo |
|---|---|---|---|
| Platform Event (API de streaming) | Baja (casi tiempo real) | Media-alta (suscripción CometD y evento personalizado) | Cuando necesitas reaccionar de inmediato a un cambio concreto, como una Opportunity en etapa caliente |
| Llamada HTTP desde un Flow / outbound message | Baja (casi inmediata) | Baja-media (aprovecha lógica ya construida en Salesforce) | Cuando ya usas Flows para segmentar y solo falta avisar a n8n en un punto concreto |
| Sondeo (polling) por SOQL | Media (según el intervalo del cron) | Baja (nodo Schedule + consulta por SystemModstamp) | Cuando no hace falta reacción inmediata y quieres evitar exponer un endpoint público |
| Carga inicial o masiva vía Bulk API | Alta (proceso asíncrono por lotes) | Media (archivos de lote y sondeo de estado del job) | Cuando sincronizas miles de registros de una vez, como una migración inicial |
Errores frecuentes al automatizar Salesforce con n8n
- Usar un flujo OAuth pensado para un usuario interactivo: depender de una contraseña que Salesforce puede invalidar en cualquier revisión de seguridad.
- Dar al usuario de integración un perfil de administrador por si acaso: ampliar la superficie de riesgo del token sin ninguna ventaja funcional real.
- Confundir el objeto Lead con una Opportunity a medio hacer: intentar mover campos de un objeto a otro sin pasar por la conversión.
- Encadenar consultar y crear en dos pasos separados: abrir una ventana de condición de carrera que produce Leads o Accounts duplicados.
- Usar la API de sObjects registro a registro para cargas de miles de filas: agotar el límite diario de peticiones en una sola sincronización.
- Probar el flujo nuevo en producción: ensuciar la base de datos comercial real con registros de prueba.
- Tratar cada reintento de evento como un caso nuevo: duplicar registros justo en los picos de carga.
- No documentar quién puede regenerar la Connected App: perder horas localizando al responsable cuando el flujo empieza a devolver invalid_grant.
Revisa esta lista cada vez que muevas un flujo de pruebas a producción.
¿Cómo encaja este flujo con el EU AI Act y el RGPD?
El Reglamento (UE) 2024/1689 (EU AI Act) ya está en vigor. Si tu equipo usa automatizaciones con nodos de IA en n8n (Gemini, OpenAI, Claude u otros), la empresa actúa como desplegadora (deployer): no hace falta haber creado el modelo. Desde el 2 de febrero de 2025 el Artículo 4 exige un nivel suficiente de alfabetización en IA para quien opera estos sistemas. En España, la supervisión se articula con la AESIA (IA) y la AEPD (RGPD).
Evalúa tus horas y riesgos con el Auditor de Eficiencia Operativa B2B.
Checklist de scopes de la Connected App y mapeo de objetos
CHECKLIST DE SCOPES Y MAPEO, n8n + SALESFORCE (ES/UE)
Organización: ___________ Connected App: ___________ Fecha: ___________
1. CONNECTED APP Y FLUJO OAUTH
[ ] OAuth habilitado en la Connected App
[ ] Flujo elegido: credenciales de cliente / JWT Bearer / otro: ___________
[ ] Scope api concedido
[ ] Scope refresh_token + offline_access concedido
[ ] Scope de eventos concedido (solo si usas Platform Events)
[ ] Consumer Key y Consumer Secret guardados en credencial de n8n
2. USUARIO DE INTEGRACIÓN Y PERMISOS
[ ] Permission set dedicado (no perfil de administrador genérico)
[ ] Acceso lectura/escritura a Lead, Contact, Account y Opportunity: sí / no
[ ] Seguridad a nivel de campo revisada para campos personalizados: sí / no
3. HOJA DE MAPEO, LEAD
Origen (tu sistema) Campo API Salesforce Tipo
_________________________ Email string (clave de upsert si aplica)
_________________________ FirstName string
_________________________ LastName string
_________________________ Company string
_________________________ LeadSource picklist (valor interno, no la etiqueta)
_________________________ ___________________________ ___________ (personalizado, External ID)
4. HOJA DE MAPEO, OPPORTUNITY
Origen Campo API Salesforce Tipo / formato
_________________________ Name string
_________________________ StageName picklist (valor interno del Sales Process)
_________________________ Amount number
_________________________ CloseDate date (formato ISO)
_________________________ External_Id__c string (clave de idempotencia)
5. IDEMPOTENCIA Y DUPLICADOS
[ ] Campo marcado como External ID en Lead / Account / Opportunity: sí / no
[ ] Upsert por External ID en lugar de consulta + creación separadas: sí / no
[ ] Reglas de duplicados y de coincidencia revisadas antes de cargas masivas: sí / no
[ ] Reintentos de evento probados sin generar duplicados: sí / no
6. ENTORNOS
[ ] Sandbox disponible (tipo: ___________): sí / no
[ ] Connected App y credencial de n8n independientes por entorno: sí / no
[ ] Dominio de login verificado (test.salesforce.com vs producción): sí / no
7. LÍMITES Y ERRORES CONOCIDOS
[ ] Límite diario de API de la organización verificado: ___________
[ ] Bulk API considerada para cargas de más de ___________ registros
[ ] Reintento con espera creciente activado ante REQUEST_LIMIT_EXCEEDED: sí / no
[ ] Última revisión de logs invalid_grant / INSUFFICIENT_ACCESS: ___________
Revisado por: RevOps ___________ Admin. Salesforce ___________ Fecha: ___________
Preguntas frecuentes
¿Qué scopes necesita la Connected App de Salesforce para conectarla con n8n?
¿Qué disparador conviene usar en n8n: Platform Events, outbound messages o sondeo por SOQL?
Los Platform Events tienen la menor latencia porque n8n se suscribe a un canal casi en tiempo real mediante la API de streaming, y son la elección correcta cuando el retraso tiene coste real, como avisar de una Opportunity que cambia a etapa caliente.
¿Cómo evito crear Leads u Opportunities duplicados en Salesforce al sincronizar desde n8n?
¿Por qué me da error invalid_grant al conectar n8n con Salesforce aunque las credenciales son correctas?
El error invalid_grant casi siempre indica que el refresh token dejó de ser válido, no que el usuario o la contraseña estén mal escritos: puede haberse revocado al desconectar la Connected App, haber caducado por la política de sesión del perfil, o corresponder a la URL de login de producción cuando la organización real es un sandbox, que usa un dominio distinto.