There are four types of special blocks: session_start, session_end, service_processors, and media_player.
You add them just like you would the ordinary blocks, but they differ from them because there can only be one of each in the service. Also, they can only be used for their specific roles.
The session_start block has all the parts of an ordinary block – read phase, process phase, and the fallback flow. The one difference is that the session_start block can only be triggered once, at the beginning of each session. You can use it for outputting greetings or welcome messages.
The session_ended block can only be used on Alexa devices. Even though it only has a read phase, it cannot output any messages to the user, since it triggers after the end of each session. You can use it for resetting variables.
The service_processors block only has a process phase that can be used to make processors available all over the service. For example, if you want to create one help processor for the whole service, you can place it in the service_processors block. That way, the user will be able to trigger it in any of the service’s blocks.
The media_player block types are handling sessionless media (audio player) requests.