All component IDs shipped with Order Daemon Core and Pro. Use these when writing rules programmatically (CLI, API, tests) or when checking what’s available before building a custom component.
IDs are stable. They match the get_id() return value of each class.
Triggers
Triggers define when a rule fires.
| ID | Label | Tier | Source |
|---|---|---|---|
order_processing | Order Processing | Free | Core |
any_status_change | Any Status Change | Pro | Pro |
order_created | Order Created | Pro | Pro |
order_on_hold | Order On Hold | Pro | Pro |
payment_complete | Payment Complete | Pro | Pro |
subscription_renewal | Subscription Renewal | Pro | Pro |
Conditions
Conditions are evaluated after the trigger fires. All conditions in a rule must pass for the rule to continue.
| ID | Label | Tier | Source |
|---|---|---|---|
order_total_amount | Order Total Amount | Free | Core |
product_category | Product Category | Free | Core |
product_type | Product Type | Free | Core |
event_type | Event Type | Pro | Pro |
source_gateway | Source Gateway | Pro | Pro |
timing_condition | Timing | Pro | Pro |
Actions
Actions execute when all conditions pass.
| ID | Label | Tier | Source |
|---|---|---|---|
change_status_to_completed | Change Status to Completed | Free | Core |
add_order_note | Add Order Note | Pro | Pro |
change_status_to_on_hold | Change Status to On Hold | Pro | Pro |
change_status_to_processing | Change Status to Processing | Pro | Pro |
send_email | Send Email | Pro | Pro |
Using IDs programmatically
When creating rules via REST API or CLI, reference components by their string ID:
{
"trigger": { "id": "order_processing", "settings": {} },
"conditions": [
{ "id": "order_total_amount", "settings": { "min": 50, "max": null } },
{ "id": "product_category", "settings": { "category_ids": [12, 34] } }
],
"primaryAction": { "id": "change_status_to_completed", "settings": {} },
"secondaryActions": []
}Saving a rule with premium component IDs returns a 403 from the REST API if Pro is not active.
Keeping this catalog current
This table is generated from extracted-symbols.json which is produced by:
npm run extract-symbolsRun this after updating the plugin source to regenerate the catalog data. Then update this page to reflect any additions or removals.
What’s next
- Developer quick start – Build your first custom component
- Creating custom rule components – Full component guide
- REST API overview – Using components via REST API