Non-Intent OCP miniApps®
About this guide
This document explains how to configure and use the Omilia OCP miniApps®, which allows you to create any of the following OCP miniApps® types:
Alpha
Alphanumeric
Date
Numeric
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 aNo 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 aNo 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:
Navigate to the Initial Prompt section.
Click Greeting Reaction. The pop-up window opens.
Insert the greeting text into the input field.
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.

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.

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 }
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.

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.

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

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.

Javascript validation test
When a Javascript validation is selected it is possible to run a test to confirm that the validation works.
Enter the JS validation code in the JS script box.

2. Click the Run button to open the modal and enter any additional parameters if required.

3. Click OK 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 }
]
}
If the validation has been successful, the result you need to return should look the following:
{
"isValid": true,
"nBestValue": "adc",
"nBestConfidence": 82.0
}
If it hasn’t been successful, the result should be the following:
{
"isValid": false,
"nBestValue": "abc",
"nBestConfidence": 97.0
}
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 Type: Set the amount type (monetary, percentage)
Amount Unit: Set the unit that the amount is measured ($, €, %)

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").

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.

Nice Reactions
To add nice reactions, select the 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 aNo 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 aNo Interpretation
event.

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…)

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 aNo 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 aNo Interpretation
event.

When you are done, select Save Changes to apply the new configuration changes.
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.

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.

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.