Laydown

Allows for intelligent machine detection and optional delivery of recorded messages when there is a need to determine whether a machine or a live person answered the call. The primary use case for this action is in scripts for agentlessClosed Contacts made without a live agent for tasks such as one-way delivery of information or messages.. voice interactions using Personal Connection.

When a call is answered, Laydown analyzes the audio from the contact to determine whether an answering machine or a live person has answered the call. You can then initiate different actions based on the results of the analysis. For example, you could deliver one recorded message to a machine and a different recorded message to a live person, or you could deliver a message to a machine and implement custom script behavior for a live person.

Once the message begins playing, the action continues to analyze the interaction. If additional audio is detected from the contact, Laydown aborts the sequence and resumes when the contact is silent. This continues until an entire sequence is completed or the value in the SequencePlayAttemptsMaximum property is reached.

 

Audio files must be uncompressed WAV files with the following properties:

  • Bit rate: 64 kbps
  • Audio sample size: 8 bit
  • Channels: 1 (mono)
  • Audio sample rate: 8 kHz
  • Audio format: CCITT μ-Law

Supported Script Types

The icon for the Phone script type - an old-style phone handset with curved lines indicating sound coming out of it.

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.

LivePersonSequence

Contains a string of one or more prompts played when a live person is detected. The default value for this string is empty. If no string is entered, the action returns immediately when a live person is detected and no sequence is played. This is useful if you only want to deliver your message to an answering machine.

LivePersonPhrase

Allows you to document the text of the audio file delivered as part of the LivePersonSequence.

MachineSequence

Contains a string of one or more prompts played when an answering machine is detected. The default value for this string is empty. If no string is entered, the action returns immediately when an answering machine is detected and no sequence is played. This is useful if you only want to deliver your message to a live person.

MachinePhrase

Allows you to document the text of the audio file delivered as part of the MachineSequence.

ClearDigits

When a contact presses keys on their phone, a DTMF tone is generated and stored in a buffer. ClearDigits allows you to determine how this action handles DTMFClosed Signaling tones that are generated when a user presses or taps a key on their telephone keypad. tones that are in the buffer when the action starts.

The default is , which clears the buffer when the action begins. Any key presses that happened earlier in the script will not be passed into this action. Set the action to if you want this action to process and act on any DTMF tones that are passed to this action through the buffer. When DTMF tones are passed into this action, the script immediately takes the path for the Digit branch condition.

DetectDTMF

Determines whether DTMFClosed Signaling tones that are generated when a user presses or taps a key on their telephone keypad. tones are processed while the action is running. The default value is True, which means that DTMF tones are processed if the contact presses a key and the OnDigit or OnDTMF branch of the script is triggered. If the value is set to False, DTMF tones are not processed even if the contact presses a key. For example, you might play a message at the point a contact is placed in queue which says, "An agent will be with you shortly. To leave the queue at any time, press the star key". The OnDigit or OnDTMF branch might then offer the contact the option to leave a voicemail message.

This property does not capture DTMF tones. If you need to evaluate an entered tone, use a Capture action after this action to assign the tone to a variable. You can then evaluate the variable's value to determine which tone was entered.

You can use a variable for this property.

InitialDetectionTimeout

Specifies the length of time the action will initially take to determine whether the call has been answered by an answering machine or a live person. Enter a numeric value of seconds between 10 and 300. The default value is 10. If no determination is made and the specified value is exceeded:
  • The string value in the MachineSequence property is played and then the OnInitialDetectionTimeout branch is triggered. If the string is empty, then:
  • The string value in the LivePersonSequence property is played and then the OnInitialDetectionTimeout branch is triggered. If the string is empty, then:
  • The OnInitialDetectionTimeout branch is triggered immediately.

MachineEndDetectionTimeout

Specifies the maximum length of time Laydown will spend listening for the end of an answering machine message when a machine is detected. When Laydown detects the end of the machine's message, the MachineSequence value is played. If the timeout is exceeded before the machine's message ends, the OnMachineEndTimeout branch is triggered. Enter a numeric value of seconds between 10 and 300. The default value is 20.

UtteranceMinimum

The number of seconds the contact must speak for Laydown to classify the sound as an utterance. The value should be long enough to ignore static or clicks and short enough to catch actual speech utterances. Enter a numeric value between 0.1 and 0.5 seconds. The default value is 0.2.

UtteranceEndSilence

The minimum number of seconds of silence required for Laydown to detect the end of an utterance. Enter a numeric value between 0.1 and 0.5 seconds. The default value is 0.1.

LivePersonEndSilence

The minimum number of seconds of silence required for Laydown to determine that an utterance was made by a live person. This value should be long enough to ignore a phrasing pause on answering machine messages and short enough to recognize the gap following a "Hello?" greeting. Enter a numeric value between 0.5 and 2.0 seconds. The default value is 0.6.

MachineMinimumWithoutAgent

The minimum number of seconds required following a series of contact utterances for Laydown to determine that the call was answered by a machine. Enter a numeric value between 2.0 and 10.0 seconds. The default value is 3.0.

MachineEndSilence

The minimum number of seconds of silence required for LAYDOWN to determine that an answering machine message has ended. When a non-empty value exists in the AnsweringMachineSequence property, that value is played when the number of seconds specified here is reached. Enter a numeric value between 1.0 and 5.0 seconds. The default value is 1.0.

DebugPattern

This property is used for Studio diagnostic procedures and should not be changed unless you are instructed to do so by NICE CXone. The default value is none.

CustomerVoiceThreshold

Defines the contact volume level for detection of the contact's voice versus background noise. The property accepts numeric values between 100 and 100000 units (a measurement similar to decibels). The default value is 17000.

SequencePlayAttemptsMaximum

Defines the maximum number of times Laydown will attempt to play a sequence if a live person or answering machine is detected. When this value is reached, the entire sequence is played even if audio is detected from the contact. Larger values can increase your telephony expense, since the sequence will potentially restart a great number of times. Enter a numeric value between 1 and 20. The default value is 9.

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.
OnError Path taken when there is an unexpected problem (for example, poor connectivity, syntax errors, and so forth).

MachineCompleted

Path taken when Laydown detects an answering machine. If the MachineSequence property contains a non-empty value, the sequence is played and then this branch is taken.

LivePersonCompleted

Path taken when Laydown detects a live person. If the LivePersonSequence property contains a non-empty value, the sequence is played and then this branch is taken.

DTMF

Path taken when Laydown detects that a digit has been pressed. If the action is playing a sequence when the digit is detected, sequence play is aborted.

InitialDetectionTimedout

Path taken when the value in the InitialDetectionTimeout property is exceeded.

MachineEndTimedout

Path taken when the value in the MachineEndDetectionTimeout property is exceeded.