For Knovvu Conversational Analytics solution, the scenario starts with getting a conversation from the client. Conversation audio files and metadata are transferred either via External API or Web Service.
Knovvu API scenario (conversations with audio files)

- Client sends the conversation metadata. Metadata is saved to DB.
- Client sends the conversation audio file. Audio file is saved to MinIO.
- When audio file is received, conversation goes into ConversationReady state.
- ConversationReady state triggers both AnalysisStateMachine and WaveformStateMachine.
- AnalysisStateMachine sends a message to RabbitMQ for Analysis Service.
- Offline analysis service does the preprocessing of the audio file by using services (SR, gender, emotion, diarization, language detection, sentiment, text correction) completes the analysis process and saves analysis result to DB and sets the status as AnalysisReady.
- In the mean time, WaveformStateMachine generates waveform of the conversation and sets status to WaveformGenerated.
- AnalysisReady state triggers both IndexingStateMachine and AITopicStateMachine.
- IndexingStateMachine handles indexing of the conversation with the user defined categories.
- AITopicStateMachine handles indexing of the conversation with the ai generated categories.
- Indexed conversations are ready for evaluation. Therefore they are sent to AutomaticEvaluationStateMachine. If there is a matching automatic evaluation, conversation gets evaluated in this state.
- When both AnalysisReady and WaveformGenerated states are satisfied, conversation goes to RecordingStateMachine.
- RecordingStateMachine deletes unnecessary files from MinIO or compresses audio to keep storage usage at minimum. Please note, that it deletes only if a replay server is provided by the customer.
Knovvu API scenario (conversations with text files)

Figure 6: Flow for the conversations delivered via ext API with textual data
- Client sends the conversation data. Data is saved to DB.
- When conversation data is received, it goes into ConversationReady state.
- ConversationReady state triggers both AnalysisStateMachine and WaveformStateMachine.
- AnalysisStateMachine sends a message to RabbitMQ for Analysis Service.
- Offline analysis service does the preprocessing of the audio file by using services (SR, gender, emotion, diarization, language detection, sentiment, text correction) completes the analysis process and saves analysis result to DB and sets the status as AnalysisReady.
- In the mean time, WaveformStateMachine generates waveform of the conversation and sets status to WaveformGenerated.
- AnalysisReady state triggers both IndexingStateMachine and AITopicStateMachine.
- IndexingStateMachine handles indexing of the conversation with the user defined categories.
- AITopicStateMachine handles indexing of the conversation with the ai generated categories.
- Indexed conversations are ready for evaluation. Therefore they are sent to AutomaticEvaluationStateMachine. If there is matching automatic evaluation, conversation gets evaluated in this state.
- When both AnalysisReady and WaveformGenerated states are satisfied, conversation goes to RecordingStateMachine.
- RecordingStateMachine is skipped for text based conversations.

