Best practices with dialogue flows in AI agents - Advanced

Sometimes you're testing your dialogues and wondering why you seem to not go down the appropriate branch. To determine what the issue might be there are a few things to check. In this article, we will cover the recommendations when it comes to avoiding errors in dialogue flows.

Conversation logs

Conditional blocks

Customer messages

Carousels

Availability blocks

Escalation blocks

Conversation logs

Review the conversation logs to understand why a conversation doesn't progress. Depending on the issue, check the following things.

Confidence_score

In intent prediction, confidence score is crucial. To validate a message, click the slider icon next to it. This opens the expression overview which shows the presumed intent, confidence level, and whether it has been trained as an expression for that intent. The percentage and the threshold set in bot settings explain why an intent didn't trigger.

Confidence Never Exceeds Confidence Threshold for Default Messages

If all messages trigger the default reply and the confidence is consistently low, this is a training issue. Revisit following articles:

Content Coverage Analysis Explained

Confidence Thresholds Explained

Reply not Triggered

To check if the reply is active, navigate to the Intent table. Active replies are green.

Ensure there is only 1 reply per language.

To manage replies, click > Intent name > reply. Check the active box or delete the unnecessary reply.

Conversation & Session Details

View the conversation details to see which actions are performed and the parameters set (conversation or action based). Use this method to determine why certain things happen. Check what occurs at the conversation level, and then drill down into how this could occur.

Conditional blocks

Operators

Conditional blocks can have two issues when it comes to operators.

Check for the incorrect operator (for example includes instead of in) or if the operator is set as the wrong value (string or array).

At the parent level of a conditional block, you can choose between parameters or segments. Segments allow you to check multiple values at once and simplify logic. Use operators like "match ALL", "match ANY", or "match NONE" to consolidate and streamline conditions.

Parameter Collection

Filter based on a parameter. Ensure that it collects and saves in the conversation branches. Watch for the most common issue, a typo. Check the saved parameters. Confirm they exist, remain set, and match exactly.

Where appropriate, replace multiple parameter checks with a segment to simplify branching and reduce errors.

Customer messages

Order of scenarios

Scenarios are prioritized from left to right. and thus the most likely and least-sensitive should be the left-most scenario.

When asking for text input, free-text written should be the right-most scenario as it will catch any and all text input, so entities and intents that you are looking for would be captured within that net of free-text written, so instead should have entities and then intents in the right-most positions.

Entity Recognized vs Intent Predicted

Sometimes instead of creating intents for affirmative or negation, entity lists can be created, which although allows you to add a list of all options you can think of, is not multi-lingual out of the box and doesn't factor in for typos, it is just looking for exact matches. This also means if someone says "yeah, thanks for the suggestion but I don't want to do that", it would be caught as affirmative, when the sentiment of the whole sentence is no.

Carousels

Each CRM has its own limitation when it comes to carousels, typically issues arise when character or button limits are exceeded or fields are left entirely blank (a lone empty space does not count as a character).

Availability blocks

Under the Team Availability option, the correct transfer department, button ID, or group ID hasn't been written as an exact match.

If there are no escalations taking place within the standard operating window when humans are online, this would symbolize something is wrong with this block and they aren't being diverted, or something is wrong with the CRM integration - check out the CRM troubleshooting article.

Escalation blocks

The escalation blocks typically only have issues that relate to not including the correct department or when doing custom escalations, forgetting to add any actions.