Skip to main content

Overview

Conditions are optional filters on a trigger that narrow down which events generate a notification. Without conditions, a trigger fires for every event of its type. With conditions, you can restrict it to specific cases — e.g., only orders over $200, or only products from a specific vendor.

How Conditions Work

Each condition has three parts:
PartDescriptionExample
FieldThe data point to checkTotal Inventory
OperatorHow to compare the valueLess than
ValueThe threshold or target10
Multiple conditions can be added to a single trigger. When you have more than one condition, you choose how they combine:
ModeBehavior
All conditions must matchEvery condition must be true (AND logic)
Any condition can matchAt least one condition must be true (OR logic)
If no conditions are set, the trigger fires for all events of its type (subject to change detection for update events).

Operators

String fields:
OperatorBehavior
EqualsExact match (case-insensitive)
Doesn’t EqualDoes not match exactly
ContainsField includes the search text (case-insensitive)
Doesn’t ContainField does not include the search text
Numeric fields:
OperatorBehavior
EqualsExact numeric match
Doesn’t EqualNot equal
Greater thanField value is strictly above the threshold
Less thanField value is strictly below the threshold

Condition Fields by Entity

Product

Available for: Product created, Product updated, Product deleted
FieldTypeDescription
TitleStringProduct title
StatusStringactive, draft, or archived
Product TypeStringProduct type classification
VendorStringVendor/manufacturer name
TagsStringComma-separated product tags
URL HandleStringURL-friendly slug
DescriptionStringProduct description (HTML body)
FieldTypeDescription
Published AtStringWhen the product was published
Published ScopeStringPublication scope (web, global)
FieldTypeDescription
CategoryStringShopify product category
Is Gift CardStringWhether the product is a gift card (true/false)
Requires Selling PlanStringWhether a selling plan is required
Has Only Default VariantStringWhether the product has just one variant
Has Out-of-Stock VariantsStringWhether any variant is out of stock
CollectionsStringCollections the product belongs to
FieldTypeDescription
PriceNumberProduct price
Compare at PriceNumberCompare-at (original) price
Unit PriceNumberPer-unit price
Cost per ItemNumberCost of goods per item
FieldTypeDescription
Total InventoryNumberSum of inventory across all variants
Charge TaxStringWhether tax is charged (true/false)
Physical ProductStringWhether the product requires shipping
Inventory TrackedStringWhether inventory tracking is enabled
FieldTypeDescription
SEO Page TitleStringMeta title for SEO
SEO Meta DescriptionStringMeta description for SEO

Order

Available for: Order created, Order updated, Order paid, Order fulfilled, Refund created
FieldTypeDescription
Order NumberNumberSequential order number
Order NameStringDisplay name (e.g., #1001)
FieldTypeDescription
Total PriceNumberGrand total of the order
Subtotal PriceNumberSubtotal before tax/shipping
Total DiscountsNumberTotal discount amount applied
Total TaxNumberTotal tax charged
Total Line Items PriceNumberSum of all line item prices
Total OutstandingNumberAmount remaining to be paid
Total WeightNumberCombined weight of items
Current Total PriceNumberCurrent total (after edits)
Current Subtotal PriceNumberCurrent subtotal (after edits)
Total Tip ReceivedNumberTip amount
FieldTypeDescription
EmailStringEmail on the order
Contact EmailStringContact email address
PhoneStringPhone number
CurrencyStringOrder currency code (e.g., USD)
Presentment CurrencyStringDisplay currency
Financial StatusStringpaid, pending, refunded, etc.
Fulfillment StatusStringfulfilled, partial, unfulfilled
Display Financial StatusStringHuman-readable financial status
Display Fulfillment StatusStringHuman-readable fulfillment status
Customer IDStringAssociated customer ID
NoteStringOrder notes
Source NameStringWhere the order originated
TagsStringOrder tags
Customer LocaleStringCustomer’s locale
Cancel ReasonStringReason for cancellation
Landing SiteStringLanding page URL
Payment Gateway NamesStringPayment methods used
FieldTypeDescription
Buyer Accepts MarketingStringMarketing opt-in status
Test OrderStringWhether this is a test order
Tax ExemptStringWhether the order is tax exempt
Taxes IncludedStringWhether prices include tax
ConfirmedStringWhether the order is confirmed
EditedStringWhether the order has been edited
Duties IncludedStringWhether duties are included
FieldTypeDescription
Shipping CityStringCity
Shipping ProvinceStringProvince/state
Shipping CountryStringCountry
Shipping ZipStringPostal/ZIP code
Shipping Address 1StringStreet address
Shipping PhoneStringPhone on address
Shipping NameStringName on address
FieldTypeDescription
Billing CityStringCity
Billing ProvinceStringProvince/state
Billing CountryStringCountry
Billing ZipStringPostal/ZIP code
Billing Address 1StringStreet address
Billing PhoneStringPhone on address
Billing NameStringName on address
FieldTypeDescription
Customer EmailStringCustomer’s email
Customer First NameStringCustomer’s first name
Customer Last NameStringCustomer’s last name
Customer PhoneStringCustomer’s phone

Customer

Available for: Customer created, Customer updated, Customer deleted
FieldTypeDescription
EmailStringCustomer email address
First NameStringFirst name
Last NameStringLast name
PhoneStringPhone number
TagsStringCustomer tags
Accepts MarketingStringEmail marketing opt-in (true/false)
Lifetime Amount SpentNumberTotal amount the customer has spent
Lifetime Number of OrdersNumberTotal number of orders placed
LocaleStringCustomer’s locale
Product Subscriber StatusStringSubscription status
Tax ExemptionsStringTax exemption info

Returns

Available for: all Return trigger types (requested, approved, declined, processing, closed, cancelled, reopened, updated)
FieldTypeDescription
StatusStringCurrent return status
Return ReasonStringReason provided for the return
Line Item CountNumberNumber of items in the return
Total Refund AmountNumberTotal refund value
CurrencyStringCurrency code
Order IDStringID of the associated order
Customer EmailStringCustomer’s email address

Cart Abandoned

Available for: Cart abandoned
FieldTypeDescription
Customer EmailStringCustomer’s email address
First NameStringCustomer’s first name
Last NameStringCustomer’s last name
Total PriceNumberCart total value
CurrencyStringCurrency code
Line Item CountNumberNumber of items in the cart

Condition Evaluation

Conditions are evaluated when a webhook is processed:
  1. The worker loads the current entity data (enriched via Shopify GraphQL where needed — e.g., collections and inventory totals for products).
  2. For each active trigger of the matching type, the evaluator checks every condition row.
  3. Each condition’s field value is looked up and compared using the specified operator.
  4. Results are combined using the condition mode (all = AND, any = OR).
  5. If the result is true, the notification is dispatched.
For Product updated and Order updated triggers, a notification is only sent when actual changes are detected compared to the previous snapshot. This prevents duplicate alerts from Shopify’s occasional webhook re-deliveries.