Start a workflow from several events
Multiple entry nodes are available by default. Open a workflow and choose Ajouter un déclencheur in the palette. Unavailable combinations remain listed with their reason. Select an entry on the canvas to edit its event, identifier and filter; move it like any other node. Deleting an entry removes its connections. The last entry is protected.
Entries must receive distinct declared events and establish the same nonempty set of context kinds. Webhooks, schedules, workflow calls and direct EAI message triggers keep one entry. For an EAI connection, use its bindings to emit declared domain events when several event types should start the workflow.
Each incoming event starts a separate run through one entry. The other entries and their exclusive branches are skipped. A workflow does not wait for its other entry events. Filter each entry independently: removing one entry's filter does not change another entry's audience.
Share a branch
Connect each entry to its own processing with data wires or done → after. To share subsequent processing, feed compatible values into separate inputs of Fusion de branches (flow.merge), then connect the merge's output or done to the common branch. Connecting both entry done ports directly to one after requires both entries in one run and is refused.
The following shape uses example event types Opened and Updated; substitute events declared by your loaded plugins with matching context:
apiVersion: meridian/v3
name: Shared processing
context: [subject]
triggers:
opened:
type: trigger.event-received
config: { event: Opened }
updated:
type: trigger.event-received
config: { event: Updated }
nodes:
merge:
type: flow.merge
config: { type: Boolean }
text:
type: value.text
config: { value: Received }
connections:
- { from: opened.done, to: merge.value1 }
- { from: updated.done, to: merge.value2 }
- { from: merge.done, to: text.after }
A sink or human task must be connected to a branch or merge. Required inputs from exclusive branches cannot be combined directly. Warnings identify optional inputs and configuration fallbacks that differ across entries; review them before publishing.
Test every entry
Choose Simuler, then the entry to test. Its event example is filled in. The report runs only this route, highlights inactive branches, and reports whether the entry filter would accept the event. A false filter does not stop this targeted simulation. Repeat for every entry, including empty optional data and filter rejection.
In Exécutions, choose an entry when composing a test event. The run list can filter by workflow and entry. A run's graph uses the definition it started with, even after another version is published.
Calls and shared state
A workflow with several entries cannot be called as a subworkflow or agent tool. It can call a single-entry child. Publishing a conversion to several entries is refused while an active workflow or registered agent still calls that definition.
Distinct events can run concurrently. Use conditional memory writes with expectedVersion where concurrent updates must be detected. A merge combines branches of one run, not events from different runs.