Asrdigits

Allows you to capture spoken input as a string of digits and use it to populate a script variable.

This action is appropriate when the input is numeric in nature but not a numeric value (for example, 12345 uttered as "one two three four five"). Asrdigits can be used to capture phone numbers, account numbers, social security numbers, and so forth.

This action recognizes a predetermined list of the digits zero through nine, with either "oh" or "zero" being accepted for zero. If the caller's utterance may be a larger number, such as "twelve" or "twenty-three," or if the prompt requests a numeric value, such as age or square feet, use the ASRNUMBER action instead.

ASR actions appear only if ASR is enabled for your organization. ASR is an optional feature. Ask your CXone Account Representative for more information.

Supported Script Types

Phone

Input Properties

These properties define data that the action uses when executing.

Property

Description

Caption

Enter a short phrase that uniquely identifies this action in the script. The caption appears on the script canvas under the action icon. The default is the action name.

Sequence

Define the prompt that the action plays. A prompt can be a prerecorded WAV audio file or text-to-speechClosed Allows users to enter recorded prompts as text and use a computer-generated voice to speak the content. (TTS).

If the prompt is an audio file, enter the file name enclosed in double quotes. For example, "greeting.wav". If the audio file is located in a different folder, include the path to the file. For example, if the script is in the root folder and the audio file is in a subfolder two levels down, enter "Subfolder\Subfolder2\Audio-file.wav". If the script is in a subfolder one level down from the root and the audio file is in a different subfolder on the same level, enter "\..\Subfolder\Audio-file.wav".

If the prompt is text-to-speech, enter the text you want the TTSClosed Allows users to enter recorded prompts as text and use a computer-generated voice to speak the content. service to read. Each segment must be enclosed in double quotes and include a string reference character to identify the type of information it is. For example: 

"%Your account balance is" "silence.wav"  "${accountBalance}"

For more information about formatting prompts in this property, including the string reference prefix characters to use, see the Prompts page. Some actions with the Sequence property have access to the sequence editor, which is a graphical interface you can use to create prompts. This action doesn't access this editor. However you can use the sequence editor from an action that supports it, such as Play. Add Play to your script and create your prompt sequence. Paste the sequence text from the Sequence field in Play into this action and then delete Play.

Phrase

Use this property to document the text the prompt contains. This property is not used by the script. Because some prompts can be complex and contain multiple segments, it can be helpful to include the text written without the formatting required by the Sequence field.

HighConfidence When the ASR engine recognizes a phrase spoken by a caller, it also returns a percentage that indicates how confident it is in a voice recognition match. The script compares this recognition percentage to the value in this property, and if the percentage is equal or greater to the value, the OnHighConfidence branch is taken. Enter a whole number between the MinConfidence value and 100.

The default value is 72.

MinConfidence Defines the minimum acceptable confidence percentage for a recognition match. If the recognition percentage is between this value and the HighConfidence value, the OnMedConfidence branch is taken, which typically lets the contact confirm the ASR understanding of an utterance. If the recognition percentage is less than this value, the OnNoConfidence branch is taken. Enter a whole number between 1 and the HighConfidence value.

The default value is 51.

TimeoutSeconds

Determines how long the IVRClosed Automated phone menu that allows callers to interact through voice commands, key inputs, or both, to obtain information, route an inbound voice call, or both. waits for input (either spoken or by key-press) before it takes the OnTimeout branch. This is the threshold for complete silence on the line. The default value is 10 (seconds). To change it, enter a whole number.

The timer starts only when the prompt is completely finished. However, the system has a built-in limit of two minutes (120 seconds) that includes the duration of the prompt. If this limit is reached during an action, any active prompts are aborted and the OnError branch is taken. For this reason, you should know the duration of your prompts and set a value for this field that ensures the action is active for less than two minutes.

ResultVarName Determines the name of the variable that holds the recognized result of the contact's spoken or manually entered input. For example, if the prompt asked the contact to say or enter their date of birth, the result would be stored in the variable defined by this property. The default value is the name of the action + "Result" (for example, ASRDIGITSResult). If the contact provides spoken input and the ASR engine fails to find a match, this variable is not populated. Note that if the action has an OnDTMF branch, you must use a Capture action to pull a variable value out of the buffer (DTMF values are automatically stored in a buffer).
ConfidenceVarName Determines the name of the variable that holds the confidence percentage returned by the ASR engine. The default value is ASRConf.
DetectDTMF

Allows you to configure an IVR script to handle both spoken and manually-entered DTMFClosed Signaling tones that are generated when a user presses or taps a key on their telephone keypad. input.

If the value is True, both voice and DTMF input is accepted. If the contact presses a DTMF digit, the script immediately stops any in-progress prompt sequence and takes the OnDTMF branch. No spoken utterances are considered for the duration of the action.

If the value is False, DTMF input is not recognized even if the contact presses a key. Although any DTMF digits pressed during the action are saved in the DTMF buffer, the action takes the NoConfidence branch.

Because this action does not have an OnDTMF branch, the DTMF value will be stored in the result variable specified in ResultVarName.

ClearDigits

When a contact presses a key on their telephone keypad, the generated DTMF tone is stored in a buffer. When ClearDigits is set to True, that buffer is cleared at the beginning of this action. If set to False and DTMF tones are carried over to this action in the buffer, the DTMF tones are detected immediately. The action then invokes the OnDigit or OnDTMF branch, even if the key press was associated with an earlier action.

Yes/True is the default value.

InterDigitTimeout The amount of time after the contact enters a digit that the system waits to see if the contact enters another digit. You must create scripting logic to handle a timeout.
MinDigits Determines the minimum number of digits that must be received by this action for the script to continue. For example, if the prompt asks for the contact's social security number, this value should be set to 9. The default value is 1. If the prompt requests a response that always has the same number of digits, set this property to the same value as MaxDigits.
MaxDigits

The maximum number of digits that a user can provide for the action; for example, if the prompt requests the last four digits of a person's social security number, set this value to 4. The default value is 1. If the prompt calls for a terminator (such as the pound sign, or #), you must account for it in the MaxDigits value. For example, if the recorded menu message asks for the last 4 digits of the social security number followed by the pound sign, set the value to 5.

When the MaxDigits value is reached, the script continues to execute following the MaxDigits branch, if it's connected.

TermDigit Allows you to specify a way for the contact to indicate they are done providing information by entering a terminator digit. The most common value is # (that is, the caller presses the pound key on their phone). By default, the TermDigit is included as one of the digits received and stored in the ASRDIGITSResult variable. To automatically strip this value, append a dash (-) in this field, (for example, to use the pound sign and strip it from the stored results, enter #-).

Result Branch Conditions

Result branch conditions allow you to create branches in your script to handle different outcomes when an action executes.

Condition

Description

Default Path taken unless the script meets a condition that requires it to take one of the other branches. It is also taken if the action's other branches are not defined.
OnHighConfidence Path taken if confidence levels are above the value set in the High Confidence property field.
OnMedConfidence Branch taken if the recognition percentage returned by the ASR engine is between the HighConfidence value and the MinConfidence value. This branch is often used to allow a caller to confirm the information provided using an ASRYESNO action.
OnNoConfidence Path taken if the recognition percentage returned by the ASR engine is less than the MinConfidence value.
OnTimeout Path taken if there is no response for the number of seconds specified.
OnError Path taken when there is an unexpected problem (for example, poor connectivity, syntax errors, and so forth). The _ERR variable should be populated with a condensed explanation of the problem.
OnMaxDigits Path taken when the caller's input reaches the MaxDigits value.
OnTerminator Path taken when the caller provides the value specified in the property.
OnInterDigitTimeout Path taken when the time specified in the InterDigitTimeout property is exceeded during the caller's DTMF response to a prompt.

Script Example

This is an example to show how this action can be used in scripts. It is not intended to be a complete script. Additional scripting may be required.

In this example script, the caller's account number is obtained prior to connecting the call to an agent. Using the Asrdigits action, the IVR requests that the caller enter an account number with a minimum of six, and a maximum of twelve, digits. If the recognition percentage meets or exceeds the HighConfidence value, a message is played and the call is routed to an agent. This path is also followed if the TermDigit value is provided or if an InterDigitTimeout occurs.

If the system is unsure of the entry (that is, the recognition percentage falls between the HighConfidence and MinConfidence values), then the OnMedConfidence branch uses an Asryesno action to play the captured input and ask the caller to verify it with a yes or no response. A yes response causes the call to move into the OnHighConfidence branch. A no response returns the caller to the Asrdigits action to re-enter the number. After three unsuccessful attempts, a Loop action asks the contact to call back and then hangs up the call. This call flow is enabled by the connection between Asrdigits and Asryesno going in both directions.

If the entry cannot possibly be correct (for example, the caller gives a non-numeric response), the system takes the OnNoConfidence branch, and returns the caller to the Asrdigits action to re-enter the number. After three unsuccessful attempts, a Loop action asks the contact to call back and hangs up the call.

Would you like to download this script?

Tips & Tricks

  • You can pass the languageLocale variable from the Voiceparams action, which sets the language that the action will detect.
  • In pronouncing numbers, "negative" is hard-coded.
  • In pronouncing numbers, "point" is hard-coded.
  • See the ASR overview for more information.
  • DTMF tones are stored in a buffer. If the action contains an OnDTMF or OnDigits branch, the DTMF value must be pulled out of the buffer with a Capture action.
  • If you want to capture multiple DTMF presses, the action immediately takes the OnDTMF branch when the first DTMF is pressed (including * and #). In this instance, you must capture multiple presses with a Capture action.
  • If there are any DMTF present in the buffer and ClearDigits is not set to True, the OnDTMF branch would immediately be taken and require a Capture action.