A filter, which determines whether the automation should run for the given trigger.
A timing, which determines when the automation should run.
An action, which is what the automation actually does.
The universe of what an automation can do will grow over time, but these are the core building blocks from which any possible automation will be composed!