What is a Step?
A step is a single unit of work in an automation workflow. Each step performs one action — calling an API, transforming data, running a script, querying a database — and produces an output that downstream steps can use. Steps are the building blocks you connect together on the canvas to create your workflow logic.Adding Steps
To add a step to your workflow, click the Step dropdown in the canvas header and select a step type. The new step appears as a node on the canvas. Click on it to open the configuration panel on the right, where you set up the step’s inputs, authentication, and behavior. Once configured, connect steps by dragging from one step’s output handle to another step’s input handle. The connections define the execution order.Configuring a Step
Select any step on the canvas to open its configuration panel. Every step has:- Name — a unique identifier used to reference the step in template variables
- Type-specific fields — inputs that vary by step type (URL for HTTP Request, prompt for Transformer, etc.)
- Branches — optional conditional paths based on step output
- Presets — saved configurations you can apply with one click
Generate with AI
Steps that include a prompt, script, or SQL editor have a built-in Generate with AI feature. Click the sparkle icon in the bottom-right corner of the editor to open a dialog where you describe what you need in plain language — the AI generates the content for you.| Step Type | What Gets Generated |
|---|---|
| Transformer | Transformation prompt |
| Validator | Validation prompt |
| Code | Node.js or Python script |
| Database (Query mode) | SQL query |
Presets
Presets are reusable step configurations saved at the organization level. They let you quickly apply a standard configuration to a new step instead of setting it up from scratch.- Applying a Preset — When adding or editing a step, select a preset from the presets dropdown. The step’s configuration fields are filled in automatically.
- Creating a Preset — Configure a step the way you want, then save it as a preset. It becomes available for all future steps of that type.
- System vs User Presets — System presets are provided by Royaltyport. User presets are created by your team.
- Active Indicator — The currently applied preset is shown with an active badge on the step.
Branches & Conditions
Branches create conditional execution paths after a step completes. When a step finishes, its output is evaluated against branch conditions to determine which path to follow. Each branch has:- Label — a descriptive name for the path
- Field path — the output field to evaluate (e.g.
output.status) - Operator — the comparison operator
- Value — the value to compare against (not required for unary operators)
| Operator | Description |
|---|---|
equals | Exact match |
not_equals | Does not match |
contains | Contains substring |
not_contains | Does not contain substring |
greater_than | Numerically greater |
less_than | Numerically less |
starts_with | Starts with string |
ends_with | Ends with string |
is_empty | Value is empty (unary) |
is_not_empty | Value is not empty (unary) |
is_null | Value is null (unary) |
is_not_null | Value is not null (unary) |
Unary operators (
is_empty, is_not_empty, is_null, is_not_null) do not require a comparison value.- Else branch — fallback path taken when no other branch conditions match
- Default connector — the path followed when no branches are configured at all
Output Schemas
Every step produces a typed output object. Downstream steps can reference these outputs using template variables. The Schemas panel on the canvas shows all available data paths organized by source:- Trigger — data from the trigger event
- Variables — organization and project variables
- Databases — connected automation databases
- Steps — outputs from earlier steps
Template Variables
Template variables let you reference dynamic data inside step configurations. Use double curly braces to insert them.| Syntax | Source | Example |
|---|---|---|
{{trigger.*}} | Trigger event data | {{trigger.contract_id}} |
{{step.{name}.output.*}} | Output from an earlier step | {{step.fetch-data.output.body}} |
{{db:{name}.{table}[]}} | Automation database data | {{db:my-db.users[]}} |
{{iteration.item}} | Current loop item | {{iteration.item.id}} |
{{iteration.parent.*}} | Parent loop context (nested loops) | {{iteration.parent.item}} |
{{variable.{name}}} | Organization/project variable | {{variable.api_config}} |
Step Types
API Request
Make API calls to external services.
Transformer
AI-powered data transformation.
Validator
AI-powered data validation.
Code
Run custom Node.js or Python scripts.
Database
Query automation databases.
Loop
Iterate over arrays with nested steps.
SFTP
Transfer files via SFTP.
Notification
Send email notifications.
Review
Create review requests for human approval.