Skip to main content
Triggers and actions return signals while Automate.ax plans the automation. Derive the value you need synchronously, then pass that signal to the next action.
automations/describe-request.automation.ts

Read a property

Access a property directly on the signal. request.path is a Signal<string>; request.path.length is a Signal<number>. Chained access records the dependency without reading the value during planning. Use transform when you need to call a value method, calculate a new value, combine signals, or branch inside a pure function.

Build a string

Use t when a string contains signals:
An ordinary template literal tries to convert each signal before its value exists and throws:
Use an ordinary template literal inside a transform callback or action handler, where the values already exist.

Accept a value or signal

Use isSignal in a reusable helper whose input permits either form. Action inputs already accept compatible signals, so ordinary automation code rarely needs the check. Derivation functions must stay synchronous and pure. Actions own network calls, file writes, and other external work.