Wires
Modules don't know about each other. Wires are how they still work together: a wire says "when this happens, do that," and you decide which connections exist in your workspace.
When X, do Y
A wire connects an event from one module to an action in another. A part drops below its reorder point, add it to a shopping list. A fabrication job finishes, mark the task waiting on it done. An order is received, top the stock back up. Neither module knows the other exists. The wire is the connection, and it's yours to make.
You build wires in a guided composer: pick the event, pick the action, done. No code. Each wire can be edited, turned off, or deleted on its own.
Conditions
A wire can carry a condition, a check evaluated each time it would fire. Only
restock when the item is tagged consumable, or only notify for orders over a
certain amount. A condition can also compare a value to what it was before the
change, so a wire fires only when something actually moves: a status becomes Done,
an item changes shelf, not on every save that leaves it where it was. No condition
means the wire always fires.
On a schedule
A wire doesn't have to wait for an event. It can fire on a repeating rule instead, every Monday at 9, the first of the month, which is how recurring tasks and scheduled reminders work. See Integrations -> On a schedule.
Where wires come from
You don't start from zero. Modules ship sensible default wires (receiving an order restocks inventory, out of the box), and a bundle can install the wires its setup needs. They're all ordinary wires once installed: visible in your workspace, editable, and yours to disable.