Event types

The following subsections describe event types.

SESSION_VARIABLE_UPDATE

Raised when the event is merely a change in the session variables. Changes to the following session keys do not trigger a SESSION_VARIABLE_UPDATE event:

  • state.currentEvent
  • state.requestCount
  • state.requestId
  • state.nodeSessionOverrideList
  • state.filter.excludeBySessionKey
  • All; keys with the prefix state.operationErrors.

OPERATION_ERROR

Returned if any OperationAction of the preceding CustomLogicResponse cannot be scheduled to start. This typically happens if the action is unknown or if a parameter required for that action is missing.

Error messages are stored in the session keys state.operationErrors.0 for the first error, state.operationErrors.1 for the second error, and so on. All keys with the prefix state.operationErrors. are cleared in the next event.

CALL_START_EVENT

Raised when a call has started. Typically the first event of a session.

The following session variables are updated:

  • cti.callId: The unique ID for the current call.
  • cti.callType: The call type, one of the following:
    • CALL_TYPE_UNSPECIFIED and UNRECOGNIZED: Used in special scenarios, for example when other cti.* values are updated, but not necessarily as a result of a call event.
    • CALL_TYPE_INBOUND: An incoming call from an external party (customer) to an agent.
    • CALL_TYPE_OUTBOUND: An outgoing call from an agent to an external party (customer).
    • CALL_TYPE_EXTERNAL: A call between an external party (customer) and an agent (when we are not able to distinguish between inbound and outbound calls).
    • CALL_TYPE_INTERNAL: A call between two agents.
    • CALL_TYPE_CONSULT: An internal call between two agents. Another call that was in progress was put on hold.
    • CALL_TYPE_TRANSFER: A call with an external party that was transferred to another agent is in progress.
    • CALL_TYPE_CONFERENCE: A call between an external party and two or more agents.
  • cti.ani: The call ANI.
  • cti.dnis: The call DNIS.
  • cti.kvps.*: Key-Value-Pairs associated with the call. These may be updated by the CTI during the session. For example, cti.kvps.dnr means the KVP with the key dnr.
  • cti.callAttributes.*: Additional call attributes. The available keys depend on the CTI implementation.
  • cti.correlationAttributes.*: Additional attributes related to common information between CTI events and the audio stream. These shouldn’t be updated after this event.
  • cti.eventType: Set to CALL_STARTED.
  • cti.recordingId: Unique recording ID used as correlation ID with SIPREC.

In addition, if there is a previous session in the current engagement, the following variables are updated:

  • result.engagementInfo.claimedExternalPersonId: The external person ID.
  • result.engagementInfo.claimedInternalPersonId: The internal person ID used by the API, also called the Gatekeeper person ID.
  • result.engagementInfo.sessionIntent: The latest non-empty session intent that is specified in the current enagement. The supported values are:
    • SESSION_INTENT_UNSPECIFIED: The intent is not specified in any of the sessions in the current engagement.
    • SESSION_INTENT_OPT_OUT: The person is opted out.
    • SESSION_INTENT_ENROLLMENT: There is an enrollment.
    • SESSION_INTENT_ADAPTATION: Print adaptation is done following a print verification or identification match.
    • SESSION_INTENT_VERIFICATION: There is a print verification or identification.
    • SESSION_INTENT_FRAUD_DETECTION: A known fraudster is detected.
    • SESSION_INTENT_ORPHAN: There is no person ID, so no biometric operation is performed.
    • SESSION_INTENT_OTHER: There is an intent other than one of the other supported values.

CALL_ENDED_EVENT

The call ended. The session remains active for a while as biometric operations are completed.

The following session variables are updated:

CALL_HELD_EVENT

The call is placed on hold. This scenario results in a PAUSE_RECORDING action.

The following session variables are updated:

CALL_RESUMED_EVENT

A call that was previously on hold is now resumed. This scenario results in a RESUME_RECORDING action.

The following session variables are updated:

CALL_PARTY_ADDED_EVENT

A party is added to the current call. This scenario results in a PAUSE_RECORDING action.

The following session variables are updated:

CALL_PARTY_DELETED_EVENT

A party is removed from the current call. This scenario results in a RESUME_RECORDING action.

The following session variables are updated:

CALL_OTHER_EVENT

Telephony events that aren’t covered with the other CALL_*_EVENT.

The following session variables are updated:

  • cti.kvps.*: See CALL_START_EVENT.
  • cti.callAttributes.*: See CALL_START_EVENT.
  • cti.eventType: Set to one of the following values:
    • CALL_EVENT_UNSPECIFIED: Unknown on unspecified call event type.
    • CALL_DATA_UPDATED: Call data changed.
    • AUDIO_CHANNEL_CHANGED: The audio channel information has changed.

RECORDING_STARTED_EVENT

Returned when recording has started.

The following session variables are updated:

  • result.gotRecordingStartedEvent: Set to true.
  • result.recording.mediaId: The media ID for the recording. This should be passed to actions that require a mediaSegmentId.

RECORDING_ENDED_EVENT

Returned when the recording ended.

The following session variable is updated:

  • result.gotRecordingStoppedEvent: Set to true.

RECORDING_PAUSED_EVENT

Returned when the recording paused.

The following session variable is updated:

  • result.gotRecordingPausedEvent: Set to true.

RECORDING_RESUMED_EVENT

Returned when the recording is resumed from a paused state.

RECORDING_ERROR_EVENT

Returned when the recording failed to start.

PERSON_ID_EVENT

An agent entered the external person ID that identifies the caller.

The following session variables are updated:

  • result.externalPersonId: The external person ID entered by the agent.
  • result.firstName: The person’s first name.
  • result.lastName: The person’s last name.
  • result.person.customData.*: Custom application data attached to that person. For example, if the person has custom data key k1 with value v1, the session variable result.person.customData.k1 will be set to the value v1.

GROUP_ID_EVENT

An agent entered the external group ID that identifies the caller’s group.

The following session variable is updated:

  • result.externalGroupId: The external person ID entered by the agent.

PERSON_STATUS_EVENT

Raised when updating the person Status information as a result of GET_PERSON_STATUS.

The following session variables are updated:

  • result.gotPersonStatusEvent: Set to true.
  • result.personStatus.externalPersonId: The external person ID, typically what was entered by the agent.
  • result.personStatus.internalPersonId: The internal person ID used by the API, also called the “Gatekeeper person ID”.
  • result.personStatus.firstName: The first name.
  • result.personStatus.lastName: The last name.
  • result.personStatus.genderIdentity: The gender. Supported values are:
    • GENDER_UNSPECIFIED
    • GENDER_MALE
    • GENDER_FEMALE
    • GENDER_UNKNOWN
    • GENDER_NON_BINARY
    • UNRECOGNIZED
  • result.personStatus.preferredLanguage: The preferred spoken language.
  • result.personStatus.customData.*: Custom application data attached to that person. For example, if the person has custom data key k1 with value v1, the session variable result.personStatus.customData.k1 is set to the value v1.
  • result.consent.agentId: The agent ID that last updated the consent information.
  • result.consent.status: The current consent status. The supported values are:
    • CONSENT_STATUS_UNSPECIFIED
    • CONSENT_STATUS_OPTED_IN
    • CONSENT_STATUS_OPTED_OUT
    • UNRECOGNIZED
  • result.consent.reason: The reason given to the agent for the consent. Typically used for CONSENT_STATUS_OPTED_OUT.

The following variables are set with the same values as above, where ID is the value of internalPersonId:

  • result.personStatusById.ID.externalPersonId
  • result.personStatusById.ID.firstName
  • result.personStatusById.ID.lastName
  • result.personStatusById.ID.genderIdentity
  • result.personStatusById.ID.preferredLanguage
  • result.personStatusById.ID.customData.*
  • result.personStatusById.ID.consent.agentId
  • result.personStatusById.ID.consent.status
  • result.personStatusById.ID.consent.reason

Sent when the agent updated the person’s consent information.

The following session variables are updated:

  • result.gotPersonConsentEvent: Set to true. This does not necessarily mean that the person opted in or not, but simply that this event was received from the agent.
  • result.consent.provided: Set to true if the person consented (opted in), false otherwise.
  • result.consent.optOutReason: If opted out, that is result.consent.provided is set to false, the reason given to the agent.
  • result.consent.offerOptIn: Number of days (integer), when the agent should offer to opt in the person again.
  • result.consent.internalPersonId: The internal person ID.

VOICEPRINT_STATUS_EVENT

Raised when updating the voiceprint enroll status as a result of the GET_VOICEPRINT_STATUS action.

The following session variables are updated:

  • result.voiceprintStatus.voiceprintProfileId: The voiceprint profile ID.
  • result.voiceprintStatus.internalPersonId: The internal person ID associated with the voiceprint profile.
  • result.voiceprintStatus.voiceprintTag: The voiceprint tag.
  • result.voiceprintStatus.status: The status. The supported values are:
    • VOICEPRINT_PROFILE_STATUS_UNSPECIFIED: Voiceprint profile status isn’t set.
    • VOICEPRINT_PROFILE_STATUS_NOT_TRAINED: Print isn’t trained.
    • VOICEPRINT_PROFILE_STATUS_BASIC_TRAINED: Print is trained but can be improved using additional enrollment audio.
    • VOICEPRINT_PROFILE_STATUS_OPTIMAL_TRAINED: Print is trained with an optimal amount of audio.
  • result.voiceprintStatus.locked: If true, the print has been marked as locked. It shouldn’t be used for verification, enrollment, or training.

The following variables are set with the same values as above, where ID is the value of voiceprintProfileId:

  • result.voiceprintStatusById.ID.internalPersonId
  • result.voiceprintStatusById.ID.voiceprintTag
  • result.voiceprintStatusById.ID.status
  • result.voiceprintStatusById.ID.locked

CONVOPRINT_STATUS_EVENT

Raised when updating the convoprint enroll status as a result of the GET_CONVOPRINT_STATUS action.

The following session variables are updated:

  • result.convoprintStatus.found: Set to true if the convoprint profile is found, false otherwise. If set to false, don’t set any of the related session variables mentioned below.
  • result.convoprintStatus.convoprintProfileId: The conversation print profile ID.
  • result.convoprintStatus.internalPersonId: The internal person ID associated with that conversation print profile.
  • result.convoprintStatus.convoprintTag: The convoprint tag. This is typically the language code.
  • result.convoprintStatus.status: The status. The supported values are:
    • CONVOPRINT_PROFILE_STATUS_UNSPECIFIED: Convoprint profile status isn’t set.
    • CONVOPRINT_PROFILE_STATUS_NOT_TRAINED: Print isn’t trained.
    • CONVOPRINT_PROFILE_STATUS_BASIC_TRAINED: Print is trained but can be improved using additional enrollment audio.
    • CONVOPRINT_PROFILE_STATUS_OPTIMAL_TRAINED: Print is trained with an optimal amount of audio.
  • result.convoprintStatus.locked: If true, the print has been marked as locked, which indicates that it shouldn’t be used for verification, enrollment, or training.

In addition, the following are set with the same values as above, where ID is the value of convoprintProfileId:

  • result.convoprintStatus.ID.internalPersonId
  • result.convoprintStatus.ID.convoprintTag
  • result.convoprintStatus.ID.status
  • result.convoprintStatus.ID.locked

DEVICEPRINT_STATUS_EVENT

Raised when updating the deviceprint enroll status as a result of the GET_DEVICEPRINT_STATUS action.

The following session variables are updated:

  • result.deviceprintStatus.deviceprintProfileId: The deviceprint profile ID.
  • result.deviceprintStatus.internalPersonId: The internal person ID associated with that deviceprint profile.
  • result.deviceprintStatus.deviceprintTag: The deviceprint tag. This is typically the caller’s ANI.
  • result.deviceprintStatus.status: The status. The supported values are:
    • DEVICEPRINT_PROFILE_STATUS_UNSPECIFIED: Deviceprint profile status isn’t set.
    • DEVICEPRINT_PROFILE_STATUS_NOT_TRAINED: Print isn’t trained.
    • DEVICEPRINT_PROFILE_STATUS_BASIC_TRAINED: Print is trained but can be improved using additional enrollment audio.
    • DEVICEPRINT_PROFILE_STATUS_OPTIMAL_TRAINED: Print is trained with an optimal amount of audio.
  • result.deviceprintStatus.locked: If true, the print has been marked as locked, which indicates that it shouldn’t be used for verification, enrollment, or training.

The following variables are set with the same values as above, where ID is the value of deviceprintProfileId:

  • result.deviceprintStatus.ID.internalPersonId
  • result.deviceprintStatus.ID.deviceprintTag
  • result.deviceprintStatus.ID.status
  • result.deviceprintStatus.ID.locked

GROUP_INFORMATION_EVENT

Raised when updating the group membership information as a result to the GET_GROUP_INFORMATION action.

The following session variables are updated:

  • result.groupInformation.externalGroupId: The external group ID.
  • result.groupInformation.internalGroupId: The internal group ID.

The following key is set for each group member, where N is replaced with a decimal integer starting with 0. It is increased by 1 for every new member. For detailed description of each key, see the corresponding key in PERSON_STATUS_EVENT.

  • result.groupMember.N.internalPersonId

The following keys are set as PERSON_STATUS_EVENT, where ID is the value of internalPersonId of each result.groupMember.N entry:

  • result.personStatusById.ID.externalPersonId
  • result.personStatusById.ID.firstName
  • result.personStatusById.ID.lastName
  • result.personStatusById.ID.genderIdentity
  • result.personStatusById.ID.preferredLanguage
  • result.personStatusById.ID.consent.agentId
  • result.personStatusById.ID.consent.status
  • result.personStatusById.ID.consent.reason

AUDIO_PROCESSING_FOR_ENROLL_STARTED_EVENT

Returned when audio processing (for the purpose of enroll) has started, as a result of the START_PROCESS_AUDIO_FOR_ENROLL action.

The following session variable is updated:

  • result.audioProcessingForEnroll.processingId: The audio processing ID.

AUDIO_PROCESSING_FOR_ENROLL_PROGRESS_EVENT

Returned at regular intervals while the audio is processed for enrollment.

The following session variables are updated:

  • result.audioProcessingForEnroll.minNetAudio: The minimum net audio required for enrollment. In ISO-8601 seconds based representation; See Duration.toString  .
  • result.audioProcessingForEnroll.minNetAudioMs: The minimum net audio required for enrollment, in milliseconds.
  • result.audioProcessingForEnroll.maxNetAudio: The maximum allowed net audio for enrollment. In ISO-8601 seconds based representation; See Duration.toString  .
  • result.audioProcessingForEnroll.maxNetAudioMs: The maximum allowed net audio for enrollment, in milliseconds.
  • result.audioProcessingForEnroll.grossAudio: The current gross audio. In ISO-8601 seconds based representation; See Duration.toString  .
  • result.audioProcessingForEnroll.grossAudioMs: The current gross audio, in milliseconds.
  • result.audioProcessingForEnroll.netAudio: The current net audio. In ISO-8601 seconds based representation; See Duration.toString  .
  • result.audioProcessingForEnroll.netAudioMs: The current net audio, in milliseconds.
  • result.audioProcessingForEnroll.mediaSegmentId: The media segment ID used as the source for audio processing.
  • result.audioProcessingForEnroll.validity: The current audio validity. Supported values are:
    • REASON_UNSPECIFIED: Reason wasn’t specified.
    • REASON_AUDIO_OK: Audio is satisfactory for processing.
    • REASON_NOT_ENOUGH_SEGMENTS: The number of audio segments provided isn’t enough for processing.
    • REASON_INVALID_AUDIO: Audio format is invalid or not supported.
    • REASON_AUDIO_TOO_SHORT: Audio doesn’t contain the amount of speech required to complete the process.
    • REASON_AUDIO_TOO_SOFT: Audio speech level is lower than the level required to complete the process.
    • REASON_AUDIO_TOO_LOUD: Audio is too loud and causes saturation.
    • REASON_AUDIO_TOO_NOISY: Audio Signal to Noise Ratio (SNR) is too low.
    • REASON_MULTIPLE_SPEAKERS_DETECTED: Multiple speakers detected in the audio instead of one speaker.
    • REASON_INTERNAL_ERROR: An internal error prevented the system from checking if the audio is valid or not.
    • UNRECOGNIZED: Not recognized.

AUDIO_PROCESSING_FOR_ENROLL_INTERMEDIATE_RESULT_EVENT

Returned during audio processing (for enrollment) when the current net audio reaches the minimum required or the maximum allowed.

The following session variables are updated:

  • result.audioProcessingForEnroll.minNetAudio: The minimum net audio required for enrollment. In ISO-8601 seconds based representation; See Duration.toString  .
  • result.audioProcessingForEnroll.minNetAudioMs: The minimum net audio required for enrollment, in milliseconds.
  • result.audioProcessingForEnroll.maxNetAudio: The maximum allowed net audio for enrollment. In ISO-8601 seconds based representation; See Duration.toString  .
  • result.audioProcessingForEnroll.maxNetAudioMs: The maximum allowed net audio for enrollment, in milliseconds.
  • result.audioProcessingForEnroll.mediaSegmentId: The media segment ID used as the source for audio processing.
  • result.audioProcessingForEnroll.processedAudioId: The resulting processed audio ID.
  • result.audioProcessingForEnroll.validity: The current audio validity. The supported values are:
    • REASON_UNSPECIFIED: Reason wasn’t specified.
    • REASON_AUDIO_OK: Audio is satisfactory for processing.
    • REASON_NOT_ENOUGH_SEGMENTS: The number of audio segments provided isn’t enough for processing.
    • REASON_INVALID_AUDIO: Audio format is invalid or not supported.
    • REASON_AUDIO_TOO_SHORT: Audio doesn’t contain the amount of speech required to complete the process.
    • REASON_AUDIO_TOO_SOFT: Audio speech level is lower than the level required to complete the process.
    • REASON_AUDIO_TOO_LOUD: Audio is too loud and causes saturation.
    • REASON_AUDIO_TOO_NOISY: Audio SNR is too low.
    • REASON_MULTIPLE_SPEAKERS_DETECTED: Multiple speakers detected in the audio instead of one speaker.
    • REASON_INTERNAL_ERROR: An internal error prevented the system from checking if the audio is valid or not.
    • UNRECOGNIZED: Not recognized.
  • result.audioProcessingForEnroll.voiceClassScore: The voice class score, as a floating-point value.
  • result.audioProcessingForEnroll.calibrationModelId: The calibration model revision ID used.
  • result.audioProcessingForEnroll.netAudio: The current net audio. In ISO-8601 seconds based representation; See Duration.toString  .
  • result.audioProcessingForEnroll.netAudioMs: The current net audio, in milliseconds.
  • result.audioProcessingForEnroll.grossAudio: The current gross audio. In ISO-8601 seconds based representation; See Duration.toString  .
  • result.audioProcessingForEnroll.grossAudioMs: The current gross audio, in milliseconds.

AUDIO_PROCESSING_FOR_ENROLL_COMPLETED_EVENT

Returned when audio processing for enrollment has completed.

The following session variables are updated:

  • result.audioProcessingForEnroll.statusCode: The result status code. The value OK represents success. Any other non-empty value represents some form of error.
  • result.audioProcessingForEnroll.mediaSegmentId: The media segment ID used as the source for audio processing.
  • result.audioProcessingForEnroll.processedAudioId: The resulting processed audio ID.
  • result.audioProcessingForEnroll.validity: The current audio validity. The supported values are:
    • REASON_UNSPECIFIED: Reason wasn’t specified.
    • REASON_AUDIO_OK: Audio is satisfactory for processing.
    • REASON_NOT_ENOUGH_SEGMENTS: The number of audio segments provided isn’t enough for processing.
    • REASON_INVALID_AUDIO: Audio format is invalid or not supported.
    • REASON_AUDIO_TOO_SHORT: Audio doesn’t contain the amount of speech required to complete the process.
    • REASON_AUDIO_TOO_SOFT: Audio speech level is lower than the level required to complete the process.
    • REASON_AUDIO_TOO_LOUD: Audio is too loud and causes saturation.
    • REASON_AUDIO_TOO_NOISY: Audio SNR is too low.
    • REASON_MULTIPLE_SPEAKERS_DETECTED: Multiple speakers detected in the audio instead of one speaker.
    • REASON_INTERNAL_ERROR: An internal error prevented the system from checking if the audio is valid or not.
    • UNRECOGNIZED: Not recognized.
  • result.audioProcessingForEnroll.voiceClassScore: The voice class score, as a floating-point value.
  • result.audioProcessingForEnroll.calibrationModelId: The calibration model revision ID used.
  • result.audioProcessingForEnroll.netAudio: The current net audio. In ISO-8601 seconds based representation; See Duration.toString  .
  • result.audioProcessingForEnroll.netAudioMs: The current net audio, in milliseconds.
  • result.audioProcessingForEnroll.grossAudio: The current gross audio. In ISO-8601 seconds based representation; See Duration.toString  .
  • result.audioProcessingForEnroll.grossAudioMs: The current gross audio, in milliseconds.

AUDIO_PROCESSING_FOR_ENROLL_STOPPED_EVENT

Returned when audio processing (for enrollment) is stopped before completion.

VOICE_ENROLL_COMPLETED_EVENT

Returned as a result of the ENROLL_VOICEPRINT action.

The following session variables are updated:

  • result.enroll.statusCode: The result status code. The value OK represents success. Any other non-empty value represents some form of error.
  • result.enroll.basicResult.status: Specifies if the enrollment segments collection of a print is trained successfully. The supported values are:
    • ENROLL_STATUS_UNSPECIFIED: Enroll status isn’t set.
    • ENROLL_STATUS_TRAIN_NOT_POSSIBLE: Minimal requirements for training aren’t met.
    • ENROLL_STATUS_TRAIN_POSSIBLE: Minimum requirements for training are met, but Nuance recommends adding more audio.
    • ENROLL_STATUS_TRAIN_SUGGESTED: Optimal training requirements are met.
    • ENROLL_STATUS_FULL: Too many segments are added and it’s not possible to add more.
  • result.enroll.basicResult.enrolled: Indicates if the current audio segment has been successfully enrolled.
  • result.enroll.basicResult.reason: The reason complementing status value provided with result.enroll.basicResult.status.
  • result.enroll.detailedResult.segmentCount: The number of enrollment segments.

TRAIN_STARTED_EVENT

Returned when voiceprint model training has started as a result of the action START_TRAIN_VOICEPRINT.

TRAIN_STOPPED_EVENT

Returned when voiceprint model training stopped before it was completed. There is no operation action available to the webhooks that can be used to stop voiceprint model training. This event happens if an outside source stops the operation.

TRAIN_COMPLETED_EVENT

Returned when voiceprint model training is completed.

The following session variables are updated:

  • result.train.statusCode: The result status code. The value OK represents success. Any other non-empty value represents some form of error.
  • result.train.basicResult.status: The train operation’s resulting status. The supported values are:
    • TRAIN_STATUS_UNSPECIFIED
    • TRAIN_STATUS_TRAINED
    • TRAIN_STATUS_FAILED
  • result.train.basicResult.voiceprintProfileStatus: The voiceprint profile status. The supported values are:
    • VOICEPRINT_PROFILE_STATUS_UNSPECIFIED: Voiceprint profile status isn’t set.
    • VOICEPRINT_PROFILE_STATUS_NOT_TRAINED: Print isn’t trained.
    • VOICEPRINT_PROFILE_STATUS_BASIC_TRAINED: Print is trained but can be improved using additional enrollment audio.
    • VOICEPRINT_PROFILE_STATUS_OPTIMAL_TRAINED: Print is trained with an optimal amount of audio.
  • result.train.basicResult.reason: The reason for the status value of result.train.basicResult.voiceprintProfileStatus.

VERIFY_STARTED_EVENT

Returned when the voiceprint verification started as a result of the START_VERIFY_VOICEPRINT action.

The following session variable is updated:

  • result.verify.processingId: The voiceprint verification processing ID.

VERIFY_STOPPED_EVENT

Returned when the voiceprint verification is stopped before it’s completed.

VERIFY_PROGRESS_EVENT

Returned at regular intervals when voiceprint verification is in progress.

VERIFY_INTERMEDIATE_RESULT_EVENT

Returned each time when voiceprint verification reached the next checkpoint.

The following session variables are updated:

  • result.verify.currentCheckpoint: The current checkpoint number.
  • result.verify.maxCheckpoint: The checkpoint number that results in VERIFY_COMPLETED_EVENT, rather than VERIFY_INTERMEDIATE_RESULT_EVENT.

VERIFY_COMPLETED_EVENT

Returned when voiceprint verification completed.

The following session variables are updated:

  • result.verify.statusCode: The result status code. The value OK represents success. Any other non-empty value represents an error.
  • result.verify.mediaSegmentId: The media segment ID used as the source for verification.
  • result.verify.processedAudioId: The processed audio ID that resulted from the verification.
  • result.verify.decision: The verification decision. The supported values are:
    • DECISION_UNSPECIFIED: Decision isn’t set.
    • DECISION_AUTHENTIC: Most likely to be the authentic person.
    • DECISION_NO_MATCH: Most likely not to be the authentic person but rather someone else.
    • DECISION_FRAUD: Most likely to be a fraud attempt.
    • DECISION_UNCERTAIN: System can’t make a reliable decision.
    • DECISION_FAILED: There was a failure while making the decision.
    • DECISION_NO_RISK_DETECTED: No risk is detected.
  • result.verify.decisionReason: Additional information about result.verify.decision. The supported values are:
    • DECISION_REASON_UNSPECIFIED: Decision reason isn’t specified.
    • DECISION_REASON_AUDIO_OK: Audio is valid.
    • DECISION_REASON_NOT_ENOUGH_SEGMENTS: Processing requires more audio segments than provided.
    • DECISION_REASON_INVALID_AUDIO: Audio format is invalid or not supported.
    • DECISION_REASON_AUDIO_TOO_SHORT: Audio doesn’t contain the amount of speech required to complete the process.
    • DECISION_REASON_AUDIO_TOO_SOFT: Audio speech level is lower than the level required to complete the process.
    • DECISION_REASON_AUDIO_TOO_LOUD: Audio is too loud and causes saturation.
    • DECISION_REASON_AUDIO_TOO_NOISY: Audio SNR is too low.
    • DECISION_REASON_FRAUDSTER_INDICATION: A fraud attempt probably occurred.
    • DECISION_REASON_VOICEPRINT_MATCH: This is probably the authentic person.
    • DECISION_REASON_VOICEPRINT_NO_MATCH: This is probably not the authentic person.
    • DECISION_REASON_LOW_RELIABILITY: The system couldn’t reach a reliable decision.
    • DECISION_REASON_NO_RISK_DETECTED: Risk isn’t detected.
    • DECISION_REASON_NO_SCORES: No available scores
    • DECISION_REASON_INTERNAL_ERROR: An error occurred while making the decision.
  • result.verify.voiceClassScore: A score between 0 and 100 that can be used to categorize voices into classes according to various factors such as timbre, pitch, and so on.
  • result.verify.biometricScore: Raw biometric score of the comparison between the print and audio.
  • result.verify.risk: A number between 0 and 1000 that represents the risk level (the higher the number, the higher the risk).
  • result.verify.reliability: A number between 0 and 100 that represents the level of confidence in the risk score.
  • result.verify.snr: Signal noise ratio, expressed in decibels.
  • result.verify.netAudioMs: Amount of speech, in milliseconds.
  • result.verify.grossAudioMs: Amount of gross audio including speech, noise, and silence, in milliseconds.

IDENTIFY_STARTED_EVENT

Returned when voiceprint identification started as a result of the action START_IDENTIFY_VOICEPRINT.

The following session variable is updated:

  • result.identify.processingId: The voiceprint identification processing ID.

IDENTIFY_STOPPED_EVENT

Returned when voiceprint identification is stopped before it’s completed.

IDENTIFY_PROGRESS_EVENT

Returned at regular intervals when voiceprint identification is in progress.

IDENTIFY_INTERMEDIATE_RESULT_EVENT

Returned when voiceprint identification reached the next checkpoint.

IDENTIFY_COMPLETED_EVENT

Returned when voiceprint identification is completed.

The following session variables are updated:

  • result.identify.voiceprintId: The voiceprint profile ID that’s identified.
  • result.identify.internalPersonId: The internal person ID that’s identified.
  • result.identify.statusCode: The result status code. The value OK represents success. Any other non-empty value represents an error.
  • result.identify.mediaSegmentId: The media segment ID used as the source for verification.
  • result.identify.processedAudioId: The processed audio ID that resulted from the verification.
  • result.identify.decision: The verification decision. The supported values are:
    • DECISION_UNSPECIFIED: Decision isn’t set.
    • DECISION_AUTHENTIC: Most likely to be the authentic person.
    • DECISION_NO_MATCH: Most likely not to be the authentic person but rather someone else.
    • DECISION_FRAUD: Most likely a fraud attempt.
    • DECISION_UNCERTAIN: System can’t make a reliable decision.
    • DECISION_FAILED: There was a failure while making the decision.
    • DECISION_NO_RISK_DETECTED: No risk is detected.
  • result.verify.decisionReason: Additional information about result.identify.decision. The supported values are:
    • DECISION_REASON_UNSPECIFIED: Decision reason isn’t specified.
    • DECISION_REASON_AUDIO_OK: Audio is valid.
    • DECISION_REASON_NOT_ENOUGH_SEGMENTS: Processing requires more audio segments than provided.
    • DECISION_REASON_INVALID_AUDIO: Audio format is invalid or not supported.
    • DECISION_REASON_AUDIO_TOO_SHORT: Audio doesn’t contain the amount of speech required to complete the process.
    • DECISION_REASON_AUDIO_TOO_SOFT: Audio speech level is lower than the level required to complete the process.
    • DECISION_REASON_AUDIO_TOO_LOUD: Audio is too loud and causes saturation.
    • DECISION_REASON_AUDIO_TOO_NOISY: Audio SNR (Signal to Noise Ratio) is too low.
    • DECISION_REASON_FRAUDSTER_INDICATION: A fraud attempt probably occurred.
    • DECISION_REASON_VOICEPRINT_MATCH: This is probably an authentic person.
    • DECISION_REASON_VOICEPRINT_NO_MATCH: This is probably not an authentic person.
    • DECISION_REASON_LOW_RELIABILITY: The system couldn’t reach a reliable decision.
    • DECISION_REASON_NO_RISK_DETECTED: Risk isn’t detected.
    • DECISION_REASON_NO_SCORES: No available scores
    • DECISION_REASON_INTERNAL_ERROR: An error occurred while making the decision.

AUTHENTICITY_EVENT

Raised when the agent marked the current person as authentic. This causes the flow to respond with a SAVE_AUTHENTICITY action.

DETECT_KNOWN_FRAUDSTERS_STARTED_EVENT

Returned when the Detect Known Fraudsters operation starts as a result to the action START_DETECT_FRAUD_VOICEPRINT.

The following session variable is updated:

  • result.detectKnownFraudsters.processingId: The processing ID for Detect Known Fraudsters.

DETECT_KNOWN_FRAUDSTERS_INTERMEDIATE_EVENT

Returned when detect known fraudsters reached the next checkpoint.

DETECT_KNOWN_FRAUDSTERS_PROGRESS_EVENT

Returned at regular intervals when detect known fraudsters is in progress.

DETECT_KNOWN_FRAUDSTERS_STOPPED_EVENT

Returned when detect known fraudsters stops before completion.

DETECT_KNOWN_FRAUDSTERS_COMPLETED_EVENT

Returned when detect known fraudsters is complete.

The following session variables are updated:

  • result.detectKnownFraudsters.statusCode: The result status code. The value OK represents success. Any other non-empty value represents an error.
  • result.detectKnownFraudsters.result: The detect known fraudsters decision. The supported values are:
    • DECISION_UNSPECIFIED: Decision not set.
    • DECISION_AUTHENTIC: Most likely to be the authentic person.
    • DECISION_NO_MATCH: Most likely not to be the authentic person but rather someone else.
    • DECISION_FRAUD: Most likely to be a fraud attempt.
    • DECISION_UNCERTAIN: System can’t make a reliable decision.
    • DECISION_FAILED: There is a failure while making the decision.
    • DECISION_NO_RISK_DETECTED: No risk is detected.
  • result.detectKnownFraudsters.fraudDetectionScore: The fraud detection score.
  • result.detectKnownFraudsters.voiceClassScore: The voice class score.
  • result.detectKnownFraudsters.riskEngineScore: The risk engine’s score.
  • result.detectKnownFraudsters.riskEngineReliability: The risk engine’s reliability score.
  • result.detectKnownFraudsters.results.profileIds: The profile ID of each fraudsters’ detection score.
  • result.detectKnownFraudsters.results.scores: Each fraudsters’ detection score.
  • result.detectKnownFraudsters.biometricScore: Raw biometric score of the comparison between the print and audio.
  • result.detectKnownFraudsters.snr: Signal noise ratio, expressed in decibels.
  • result.detectKnownFraudsters.netAudioMs: Amount of speech, in milliseconds.
  • result.detectKnownFraudsters.grossAudioMs: Amount of gross audio including speech, noise, and silence, in milliseconds.

About result.detectKnownFraudsters.results.

The session variables with this prefix are JSON arrays of equal length that contain the individual fraudster scores of the persons in the fraudster watchlist. The score at index N of .scores is for the profile ID at index N of .profileIds, and so on.

Due to their large value size, the keys with the result.detectKnownFraudsters.results. prefix are removed from the session variables shortly after the DETECT_KNOWN_FRAUDSTERS_COMPLETED_EVENT event is sent.

DETECT_AUDIO_SPOOFING_STARTED_EVENT

Returned when audio spoofing detection started as a result of the START_DETECT_AUDIO_SPOOFING action.

DETECT_AUDIO_SPOOFING_INTERMEDIATE_EVENT

Returned when audio spoofing detection reached a checkpoint.

DETECT_AUDIO_SPOOFING_PROGRESS_EVENT

Returned at regular intervals when audio spoofing detection is in progress.

DETECT_AUDIO_SPOOFING_STOPPED_EVENT

Returned when audio spoofing detection stopped before completion. There is no operation action that the webhook can use to stop audio spoofing detection. This event happens if some outside source stops the operation. For example, if the recording backing the mediaSegmentId is stopped.

DETECT_AUDIO_SPOOFING_COMPLETED_EVENT

Returned when audio spoofing detection has completed.

The following session variables are updated:

  • result.audioSpoofing.statusCode: The result status code. The value OK represents success. Any other non-empty value represents some form of error.
  • result.audioSpoofing.playback.decision: The result of the playback detection engine. The supported values are:
    • DECISION_UNSPECIFIED: Decision not set.
    • DECISION_AUTHENTIC: Most likely to be the authentic person.
    • DECISION_NO_MATCH: Most likely not to be the authentic person but rather someone else.
    • DECISION_FRAUD: Most likely to be a fraud attempt.
    • DECISION_UNCERTAIN: System can’t make a reliable decision.
    • DECISION_FAILED: There was a failure while making the decision.
    • DECISION_NO_RISK_DETECTED: No risk was detected.
  • result.audioSpoofing.synthetic.decision: The result of the synthetic speech detection engine. The supported values are:
    • DECISION_UNSPECIFIED: Decision not set.
    • DECISION_AUTHENTIC: Most likely to be the authentic person.
    • DECISION_NO_MATCH: Most likely not to be the authentic person but rather someone else.
    • DECISION_FRAUD: Most likely to be a fraud attempt.
    • DECISION_UNCERTAIN: System can’t make a reliable decision.
    • DECISION_FAILED: There was a failure while making the decision.
    • DECISION_NO_RISK_DETECTED: No risk was detected.
  • result.audioSpoofing.footprint.decision: The result of the footprint playback detection engine. The supported values are:
    • DECISION_UNSPECIFIED: Decision not set.
    • DECISION_AUTHENTIC: Most likely to be the authentic person.
    • DECISION_NO_MATCH: Most likely not to be the authentic person but rather someone else.
    • DECISION_FRAUD: Most likely to be a fraud attempt.
    • DECISION_UNCERTAIN: System can’t make a reliable decision.
    • DECISION_FAILED: There was a failure while making the decision.
    • DECISION_NO_RISK_DETECTED: No risk was detected.

SESSION_SUSPICIOUS_EVENT

This is when the agent marks the current caller as suspicious.

The following session variables are updated:

  • result.suspicious: Set to true if the caller is marked as suspicious, otherwise as false.
  • result.suspiciousReason: The reason entered by the agent.

SESSION_DECISION_EVENT

Returned with the current session decision as a result of the GET_SESSION_DECISION action.

The following session variables are updated:

  • result.sessionDecision.decision: The session decision. The supported values are:
    • DECISION_UNSPECIFIED: Decision not set.
    • DECISION_AUTHENTIC: Most likely to be the authentic person.
    • DECISION_NO_MATCH: Most likely not to be the authentic person but rather someone else.
    • DECISION_FRAUD: Most likely to be a fraud attempt.
    • DECISION_UNCERTAIN: System can’t make a reliable decision.
    • DECISION_FAILED: There was a failure while making the decision.
    • DECISION_NO_RISK_DETECTED: No risk was detected.
  • result.sessionDecision.reason: The reason for that decision. The supported values are:
    • DECISION_REASON_UNSPECIFIED
    • DECISION_REASON_LOW_RELIABILITY: Uncertain.
    • DECISION_REASON_NO_RISK_DETECTED: Authentic for Fraud session (session with no authentication factor).
    • DECISION_REASON_AUTHENTIC: Authentic for Authentication Session (session with at least 1 authentication factor).
    • DECISION_REASON_FRAUD_RISK
    • DECISION_REASON_NO_MATCH
    • DECISION_REASON_NO_DATA
    • DECISION_REASON_INTERNAL_ERROR
  • result.sessionDecision.risk: The session’s risk score.
  • result.sessionDecision.reliability: The session’s reliability score.

RESTART_END_SESSION_EVENT

The current session should end since the agent clicked restart audio. While the current session remains active, this event indicates that all active recordings in this session should stop as soon as possible. In addition, this event indicates that this current session doesn’t receive any additional call events, such as CALL_START_EVENT.

The following session variable is updated:

  • result.newSessionId: The new Session ID where the restarted audio should resume for the current call, and where further call events is sent.

RESTART_NEW_SESSION_EVENT

Sent as the first event of a new session, this indicates that this session started as a result of a restart audio operation done by an agent. As a result of this event, you can copy variables from the previous session, stored under the result.previousSession. prefix, into your own state. variables.

The following session variables are updated:

  • result.previousSessionId: The previous session ID where the restart audio operation occurred.
  • result.previousSession.*: See Previous session keys.

CUSTOM_EVENT

Triggered by calling the public API CallSessionManager.SubmitAgentAction with the field SubmitAgentActionRequest.agent_action.custom_message set to CustomLogicWebhookMessage. The value of custom_message.message is stored in the session variable result.customEventMessage. If the value of message is empty or null, the session variable result.customEventMessage isn’t set.

The message can be any UTF-8 string. It’s recommended to use JSON or YAML to pass complex structures. As with other session variables, don’t store more than one kilobyte of information in the message.

All session variables under result.* and the variable result.customEventMessage specifically only contains the value of the latest CUSTOM_EVENT. Any new CUSTOM_EVENT with a non-empty message overrides the existing result.customEventMessage. For this reason, you should copy the value to another session variable using SetSessionVariableAction as soon as possible.

The following session variable is updated:

  • result.customEventMessage: The message attached to the custom event.

SCHEDULED_EVENT

Generated as a result of a previous SCHEDULE_EVENT operation.

The following session variables are updated:

  • result.scheduledEvent.delaySeconds: The delaySeconds operation parameter of the SCHEDULE_EVENT that caused this event.
  • result.scheduledEvent.id: The ID of that event, as set in the id operation parameter of SCHEDULE_EVENT.

VALIDATE_CALLER_ID_RESULT_EVENT

Generated as a result of a previous VALIDATE_CALLER_ID operation. This event also includes the current session decision that is updated with the result of the caller ID validation.

The following session variables are updated:

  • result.validateCallerId.statusCode: The result status code. The OK value represents success. Any other non-empty value represents some form of error.
  • result.validateCallerId.vendorId: ID of the caller ID validation vendor.
  • result.validateCallerId.trustIndicator: Raw trust indicator score.
  • result.validateCallerId.data.*: Processing result data.
  • result.sessionDecision.risk: See SESSION_DECISION_EVENT.
  • result.sessionDecision.reliability: See SESSION_DECISION_EVENT.
  • result.sessionDecision.decision: See SESSION_DECISION_EVENT.
  • result.sessionDecision.reason: See SESSION_DECISION_EVENT.

TEXT_PROCESSING_STARTED_EVENT

Returned when transcription (for the purpose of conversation print enrollment) has started, as a result of the START_TEXT_PROCESSING action.

The following session variable is updated:

  • result.textProcessing.processingId: The text processing ID.

TEXT_PROCESSING_PROGRESS_EVENT

Returned at regular intervals while the audio is being transcribed.

The following session variables are updated:

  • result.textProcessing.textValidity: Text validity and the reason that the text segment is not valid (when relevant). The supported values are:
    • REASON_UNSPECIFIED
    • REASON_TEXT_OK: Text is satisfactory for processing.
    • REASON_INVALID_TEXT: Text format is invalid or not supported.
    • REASON_INTERNAL_ERROR: An internal error prevented the system from checking if the text is valid or not.
  • result.textProcessing.qualityCheck: A score between 0 and 1 that represents the quality of the text.
  • result.textProcessing.rawQuality: A uncapped score that represents the quality of the text.

TEXT_PROCESSING_INTERMEDIATE_RESULT_EVENT

Returned each time audio transcription reached the next checkpoint.

The following session variables are updated:

  • result.textProcessing.processedAudioId: The processed audio ID.
  • result.textProcessing.textId: The transcribed text ID.
  • result.textProcessing.textValidity: Text validity and the reason that the text segment is not valid (when relevant). The supported values are:
    • REASON_UNSPECIFIED
    • REASON_TEXT_OK: Text is satisfactory for processing.
    • REASON_INVALID_TEXT: Text format is invalid or not supported.
    • REASON_INTERNAL_ERROR: An internal error prevented the system from checking if the text is valid or not.
  • result.textProcessing.qualityCheck: A score between 0 and 1 that represents the quality of the text.
  • result.textProcessing.rawQuality: A uncapped score that represents the quality of the text.
  • result.textProcessing.confidence: The confidence score for the entire transcription, 0 to 1.
  • result.textProcessing.wordCount: The number of recognized words.
  • result.textProcessing.redactionStatus: Indicates if the text is in plain, masked, or redacted. The supported values are:
    • REDACTION_STATUS_UNSPECIFIED
    • REDACTION_STATUS_PLAIN: The text is written in plain.
    • REDACTION_STATUS_MASKED: The text is written in plain but it’s marked as masked.
    • REDACTION_STATUS_REDACTED: The text is redacted and can’t be read.

TEXT_PROCESSING_COMPLETED_EVENT

Returned when audio transcription has completed.

The following session variables are updated:

  • result.textProcessing.statusCode: The result status code. The OK value represents success. Any other non-empty value represents some form of error.
  • result.textProcessing.processedAudioId: The processed audio ID.
  • result.textProcessing.textId: The transcribed text ID.
  • result.textProcessing.textValidity: Text validity and the reason that the text segment is not valid (when relevant). The supported values are:
    • REASON_UNSPECIFIED
    • REASON_TEXT_OK: Text is satisfactory for processing.
    • REASON_INVALID_TEXT: Text format is invalid or not supported.
    • REASON_INTERNAL_ERROR: An internal error prevented the system from checking whether the text is valid or not.
  • result.textProcessing.qualityCheck: A score between 0 and 1 that represents the quality of the text.
  • result.textProcessing.rawQuality: A uncapped score that represents the quality of the text.
  • result.textProcessing.confidence: The confidence score for the entire transcription, 0 to 1.
  • result.textProcessing.wordCount: The number of recognized words.
  • result.textProcessing.redactionStatus: Indicates if the text is in plain, masked, or redacted. The supported values are:
    • REDACTION_STATUS_UNSPECIFIED
    • REDACTION_STATUS_PLAIN: The text is written in plain.
    • REDACTION_STATUS_MASKED: The text is written in plain but it’s marked as masked.
    • REDACTION_STATUS_REDACTED: The text is redacted and can’t be read.

TEXT_PROCESSING_STOPPED_EVENT

Returned when audio transcription is stopped before completion.

CONVOPRINT_ENROLL_COMPLETED_EVENT

Returned as a result of the ENROLL_CONVOPRINT action.

The following session variables are updated:

  • result.convoprintEnroll.statusCode: The result status code. The OK value represents success. Any other non-empty value represents some form of error.
  • result.convoprintEnroll.basicResult.status: Specifies if the enrollment segments collection of a print allows the system to train the print successfully. The supported values are:
    • ENROLL_STATUS_UNSPECIFIED: Enroll status isn’t set.
    • ENROLL_STATUS_TRAIN_NOT_POSSIBLE: Minimal requirements for training aren’t met.
    • ENROLL_STATUS_TRAIN_POSSIBLE: Minimum requirements for training are met, but Nuance recommends adding more audio.
    • ENROLL_STATUS_TRAIN_SUGGESTED: Optimal training requirements are met.
    • ENROLL_STATUS_FULL: Too many segments are added and it’s not possible to add more.
  • result.convoprintEnroll.basicResult.enrolled: Set to true if the current audio segment has been successfully enrolled.
  • result.convoprintEnroll.basicResult.reason: The reason complementing status value provided with result.enroll.basicResult.status.

DETECT_KNOWN_FRAUDSTERS_CONVOPRINT_STARTED_EVENT

Returned when the detect known fraudsters operation started as a result to the action START_DETECT_FRAUD_CONVOPRINT.

The following session variable is updated:

  • result.detectKnownFraudstersConvoprint.processingId: The detect known fraudsters processing ID.

DETECT_KNOWN_FRAUDSTERS_CONVOPRINT_INTERMEDIATE_EVENT

Returned at regular intervals when detect known fraudsters reached some checkpoint.

DETECT_KNOWN_FRAUDSTERS_CONVOPRINT_PROGRESS_EVENT

Returned at regular intervals when detect known fraudsters is in progress.

DETECT_KNOWN_FRAUDSTERS_CONVOPRINT_STOPPED_EVENT

Returned when detect known fraudsters has stopped before completion.

DETECT_KNOWN_FRAUDSTERS_CONVOPRINT_COMPLETED_EVENT

Returned when detect known fraudsters has completed.

The following session variables are updated:

  • result.detectKnownFraudstersConvoprint.statusCode: The result status code. The OK value represents success. Any other non-empty value represents some form of error.
  • result.detectKnownFraudstersConvoprint.result: The detect known fraudsters decision. The supported values are:
    • DECISION_UNSPECIFIED: Decision not set.
    • DECISION_AUTHENTIC: Most likely to be the authentic person.
    • DECISION_NO_MATCH: Most likely not to be the authentic person but rather someone else.
    • DECISION_FRAUD: Most likely to be a fraud attempt.
    • DECISION_UNCERTAIN: System can’t make a reliable decision.
    • DECISION_FAILED: There is a failure while making the decision.
    • DECISION_NO_RISK_DETECTED: No risk is detected.
  • result.detectKnownFraudstersConvoprint.fraudDetectionScore: The fraud detection score.
  • result.detectKnownFraudstersConvoprint.riskEngineScore: The risk engine’s score.
  • result.detectKnownFraudstersConvoprint.riskEngineReliability: The risk engine’s reliability score.
  • result.detectKnownFraudstersConvoprint.results.profileIds: The profile ID of each fraudsters’ detection score.
  • result.detectKnownFraudstersConvoprint.results.scores: Each fraudsters’ detection score.

About result.detectKnownFraudstersConvoprint.results.

The session variables with that prefix are JSON arrays of equal length that contain the individual fraudster scores of the person in the fraudster watchlist. The score at index N of .scores is for the profile ID at index N of .profileIds, and so on.

Due to their large value size, the keys with the result.detectKnownFraudstersConvoprint.results. prefix is removed from the session variables shortly after the DETECT_KNOWN_FRAUDSTERS_CONVOPRINT_COMPLETED_EVENT event is sent.

CONVOPRINT_TRAIN_STARTED_EVENT

Returned when the conversation print model training started as a result of the START_TRAIN_CONVOPRINT action.

CONVOPRINT_TRAIN_STOPPED_EVENT

Returned when the conversation print model training is stopped before it’s completed. There is no operation action that the webhook can use to stop the conversation print model training. This event happens if some outside source stops the operation.

CONVOPRINT_TRAIN_COMPLETED_EVENT

Returned when the conversation print model training is completed.

The following session variables are updated:

  • result.convoprintTrain.statusCode: The result status code. The OK value represents success. Any other non-empty value represents some form of error.
  • result.convoprintTrain.basicResult.status: The train operation’s resulting status. The supported values are:
    • TRAIN_STATUS_UNSPECIFIED
    • TRAIN_STATUS_TRAINED
    • TRAIN_STATUS_FAILED
  • result.convoprintTrain.basicResult.convoprintProfileStatus: The voiceprint profile status. The supported values are:
    • CONVOPRINT_PROFILE_STATUS_UNSPECIFIED: Convoprint profile status wasn’t set.
    • CONVOPRINT_PROFILE_STATUS_NOT_TRAINED: Print isn’t trained.
    • CONVOPRINT_PROFILE_STATUS_BASIC_TRAINED: Print is trained but can be improved using additional enrollment audio.
    • CONVOPRINT_PROFILE_STATUS_OPTIMAL_TRAINED: Print is trained with an optimal amount of audio.
  • result.convoprintTrain.basicResult.reason: The reason complementing the status value of result.convoprintTrain.basicResult.convoprintProfileStatus.

CONVOPRINT_VERIFY_STARTED_EVENT

Returned when the conversation print verification started as a result of the START_VERIFY_CONVOPRINT action.

The following session variable is updated:

  • result.convoprintVerify.processingId: The conversation print verification processing ID.

CONVOPRINT_VERIFY_STOPPED_EVENT

Returned when the conversation print verification is stopped before it’s completed.

CONVOPRINT_VERIFY_PROGRESS_EVENT

Returned at regular intervals when the conversation print verification is in progress.

CONVOPRINT_VERIFY_INTERMEDIATE_RESULT_EVENT

Returned each time when the conversation print verification reached the next checkpoint.

  • result.convoprintVerify.currentCheckpoint: The current checkpoint number.
  • result.convoprintVerify.maxCheckpoint: The checkpoint number that results in CONVOPRINT_VERIFY_COMPLETED_EVENT rather than CONVOPRINT_VERIFY_INTERMEDIATE_RESULT_EVENT.

CONVOPRINT_VERIFY_COMPLETED_EVENT

Returned when the conversation print verification is completed.

The following session variables are updated:

  • result.convoprintVerify.statusCode: The result status code. The OK value represents success. Any other non-empty value represents some form of error.
  • result.convoprintVerify.mediaSegmentId: The media segment ID used as the source for verification.
  • result.convoprintVerify.processedAudioId: The processed audio ID that resulted from the verification.
  • result.convoprintVerify.textId: The transcribed text ID.
  • result.convoprintVerify.decision: The verification decision. The supported values are:
    • DECISION_UNSPECIFIED: Decision not set.
    • DECISION_AUTHENTIC: Most likely to be the authentic person.
    • DECISION_NO_MATCH: Most likely not to be the authentic person but rather someone else.
    • DECISION_FRAUD: Most likely to be a fraud attempt.
    • DECISION_UNCERTAIN: System can’t make a reliable decision.
    • DECISION_FAILED: There was a failure while making the decision.
    • DECISION_NO_RISK_DETECTED: No risk is detected.
  • result.convoprintVerify.decisionReason: Additional information about the value of result.convoprintVerify.decision. The supported values are:
    • DECISION_REASON_UNSPECIFIED: Decision reason isn’t specified.
    • DECISION_REASON_TEXT_OK: Text is valid.
    • DECISION_REASON_INVALID_TEXT: Text format is invalid or not supported.
    • DECISION_REASON_FRAUDSTER_INDICATION: A fraud attempt probably occurred.
    • DECISION_REASON_CONVOPRINT_MATCH: This is probably the authentic person.
    • DECISION_REASON_CONVOPRINT_NO_MATCH: This is probably not the authentic person.
    • DECISION_REASON_LOW_RELIABILITY: The system couldn’t reach a reliable decision.
    • DECISION_REASON_NO_RISK_DETECTED: Risk isn’t detected.
    • DECISION_REASON_NO_SCORES: No available scores.
    • DECISION_REASON_INTERNAL_ERROR: An error occurred while making the decision.

AUDIO_PROCESSING_DEVICEPRINT_STARTED_EVENT

Returned when audio processing of a deviceprint (for the purpose of enroll) has started, as a result of the START_PROCESS_AUDIO_DEVICEPRINT action.

The following session variable is updated:

  • result.audioProcessingDeviceprint.processingId: The audio processing ID.

AUDIO_PROCESSING_DEVICEPRINT_STOPPED_EVENT

Returned when audio processing or a deviceprint (for enrollment) is stopped before completion.

AUDIO_PROCESSING_DEVICEPRINT_PROGRESS_EVENT

Returned at regular intervals while the audio is processed for deviceprint enrollment.

The following session variables are updated:

  • result.audioProcessingDeviceprint.minNetAudioMs: The minimum net audio required for enrollment, in milliseconds.
  • result.audioProcessingDeviceprint.minNetAudioTrainMs: The minimum net audio required for training, in milliseconds.
  • result.audioProcessingDeviceprint.maxNetAudioMs: The maximum allowed net audio for enrollment, in milliseconds.
  • result.audioProcessingDeviceprint.minNonSpeechAudioMs: The minimum non-speech audio required for enrollment, in milliseconds.
  • result.audioProcessingDeviceprint.minNonSpeechAudioTrainMs: The minimum non-speech audio required for training, in milliseconds.
  • result.audioProcessingDeviceprint.grossAudioMs: The current gross audio, in milliseconds.
  • result.audioProcessingDeviceprint.netAudioMs: The current net audio, in milliseconds.
  • result.audioProcessingDeviceprint.nonSpeechAudioMs: The current non-speech audio, in milliseconds.
  • result.audioProcessingDeviceprint.mediaSegmentId: The media segment ID used as the source for audio processing.
  • result.audioProcessingDeviceprint.validity: The current audio validity. Supported values are:
    • REASON_UNSPECIFIED: Reason wasn’t specified.
    • REASON_AUDIO_OK: Audio is satisfactory for processing.
    • REASON_NOT_ENOUGH_SEGMENTS: The number of audio segments provided isn’t enough for processing.
    • REASON_INVALID_AUDIO: Audio format is invalid or not supported.
    • REASON_AUDIO_TOO_SHORT: Audio doesn’t contain the amount of speech required to complete the process.
    • REASON_AUDIO_TOO_SOFT: Audio speech level is lower than the level required to complete the process.
    • REASON_AUDIO_TOO_LOUD: Audio is too loud and causes saturation.
    • REASON_AUDIO_TOO_NOISY: Audio SNR is too low.
    • REASON_MULTIPLE_SPEAKERS_DETECTED: Multiple speakers detected in the audio instead of one speaker.
    • REASON_INTERNAL_ERROR: An internal error prevented the system from checking if the audio is valid or not.
    • UNRECOGNIZED: Not recognized.

AUDIO_PROCESSING_DEVICEPRINT_INTERMEDIATE_RESULT_EVENT

Returned during audio processing for deviceprint enrollment, when the current net audio reaches the minimum required or the maximum allowed.

The following session variables are updated:

  • result.audioProcessingDeviceprint.processedAudioId: The resulting processed audio ID.
  • result.audioProcessingDeviceprint.grossAudioMs: The current gross audio, in milliseconds.
  • result.audioProcessingDeviceprint.netAudioMs: The current net audio, in milliseconds.
  • result.audioProcessingDeviceprint.nonSpeechAudioMs: The current non-speech audio, in milliseconds.
  • result.audioProcessingDeviceprint.mediaSegmentId: The media segment ID used as the source for audio processing.
  • result.audioProcessingDeviceprint.validity: The current audio validity. The supported values are:
    • REASON_UNSPECIFIED: Reason wasn’t specified.
    • REASON_AUDIO_OK: Audio is satisfactory for processing.
    • REASON_NOT_ENOUGH_SEGMENTS: The number of audio segments provided isn’t enough for processing.
    • REASON_INVALID_AUDIO: Audio format is invalid or not supported.
    • REASON_AUDIO_TOO_SHORT: Audio doesn’t contain the amount of speech required to complete the process.
    • REASON_AUDIO_TOO_SOFT: Audio speech level is lower than the level required to complete the process.
    • REASON_AUDIO_TOO_LOUD: Audio is too loud and causes saturation.
    • REASON_AUDIO_TOO_NOISY: Audio SNR is too low.
    • REASON_MULTIPLE_SPEAKERS_DETECTED: Multiple speakers detected in the audio instead of one speaker.
    • REASON_INTERNAL_ERROR: An internal error prevented the system from checking if the audio is valid or not.
    • UNRECOGNIZED: Not recognized.

AUDIO_PROCESSING_DEVICEPRINT_COMPLETED_EVENT

Returned when audio processing for deviceprint enrollment has completed.

The following session variables are updated:

  • result.audioProcessingDeviceprint.statusCode: The result status code. The value OK represents success. Any other non-empty value represents some form of error.
  • result.audioProcessingDeviceprint.processedAudioId: The resulting processed audio ID.
  • result.audioProcessingDeviceprint.grossAudioMs: The current gross audio, in milliseconds.
  • result.audioProcessingDeviceprint.netAudioMs: The current net audio, in milliseconds.
  • result.audioProcessingDeviceprint.nonSpeechAudioMs: The current non-speech audio, in milliseconds.
  • result.audioProcessingDeviceprint.mediaSegmentId: The media segment ID used as the source for audio processing.
  • result.audioProcessingDeviceprint.validity: The current audio validity. The supported values are:
    • REASON_UNSPECIFIED: Reason wasn’t specified.
    • REASON_AUDIO_OK: Audio is satisfactory for processing.
    • REASON_NOT_ENOUGH_SEGMENTS: The number of audio segments provided isn’t enough for processing.
    • REASON_INVALID_AUDIO: Audio format is invalid or not supported.
    • REASON_AUDIO_TOO_SHORT: Audio doesn’t contain the amount of speech required to complete the process.
    • REASON_AUDIO_TOO_SOFT: Audio speech level is lower than the level required to complete the process.
    • REASON_AUDIO_TOO_LOUD: Audio is too loud and causes saturation.
    • REASON_AUDIO_TOO_NOISY: Audio SNR is too low.
    • REASON_MULTIPLE_SPEAKERS_DETECTED: Multiple speakers detected in the audio instead of one speaker.
    • REASON_INTERNAL_ERROR: An internal error prevented the system from checking if the audio is valid or not.
    • UNRECOGNIZED: Not recognized.

DEVICEPRINT_ENROLL_COMPLETED_EVENT

Returned as a result of the ENROLL_DEVICEPRINT action.

The following session variables are updated:

  • result.deviceprintEnroll.statusCode: The result status code. The OK value represents success. Any other non-empty value represents some form of error.
  • result.deviceprintEnroll.basicResult.status: Specifies if the enrollment segments collection of a print allows the system to train the print successfully. The supported values are:
    • ENROLL_STATUS_UNSPECIFIED: Enroll status isn’t set.
    • ENROLL_STATUS_TRAIN_NOT_POSSIBLE: Minimal requirements for training aren’t met.
    • ENROLL_STATUS_TRAIN_POSSIBLE: Minimum requirements for training are met, but we recommend adding more audio.
    • ENROLL_STATUS_TRAIN_SUGGESTED: Optimal training requirements are met.
    • ENROLL_STATUS_FULL: Too many segments are added and it isn’t possible to add more.
  • result.deviceprintEnroll.basicResult.enrolled: Set to true if the current audio segment has been successfully enrolled.
  • result.deviceprintEnroll.basicResult.reason: The reason complementing status value provided with result.deviceprintEnroll.basicResult.status.

DEVICEPRINT_TRAIN_STARTED_EVENT

Returned when the deviceprint model training started as a result of the START_TRAIN_DEVICEPRINT action.

DEVICEPRINT_TRAIN_STOPPED_EVENT

Returned when the deviceprint model training is stopped before it’s completed. There is no operation action that the webhook can use to stop the deviceprint model training. This event happens if some outside source stops the operation.

DEVICEPRINT_TRAIN_COMPLETED_EVENT

Returned when the deviceprint model training is completed.

The following session variables are updated:

  • result.deviceprintTrain.statusCode: The result status code. The OK value represents success. Any other non-empty value represents some form of error.
  • result.deviceprintTrain.basicResult.status: The train operation’s resulting status. The supported values are:
    • TRAIN_STATUS_UNSPECIFIED
    • TRAIN_STATUS_TRAINED
    • TRAIN_STATUS_FAILED
  • result.deviceprintTrain.basicResult.deviceprintProfileStatus: The deviceprint profile status. The supported values are:
    • DEVICEPRINT_PROFILE_STATUS_UNSPECIFIED: Deviceprint profile status wasn’t set.
    • DEVICEPRINT_PROFILE_STATUS_NOT_TRAINED: Print isn’t trained.
    • DEVICEPRINT_PROFILE_STATUS_BASIC_TRAINED: Print is trained but can be improved using additional enrollment audio.
    • DEVICEPRINT_PROFILE_STATUS_OPTIMAL_TRAINED: Print is trained with an optimal amount of audio.
  • result.deviceprintTrain.basicResult.reason: The reason complementing the status value of result.deviceprintTrain.basicResult.deviceprintProfileStatus.

DEVICEPRINT_VERIFY_STARTED_EVENT

Returned when the deviceprint verification started as a result of the START_VERIFY_DEVICEPRINT action.

The following session variable is updated:

  • result.deviceprintVerify.processingId: The deviceprint verification processing ID.

DEVICEPRINT_VERIFY_STOPPED_EVENT

Returned when the deviceprint verification is stopped before it’s completed.

DEVICEPRINT_VERIFY_PROGRESS_EVENT

Returned at regular intervals when the conversation print verification is in progress.

DEVICEPRINT_VERIFY_INTERMEDIATE_RESULT_EVENT

Returned each time when the conversation print verification reached the next checkpoint.

  • result.deviceprintVerify.currentCheckpoint: The current checkpoint number.
  • result.deviceprintVerify.maxCheckpoint: The checkpoint number that results in DEVICEPRINT_VERIFY_COMPLETED_EVENT rather than DEVICEPRINT_VERIFY_INTERMEDIATE_RESULT_EVENT.

DEVICEPRINT_VERIFY_COMPLETED_EVENT

Returned when the conversation print verification is completed.

The following session variables are updated:

  • result.deviceprintVerify.statusCode: The result status code. The OK value represents success. Any other non-empty value represents some form of error.
  • result.deviceprintVerify.mediaSegmentId: The media segment ID used as the source for verification.
  • result.deviceprintVerify.processedAudioId: The processed audio ID that resulted from the verification.
  • result.deviceprintVerify.decision: The verification decision. The supported values are:
    • DECISION_UNSPECIFIED: Decision wasn’t set.
    • DECISION_AUTHENTIC: Most likely to be the authentic person.
    • DECISION_NO_MATCH: Most likely not to be the authentic person but rather someone else.
    • DECISION_FRAUD: Most likely to be a fraud attempt.
    • DECISION_UNCERTAIN: System can’t make a reliable decision.
    • DECISION_FAILED: There was a failure while making the decision.
    • DECISION_NO_RISK_DETECTED: No risk is detected.
  • result.deviceprintVerify.decisionReason: Additional information about the value of result.convoprintVerify.decision. The supported values are:
    • DECISION_REASON_UNSPECIFIED: Decision reason wasn’t specified.
    • DECISION_REASON_AUDIO_OK: Audio is valid.
    • DECISION_REASON_NOT_ENOUGH_SEGMENTS: Processing requires more audio segments than provided.
    • DECISION_REASON_INVALID_AUDIO: Audio format is invalid or not supported.
    • DECISION_REASON_AUDIO_TOO_SHORT: Audio doesn’t contain the amount of speech required to complete the process.
    • DECISION_REASON_AUDIO_TOO_SOFT: Audio speech level is lower than the level required to complete the process.
    • DECISION_REASON_AUDIO_TOO_LOUD: Audio is too loud and causes saturation.
    • DECISION_REASON_AUDIO_TOO_NOISY: Audio SNR is too low.
    • DECISION_REASON_DEVICEPRINT_MATCH: This is probably the authentic person.
    • DECISION_REASON_DEVICEPRINT_NO_MATCH: This is probably not the authentic person.
    • DECISION_REASON_LOW_RELIABILITY: The system couldn’t reach a reliable decision.
    • DECISION_REASON_NO_RISK_DETECTED: Risk isn’t detected.
    • DECISION_REASON_NO_SCORES: No available scores.
    • DECISION_REASON_INTERNAL_ERROR: An error occurred while making the decision.

DETECT_KNOWN_FRAUDSTERS_DEVICEPRINT_STARTED_EVENT

Returned when the detect known fraudsters operation started as a result to the action START_DETECT_FRAUD_DEVICEPRINT.

The following session variable is updated:

  • result.detectKnownFraudstersDeviceprint.processingId: The detect known fraudsters processing ID.

DETECT_KNOWN_FRAUDSTERS_DEVICEPRINT_INTERMEDIATE_EVENT

Returned at regular intervals when detect known fraudsters reached some checkpoint.

DETECT_KNOWN_FRAUDSTERS_DEVICEPRINT_PROGRESS_EVENT

Returned at regular intervals when detect known fraudsters is in progress.

DETECT_KNOWN_FRAUDSTERS_DEVICEPRINT_STOPPED_EVENT

Returned when detect known fraudsters has stopped before completion.

DETECT_KNOWN_FRAUDSTERS_DEVICEPRINT_COMPLETED_EVENT

Returned when detect known fraudsters has completed.

The following session variables are updated:

  • result.detectKnownFraudstersDeviceprint.statusCode: The result status code. The OK value represents success. Any other non-empty value represents some form of error.
  • result.detectKnownFraudstersDeviceprint.result: The detect known fraudsters decision. The supported values are:
    • DECISION_UNSPECIFIED: Decision wasn’t set.
    • DECISION_AUTHENTIC: Most likely to be the authentic person.
    • DECISION_NO_MATCH: Most likely not to be the authentic person but rather someone else.
    • DECISION_FRAUD: Most likely to be a fraud attempt.
    • DECISION_UNCERTAIN: System can’t make a reliable decision.
    • DECISION_FAILED: There is a failure while making the decision.
    • DECISION_NO_RISK_DETECTED: No risk is detected.
  • result.detectKnownFraudstersDeviceprint.fraudDetectionScore: The fraud detection score.
  • result.detectKnownFraudstersDeviceprint.riskEngineScore: The risk engine’s score.
  • result.detectKnownFraudstersDeviceprint.riskEngineReliability: The risk engine’s reliability score.
  • result.detectKnownFraudstersDeviceprint.results.profileIds: The profile ID of each fraudsters’ detection score.
  • result.detectKnownFraudstersDeviceprint.results.scores: Each fraudsters’ detection score.

About result.detectKnownFraudstersDeviceprint.results.

The session variables with that prefix are JSON arrays of equal length that contain the individual fraudster scores of the person in the fraudster watchlist. The score at index N of .scores is for the profile ID at index N of .profileIds, and such.

Due to their large value size, the keys with the result.detectKnownFraudstersDeviceprint.results. prefix is removed from the session variables shortly after the DETECT_KNOWN_FRAUDSTERS_DEVICEPRINT_COMPLETED_EVENT event is sent.

ASSESS_CALLER_ID_EVENT

The risk assessment of the caller ID as a result to the action ASSESS_CALLER_ID_RISK.

The following session variables are updated:

  • result.assessCallerId.statusCode: The result status code. The OK value represents success. Any other non-empty value represents some form of error.
  • result.assessCallerId.riskLevel: The Risk level of the caller ID rule. The supported values are:
    • CALLER_ID_RISK_LEVEL_UNSPECIFIED: Risk level isn’t set.
    • CALLER_ID_RISK_LEVEL_NO_RISK: No Risk.
    • CALLER_ID_RISK_LEVEL_LOW: Risk level is low.
    • CALLER_ID_RISK_LEVEL_MEDIUM: Risk level is medium.
    • CALLER_ID_RISK_LEVEL_HIGH: Risk level is high.
  • result.assessCallerId.riskEngine.risk: The level of risk, computed by the risk engine.
  • result.assessCallerId.riskEngine.reliability: The reliability of the risk engine value.
  • result.assessCallerId.decision: The caller ID risk evaluation decision. The supported values are:
    • DECISION_UNSPECIFIED: Decision wasn’t set.
    • DECISION_AUTHENTIC: Most likely to be the authentic person.
    • DECISION_NO_MATCH: Most likely not to be the authentic person but rather someone else.
    • DECISION_FRAUD: Most likely to be a fraud attempt.
    • DECISION_UNCERTAIN: System can’t make a reliable decision.
    • DECISION_FAILED: There was a failure while making the decision.
    • DECISION_NO_RISK_DETECTED: No risk is detected.
  • result.assessCallerId.decisionReason: The reason for the decision. The supported values are:
    • DECISION_REASON_UNSPECIFIED: Decision reason wasn’t specified.
    • DECISION_REASON_LOW_RELIABILITY: The system couldn’t reach a reliable decision.
    • DECISION_REASON_NO_RISK_DETECTED: Risk wasn’t detected.
    • DECISION_REASON_FRAUD_RISK: Fraud risk is detected.
    • DECISION_REASON_INTERNAL_ERROR: An error occurred while making the decision.

AFTER_CALL_WORK_MODE_START_EVENT

The call session entered the after-call work mode.

The following session variables are updated:

  • result.afterCallTimeLeftMs: The maximum amount of time, in milliseconds, that remains for after-call work mode.

AFTER_CALL_WORK_MODE_END_EVENT

The call session ended its after-call work mode.