#Start a process from an incoming request
A message start event starts a process whenever an external system sends a request, either to a webhook Chester registers on deploy or to a fixed URL you hand out.
#Two ways in
Which way applies is decided by the inbound action the start event uses — see Systems and adapters:
| Mode | Who sets it up | The address |
|---|---|---|
| Webhook | Chester registers the webhook with the external system when you deploy, and removes it when you undeploy | Chester chooses it and tells the external system |
| Static URL | You give the external system a fixed URL yourself | …/api/workflow/start/<correlation key> |
sequenceDiagram participant X as External system participant C as Chester participant P as Process Note over C,X: Webhook mode: on deploy, Chester registers the webhook X->>C: Request C->>C: Answer a handshake, if it is one — nothing starts C->>C: Check the signature or API key C->>C: Apply the filter C->>C: Skip it if it is a duplicate C->>P: Start an instance with the request's data
#Configure a message start event
- Connection settings → Action: pick the system, the inbound adapter and the inbound action. Optionally choose an Environment, and a Credentials override if this element needs different permissions than the environment gives.
- Fill in the groups the action asks for. Which appear depends on the action — for example the request body for the webhook registration, or a Delta query that fetches the changed records after each notification.
- Correlation → Correlation Key (optional) sets the end of the static URL. It may
only contain letters, digits and
-,_,.,~. Without it, the element's id is used. - Filter → Filter (optional): a condition on the incoming request. Only requests
for which it is true start the process. It can use
payload,headersandquery— nothing from the process, because none exists yet. Leave it empty to start on every request.
Signature checks and API keys are set on the adapter, transformations and duplicate detection on
the action — not on the element. A static URL needs one of the two: an adapter with neither an
API key nor a signature check refuses every request with 401, and the process editor shows an
error on this element until the adapter has one. The external system sends the key in the
X-API-Key header, or as Authorization: Bearer …. See Receive requests with a webhook adapter.
⚠️ The URL the adapter shows, …/api/workflow/start/<adapter id>, does not start this process.
Give the external system …/api/workflow/start/<correlation key> instead.
#Know whether the webhook is registered
Registration runs in the background after the deployment, so a deploy succeeds even if the external system refuses the webhook. The process list and the deployment show the state:
- Webhook active
- Registering webhook …
- Webhook registration failed
- Webhook expired
A webhook is renewed before it expires, and survives a restart of Chester.
#The data it provides
Under the start event's id, the process finds the request body — in webhook mode after
the action's transformations. _inbound — at the top of the process data, not under the
start event's id — holds the raw request: payload, headers and query, with credentials
removed, and when it arrived. (A message catch event keeps its
_inbound under its own id.) With a delta query, the start event's data
holds rawResponse, deltaResponse and, with a transform, deltaTransformation — see
Configure an inbound action. An empty delta starts nothing.
The initiator of such a run is the system, not a person.
#Limits
- ⚠️ Start Condition (optional), in the Delta query group, is saved but never evaluated. Use the Filter instead.
- ⚠️ A static URL accepts JSON only, and ignores the action's transformations: the process receives the body exactly as it was sent.
- ⚠️ A static URL is shared by every active deployment of the process. While a development and a production deployment are both active, one request starts two instances.
- ⚠️ The correlation key's help text suggests a variable such as
${context.triggerType}. Validation refuses$,{and}— the key is a fixed text. - ⚠️ If an external system retries a request that failed to start the process while duplicate detection is on, the retry counts as a duplicate and no instance is created.
- ⚠️ The validation messages of this element are German, whatever the language of the screen.
