Conversations are the individual instances of a Conversation Template that a user may have.
Conversations can be started, either through a user issuing a comment which triggers a conversation or by you issuing an API call to deliberately start a conversation against an existing request.
Conversations can be progressed either by a user inputting the required information in answer to questions, by you updating the conversation to fill in missing details as required, which is part of how the Human Escalation system works, or by a module being able to fill parts of the conversation to avoid asking unnecessary questions.
If Converse gets a comment from a user which does not match the expected input for a particular conversation state, it will automatically attempt to see if this then matches an alternative Conversation Template and switch Conversations accordingly.
Converse maintains track of the previous conversation and can switch back and forward between Conversations as required, including maintaining the state and context of the inactive conversation.
Conversations can finish in several ways, not all of which would be deemed 'successful'.
If all the information is provided by the user to complete all the required states, then the conversation will be complete
If a user fails to provide a correct input to an individual question twice, it will automatically fail to prevent the user getting into a loop. If configured this will also trigger the Human Escalation Trigger.
If a conversation has not been updated in 24 hours, it will automatically expire.
At any time the conversation can also be forcibly stopped by an API call if required.