While most blocks in Concrete5 are purely presentational, it's possible and quite common for Concrete5 blocks to contain interactivity. Some of the more obvious examples of this are the form block and the survey block, both of which feature forms that post back to the block controllers and save data against the block record. More subtle examples of interactive blocks include the Page List, Topic List and Tags blocks, which interact with each other: the tags and topic list blocks can take a page list on a particular page and provide it a topic or tag, with which the Page List can filter its page results.
Here's how to add interactivity to your blocks. Note: The contents of this section assume you are running Concrete5 188.8.131.52 or greater. This is currently available in Github. Much of this functionality is available in 184.108.40.206 and earlier, but some of the examples may be slightly different.