Within Converse, a Conversation Template is one of the key pieces of functionality.
This tells Converse what to do when a phrase is matched against a template.
A template can be either be configured to just provide an answer (a Q+A template) or to engage a user in a conversation (A Conversation Template).
Conversation templates contain one or states, or steps. For each of these steps, Converse can ask a question, or provide an answer.
Once all the steps have been completed, the Conversation is finished, and if configured, a Webhook will be triggered.
Each state has a number of settings against it:
The friendly name you wish to give the state (one word, no spaces)
If you want to ask a question, enter it here
If the user fails to answer with an expected response, what do you want to say to assist them
If you want to give an answer, enter it here
A list of specific values to check for from the user's input to the question
A list of contexts to check the user's input from the question against
The list of Workflow Modules to run after the state is processed successfully.
Conversation Templates as standard look like one straight flow, but it is possible to be significantly more advanced.
Although each template is a fixed configuration, they can be changed, or route differently to ensure every end user has a conversation unique to their needs.
The possibilities for these are explained below
You can use dynamic content from the user or from the conversation to provide dynamic responses; more details are available from the Handlebars section.
Junctions enable Templates to have multiple routes depending on various criteria. There is no limit to the number of junctions or number of routes per junction.
It is possible to build Templates which have junctions, based on the user input. E.g
Route 'A' for a user input of 'yes,' 'Route 'B' for no.
Route 'A' if the user mentions a color, Route 'B' if they mention a number. (or any other type of context)
Modules enable you to push updates from a Conversation or pull information into a Conversation in real time.
Using a module you can pull information in, which decisions can be then made on during the flow of the conversation, e.g
Route A if the user is an existing customer, or B if a new customer.
Route A if the user has an outstanding delivery, or B if not.
Route A if the user is based in the USA, B for the UK, C for Canada, D for Elsewhere (etc)
Modules can also be used to rewrite Answers as required, with dynamic content.
More Details are available from the Modules section
When a conversation reaches it's natural conclusion, with all the states having been completed, Converse AI can send out a Webhook to a designated URL.
This can be used for human escalation or can be used to provide a response to a user.
A script can respond to one or more comments to a user, which act as 'answers' and thus finish the conversation.
This would typically be used when you are collecting information to then call a script of your own, and want to provide a custom response.
You can also respond with an updated conversation map, appending additional states onto the existing conversation template (but only for this particular conversation).
This enables you to collect the information you require, but then provide an updated set of questions and/or information as required to fulfill the user's needs.
Ultimately by providing the base static conversation template capabilities, but also allowing multiple possibilities for these to be modified on the fly, this gives you the flexibility of writing your own system from scratch but without the burden.