Conversation blocks are one of the main Convoworks components. They represent different steps in conversation. Each block defines a single interaction. It outputs something to the user, processes user response, and gives a reaction to that response.
Block structure
We divided blocks into two main parts. One is the read phase whose purpose is displaying or telling initial information to the user. After that, the system waits for the user’s request. When the user makes a request, the service will try to execute the second, process phase of the current block.
If a block processor matches the user requests, its sub-element flow will be executed. However, if none of the block processors matched, the fallback stream will be executed instead.
We use two component types in blocks to handle user interactions: elements and processors.
Block component types
Elements (in the green sections) are the most common and most versatile component type in Convoworks. They are executed in sequential order and can be nested one in another. You can use them to output some response to users, load data, manipulate variables, and as control structures (if, then, loop, include, goto …).
Processors (in the violet sections) are components that are activated only if the right condition is met. They consist of two parts: one determines if the processor should be activated at all (intent matching) and the other is the element flow to be executed if that processor is activated.
The processors actually delegate the matching responsibility to a third type of component, the request filters. They are a bridge to the underlying NLP platforms we rely on. They can handle both text and intent-based platforms. This means that you can use the same logic for handling Alexa (which is a strictly intent-based system) with FB Messenger and Viber which are providing just raw text inputs.
But let’s get back to blocks.
Examples
So, in the block, you define what user responses you want to handle and what you will do if the user requests something else (fallback flow).
Here’s a simple example that asks user confirmation to move further in the service flow.