Skip to Content

Wait node

The wait node (type: wait) pauses a contact at a specific point in the journey until a condition is met. A single node type covers all four wait shapes — the config.wait_type discriminator selects which one.

Wait types

The four wait_type values are duration, until_event, until_time, and dynamic.

Duration wait (wait_type: duration)

Pause for a fixed amount of time.

  • Value — a number (e.g., 1, 3, 24)
  • Unit — minutes, hours, or days

Example: “Wait 1 day after the welcome email before sending the tips email.”

Event wait (wait_type: until_event)

Pause until the contact fires a specific event.

  • Event name — the event to wait for (e.g., purchase_completed, email_opened)
  • Event filters (optional) — match specific property values
  • Timeout — maximum wait time before moving to the timeout path (e.g., “if no event in 3 days, continue”)

The event wait has two outputs:

  • Event received — the contact fired the event within the timeout
  • Timed out — the timeout elapsed without the event

This creates a natural branch: “Did the customer purchase? If yes, send a thank-you. If no, send a reminder.”

Time wait (wait_type: until_time)

Pause until a specific date/time or a time relative to a contact property.

  • Fixed time — a specific date and time (e.g., “2026-05-01 at 09:00 IST”)
  • Relative to property — a contact property that holds a date (e.g., “contact.birthday at 09:00 in their timezone”)

Example: “Wait until the contact’s subscription renewal date, then send a renewal reminder.”

Dynamic wait (wait_type: dynamic)

Pause for a duration computed from a contact property or event property.

  • Source — a numeric contact or event property
  • Unit — how to interpret the number (minutes, hours, days)

Example: “Wait for reorder_interval_days days (computed per contact from their purchase history).”

Configuration tips

  • Duration waits are the simplest — use them when timing is fixed
  • Event waits are the most powerful — they create natural yes/no branches without needing a separate branch node
  • Keep timeouts reasonable — a 30-day event wait means contacts sit in the journey for up to 30 days
  • Dynamic waits require the property to exist on the contact; contacts missing the property skip the wait

What’s next