Manual trigger
Start a workflow by hand — from Studio's Run button or the node's own Run.
The Manual Trigger (trigger_manual) starts a run when a person asks for one: the Run button in Studio's top bar, or Run on the node itself. It is the trigger to build and test with, and the one an operator uses to run a Package on demand.
A published workflow can also be started through the API whether or not it has a Manual trigger.
Configuration
| Field | Type | Default | Description |
|---|---|---|---|
description | string | '' | A note for whoever runs it — what the workflow does and what input, if any, it expects. Shown on the node. |
Output
The node's output is the run's input, which a Manual run sends flat (no body envelope):
| Reference | Value |
|---|---|
{{ trigger.<field> }} | A value from the input the run was started with. A Run from the node itself sends an empty input ({}). |
{{ run.trigger.type }} | manual. |
{{ run.trigger.id }} | This node's id. |
{{ run.startedAt }} | When the run started, ISO 8601 UTC. |
When the same workflow also has a Webhook or Form trigger, Studio's Run dialog prompts for that trigger's fields and wraps them under body, so a test run resolves {{ trigger.body.* }} the way a live one does. With several triggers, pick the one to Start from in that dialog — see Several triggers on one workflow.
Limits and errors
- A workflow can hold more than one Manual trigger. A manual run starts all of them.
- A run started from Studio counts against the same concurrency ceiling as any other run.
Example
A workflow an operator runs on demand to summarise the day so far:
name: Daily summary
description: Summarises today's tickets on demand.
graph:
nodes:
- id: start
type: trigger_manual
position: { x: 0, y: 0 }
data:
description: Run it whenever you want today's summary.
- id: summarise
type: ai_agent
position: { x: 280, y: 0 }
data:
mode: existing
agent: agents.summariser
agentName: Summariser
inputMappings: []
edges:
- { id: start-to-summarise, source: start, target: summarise }In a Package
Declare the trigger in the manifest:
triggers:
- id: run-manually
type: manual
description: Run it from Studio.On the node itself:
- Travels:
description - Converted: none
- Never carried: none
manual needs no entry in compatibility.requiredCapabilities. Check the Package with npx @elizon/cli validate, then npx @elizon/cli build.