Skip to main content

Workflow Builder

The Workflow Builder is a visual editor in the Zyphr dashboard for designing notification workflows without writing code.

Getting Started​

  1. Navigate to Messaging → Workflows in the dashboard
  2. Click Create Workflow
  3. Give your workflow a name (the key is auto-generated)
  4. Start adding steps

Step Types​

Channel Steps​

Drag channel steps onto the canvas to add notification delivery points:

StepDescriptionConfiguration
EmailSend emailSubject, HTML body, text body
PushSend push notificationTitle, body, image URL, custom data
SMSSend SMSBody text (with character counter)
In-AppSend in-app notificationTitle, body, action URL, category, priority

Delay Step​

Insert pauses between notification steps:

  • Amount: Number value (e.g., 1, 24, 72)
  • Unit: Minutes, hours, or days

Common patterns:

  • Wait 1 hour before sending push fallback
  • Wait 24 hours before sending email reminder
  • Wait 3 days before re-engagement

Branch Step​

Add conditional logic based on previous step outcomes. Branches let you create different notification paths based on whether a prior step succeeded or was engaged with.

How Branches Work​

  1. Select a previous step in the workflow to evaluate
  2. Choose a condition to check against that step's outcome
  3. The workflow splits into two paths: Yes (condition met) and No (condition not met)
  4. Add different steps to each path

Available Conditions​

ConditionDescriptionUse Case
deliveredMessage was successfully delivered to the recipientCheck if email/push/SMS reached the user
readRecipient opened or viewed the messageCheck if email was opened or in-app was seen
clickedRecipient clicked a link in the messageCheck if user engaged with the CTA
failedMessage delivery failedRoute to fallback channel on failure

Condition Syntax​

Each branch evaluates as:

IF [step_name] outcome IS [condition] THEN → Yes path
ELSE → No path

For example:

  • IF "Welcome Email" outcome IS clicked → Yes: done / No: send push reminder
  • IF "Push Notification" outcome IS delivered → Yes: done / No: send SMS fallback
  • IF "SMS Alert" outcome IS failed → Yes: send email fallback / No: done

Common Branch Patterns​

Engagement-based escalation:

Email → Delay 24h → Branch (email clicked?)
→ Yes: Done
→ No: Push Notification → Delay 4h → Branch (push delivered?)
→ Yes: Done
→ No: SMS

Failure fallback:

Push Notification → Branch (push delivered?)
→ Yes: Done
→ No: Email fallback

Read confirmation:

In-App Notification → Delay 1h → Branch (in-app read?)
→ Yes: Done
→ No: Email digest

Multiple Branches​

You can chain branches sequentially. Each branch can contain additional branches, delays, and channel steps on either path. There is no limit to nesting depth, but keep workflows readable — deeply nested branches become hard to debug.

Template Variables​

All channel step content supports {{variable}} syntax:

Title: Hello {{subscriber.name}}!
Body: Your order {{payload.orderId}} is confirmed.

Available variables:

  • {{payload.*}} — Data from the trigger payload
  • {{subscriber.name}} — Subscriber name
  • {{subscriber.email}} — Subscriber email
  • {{subscriber.metadata.*}} — Custom subscriber metadata

Workflow Lifecycle​

  1. Draft — Build and test your workflow
  2. Active — Workflow accepts triggers and processes executions
  3. Paused — Temporarily stop accepting new triggers
  4. Archived — Soft-delete (existing executions complete)

Monitoring​

View execution history from the workflow detail page:

  • See all executions with status (pending, running, completed, failed)
  • Click into an execution to see step-by-step progress
  • Each step shows its status, timing, and result