Skip to Content
OrchestrationsOverview

Orchestrations

Orchestrations are multi-step, multi-channel workflows that move members through a sequence of steps — entry, delays, branches, and destination sends — automatically and at scale. You design each orchestration on a visual canvas by placing and connecting tiles.

Why Orchestrations?

One-shot audience syncs push a list to a destination once. Orchestrations let you think in terms of an ongoing experience instead of a single send:

  • Multi-step — Chain steps across hours, days, or weeks based on member behavior.
  • Multi-channel — Send to email, SMS, push, ad, CRM, and warehouse destinations within one flow.
  • Branching — Route members down different paths by filter conditions, or split them by percentage for testing.
  • Condition-aware waiting — Delay for a fixed time, or hold members until a condition is met.
  • Visual design — Build and read the whole flow on a drag-and-drop canvas.

How Orchestrations Work

Orchestration canvas flow
  1. Members enter the orchestration when they match the Entry tile — joining an audience or triggering an event.
  2. On each scheduled evaluation, the engine moves each member through the canvas tile by tile, respecting delays and evaluating branch conditions.
  3. Sends execute at each Send to Destination tile, pushing members to the configured destination.
  4. Members exit when they reach an Exit tile.

The Canvas

The canvas is a visual editor where you build a workflow by placing and connecting tiles. Each tile is a step, and edges define the flow between them.

TilePurposeExample
EntryWho enters”Members of the High-Value audience”
Send to DestinationSync to a destination”Send to Braze”
BranchRoute by filter conditions”If lifetime value > $500, take the VIP path”
A/B SplitSplit by percentage”80% variant A, 20% variant B”
DelayWait a fixed duration”Wait 3 days”
Hold UntilWait for a condition”Hold until the member opens the email”
MemoryStore a value on the member’s context”Set user_segment = high_value”
ExitRemove from the orchestration”Orchestration complete”

An orchestration has exactly one Entry tile and at least one Exit tile. The canvas is a directed acyclic graph — no loops.

Orchestration States

StateDescription
DraftBeing designed on the canvas. No members are processed.
ActiveLive. Members enter on the schedule and the engine advances them through tiles.
PausedTemporarily stopped. No new members enter and active members are held in place.
DrainingNo new members enter, but members already in the orchestration continue to their exit.
ArchivedRetired. No new entries.
ErrorAn evaluation problem needs attention; the reason is shown on the orchestration.

Rehearsal

Before activating, use Run Rehearsal to simulate how members would flow through the orchestration over a time window, without sending anything. A rehearsal reports how many members would have entered, where they would be, and how many would have completed or exited — a safe way to sanity-check the flow. See Execution & Monitoring.

Monitoring

While an orchestration is active, the canvas overlays live member counts on each tile, and the run history records each evaluation run. See Execution & Monitoring.

API Reference

Orchestrations are managed through the Zeotap REST API:

# List orchestrations GET /api/v1/workspaces/{id}/journeys # Get an orchestration with its canvas definition GET /api/v1/workspaces/{id}/journeys/{journeyId} # Create an orchestration POST /api/v1/workspaces/{id}/journeys # Activate / pause / resume POST /api/v1/workspaces/{id}/journeys/{journeyId}/activate POST /api/v1/workspaces/{id}/journeys/{journeyId}/pause POST /api/v1/workspaces/{id}/journeys/{journeyId}/resume

See the Orchestrations API for full request/response schemas.

Best Practices

  • Start simple — Begin with a linear flow (Entry → Delay → Send → Exit), then add branches once the core path works.
  • Rehearse first — Run a rehearsal before activating to confirm members flow where you expect.
  • Cover every path in a Branch — Members who match no branch stay put; add a catch-all branch to route the remainder.
  • Keep A/B Split totals at 100% — Members in an unallocated remainder are not routed.
  • Use exit criteria — Set conditions under which members should leave early (for example, once they convert).

Next Steps

Last updated on