CreateCallAnalyticsCategory
Creates a new Call Analytics category.
All categories are automatically applied to your Call Analytics jobs. Note that in order to apply your categories to your jobs, you must create them before submitting your job request, as categories cannot be applied retroactively.
Call Analytics categories are composed of rules. For each category, you must create between 1 and 20 rules. Rules can include these parameters: InterruptionFilter, NonTalkTimeFilter, SentimentFilter, and TranscriptFilter.
To update an existing category, see UpdateCallAnalyticsCategory.
To learn more about:
-
Call Analytics categories, see Creating categories
-
Using rules, see Rule criteria and refer to the Rule data type
-
Call Analytics, see Analyzing call center audio with Call Analytics
Request Syntax
{
"CategoryName": "string
",
"Rules": [
{
"InterruptionFilter": {
"AbsoluteTimeRange": {
"EndTime": number
,
"First": number
,
"Last": number
,
"StartTime": number
},
"Negate": boolean
,
"ParticipantRole": "string
",
"RelativeTimeRange": {
"EndPercentage": number
,
"First": number
,
"Last": number
,
"StartPercentage": number
},
"Threshold": number
},
"NonTalkTimeFilter": {
"AbsoluteTimeRange": {
"EndTime": number
,
"First": number
,
"Last": number
,
"StartTime": number
},
"Negate": boolean
,
"RelativeTimeRange": {
"EndPercentage": number
,
"First": number
,
"Last": number
,
"StartPercentage": number
},
"Threshold": number
},
"SentimentFilter": {
"AbsoluteTimeRange": {
"EndTime": number
,
"First": number
,
"Last": number
,
"StartTime": number
},
"Negate": boolean
,
"ParticipantRole": "string
",
"RelativeTimeRange": {
"EndPercentage": number
,
"First": number
,
"Last": number
,
"StartPercentage": number
},
"Sentiments": [ "string
" ]
},
"TranscriptFilter": {
"AbsoluteTimeRange": {
"EndTime": number
,
"First": number
,
"Last": number
,
"StartTime": number
},
"Negate": boolean
,
"ParticipantRole": "string
",
"RelativeTimeRange": {
"EndPercentage": number
,
"First": number
,
"Last": number
,
"StartPercentage": number
},
"Targets": [ "string
" ],
"TranscriptFilterType": "string
"
}
}
]
}
Request Parameters
For information about the parameters that are common to all actions, see Common Parameters.
The request accepts the following data in JSON format.
- CategoryName
-
A unique name, chosen by you, for your Call Analytics category. It's helpful to use a detailed naming system that will make sense to you in the future. For example, it's better to use
sentiment-positive-last30seconds
for a category over a generic name liketest-category
.Category names are case sensitive.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 200.
Pattern:
^[0-9a-zA-Z._-]+
Required: Yes
- Rules
-
Rules define a Call Analytics category. When creating a new Call Analytics category, you must create between 1 and 20 rules for that category. For each rule, you specify a filter you want applied to the attributes of a call. For example, you can choose a sentiment filter that detects if a customer's sentiment was positive during the last 30 seconds of the call.
Type: Array of Rule objects
Array Members: Minimum number of 1 item. Maximum number of 20 items.
Required: Yes
Response Syntax
{
"CategoryProperties": {
"CategoryName": "string",
"CreateTime": number,
"LastUpdateTime": number,
"Rules": [
{
"InterruptionFilter": {
"AbsoluteTimeRange": {
"EndTime": number,
"First": number,
"Last": number,
"StartTime": number
},
"Negate": boolean,
"ParticipantRole": "string",
"RelativeTimeRange": {
"EndPercentage": number,
"First": number,
"Last": number,
"StartPercentage": number
},
"Threshold": number
},
"NonTalkTimeFilter": {
"AbsoluteTimeRange": {
"EndTime": number,
"First": number,
"Last": number,
"StartTime": number
},
"Negate": boolean,
"RelativeTimeRange": {
"EndPercentage": number,
"First": number,
"Last": number,
"StartPercentage": number
},
"Threshold": number
},
"SentimentFilter": {
"AbsoluteTimeRange": {
"EndTime": number,
"First": number,
"Last": number,
"StartTime": number
},
"Negate": boolean,
"ParticipantRole": "string",
"RelativeTimeRange": {
"EndPercentage": number,
"First": number,
"Last": number,
"StartPercentage": number
},
"Sentiments": [ "string" ]
},
"TranscriptFilter": {
"AbsoluteTimeRange": {
"EndTime": number,
"First": number,
"Last": number,
"StartTime": number
},
"Negate": boolean,
"ParticipantRole": "string",
"RelativeTimeRange": {
"EndPercentage": number,
"First": number,
"Last": number,
"StartPercentage": number
},
"Targets": [ "string" ],
"TranscriptFilterType": "string"
}
}
]
}
}
Response Elements
If the action is successful, the service sends back an HTTP 200 response.
The following data is returned in JSON format by the service.
- CategoryProperties
-
Provides you with the properties of your new category, including its associated rules.
Type: CategoryProperties object
Errors
For information about the errors that are common to all actions, see Common Errors.
- BadRequestException
-
Your request didn't pass one or more validation tests. This can occur when the entity you're trying to delete doesn't exist or if it's in a non-terminal state (such as
IN PROGRESS
). See the exception message field for more information.HTTP Status Code: 400
- ConflictException
-
A resource already exists with this name. Resource names must be unique within an AWS account.
HTTP Status Code: 400
- InternalFailureException
-
There was an internal error. Check the error message, correct the issue, and try your request again.
HTTP Status Code: 500
- LimitExceededException
-
You've either sent too many requests or your input file is too long. Wait before retrying your request, or use a smaller file and try your request again.
HTTP Status Code: 400
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: