Triggering NLA animations?
Keyframed animations only happen at a specific time that we have set, using the NLA it is possible to duplicate an action so that the same animation can be repeated at different times. While we can copy and paste the same thing into different places, it is a manual process.

To automate animations we can use constraints and drivers. Constraints use a simple interface to configure a range of preset conditions, drivers expand on this to allow values to be calculated using python expressions or scripts.

If you have multiple objects that you want to move in unison, constraints can allow one object to be the master control with the others moving in relation to the master. This means you only keyframe the one object at the time you want them all to move.

It is possible to input a distance between two objects into a driver, this would allow an object to move if another is within five units of it and have it move back when it is farther than five units away. While we can get great control over an item, it requires the use of python, even if only a short expression to define the calculation to use.