Skip to main content

Documentation Index

Fetch the complete documentation index at: https://juo.io/docs/llms.txt

Use this file to discover all available pages before exploring further.

Conditions define when the workflow should continue. If conditions are not met, the workflow stops.

What conditions do

  • Filter: only continue the workflow when criteria are met
  • Branch: route customers/subscriptions into different paths
  • Protect: stop paths that would be irrelevant or unsafe
Conditions block example
The Condition block uses a sentence-based rule builder to help you construct workflow logic. As you build your condition, smart autocomplete provides context-aware field suggestions.

Practical examples

  • Route first-time subscribers vs. loyal subscribers (e.g. by cycle count / age)
  • Route VIP vs. non‑VIP subscribers (e.g. by lifetime value or tags)
  • Route based on the product the customer is subscribed to

Conditions reference

customer.*

ConditionDescription
customer.revenueTotal revenue from the customer
customer.order_countTotal number of orders from the customer
customer.tagsTags associated with the customer
customer.created_atDate when customer account was created
customer.last_payment_statusStatus of the most recent billing attempt across all customer subscriptions

subscription.*

ConditionDescription
subscription.statusCurrent status of the subscription
subscription.cycle_countNumber of completed billing cycles
subscription.tagsTags associated with the subscription
subscription.item_countNumber of items in the subscription
subscription.total_valueTotal monetary value of the subscription
subscription.age_daysNumber of days since subscription was created
subscription.itemsLine items in the subscription (array items include productId, variantId, tags)
subscription.active_discountsActive discounts applied to the subscription (array items include type, value)

subscription_item.*

ConditionDescription
subscription_item.productIdShopify product ID of the item
subscription_item.variantIdShopify variant ID of the item
subscription_item.titleProduct title of the item
subscription_item.quantityQuantity of the item in the subscription
subscription_item.tagsTags associated with the product

upcoming_order.*

These conditions can be only used with the Next order updated trigger. They check the state of the next upcoming order. They are not directly associated with a subscription (if there are multiple delivery dates per subscription), but the subscription can be accessed via upcoming_order.subscriptions field.
ConditionDescription
upcoming_order.item_countTotal number of line items in the order
upcoming_order.total_quantitySum of quantities across all line items in the order
upcoming_order.unique_item_countNumber of distinct products in the order
upcoming_order.subtotalOrder subtotal before shipping and discounts
upcoming_order.delivery_priceDelivery/shipping price
upcoming_order.currency_codeCurrency code of the order (e.g. USD, EUR)
upcoming_order.cycle_indexBilling cycle index for this order
upcoming_order.skippedWhether the order was skipped
upcoming_order.itemsLine items in the order (array items include productId, variantId, title, quantity, price, subscriptionId)
upcoming_order.discountsDiscounts applied to the order (array items include type, value)
upcoming_order.subscriptionsSubscriptions included in this order, with per-subscription cycle count, item count, and value (array items include id, cycleCount, itemCount, totalValue)

time.*

ConditionDescription
time.hourCurrent hour of the day (0-23)
time.day_of_weekCurrent day of the week (0=Sunday, 6=Saturday)
time.dateCurrent date/time as ISO string

shop.*

ConditionDescription
shop.settingA configuration value from shop settings (uses params key?: string, default?: unknown)

response.*

ConditionDescription
response.stepResponse from a specific workflow step (uses params stepId: string, optional field: "type" | "data", optional dataPath: string)

usage_limit (no .* path)

ConditionDescription
usage_limitCount of usage-entry records for the given bucket and scope (params: key, scope, optional window)

display_limit (no .* path)

ConditionDescription
display_limitCount of display-entry records for the given bucket and scope (params: key, scope)