Parent and child events
In specific cases, events may be triggered by activity associated with an earlier event. In these scenarios, we describe the subsequent event as a child event, and the preceding event as a parent.
- The "event" action can be used to generate new events, to be run now or in the future.
- Events generated in response to action runs, having the event topic "mechanic/actions/perform", are always child events.
When viewing any given event in Mechanic, look in the event details to find any parent or child relationships that apply:

Under "Parent" or "Children", click on a linked event topic to open up a specific event.
Example
To see this in action, try creating a task that looks like this:
Task subscriptions
mechanic/user/trigger user/fan/out
Task script
{% assign n = event.data | default: 0 | times: 1 %} {% if n < 5 %} {% for m in (0..n) %} {% action "event" %} { "topic": "user/fan/out", "data": {{ n | plus: 1 | json }}, "task_id": {{ task.id | json }} } {% endaction %} {% endfor %} {% else %} {% action "echo", event_data: event.data, parent_event_data: event.parent.data %} {% endif %}
As written, this task will "fan out": it will generate 1 child event, which will then generate 2 child events, each of which will then generate 3 child events, and each of those will then generate 4 child events, and finally, each of those events will generate 5 child events of their own. The result: 154 events, created with a single click. :)
And, importantly, note the "task_id"
option, applied to the "event" action. This option ensures that only this task will respond to the new event. While it's unlikely that any other task will subscribe to "user/fan/out" events, this option is an important for ensuring expected behavior.