Overview
Every trigger in Alius starts with a type — the Shopify event you want to monitor. But the real power comes from advanced conditions, which let you filter which instances of that event should generate a notification. Without conditions, a “Product updated” trigger fires for every product change in your store. With conditions, you can narrow it down to “only when inventory drops below 10” or “only when the vendor is Nike”.Creating a Trigger
Set the Basics
- Title: A descriptive name (shown in the triggers list).
- Status: Active (live) or Disabled (paused).
- Type: The Shopify event to watch.
- Notification Hub: Select Slack.
- Channels: Choose one or more enabled Slack channels.
Select a Template (Optional)
Pick a saved template from the dropdown, or leave it blank to use the built-in default format. See Templates for more.
Add Conditions (Optional)
Click the ⊕ icon under “Additional conditions” to add your first filter row.
How Conditions Work
Condition Rows
Each condition consists of three parts:| Part | Description | Example |
|---|---|---|
| Field | The data point to check | Total Inventory |
| Operator | The comparison to apply | Less than |
| Value | The threshold or target | 10 |
Condition Mode
When you have more than one condition, you choose how they combine:| Mode | Behavior | Example |
|---|---|---|
| All conditions must match | Every condition must be true for the notification to fire. (AND logic) | Inventory < 10 AND Vendor equals “Nike” |
| Any condition can match | At least one condition must be true. (OR logic) | Vendor equals “Nike” OR Vendor equals “Adidas” |
Operators
The available operators depend on the field’s data type: String Fields:| Operator | Behavior |
|---|---|
| Equals | Exact match (case-insensitive) |
| Doesn’t Equal | Not an exact match |
| Contains | Field value includes the search text (case-insensitive, punctuation-tolerant) |
| Doesn’t Contain | Field value does not include the search text |
| Operator | Behavior |
|---|---|
| Equals | Exact numeric match |
| Doesn’t Equal | Not equal |
| Greater than | Field value is strictly above the threshold |
| Less than | Field value is strictly below the threshold |
Condition Fields by Entity
Product Condition Fields
Available for trigger types: Product created, Product updated, Product deleted.Basic Product Fields
Basic Product Fields
| Field | Type | Description |
|---|---|---|
| Title | String | The product’s title |
| Status | String | active, draft, or archived |
| Product Type | String | The product type classification |
| Vendor | String | The product vendor/manufacturer |
| Tags | String | Comma-separated product tags |
| URL Handle | String | The URL-friendly handle |
| Description | String | Product description (HTML body) |
Publication Fields
Publication Fields
| Field | Type | Description |
|---|---|---|
| Published At | String | When the product was published |
| Published Scope | String | Publication scope (web, global) |
Taxonomy & Classification
Taxonomy & Classification
| Field | Type | Description |
|---|---|---|
| Category | String | Shopify product category |
| Is Gift Card | String | Whether the product is a gift card (true/false) |
| Requires Selling Plan | String | Whether a selling plan is required |
| Has Only Default Variant | String | Whether the product has just one variant |
| Has Out-of-Stock Variants | String | Whether any variant is out of stock |
| Collections | String | Collections the product belongs to |
Pricing & Cost
Pricing & Cost
| Field | Type | Description |
|---|---|---|
| Price | Number | Product price |
| Compare at Price | Number | Compare-at (original) price |
| Unit Price | Number | Per-unit price |
| Cost per Item | Number | Cost of goods per item |
Inventory & Shipping
Inventory & Shipping
| Field | Type | Description |
|---|---|---|
| Total Inventory | Number | Sum of inventory across all variants |
| Charge Tax | String | Whether tax is charged (true/false) |
| Physical Product | String | Whether the product requires shipping |
| Inventory Tracked | String | Whether inventory is tracked |
SEO
SEO
| Field | Type | Description |
|---|---|---|
| SEO Page Title | String | Meta title for SEO |
| SEO Meta Description | String | Meta description for SEO |
Order Condition Fields
Available for trigger types: Order created, Order updated.Order Identification
Order Identification
| Field | Type | Description |
|---|---|---|
| Order Number | Number | The sequential order number |
| Number | Number | Internal order number |
| Order Name | String | Display name (e.g., #1001) |
Pricing & Financials
Pricing & Financials
| Field | Type | Description |
|---|---|---|
| Total Price | Number | Grand total of the order |
| Subtotal Price | Number | Subtotal before tax/shipping |
| Total Discounts | Number | Total discount amount applied |
| Total Tax | Number | Total tax charged |
| Total Line Items Price | Number | Sum of all line item prices |
| Total Outstanding | Number | Amount remaining to be paid |
| Total Weight | Number | Combined weight of items |
| Current Total Price | Number | Current total (after edits) |
| Current Subtotal Price | Number | Current subtotal |
| Total Tip Received | Number | Tip amount |
Status & Contact
Status & Contact
| Field | Type | Description |
|---|---|---|
| String | Email associated with the order | |
| Contact Email | String | Contact email address |
| Phone | String | Phone number |
| Currency | String | Order currency code (e.g., USD) |
| Presentment Currency | String | Display currency |
| Financial Status | String | paid, pending, refunded, etc. |
| Fulfillment Status | String | fulfilled, partial, unfulfilled |
| Customer ID | String | Associated customer ID |
| Note | String | Order notes |
| Source Name | String | Where the order originated |
| Tags | String | Order tags |
| Customer Locale | String | Customer’s locale |
| Cancel Reason | String | Reason for cancellation |
| Landing Site | String | Landing page URL |
| Payment Gateway Names | String | Payment methods used |
Flags
Flags
| Field | Type | Description |
|---|---|---|
| Buyer Accepts Marketing | String | Marketing opt-in status |
| Test Order | String | Whether this is a test order |
| Tax Exempt | String | Whether the order is tax exempt |
| Taxes Included | String | Whether prices include tax |
| Confirmed | String | Whether the order is confirmed |
| Edited | String | Whether the order has been edited |
| Display Financial Status | String | Human-readable financial status |
| Display Fulfillment Status | String | Human-readable fulfillment status |
| Duties Included | String | Whether duties are included |
Shipping Address
Shipping Address
| Field | Type | Description |
|---|---|---|
| Shipping City | String | City |
| Shipping Province | String | Province/state |
| Shipping Country | String | Country |
| Shipping Zip | String | Postal/ZIP code |
| Shipping Address 1 | String | Street address |
| Shipping Phone | String | Phone on shipping address |
| Shipping Name | String | Name on shipping address |
Billing Address
Billing Address
| Field | Type | Description |
|---|---|---|
| Billing City | String | City |
| Billing Province | String | Province/state |
| Billing Country | String | Country |
| Billing Zip | String | Postal/ZIP code |
| Billing Address 1 | String | Street address |
| Billing Phone | String | Phone on billing address |
| Billing Name | String | Name on billing address |
Customer (from Order)
Customer (from Order)
| Field | Type | Description |
|---|---|---|
| Customer Email | String | Customer’s email |
| Customer First Name | String | Customer’s first name |
| Customer Last Name | String | Customer’s last name |
| Customer Phone | String | Customer’s phone |
Customer Condition Fields
Available for trigger types: Customer created, Customer updated, Customer deleted.| Field | Type | Description |
|---|---|---|
| String | Customer email address | |
| First Name | String | First name |
| Last Name | String | Last name |
| Phone | String | Phone number |
| Tags | String | Customer tags |
| Accepts Marketing | String | Email marketing opt-in status |
| Lifetime Amount Spent | Number | Total amount customer has spent |
| Lifetime Number of Orders | Number | Total number of orders placed |
| Locale | String | Customer’s locale |
| Product Subscriber Status | String | Subscription status |
| Tax Exemptions | String | Tax exemption info |
Condition Evaluation
Conditions are evaluated at the moment a webhook is processed, against the current state of the entity. Here’s how it works:- A Shopify webhook arrives (e.g.,
products/update). - The worker loads the current product data and (for products) enriches it via the Shopify GraphQL API to fetch fields like collections, SEO data, and inventory totals.
- The worker checks each active trigger of the matching type.
- For each trigger with conditions, the evaluator checks:
- Each condition row’s field is looked up in the entity data.
- The operator is applied against the value.
- Results are combined using the trigger’s condition mode (
all= AND,any= OR).
- If the condition evaluation returns
true, the notification is sent. - If the trigger has no conditions, the notification is always sent (assuming the event has actual changes).
For “Product updated” and “Order updated” triggers, notifications are only sent when there are actual changes detected compared to the previous snapshot. This prevents duplicate alerts from Shopify’s occasional webhook re-deliveries.
Examples
Example 1: Low Stock Alert
Goal: Get notified when any product’s inventory drops below 10.| Setting | Value |
|---|---|
| Type | Product updated |
| Condition Field | Total Inventory |
| Operator | Less than |
| Value | 10 |
Example 2: High-Value Order Alert
Goal: Get notified only for orders over $200.| Setting | Value |
|---|---|
| Type | Order created |
| Condition Field | Total Price |
| Operator | Greater than |
| Value | 200 |
Example 3: VIP Customer Update
Goal: Get notified when a customer who has spent over $1,000 updates their profile.| Setting | Value |
|---|---|
| Type | Customer updated |
| Condition Field | Lifetime Amount Spent |
| Operator | Greater than |
| Value | 1000 |
Example 4: Specific Vendor Product Changes
Goal: Only track product changes from a specific vendor.| Setting | Value |
|---|---|
| Type | Product updated |
| Condition Field | Vendor |
| Operator | Equals |
| Value | Nike |
Example 5: International Orders
Goal: Get alerted when an order ships to a country outside the US.| Setting | Value |
|---|---|
| Type | Order created |
| Condition Field | Shipping Country |
| Operator | Doesn’t Equal |
| Value | US |
