An action is something your device can do when a macro runs. A macro must have at least one action to be valid.
Synchronous vs asynchronous
Most of MacroDroid actions take a minuscule amount of time to execute. But some actions such as HTTP request or a shell script action can take more time to execute. Some of these actions have an option to "Block next action until complete" in their configuration GUI. If this option is enabled the action will be executed asynchronously. That means that MacroDroid will start executing subsequent actions without any delay.
In conventional programming languages you would probably be able to pass a callback to call when the execution is complete to perform some other actions after the asynchronous action has completed (possibly even work with the data if the asynchronous action returned some), but because MacroDroid inner workings are rather arbitrary there is usually no such systematic option and you need to rely on different workarounds.