About this guide

This document explains how to configure and use the Omilia OCP miniApps®, which allows you to create any of the following miniApps types:

To configure the Intent OCP miniApps® check out Intent OCP miniApps® Configuration.

Configure the OCP miniApps®

Welcome Prompts tab

The welcome prompts are the initial prompts responsible for establishing the interaction with the system, thus providing a more natural feel.

Initial Prompt

OCP miniApps® allow you to fully configure three custom initial prompts depending on the error level of the initial system prompt:

  • Prompt 1: Initial System Prompt that handles the initial prompt to be played to the caller

  • Prompt 2: Rephrase after 1st error (No Response, No Interpretation), it handles cases where you want to re-prompt to the caller, for example, if there was a No Response or a No Interpretation event.

  • Prompt 3: Rephrase after 2nd error (No Response, No Interpretation), it handles cases where you want to re-prompt for a second time to the caller, for example, if there was a No Response or a No Interpretation event.

Greeting Reaction

Sometimes, when prompted for input, a caller may first greet the application instead of giving the input directly. For these cases, it is possible to configure a Greeting Reaction, which will trigger in conjunction with the initial prompt resulting in a more human-like experience.

To set up a greeting reaction, proceed as follows:

  1. Navigate to the Initial Prompt section.

  2. Click Greeting Reaction. The pop-up window opens.

  3. Insert the greeting text into the input field.

  4. Click OK to save changes.

Barge-in option

If you want to activate barge-in for each step, use the toggle on the right side of each initial prompt:

Currently the barge-in option works for the whole action, not for each individual prompt. This will be supported in a later version of the OCP miniApps®.

ASR timeout

You can also adjust the ASR timeout range slider to specify how long the system waits to trigger a NoInput event.

Custom NLU tag

The Custom NLU Tag feature is available only for users with corresponding permission (miniAppsCustomerAdmin).

Apart from the selection of an NLU model in the Understanding tab, it is possible to add a custom tag value in the corresponding text box, used to define a more specific context. Tag Hour for example. Under that tag context, a number input, for example, four, will be marked and understood as the time of the day from the system (four o’clock). So in general tags help differentiate and define a more specific meaning from user inputs.

Start Over Prompts

Can only be triggered with the help of a Flow application, so should not be used in standalone miniApps.

This functionality allows you to specify Start Over prompts that will be used after the user requested to start over. For instance, the following conversation may take place:

System: How may I help you?

User: I want to get information about my account.

If for some reason the system takes the wrong "path" here, the user might be inclined to interrupt with something like "no no, can we please restart". In that case, in your flow you can specify that upon hearing the word "restart", the system will enter this miniApp with the specific Start Over prompt, like "Let’s take it from the top. How can I help you?" as in the screenshot below.

Start Over prompts

If you decide to use this functionality, you can additionally inform the user about the words that will trigger the Start Over functionality by making the following announcement: "Welcome to our service. At any point you can say 'start from the beginning' to take it from the top".

After you configure the prompts, click Save Changes.

Validations tab

In Validations tab, you can choose the way the data provided by the caller is validated against preset rules. You can add multiple validations and prioritize them accordingly.

If multiple validations are set, with different prompts, only the prompts of the last validation will be used if validation fails.

Alpha miniApps

In Alpha miniApps, you have the following options:

  • Min Length: Set the minimum number of characters

  • Max Length: Set the maximum number of characters

  • Regex: Set the regex pattern

  • Javascript: Provide JS code that will return a boolean value (true/false) that indicates if it passes the validation

  • In list: Set a preset list of accepted string values

You can use any combination of these options in a single validation.

Javascript validation requires params.valueToValidate variable.

Example:

if(params.valueToValidate === "abc123") {
true;
} else {
false;
}

Alphanumeric miniApps

In Alphanumeric miniApps, you have the following options:

  • Min Length: Set the minimum number of characters

  • Max Length: Set the maximum number of characters

  • Regex: Set the regex pattern

  • Javascript: Provide JS code that will return a boolean value (true/false) that indicates if it passes the validation

  • In list: Set a preset list of accepted string values

  • Prebuilt: Use either the US zip code, or the CA zip code prebuilt list

You can use any combination of these options in a single validation.

Validation tab in Alphanumeric miniApps

Amount miniApps

In Amount miniApps, you have the following options:

  • Min Value: Set the minimum number of characters

  • Max Value: Set the maximum number of characters

  • Javascript: Provide JS code that will return a boolean value (true/false) that indicates if it passes the validation

  • Amount Unit: Set the unit that the amount is measured ($, €, %)

  • Amount Type: Set the amount type (monetary, percentage)

You can use any combination of these options in a single validation.

Validation tab in Amount miniApps

Date miniApps

In Date miniApps, you have the following options:

  • Date Range: Choose the date range of the expected caller reply by selecting a specific date, the time of he call, or in general a point in the past or in the future

  • Javascript: Provide JS code that will return a boolean value (true/false) that indicates if it passes the validation

Validation tab in Date miniApps

Numeric miniApps

In Numeric miniApps, you have the following options:

  • Min Length: Set the minimum number of characters

  • Max Length: Set the maximum number of characters

  • Min Value: Set the minimum value

  • Max Value: Set the maximum value

  • Regex: Set the regex pattern

  • Javascript: Provide JS code that will return a boolean value (true/false) that indicates if it passes the validation

  • In list: Set a preset list of accepted string values

  • Prebuilt: Use Credit Card Number prebuilt list. The prebuilt credit card validation checks the length of the card (to be 15 or 16 digits) and uses the Luhn algorithm to check the card validity.

You can use any combination of these options in a single validation.

Validation tab in Numeric miniApps

Javascript validation test

When a Javascript validation is selected it is possible to run a test to confirm that the validation works.

  1. Enter the JS validation code in the JS script box.

  2. Set the params object.

  3. Click the Run button to see the result

Custom Validation

In all of the above miniApps you can also have a Custom Validation which overrides any other validation. In Custom Validation, you can create your own web service that validates the n-best results based on the logic you want and returns true or false.

In case of true, it needs to return the selected n-best result.

In case of false, it needs to return the first value on the list (i.e. the one with the highest confidence, as values are arranged by confidence level).

The end point you specify by providing the URL and the request token will get all n-best results as input in the following format:

{
    "allValues": [
        { "value": "a b c", "confidence": 97.0 },
        { "value": "a d c", "confidence": 82.0 }
    ],
    "normalizedValues": [
        { "value": "abc", "confidence": 97.0 },
        { "value": "adc", "confidence": 82.0 }
    ]
}
CODE

If the validation has been successful, the result you need to return should look the following:

{
    "isValid": true,
    "nBestValue": "adc",
    "nBestConfidence": 82.0
}
CODE

If it hasn’t been successful, the result should be the following:

{
    "isValid": false,
    "nBestValue": "abc",
    "nBestConfidence": 97.0
}
CODE

For these examples, we are assuming that in the successful case "adc" has passed the validation (e.g. been found in the dictionary) - that’s why it’s returned. And in the unsuccessful case neither "abc" or "adc" were found - thats’s why the first value is returned.

Amount Settings tab

The Amount Settings tab is only available for Amount type miniApps.

The Amount Settings tab has the options to configure the amount settings. The selection defines the understanding of the miniApp regarding the amount the caller states.

It is mandatory to always have an Amount Type and Amount Unit declared. This will help service cases where the caller provides a plain amount input with no reference to the type or unit (for example, “I want to pay twenty”).

Available options are:

  • Amount Unit: Set the unit the amount is measured ($, €, %)

  • Amount Type: Set the amount type (monetary, percentage)

Amount Setting tab (Amount miniApps)

Date Settings tab

The Date Settings tab is only available for Date type miniApps.

The Date Settings tab has the options to configure the date settings. The selection defines the understanding of the miniApp regarding the date the caller states and the way it is stored.

  • Date Tag: It is a drop down menu selection. Possible options are Normal date and Credit card expiration date. For Credit card expiration date selection, the system expects only a month and year input.

  • Storing Format: Stores the date provided in a specific selected format from a dropdown list (for example, month/day/year).

The Storing Format is used to provide an option to store the callers' input in a specified format in the miniAppResult object field under the input_value field. These fields and their values are intended for usage from CCaaS applications.

  • DTMF Input Format: When using DTMF to input the date, the system expects it in a specific format (for example, 0522 translates to May 2022 if we want to ask a credit card expiration date). In case the caller fails to provide a correct format, the system will announce back a related prompt explaining the correct input format.

  • Separator: Uses a specific separator for the provided date that is configurable by the user. (For example, month/day/year).

  • Date Announcement Options: During confirmation, the system can announce back the day of the week provided, the day of the month, the month and the year. The users can choose which of these values they want to be played back to the caller.

  • Invalid DTMF Input Prompts: You can set up to three prompts to be played when the user does not provide a valid DTMF date input. It is suggested to guide the user through the correct format with this prompt.

Confirmations tab

In the Confirmations tab you can manage and control whether you will confirm the caller’s provided data. To enable or disable the confirmations, use the Confirmation toggle.

Confirmation behavior can be customized to either ask every time ("standard") or based on a confidence threshold ("dynamic"). To further enhance the customer experience, the confirmation module features an additional mechanism that, when enabled, adds short pauses between a long piece of information being read back to give time to the caller to verify it ("slow confirmation"). To resemble the legacy confirmation behavior of DTMF systems, the confirmation module also allows the caller to accept or reject using keys instead of natural language ("DTMF confirmation").

Confirmations tab in OCP miniApps®

Trigger Confirmation

To control whether the confirmation will be always triggered, or below a certain confidence percentage, use the Trigger Confirmation drop-down menu and select one among the following options:

  • Always

  • If confidence below 95%

  • If confidence below 90%

  • If confidence below 85%

  • If confidence below 80%

Slow Confirmation

To add a pause between the system understood characters, use the Slow Confirmation toggle.

DTMF Confirmation

To enable DTMF Confirmation, use the DTMF Confirmation toggle. When enabled, you provide the caller the option to confirm or disconfirm the system understood characters by pressing a preset key.

DTMF Confirmation in OCP miniApps®

Nice Reactions

To add nice reactions, select the Nice Reactions button.

Nice Reactions button

In the Nice Reactions window, you can optionally set nice reactions. Whenever the application identifies a caller confirmation, it randomly throws a nice reaction according to weight, before the confirmation or disconfirmation prompts, to make the dialog sound more conversational.

Confirmation Prompts

You can fully configure three custom confirmation prompts depending on the error level of the initial system prompt:

  • Prompt 1: Initial System Prompt that handles the initial confirmation prompt to be played to the caller.

  • Prompt 2: Rephrase after 1st error (No Response, No Interpretation), it handles cases where you want to re-prompt to the caller, for example, if there was a No Response or a No Interpretation event.

  • Prompt 3: Rephrase after 2nd error (No Response, No Interpretation), it handles cases where you want to re-prompt for a second time to the caller, for example, if there was a No Response or a No Interpretation event.

Confirmation Prompts

Only for the AlphaNumeric type, you can choose a predefined alphanumeric confirmation mode from the following drop-down list:

  • Spelling without examples (ABC123)

  • Spelling with predefined examples (A like Alpha, B like Bravo…​)

  • Spelling with caller examples (A like Apple, B like Boston…​)

Alphanumeric Confirmation mode

Disconfirmation Prompts

You can fully configure three custom disconfirmation prompts depending on the error level of the initial system prompt:

  • Prompt 1: Initial System Prompt that handles the initial disconfirmation prompt to be played to the caller.

  • Prompt 2: Rephrase after 1st error (No Response, No Interpretation), it handles cases where you want to re-prompt to the caller, for example, if there was a No Response or a No Interpretation event.

  • Prompt 3: Rephrase after 2nd error (No Response, No Interpretation), it handles cases where you want to re-prompt for a second time to the caller, for example, if there was a No Response or a No Interpretation event.

Disconfirmation Prompts

When you are done, select Save Changes to apply the new configuration changes.

Suggestion tab

The Suggestion feature, when set, can make suggestions to the caller in order to make the dialogue quicker and to the point.

In the Suggestion tab, you can set up the desired suggestion prompts. To use the suggestion feature you must set the Orchestrator application accordingly, and connect a Set field to the corresponding miniApp. For more info read the corresponding article in Orchestrator User Guide.

In addition you can set the maximum number of disconfirmations. This will set the maximum number the caller will not agree with the suggestions made.

To enable or disable the suggestions, use the Suggestion Prompts toggle.

Hold Functionality tab

OCP miniApps® have a fully configurable hold functionality. This functionality can be turned on/off, and allows you to set up your own prompts according to the step of the flow and record a specific hold music.

In this tab, you can control and manage the hold functionality.

Hold Functionality tab

To enable the hold functionality, use the Hold toggle. Once enabled, you can control when and how the hold functionality will be triggered, and once triggered, you can configure the dialog evolution and exit.

Trigger Hold Functionality

Select Trigger Hold Functionality to control when and how the hold functionality will be triggered. You can trigger the hold functionality under three different scenarios:

  • Prompt caller to hold after first no-input

  • Information not available response

  • Prompt caller to hold after invalid information

Configure Hold Functionality

Select Configure Hold Functionality to configure the dialog evolution and exit.

Configure Hold Functionality

Understanding tab

The Understanding tab feature is available only for users with corresponding permission (miniAppsCustomerAdmin).

In the Understanding tab, you can select the NLU you wish to use to get the entity from.

  1. Toggle the activation button from off to on to activate the required NLU from the list of available NLUs.

  2. If none of the available NLUs is appropriate click the Train/View NLU Models button to be transferred to the NLU → NLU Models area in Console where you can create, modify and deploy NLU models. For more information read the OCP Conversational Natural Language® User Guide.

Hold Audio

Use the Hold Audio drop-down menu to select a pause or hold music for 10, 20, or 30 seconds.

Hold Duration

Use the Hold Duration drop-down menu to select a middle prompt, two times or three times a middle prompt, or no middle prompt.

Hold dialog evolution

In this pane, you can see the dialog evolution, depending on your options in the Hold Audio and the Hold Duration drop-down menus.

DTMF Exit Hold Functionality

In the DTMF Exit Hold Functionality, you can select which key the caller can press to exit the hold.

Exit hold functionality

In the Exit hold functionality pane, you can configure how the system will respond to exiting from the hold.

When you are done, select Save Changes to apply the new configuration changes.

Agent Handling tab

To see the details on how to configure the Agent Handling tab, check out this article.

Error Handling tab

To see the details on how to configure the Error Handling tab, check out this article.

Chat tab

To see details about the Chat tab, check out this article (section 1).

Manage Languages tab

To see the details on how to configure the Manage Languages tab, check out this article.