Módulo 7: Wait Nodes y Flujos Asíncronos
Patrones de espera (delay)
Descripción de la cápsula
Wait Amount (delay relativo) habilita patterns de secuencias temporales: mandar email A, esperar N días, mandar email B. Es la base de email automation, drip campaigns, recordatorios escalonados.
Lo que vas a aprender
- ✅ 3 patterns de delay típicos
- ✅ Email drip campaigns con Wait
- ✅ Recordatorios escalonados (1 día antes, 1 hora antes)
- ✅ Trade-offs entre delay y Schedule alternativo
Pattern 1: Drip campaign (secuencia de emails)
Caso: nuevo registro. Quieres mandar:
- Día 0: bienvenida
- Día 3: tutorial básico
- Día 7: caso de uso
- Día 14: testimonios
[Webhook: registro]
│
[Send Email: bienvenida]
│
[Wait 3 days]
│
[Send Email: tutorial]
│
[Wait 4 days] // total: día 7
│
[Send Email: casos]
│
[Wait 7 days] // total: día 14
│
[Send Email: testimonios]
Cada user que se registra dispara su propia secuencia. Workflow vive 14 días por cada lead.
Pattern 2: Recordatorios escalonados
Caso: cliente agendó cita para fecha X. Recordar:
- 1 día antes
- 1 hora antes
Opción A: Wait Until (recomendado)
[Trigger: nueva cita en fecha X]
│
[Wait Until: X - 24 horas]
│
[Send Email: recordatorio "mañana es tu cita"]
│
[Wait Until: X - 1 hora]
│
[Send Email: recordatorio "en 1 hora"]
Wait Until es preciso al timestamp.
Opción B: Wait Amount (menos preciso)
[Trigger]
│
[Set: days_until_appointment]
│
[Wait Amount: days_until_appointment - 1 día]
│
...
Funciona pero requiere cálculos manuales.
Pattern 3: Cool-down después de acción
Caso: después de mandar Slack alerta, esperar 30 min antes de mandar otra del mismo tipo.
[Trigger]
│
[Slack: alerta]
│
[Wait 30 minutes]
│
[Set: marker que "ya alertamos en últimos 30 min"]
Esto suprimes spam. Pero hay problema: cada execution del workflow es independiente. ¿Cómo "recordar" entre executions?
Solución:
- Sheet/DB con timestamp del último alert
- Antes de alertar, check: "¿hace cuánto fue el último?"
Delay vs Schedule alternativo
Para delays largos (días+), considera si Schedule podría ser mejor:
Wait largo (en un solo workflow)
[Webhook registro] → ... → [Wait 7 days] → [Email]
Pros: todo en un workflow, lineal. Contras:
- Workflow vive 7 días en estado "Waiting" — visible en Executions
- Si tu plan tiene timeout, puede fallar
- Si n8n se reinicia, posible pérdida (depende de versión)
Schedule alternativo
[Webhook registro] → [Sheet: append con timestamp]
(workflow separado)
[Schedule diario] → [Lee Sheet, filtra "hace 7 días"] → [Send Email]
Pros: más robusto, sin dependencia de Wait largo Contras: dos workflows, requiere Sheet/DB
Decisión
- Wait ≤ 24 horas: Wait Amount/Until OK
- Wait días-semanas: considerar Schedule alternativo
- Wait > semanas: definitivamente Schedule
Caso real: onboarding 7 días
Implementación con Wait:
[Webhook registro]
│
[Set: enrich datos]
│
[Send Email: día 0 bienvenida]
│
[Wait 1 day]
│
[Send Email: día 1 tutorial básico]
│
[Wait 2 days] // total: día 3
│
[Send Email: día 3 caso de uso]
│
[Wait 4 days] // total: día 7
│
[Send Email: día 7 cierre]
│
[Sheet: marcar onboarding completo]
Workflow vive 7 días por cada lead.
Implementación con Schedule:
Workflow 1: capturar
[Webhook] → [Sheet: append con signup_date]
Workflow 2: drip diario
[Schedule diario 9am]
│
[Sheet: leer leads]
│
[Filter: days_since_signup === 1]
[Send Email tutorial]
[Filter: days_since_signup === 3]
[Send Email caso de uso]
[Filter: days_since_signup === 7]
[Send Email cierre]
Más robusto pero requiere lógica de fecha.
Trampas comunes
Trampa 1: Wait que no cabe en plan
Qué pasa: Wait 7 días en plan que tiene workflow timeout de 24h. Workflow se mata después de 24h.
Cómo evitar: Verificar plan limits. Si Wait largo no es viable, usar Schedule alternativo.
Trampa 2: Delay sin tracking
Qué pasa: Drip campaign con 5 waits secuenciales. ¿Cómo sabes cuántos leads están en cada paso?
Cómo evitar: Loggear en Sheet cada paso completado. Permite analytics + recovery si algo falla.
Trampa 3: Wait que no respeta horario
Qué pasa: Wait 1 día → email se manda a las 3am.
Cómo evitar: Combinar con Wait Until al horario apropiado:
[Wait 1 day]
│
[Wait Until: hoy 9am hora cliente]
│
[Send Email]
Trampa 4: Cancelar drip cuando usuario unsubscribe
Qué pasa: Usuario se registra. Empieza drip. Después de día 1, se da de baja. Pero el workflow ya está en Wait — sigue mandando emails.
Cómo evitar:
- Check antes de cada email: "¿el usuario sigue activo?"
- O usar Schedule alternativo donde puedes filtrar dinámicamente
Resumen
- Drip campaigns: Wait entre emails secuenciales
- Recordatorios: Wait Until para timestamps específicos
- Cool-down: Wait + Sheet con timestamp del último
- Delay largo: considerar Schedule alternativo
- 4 trampas: plan limits, sin tracking, sin respetar horario, no cancelar al unsubscribe
Lo que sigue: Wait Until — programar acciones para fechas futuras específicas.
Creado: Mayo 11, 2026 Versión: 1.0