Macro and expression  blocks are special blocks that can contain routines. This is used in order to simplify routine building and keeping a tidy look.

The main difference is that the Macro Blocks can function as a pipe in a logic flow, whereas the expression blocks function as a result themselves, and therefore a stop in a logic flow.

This can be easily observed as the expression blocks do not contain logic gates.

These can be edited by clicking their name in the sidepanel. A new workspace will be launched contained in the macro or expression which can be edited like any other routine. The blocks also have  further customization options.