#Start a process
A plain start event lets a person start the process by hand, optionally with a form, and lets another process or the API start it with data.
#Who can start a process
flowchart LR
P["A person<br/>(Execution app)"] -- "needs Manual start" --> S(("Start event"))
C["Another process<br/>(call activity)"] --> S
A["The API"] --> S
W["A webhook<br/>or static URL"] --> M(("Message<br/>start event"))
S --> R["The process runs"]
M --> R
| Start event | Status | Started by |
|---|---|---|
| Plain start event | ✅ | A person in the Execution app — once Manual start is on — another process, or the API |
| Message start event | ✅ | An incoming webhook or request |
| Timer start event | ⚠️ | Deploys, but never fires. Nothing starts the process when the time comes |
| Signal, conditional, error and escalation start events | ⚠️ | Deploy, but nothing triggers them |
| Compensation start event | ⚠️ | Runs like a plain start event |
⚠️ A timer start event shows a Timer group with a Type — date, duration or cycle — and a Value. Nothing reads them. To run a process on a schedule, have an external system call it.
#Let a person start the process
- Select the start event and open the Manual start group.
- Switch it on with the toggle in the group's header.
- Optionally pick a Form. Without one, the person fills in the fields of the input schema instead; without an input schema, the process starts straight away.
- With a form, map its answers onto the input-schema fields — one expression per field,
typically
formData.<field>.
The person starts the process from a process catalog in the Execution app. That needs a production deployment; a development deployment cannot be started from there.
⚠️ A start event without Manual start is not offered to people. Another process and the API can still start it.
#Several start events
A process may have more than one start event. Every run begins at exactly one of them:
- A person who can choose between several manual starts is asked which one to use, by name.
- A calling process names the start event it wants.
- Otherwise the first plain start event is used.
#The data a start event provides
What the process was started with is stored under the start event's id — for example
StartEvent_1.orderId — and the person who started it under __INITIATOR. A process
started by another process receives the values the calling step mapped. See
Work with process data.
⚠️ The data is checked against the input schema only when a person starts the process through a start form.
#What validation checks
Nothing is required on a plain start event. A process without a start event, one with several plain start events, and a start event with an incoming flow each get a warning.
