Skip to content

Journeys

Event-triggered, multi-step messaging flows. A journey is a trigger event plus a steps graph — build it in the dashboard's visual editor (Journeys → New journey) or as JSON via the API. Unlimited journeys on every plan.

How a journey runs

Subscribers enroll when your app tracks the trigger event (WingBlaze.trackEvent("cart_created") or a Segment inbound event). They then advance through the steps on the scheduler's sweep; sends apply frequency caps and quiet hours like campaigns.

Step types

StepBehavior
WaitPause for minutes/hours/days (max 30 days per wait).
SendDeliver a message to all the subscriber's enabled devices — pick an existing message or compose inline in the editor.
BranchEvaluate a tag filter at that moment; run the matching side, then continue after the branch.
GoalWait up to N hours for a conversion event. If it happens, the subscriber exits as converted — nothing after runs. On timeout, the flow continues (the nudge path).

The canonical example — abandoned cart

json
{
  "name": "Abandoned cart",
  "triggerEvent": "cart_created",
  "reentry": "always",
  "steps": [
    { "id": "g", "type": "goal", "event": "purchase", "timeoutHours": 24 },
    { "id": "c", "type": "condition",
      "filter": { "all": [{ "tag": "plan", "eq": "pro" }] },
      "then": [ { "id": "pro_nudge", "type": "send", "messageId": "..." } ],
      "else": [ { "id": "free_nudge", "type": "send", "messageId": "..." } ] }
  ]
}

Cart created → enroll. Purchase within 24h → exit converted, no nudge. Otherwise the nudge sends, split by plan.

Lifecycle & rules

  • Go live / pause any time; the graph is frozen while live, and pausing exits in-flight subscribers at their next wake.
  • Re-entry: once (default — a subscriber ever enrolls a single time) or always (re-enroll after finishing; never two active runs at once).
  • Stats: enrolled / in flow / completed / converted / exited, in the editor header and at GET /apps/:appId/journeys/:id/stats.
  • Analytics events journey_enrolled, journey_converted, journey_completed land in the event stream; delivery receipts carry meta.journeyId.

Data hosted in Southeast Asia (asia-southeast1).