Skip to Content
OrchestrationsCreating an Orchestration

Creating an Orchestration

This guide walks you through building, rehearsing, and activating an orchestration, from naming it to launching it for your audience.

Prerequisites

Before you start, make sure you have:

  • A Zeotap workspace with permission to manage orchestrations
  • A parent model to build on, and either an audience on that model (for audience entry) or an event model with a relationship to it (for event entry)
  • At least one destination configured (for Send to Destination tiles)

Step 1: Create the orchestration

  1. Navigate to Orchestrations in the left sidebar.
  2. Click Create Orchestration.
  3. Give it a descriptive name (for example, “New Customer Onboarding” or “Cart Abandonment Recovery”) and choose the parent model.

The orchestration opens on the canvas in Draft state. No members are processed while it is a draft.

Step 2: Configure the Entry tile

Every orchestration starts with an Entry tile, already placed on the canvas. Click it to open its configuration.

Choose an Entry Type:

  • Audience — Select an audience built on the parent model. Its members enter the orchestration, and new members enter as they qualify on each evaluation.
  • Event — Select an event model and the relationship linking it to the parent model. Members enter when the event occurs. Optionally add an Event Property Filter so only matching events trigger entry (for example, cart_value > 50).

Enable Allow re-entry if a member who has exited should be able to enter again when they re-qualify. (Manual entry is not available — members enter only via an audience or event.)

Step 3: Add tiles

Build the flow by adding tiles from the Add Tile palette on the left — drag a tile onto the canvas, or click it to add. Click any tile to open its configuration panel and fill in the required settings. See Tile Types for every tile and its options.

A typical onboarding flow looks like:

  1. Entry — new signups
  2. Delay — 1 day
  3. Send to Destination — welcome email
  4. Delay — 3 days
  5. Branch — opened the email?
    • Opened — Send to Destination (feature guide), then Exit
    • Catch-all — Send to Destination (reminder), then Exit

Step 4: Connect tiles

Tiles are joined by edges that define the flow:

  1. Hover a tile to reveal its connection handle.
  2. Drag from the handle to the next tile and release to create the edge.

Connection rules:

  • Entry has no incoming edges and one outgoing edge.
  • Branch and A/B Split have one outgoing edge per branch/port.
  • Exit has no outgoing edges.
  • The canvas is a directed acyclic graph — no loops.

Step 5: Set exit criteria (optional)

Beyond reaching an Exit tile, you can define exit criteria — a condition that removes any matching member from the orchestration early, wherever they are. This keeps members from receiving further steps once they’ve converted or opted out. Exit criteria are a filter over the parent model, evaluated on each run.

Step 6: Set the schedule

An orchestration advances members on a schedule — each evaluation run checks for new entrants, advances waiting members whose delays or conditions are satisfied, and executes sends. Set how often it runs (for example, hourly or daily). Delays and holds resolve to the granularity of this schedule.

Step 7: Rehearse

Before going live, click Run Rehearsal to simulate how members would flow through the orchestration over a chosen time window — without sending anything. The rehearsal reports how many members would enter, where they would land, and how many would complete or exit. Adjust the flow and rehearse again until it behaves as you expect. See Execution & Monitoring.

Step 8: Validate and activate

  1. Click Save.
  2. Click Activate. Zeotap validates the canvas first — it checks for exactly one Entry tile, no cycles, edges that reference real tiles, and required configuration on each tile. Validation errors must be fixed before activation.
  3. On success the orchestration moves from Draft to Active and begins processing members on the schedule.

To make changes later, use Pause to stop processing, edit, then Resume. See Execution & Monitoring.

Using the API

You can create and manage orchestrations programmatically:

# Create an orchestration curl -X POST https://composable.zeotap.com/api/v1/workspaces/{id}/journeys \ -H "Authorization: Bearer $API_TOKEN" \ -H "X-Workspace-ID: {id}" \ -H "Content-Type: application/json" \ -d '{ "name": "Cart Abandonment Recovery", "parent_model_id": "770e8400-e29b-41d4-a716-446655440000", "schedule": "0 * * * *", "tiles": [ ... ], "edges": [ ... ] }' # Activate it curl -X POST https://composable.zeotap.com/api/v1/workspaces/{id}/journeys/{journeyId}/activate \ -H "Authorization: Bearer $API_TOKEN" \ -H "X-Workspace-ID: {id}"

See the Orchestrations API for the full schema.

Common patterns

Onboarding sequence

  1. Entry — signed-up audience
  2. Delay — 1 day
  3. Send — welcome email
  4. Delay — 3 days
  5. Branch — engaged?
    • Send a targeted follow-up or reminder, then Exit

Cart abandonment

  1. Entrycart_abandoned event
  2. Delay — 1 hour
  3. Hold Until — purchase completed, timeout 1 day
    • Condition metExit
    • Timed out — Send reminder, then Exit

Re-engagement

  1. Entry — inactive audience
  2. Send — re-engagement email
  3. Delay — 7 days
  4. Branch — any recent activity?
    • ActiveExit
    • Catch-all — Send final offer, then Exit

Troubleshooting

IssueWhat to check
No members enteringConfirm the entry audience has members, or that the event is arriving; check the schedule has run.
Members stuck at a BranchA member matching no branch stays put — add a catch-all branch with an empty filter.
Members stuck at a Delay or Hold UntilDelays resolve on the schedule; a Hold Until releases only when its condition is met or its timeout elapses.
Send tile errorsVerify the destination is connected and healthy, and that the field mappings are complete.
Won’t activateValidation failed — fix each reported error, then activate again.

Next Steps

Last updated on