Skip to content

Branching and supporting spinners

Not every contact should follow the same path. CXGear gives you two complementary tools:

  1. Decision branches inside one spinner — “if this, go left; otherwise go right”
  2. Supporting (child) spinners — separate published pipelines that start from a parent when a condition is met (retries, callbacks)

Use branches for split logic in one run. Use supporting spinners when the follow-up is really a second job (for example “try WhatsApp again tomorrow” or “callback child”).

A decision step evaluates conditions and sends the row to different next steps.

Examples:

  • Phone present → WhatsApp; otherwise → log “skipped”
  • AI score is hot → human agent call; otherwise → email
  • Disposition already set → stop; otherwise → continue outreach

In the spinner builder you add branches with a when condition, a label, and a target step. Keep a default path so rows that match nothing still go somewhere safe (log and stop is better than hanging).

Screenshot needed
Spinner builder decision step with multiple branches and a default path.
Where: Spinners → Edit → Decision / branches
Save as: src/assets/screenshots/38-spinner-branches.png
  • Prefer simple conditions operators can explain
  • Put expensive AI steps only on the paths that need them
  • End each path with a Tag / disposition so Records stays clear
  • Publish after changing branch targets

Conditions often refer to metadata or earlier step outputs. Use the field names you configured as metadata — do not invent columns that only exist in the full CSV.

A supporting spinner is a child pipeline linked to a parent. It usually starts automatically when the parent finishes a row with a matching condition (for example disposition equals Retry). You typically do not click Run now on the child.

RoleWhat you do
ParentMain outreach or analysis recipe; you run or trigger this
Supporting childFollow-up recipe; linked by condition; published separately

On the Spinners list, children may show as child / supporting under or beside the parent.

Screenshot needed
Spinners list showing a parent and a supporting child spinner.
Where: Project → Spinners
Save as: src/assets/screenshots/39-supporting-spinner.png
Prefer a branch when…Prefer a supporting spinner when…
Paths run in the same job immediatelyFollow-up should be a separate run / job
Logic is a simple fork (send A vs B)Retry or callback policy is its own recipe
You want one journey timelineYou want parent and child jobs visible separately

Classic pattern: parent sends WhatsApp and tags Retry; supporting child runs a second WhatsApp attempt when that disposition appears.

In the builder you may see Add supporting spinner when designing parent/child links. Publish both sides after edits.

Main (non-supporting) spinners count toward your plan’s spinner cap. Supporting children are excluded from that count so retry designs do not burn seats in the spinner meter — but jobs and records they process still count monthly. See Plan limits.

  • Rows take the correct branch (check journey messages)
  • Default path handles odd data without silent drops
  • Child jobs appear when parent conditions match
  • Operators run the parent only; children start on their own
SymptomLikely causeWhat to do
Every row takes the default branchCondition never matchesFix field names and values; test with Log
Child never startsChild not published or link condition wrongPublish child; align disposition / condition text
Ran the child with Run nowSupporting spinner is not the entry pointRun the parent instead
Old branch behaviorForgot to republishPublish parent (and child)
Too many main spinnersDuplicated parents instead of childrenConsolidate; use supporting links