Smart Order Capture
Reference

Triggers

Every trigger node available in DSL v1. Each one starts a workflow when its condition is met.

A workflow has exactly one trigger. Pick the one that matches when you want the workflow to run. For ad-hoc execution, use trigger.manual (a pinned shortcut) or trigger.pushFromCloud (run from the web).

Heads up
Triggers that target a specific Android packageName are subject to denylist enforcement. See denylist.

Time (cron)

trigger.time

Fire on a Vixie-style 5-field cron schedule.

Fields
NameTypeNotes
cron*string5-field cron, e.g. `0 7 * * 1-5`
timezonestringIANA timezone, defaults to `UTC`

Resolution floor is 15 minutes — the WorkManager minimum periodic interval. Patterns finer than 15min still validate but only fire on each 15-minute tick that matches.

Scheduled window

trigger.scheduledWindow

Fire when the local time is inside a recurring window on specific weekdays.

Fields
NameTypeNotes
daysOfWeek*number[]0=Sunday..6=Saturday
startMinute*numberMinute of day, 0..1439
endMinute*numberMinute of day, 0..1439
timezonestringIANA timezone, defaults to `UTC`

App opened

trigger.appOpened

Fire when a target app comes into the foreground.

Fields
NameTypeNotes
packageName*stringAndroid package id, e.g. `com.spotify.music`

Driven by AccessibilityService window-state-changed events. Denylisted packages cannot be the target.

App closed

trigger.appClosed

Fire when a target app leaves the foreground.

Fields
NameTypeNotes
packageName*string

SMS received

trigger.smsReceived

Fire when an incoming SMS matches optional sender or body patterns.

Fields
NameTypeNotes
fromPatternstring?Regex matched against the sender address
bodyPatternstring?Regex matched against the message body
Android permission: RECEIVE_SMS, READ_SMS

Notification received

trigger.notificationReceived

Fire when a notification arrives that matches optional package, title, or text patterns.

Fields
NameTypeNotes
packageNamestring?
titlePatternstring?Regex
textPatternstring?Regex
Android permission: BIND_NOTIFICATION_LISTENER_SERVICE — granted via Settings → Notification access

Charging state

trigger.chargingState

Fire when the charger is connected or disconnected.

Fields
NameTypeNotes
state*"connected" | "disconnected"

Wi-Fi connect

trigger.wifiConnect

Fire when the device connects to a Wi-Fi network whose SSID matches an optional pattern.

Fields
NameTypeNotes
ssidPatternstring?Regex
Android permission: ACCESS_WIFI_STATE

Location enter (geofence)

trigger.locationEnter

Fire when the device enters a circular geofence around a point.

Fields
NameTypeNotes
lat*number
lng*number
radiusMeters*number10..50_000
Android permission: ACCESS_FINE_LOCATION, ACCESS_BACKGROUND_LOCATION

Manual

trigger.manual

Fire from a homescreen shortcut you pin.

No configuration. Tap the pinned shortcut to fire.

NFC tag

trigger.nfcTag

Fire when a specific NFC tag is scanned while the app is in the foreground.

Fields
NameTypeNotes
tagId*stringHex tag id
Android permission: NFC

Shake

trigger.shake

Fire when the accelerometer registers a shake above the threshold.

Fields
NameTypeNotes
thresholdnumberAcceleration magnitude in m/s² minus gravity; default 15

Debounced to once every 1.5s.

Headset plugged

trigger.headsetPlugged

Fire when wired headphones are plugged in or unplugged.

Fields
NameTypeNotes
state*"plugged" | "unplugged"

Boot

trigger.boot

Fire once after device boot.

Android permission: RECEIVE_BOOT_COMPLETED

Push from cloud

trigger.pushFromCloud

Fire when the API sends a `workflow.fire` FCM message — e.g. via the web app's "Run now" button.

No configuration. Useful for testing or for chaining workflows from a server-side script via the REST API.