new ArchSettingsUserInput(coreUserInputSettingsViewModel)
Parameters:
| Name | Type | Description |
|---|---|---|
coreUserInputSettingsViewModel |
object | ( Internal ) an Architect BotFlowUserInputSettingsViewModel. |
Extends
Members
-
static, readonly displayTypeName :string
-
Returns the display type name string 'ArchSettingsUserInput'.
-
readonly collectionHighConfidenceThreshold :ArchValueInteger
-
The minimum confidence level percentage (score) that an input phrase must receive to be accepted without triggering a confirmation question.
-
readonly collectionLowConfidenceThreshold :ArchValueInteger
-
The minimum confidence level percentage (score) that an input phrase must receive to avoid a No Match. If the confidence level of an input phrase is above this threshold then the bot will either accept it or confirm it with the participant, depending on the value of the collectionHighConfidenceThreshold property.
-
readonly confirmationLowConfidenceThreshold :ArchValueInteger
-
The minimum confidence level percentage (score) that an input phrase must receive to be accepted without triggering a confirmation question.
-
readonly confirmationNoInputApology :ArchValueCommunication
-
This Communication is output prior to the bot repeating the current confirmation question whenever the bot does not receive any input during a confirmation.
-
readonly confirmationNoMatchApology :ArchValueCommunication
-
Wording the bot will output prior to the bot repeating the current confirmation question whenever the bot receives input that is neither a yes nor a no during a confirmation.
-
readonly confirmationRejectionsMax :ArchValueInteger
-
For the current 'Ask for ...' action, this is the maximum number of times that the bot will allow the participant to say no while the bot is confirming an input. If the number exceeds this maximum then the rules in the flow's Event Handling 'Recognition Failure Event' section will be followed, or if the action has a 'No Intent' path then that path will be taken at runtime instead.
-
readonly dtmfTerminatingCharacter :ArchValueString
-
The DTMF character to terminate input
-
readonly enableAutomaticQuickReplies :ArchValueBoolean
-
A Boolean value which, if the setting is true and the bot is interacting with a participant via text at flow runtime, this enables automatic quick reply buttons in Intent and Slot confirmations, Knowledge confirmations, 'Ask for Yes / No', 'Anything Else?' and 'Ask for Slot' ( for list slot types ) actions. Otherwise if false or a NOT_SET Boolean, quick reply buttons are not enabled.
-
readonly enableBargeIn :ArchValueBoolean
-
A Boolean value which enables or disables barge-in functionality in the Bot Flow at runtime.
-
readonly enableIntentClassificationHinting :ArchValueBoolean
-
Whether the bot should use intent classification hinting in ASR ( automatic speech recognition ) when asking for an intent.
-
readonly endOfSessionMessage :ArchValueCommunication
-
This Communication is output prior to the bot session ending
-
readonly interDigitTimeout :ArchValueDuration
-
The amount of time to wait for more input.
-
readonly isArchBaseCoreObject :boolean
-
Returns true indicating that this is an ArchBaseCoreObject instance.
- Overrides:
-
readonly isArchSettingsUserInput :boolean
-
Returns true indicating that this is an ArchSettingsUserInput instance.
-
readonly logStrTypeOnly :string
-
This is a string suitable for logging information about this object where it's just the object's type. This is normally used when logging errors that occur in constructor parameter checking because the scripting object isn't set up and the normal logging str contents wouldn't be set up.
- Overrides:
-
readonly noInputApology :ArchValueCommunication
-
This Communication is output prior to the current 'Ask for ...' action's 'No Input' Communication whenever the bot does not receive any input from the participant.
-
readonly noInputsMax :ArchValueInteger
-
For the current 'Ask for ...' action, this is the maximum number of times that the bot will allow no input (i.e. silence) from the participant. If the number exceeds this maximum then the rules in the flow's Event Handling 'Recognition Failure Event' section will be followed, or if the action has a 'No Intent' path then that path will be taken at runtime instead. No Input in both the 'Normal' and 'Confirmation' phases of the 'Ask for ...' action will count towards this maximum.
-
readonly noInputsMaxExceededHandling :string
-
The no inputs maximum count exceeded count handling configured for the flow. Specifies the bots behavior when no input is received after the count configured in
ArchSettingsUserInput#noInputsMax -
readonly noInputsMaxExceededTargetTask :ArchTask
-
The target task to jump to when the no inputs max count exceeded.
-
readonly noInputsTimeout :ArchValueDuration
-
Once the current Communication has finished playing, this is the maximum length of time to wait for the participant to start speaking. If no speech is detected within this time then a No Input will be triggered.
-
readonly noMatchApology :ArchValueCommunication
-
Wording the bot will output prior to the current 'Ask for ...' action's 'No Match' Communication whenever the bot receives input from the participant that is not a valid match.
-
readonly noMatchesMax :ArchValueInteger
-
For the current 'Ask for ...' action, this is the maximum number of times that the bot will expect to receive input that is not a valid match. If the number exceeds this maximum then the rules in the flow's Event Handling 'Recognition Failure Event' section will be followed, or if the action has a 'No Intent' path then that path will be taken at runtime instead. No Match in both the 'Normal' and 'Confirmation' phases of the 'Ask for ...' action will count towards this maximum.
-
readonly noToConfirmationApology :ArchValueCommunication
-
Wording the bot will output prior to the current 'Ask for ...' action's 'No Match' Communication whenever the participant says no while the bot is confirming the participant's last input.
-
readonly speechToTextMaxSpeechTimeout :ArchValueDuration
-
Maximum duration of an utterance collected from the user. If this setting is set to -1 ms, means no timeout is enforced.
-
readonly speechToTextSpeechDetectionSensitivity :ArchValueDecimal
-
A balance between detecting speech and noise (breathing, etc.). If this setting is set to 0, all noises are ignored. If this setting is set to 1, all noises are accepted.
Methods
-
isFilterMatch(archFilterObject) → {boolean}
-
Returns whether or not this Architect Scripting object is a match for the supplied ArchFilterObject instance.
Parameters:
Name Type Description archFilterObjectArchFilterObject the object filter to use to determine if it's a match.
Returns:
boolean- Overrides:
-
isNoInputsMaxExceededTypeAvailable(errorHandlingEnumValue) → {boolean}
-
Returns whether the specified noInputsMaxExceeded handling type is available for this flow based on the error handling enum string value that is passed in. This function returns true if the error handling type is available, otherwise false.
Parameters:
Name Type Description errorHandlingEnumValuestring the error handling to check. This must be a string value from the
ArchEnums#EVENTS_FLOW_ERROR_HANDLINGenum.Returns:
boolean -
logError(errorStr)
-
Logs an error to the logging service with a log header from this object's
logStrproperty value whenArchLogging#logErrorsis true.Parameters:
Name Type Description errorStrstring the error string to log.
- Overrides:
-
logErrorAndThrow(errorStr)
-
Logs an error to the logging service with a log header from this object's
logStrproperty value whenArchLogging#logErrorsis true and then throws the string in the errorStr parameter.Parameters:
Name Type Description errorStrstring the error string to log. This should be a non-blank string.
Throws:
- Throws the submitted error string.
- Overrides:
-
logNote(noteStr)
-
Logs a note to the logging service with a log header from this object's
logStrproperty value whenArchLogging#logNotesis true.Parameters:
Name Type Description noteStrstring the note string to log. This should be a non-blank string.
- Overrides:
-
logNoteVerbose(noteStr)
-
Logs a note to the logging service with a log header from this object's
logStrproperty value whenArchLogging#logNotesVerboseis true.Parameters:
Name Type Description noteStrstring the note string to log. This should be a non-blank string.
- Overrides:
-
logWarning(warningStr)
-
Logs a warning to the logging service with a log header from this object's
logStrproperty value whenArchLogging#logWarningsis true.Parameters:
Name Type Description warningStrstring the warning string to log. This should be a non-blank string.
- Overrides:
-
traverse(callbackFunction, traverseFilteropt) → {number}
-
This method iterates over this object and ArchBaseCoreObject instances within it. For each object it will call the
ArchBaseObject#isFilterMatchmethod with a filter and call the supplied callback function if isMatch returns true. The callback will be passed anArchTraverseInfowith details about the match such as the match object itself along with current contextual information such as the object hierarchy for the match object relative to the object on which this traverse call is being made.The traverse
filteris one which you can create by callingArchFactoryFilters#createFilterObjectand then add desired clauses or clause containers to it. If not specified, this function will use adefault filter.Here is an example that does a simple flow traversal using the default filter and logs information about objects in the callback from the traverse object that's passed back:
archInboundCallFlow.traverse(function(traverseInfo) { archLogging.logNote(' Object : ' + traverseInfo.matchObject.logStr); archLogging.logNote(' Hierarchy: ' + traverseInfo.context.hierarchyStr); });This might be enough for most uses and you can check various aspects about the object in the callback such as "is this an Architect action?" by seeing if traverseInfo.matchObject.isArchBaseAction is true. You can specify a filter for the traversal code to use as well and only have it call your callback when the object's
ArchBaseCoreObject#isFilterMatchmethod returns true for the filter. Here's an example that creates a filter for callbacks onany type of transfer action, anydecision actionor objects whose name property case insensitively matches the word 'foo'. While this could all be done with one property callback clause the example will use multiple clauses for the sake of simplicity:const myTraverseFilter = filterFactory.createFilterObject(archEnums.FILTER_CONTAINER_OPERATORS.or); myTraverseFilter.addClausePropertyValueEquals('isArchBaseActionTransfer', true); myTraverseFilter.addClausePropertyValueEquals('isArchActionDecision', true); myTraverseFilter.addClausePropertyCallback('name', function(propValue, archContainingObject, propName) { // We fully spelled out the function signature above but archContainingObject and propName are // not needed in this case. The archContainingObject is the object that contains the // property and propName is the property name itself. We pass in propName because the same // function could be used for multiple property callback clauses. // Remember to return a boolean true, false or undefined from ths callback. :) return propValue && propValue.toLowerCase() === 'foo'; }); archTask.traverse(function(traverseContext) { // You will only be called back here for ArchBaseCoreObject instances that // have the isArchBaseActionTransfer or isArchActionDecision property values equal to true. }, myTraverseFilter);If you supply a filter with no clauses, this tells the traverse method to call the supplied callback function for every
ArchBaseCoreObjectit traverses.If you want traversal itself to stop after a callback, simply return boolean false from the callback function you supply to the traverse call.
The traverse method does not process deprecated property names such as
orgId,orgNameorlanguageSettings. Additionally it does not traverse in to properties that would "jump out" of the current traversal. An example of this would be if the code was traversing anArchActionJumpToMenuaction that it would not start traversing in to the menu that it jumps to. Another example would be aArchActionChangeStateaction where it would not traverse in to the target state of the action. This also means traversal does not traverse in to theArchBaseValue#flowLevelDefaultproperty.And lastly, as Scripting evolves over time with new versions, you can expect to get callbacks for new object types such as new actions or new properties on objects. As such, it's important not to assume any particular order in callbacks to keep code most compatible with traversal callbacks. Or if you use inequality checks in filter clauses remember that new "stuff" may satisfy an inequality check which may or may not be anticipated in your logic.
Note: This traverse method is a helper method and is very handy for iterating over Architect Scripting objects and their properties in a generic fashion with filtering capabilities. Obviously you can write your own custom traversal code if this implementation doesn't cut it for some reason. :)
This function returns the number of times it called the callback function.
Parameters:
Name Type Attributes Default Description callbackFunctioncallbackTraverseInfo the callback function to call for objects that match the traverse filter.
traverseFilterArchFilterObject <optional>
ArchFactoryFilters#createFilterTraverseDefaultthe filter to use when performing the traversal to determine which
ArchBaseCoreObjectinstances you wish to be called back for. If no filter is specified, this function will callArchFactoryFilters#createFilterTraverseDefaultand use that traversal default filter. The wantArchBaseValues parameter on that call is set to true.Returns:
number- Overrides: