NAV Navigation
Shell Node.js HTTP

Alvaria Cloud Quality REST API v2.0/3.0

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

Overview

Alvaria™ Cloud Quality REST APIs are grouped into two categories:

Recordings

Recordings APIs enable developers to retrieve recording metadata and signed URLs pointing to media files. The signed URLs give clients time-limited access (default is one hour) to recording media files, which are in native storage format with no transcoding performed prior to download. Alvaria™ Cloud Quality APIs support recordings for the following media channel types:

Recording Control

Recording Control APIs enable developers to pause/resume a recording and retrieve the recording status of an interaction based on the interaction Id

Notes:

V2 endpoints are being deprecated by Alvaria, please move your applications to V3 replacement endpoints before end of support.

Following are the key differences between V2 and V3 endpoints:

Base URLs:

License: License: Creative Commons Attribution 4.0 International Public License

Authentication

Scope Scope Description
qualityapi.recordings manages the recording resource
qualityapi.recordingcommands manages the recording control resource
qualityapi.evaluations manages the evaluation resource

Recordings

Retrieve Recordings

Code samples

# You can also use wget
curl -X GET https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings?beginTime=2019-08-24T14%3A15%3A22Z \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'x-api-key: string'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'string',
  'x-api-key':'string'
};

fetch('https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings?beginTime=2019-08-24T14%3A15%3A22Z',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings?beginTime=2019-08-24T14%3A15%3A22Z HTTP/1.1
Host: orgid.via.aspect-cloud.net
Accept: application/json
Authorization: string
x-api-key: string

GET /via/v3/organizations/{orgId}/quality/recordings

Retrieves a list of recordings.

Parameters

Name In Type Required Description
orgId path string true Alvaria-generated unique identifier for the organization.
beginTime query string(date-time) true Beginning date and time of the search range, specified in ISO 8601 format and in UTC time zone
endTime query string(date-time) false End date and time of the search range, specified in ISO 8601 format and in UTC time zone
maxResults query integer(int32) false Maximum results. This is used to specify the maximum number of records to return in the result set. You can use this to set a result set limit that is less than the system/API-specific limit.
canSpeechMonitor query boolean false Records to return based on speech monitoring setting of associated Agent. When this parameter is not specified or parameter with value true is specified, returns records of only speech enabled agents. When value false is specified returns all agent records.
searchByEndDateTime query boolean false Records to return based on end datetime of the interaction it the value set as true. When this parameter is not specified or parameter with value false is specified, will return the data based on begin time.
channelType query string false Records to return based on their channel type.
workType query string false Records to return based on their work type, using name or unique identifier.
teamId query string false Records to return based on the team the user associated with the interaction belongs to, using team name or the team's unique identifier. The team's unique identifier can be acquired through the provisioning API.
Authorization header string true Authentication token with the value: 'Bearer {accessToken}', where {accessToken} was returned from a call to the authorization endpoint.
x-api-key header string true Alvaria-provided value used to track API endpoint usage

Enumerated Values

Parameter Value
channelType VoiceAndScreen
channelType ScreenOnly
channelType VoiceOnly
channelType AllVoice
channelType Email
channelType Chat
channelType SMS
channelType Task
channelType VoiceMail
channelType Unknown

Example responses

200 Response

{
  "kind": "via#recordingMetadataList",
  "recordingMetadataItems": [
    {
      "status": "Current",
      "channelType": "VoiceOnly",
      "ani": null,
      "voiceFileStatus": "Available",
      "customInformation": [
        {
          "displayName": "Disposition Code",
          "value": "DispositionCode"
        }
      ],
      "orgId": "customerName",
      "dnis": null,
      "endTime": "2020-05-01T23:28:35Z",
      "station": null,
      "holdCount": 0,
      "callLegId": 42,
      "recordingId": "f5581241-1d33-41c0-b0f9-f96911c1d03f",
      "initialWorkType": null,
      "maximumHoldDuration": 0,
      "parentRecordingId": "f5581241-1d33-41c0-b0f9-f96911c1d03f",
      "recordingReasons": {
        "user": false,
        "api": false,
        "logging": false,
        "parent": false,
        "rule": false
      },
      "relatedRecordingIds": null,
      "screenCaptureFileStatus": 0,
      "startTime": "2020-05-01T23:28:35Z",
      "switch": {
        "switchType": "AspectUnifiedIp",
        "switchName": "pats"
      },
      "takenWorkType": {
        "interactionType": "Email",
        "workTypeName": "EmailTeam"
      },
      "user": {
        "firstName": "firstName",
        "lastName": "lastName",
        "email": "name@example.com",
        "teamName": "teamName"
      },
      "totalHoldDuration": 0,
      "interactionType": "Email",
      "umId": "01-0010010000-200501-232819878-00001",
      "email": {
        "state": 1,
        "sentTime": "2020-05-01T23:28:35Z",
        "subject": "Test Message",
        "sender": "name@example.com"
      },
      "chat": null,
      "sms": null
    }
  ],
  "totalItems": 1
}

Responses

Status Meaning Description Schema
200 OK OK RecordingMetadataCollection
206 Partial Content Partial Content RecordingMetadataCollection
400 Bad Request Bad Request ErrorResponse
401 Unauthorized Unauthorized None
404 Not Found Not Found ErrorResponse
405 Method Not Allowed Method Not Allowed ErrorResponse
408 Request Timeout Request Timeout ErrorResponse
410 Gone Gone ErrorResponse
422 Unprocessable Entity Unprocessable Entity ErrorResponse
429 Too Many Requests Too Many Requests ErrorResponse
500 Internal Server Error Internal Server Error ErrorResponse
503 Service Unavailable Service Unavailable ErrorResponse

Retrieve Recordings By Id

Code samples

# You can also use wget
curl -X POST https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

const fetch = require('node-fetch');
const inputBody = {
  "recordingIds": [
    "497f6eca-6276-4993-bfeb-53cbbbba6f08"
  ]
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings HTTP/1.1
Host: orgid.via.aspect-cloud.net
Content-Type: application/json
Accept: application/json

POST /via/v3/organizations/{orgId}/quality/recordings

Retrieves a list of recordings for the provided recording IDs.

Body parameter

{
  "recordingIds": [
    "497f6eca-6276-4993-bfeb-53cbbbba6f08"
  ]
}

Parameters

Name In Type Required Description
orgId path string true Alvaria-generated unique identifier for the organization.
body body RecordingIds true List of Alvaria-generated unique identifiers for the desired recording instances.

Example responses

200 Response

{
  "kind": "via#recordingMetadataList",
  "recordingMetadataItems": [
    {
      "status": "Current",
      "channelType": "VoiceOnly",
      "ani": null,
      "voiceFileStatus": "Available",
      "customInformation": [
        {
          "displayName": "Disposition Code",
          "value": "DispositionCode"
        }
      ],
      "orgId": "customerName",
      "dnis": null,
      "endTime": "2020-05-01T23:28:35Z",
      "station": null,
      "holdCount": 0,
      "callLegId": 42,
      "recordingId": "f5581241-1d33-41c0-b0f9-f96911c1d03f",
      "initialWorkType": null,
      "maximumHoldDuration": 0,
      "parentRecordingId": "f5581241-1d33-41c0-b0f9-f96911c1d03f",
      "recordingReasons": {
        "user": false,
        "api": false,
        "logging": false,
        "parent": false,
        "rule": false
      },
      "relatedRecordingIds": null,
      "screenCaptureFileStatus": 0,
      "startTime": "2020-05-01T23:28:35Z",
      "switch": {
        "switchType": "AspectUnifiedIp",
        "switchName": "pats"
      },
      "takenWorkType": {
        "interactionType": "Email",
        "workTypeName": "EmailTeam"
      },
      "user": {
        "firstName": "firstName",
        "lastName": "lastName",
        "email": "name@example.com",
        "teamName": "teamName"
      },
      "totalHoldDuration": 0,
      "interactionType": "Email",
      "umId": "01-0010010000-200501-232819878-00001",
      "email": {
        "state": 1,
        "sentTime": "2020-05-01T23:28:35Z",
        "subject": "Test Message",
        "sender": "name@example.com"
      },
      "chat": null,
      "sms": null
    }
  ],
  "totalItems": 1
}

Responses

Status Meaning Description Schema
200 OK OK RecordingMetadataCollection
206 Partial Content Partial Content RecordingMetadataCollection
400 Bad Request Bad Request ErrorResponse
401 Unauthorized Unauthorized None
404 Not Found Not Found ErrorResponse
405 Method Not Allowed Method Not Allowed ErrorResponse
408 Request Timeout Request Timeout ErrorResponse
410 Gone Gone ErrorResponse
422 Unprocessable Entity Unprocessable Entity ErrorResponse
429 Too Many Requests Too Many Requests ErrorResponse
500 Internal Server Error Internal Server Error ErrorResponse
503 Service Unavailable Service Unavailable ErrorResponse

Retrieve Media Handles

Code samples

# You can also use wget
curl -X GET https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings/{recordingId}/media \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'x-api-key: string'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'string',
  'x-api-key':'string'
};

fetch('https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings/{recordingId}/media',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings/{recordingId}/media HTTP/1.1
Host: orgid.via.aspect-cloud.net
Accept: application/json
Authorization: string
x-api-key: string

GET /via/v3/organizations/{orgId}/quality/recordings/{recordingId}/media

Retrieves media for a recording.

Parameters

Name In Type Required Description
orgId path string true Alvaria-generated unique identifier for the organization.
recordingId path string(uuid) true Alvaria-generated unique identifier for a recording instance. The ID is determined by using the GET /recordings endpoint
Authorization header string true Authentication token with the value: 'Bearer {accessToken}', where {accessToken} was returned from a call to the authorization endpoint.
x-api-key header string true Alvaria-provided value used to track API endpoint usage

Example responses

200 Response

{
  "kind": "via#recordingMediaList",
  "mediaItems": [
    {
      "channelType": "voice",
      "handle": "https://example.aspect-cloud.net/s3/example.s3.amazonaws.com/path/0000-19851005-101458/aqm00_0000_0000_0000.wav?X-Amz-Expires=1800&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=0000000000000000/20171005/us-east-1/s3/aws4_request&X-Amz-Date=19851005T151458Z&X-Amz-SignedHeaders=host;x-amz-server-side-encryption;x-amz-server-side-encryption-aws-kms-key-id&X-Amz-Signature=0000000000000000000000000000000000000000000000000000000000000000"
    }
  ],
  "totalItems": 1
}

Responses

Status Meaning Description Schema
200 OK OK RecordingMediaCollection
400 Bad Request Bad Request ErrorResponse
401 Unauthorized Unauthorized None
404 Not Found Not Found ErrorResponse
405 Method Not Allowed Method Not Allowed ErrorResponse
408 Request Timeout Request Timeout ErrorResponse
410 Gone Gone ErrorResponse
422 Unprocessable Entity Unprocessable Entity ErrorResponse
429 Too Many Requests Too Many Requests ErrorResponse
500 Internal Server Error Internal Server Error ErrorResponse
503 Service Unavailable Service Unavailable ErrorResponse

Retrieve Recording ID

Code samples

# You can also use wget
curl -X GET https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings/recordingId?interactionLegId=string \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings/recordingId?interactionLegId=string',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings/recordingId?interactionLegId=string HTTP/1.1
Host: orgid.via.aspect-cloud.net
Accept: application/json

GET /via/v3/organizations/{orgId}/quality/recordings/recordingId

Retrieve the unique identifier for a particular recording.

Parameters

Name In Type Required Description
orgId path string true Alvaria-generated unique identifier for the organization.
interactionLegId query string true The unique identifier of the interaction from the telephony system.
Example: 8570.1220

Example responses

200 Response

"497f6eca-6276-4993-bfeb-53cbbbba6f08"

Responses

Status Meaning Description Schema
200 OK OK string
400 Bad Request Bad Request ErrorResponse
401 Unauthorized Unauthorized None
404 Not Found Not Found ErrorResponse
405 Method Not Allowed Method Not Allowed ErrorResponse
408 Request Timeout Request Timeout ErrorResponse
410 Gone Gone ErrorResponse
422 Unprocessable Entity Unprocessable Entity ErrorResponse
429 Too Many Requests Too Many Requests ErrorResponse
500 Internal Server Error Internal Server Error ErrorResponse
503 Service Unavailable Service Unavailable ErrorResponse

Update Custom Information

Code samples

# You can also use wget
curl -X PUT https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings/{recordingId}/customInformation?customInfoKey=string&customInfoValue=string \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings/{recordingId}/customInformation?customInfoKey=string&customInfoValue=string',
{
  method: 'PUT',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings/{recordingId}/customInformation?customInfoKey=string&customInfoValue=string HTTP/1.1
Host: orgid.via.aspect-cloud.net
Accept: application/json

PUT /via/v3/organizations/{orgId}/quality/recordings/{recordingId}/customInformation

Updates a custom information value for a given media item.

Parameters

Name In Type Required Description
orgId path string true Alvaria-generated unique identifier for the organization.
recordingId path string(uuid) true Alvaria generated unique identifier of the recording.
customInfoKey query string true The key name of the custom information to update.
customInfoValue query string true The value being updated for the given custom information key.

Detailed descriptions

recordingId: Alvaria generated unique identifier of the recording. Can be obtained from the recordingId end point.

Example responses

400 Response

{
  "code": 404,
  "message": "not found",
  "errors": [
    {
      "scope": "scope",
      "reason": "reason",
      "message": "message"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK None
400 Bad Request Bad Request ErrorResponse
401 Unauthorized Unauthorized None
404 Not Found Not Found ErrorResponse
405 Method Not Allowed Method Not Allowed ErrorResponse
408 Request Timeout Request Timeout ErrorResponse
410 Gone Gone ErrorResponse
422 Unprocessable Entity Unprocessable Entity ErrorResponse
429 Too Many Requests Too Many Requests ErrorResponse
500 Internal Server Error Internal Server Error ErrorResponse
503 Service Unavailable Service Unavailable ErrorResponse

Add Custom Information

Code samples

# You can also use wget
curl -X POST https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings/{recordingId}/customInformation \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

const fetch = require('node-fetch');
const inputBody = {
  "customInformation": [
    {
      "displayName": "Disposition Code",
      "value": "Complete"
    }
  ]
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings/{recordingId}/customInformation',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings/{recordingId}/customInformation HTTP/1.1
Host: orgid.via.aspect-cloud.net
Content-Type: application/json
Accept: application/json

POST /via/v3/organizations/{orgId}/quality/recordings/{recordingId}/customInformation

Adds one or more custom information key-value pairs for a given media item.

Body parameter

{
  "customInformation": [
    {
      "displayName": "Disposition Code",
      "value": "Complete"
    }
  ]
}

Parameters

Name In Type Required Description
orgId path string true Alvaria-generated unique identifier for the organization.
recordingId path string(uuid) true Alvaria generated unique identifier of the recording.
body body AddCustomInformation true List of custom information key-value pairs.

Detailed descriptions

recordingId: Alvaria generated unique identifier of the recording. Can be obtained from the recordingId end point.

Example responses

400 Response

{
  "code": 404,
  "message": "not found",
  "errors": [
    {
      "scope": "scope",
      "reason": "reason",
      "message": "message"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK None
400 Bad Request Bad Request ErrorResponse
401 Unauthorized Unauthorized None
404 Not Found Not Found ErrorResponse
405 Method Not Allowed Method Not Allowed ErrorResponse
408 Request Timeout Request Timeout ErrorResponse
410 Gone Gone ErrorResponse
422 Unprocessable Entity Unprocessable Entity ErrorResponse
429 Too Many Requests Too Many Requests ErrorResponse
500 Internal Server Error Internal Server Error ErrorResponse
503 Service Unavailable Service Unavailable ErrorResponse

Evaluations

Retrieve Scorecard Templates

Code samples

# You can also use wget
curl -X POST https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/evaluations/scorecardtemplates \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'x-api-key: string'

const fetch = require('node-fetch');
const inputBody = {
  "scorecardTemplateIds": [
    "497f6eca-6276-4993-bfeb-53cbbbba6f08"
  ],
  "includeInactiveScorecardTemplates": true,
  "includeIncompleteScorecardTemplates": true,
  "scorecardTemplateName": "Template 01"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string',
  'x-api-key':'string'
};

fetch('https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/evaluations/scorecardtemplates',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/evaluations/scorecardtemplates HTTP/1.1
Host: orgid.via.aspect-cloud.net
Content-Type: application/json
Accept: application/json
Authorization: string
x-api-key: string

POST /via/v3/organizations/{orgId}/quality/evaluations/scorecardtemplates

Retrieve the metadata for a given set of scorecard templates.

Body parameter

{
  "scorecardTemplateIds": [
    "497f6eca-6276-4993-bfeb-53cbbbba6f08"
  ],
  "includeInactiveScorecardTemplates": true,
  "includeIncompleteScorecardTemplates": true,
  "scorecardTemplateName": "Template 01"
}

Parameters

Name In Type Required Description
orgId path string true Alvaria-generated unique identifier for the organization.
Authorization header string true Authentication token with the value: 'Bearer {accessToken}', where {accessToken} was returned from a call to the authorization endpoint.
x-api-key header string true Alvaria-provided value used to track API endpoint usage
body body GetScorecardTemplatesParmsSchema true none

Example responses

200 Response

{
  "kind": "via#ScorecardTemplateMetadataList",
  "scorecardTemplateMetadata": [
    {
      "defaultResponse": "None",
      "name": "My Favorite Scorecard Template",
      "description": "This is my favorite scorecard template",
      "creationDate": "2023-09-21T15:43:16.989Z",
      "overallScoreDisplay": "PercentageScoreAndPassFail",
      "isUsed": true,
      "id": "c7725e34-a029-4618-aa9f-6c9c568b7fdb",
      "maximumScore": 100,
      "minimumScore": 50,
      "questionScoresDisplay": "PercentageScoreAndPassFail",
      "sectionScoresDisplay": "PercentageScoreAndPassFail",
      "siteId": "4e454f92-b43d-ed11-abbf-1234887b2b15",
      "status": "Active",
      "displayQuestionNumber": true,
      "isComplete": true,
      "isLegacyTemplate": true,
      "isUsedByReports": true,
      "isUsedByCalibration": true,
      "ownerUserId": "00000000-0000-0000-05a3-727a88db4edd",
      "ownerUserName": "Doe, John",
      "weightForNotApplicableAnswerChoice": "None",
      "Sections": [
        {
          "id": "c7725e34-a029-4618-aa9f-6c9c568b7fdb",
          "name": "My Favorite Scorecard Template Section",
          "description": "This is my favorite scorecard template Section",
          "number": 3,
          "weight": 2,
          "enableComments": true,
          "questions": [
            {
              "id": "c7725e34-a029-4618-aa9f-6c9c568b7fdb",
              "number": 3,
              "description": "This is my favorite scorecard template",
              "optionsOrientation": "Horizontal",
              "responseRequired": true,
              "text": "What is your favorite color?",
              "type": "ChooseOne",
              "weight": 1,
              "scoreAdjustmentConditions": "PositiveOptionSelection",
              "scoreAdjustment": "Subtract",
              "isScorable": true,
              "enableComments": true,
              "addToLibrary": true,
              "isDependentQuestion": true,
              "additionalWeight": 0.1,
              "conditionalWeight": 0.1,
              "questions": [
                {
                  "id": "c7725e34-a029-4618-aa9f-6c9c568b7fdb",
                  "number": 3,
                  "text": "Blue",
                  "weight": 1,
                  "dependentQuestions": [
                    {}
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK ScorecardTemplateMetadataCollection
206 Partial Content Partial Content ScorecardTemplateMetadataCollection
400 Bad Request Bad Request ErrorResponse
401 Unauthorized Unauthorized None
404 Not Found Not Found ErrorResponse
405 Method Not Allowed Method Not Allowed ErrorResponse
408 Request Timeout Request Timeout ErrorResponse
410 Gone Gone ErrorResponse
422 Unprocessable Entity Unprocessable Entity ErrorResponse
429 Too Many Requests Too Many Requests ErrorResponse
500 Internal Server Error Internal Server Error ErrorResponse
503 Service Unavailable Service Unavailable ErrorResponse

Retrieve Scorecard Metadata

Code samples

# You can also use wget
curl -X GET https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/evaluations/scorecards?beginTime=2019-08-24T14%3A15%3A22Z \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'x-api-key: string'

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'string',
  'x-api-key':'string'
};

fetch('https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/evaluations/scorecards?beginTime=2019-08-24T14%3A15%3A22Z',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/evaluations/scorecards?beginTime=2019-08-24T14%3A15%3A22Z HTTP/1.1
Host: orgid.via.aspect-cloud.net
Accept: application/json
Authorization: string
x-api-key: string

GET /via/v3/organizations/{orgId}/quality/evaluations/scorecards

Retrieve the metadata for scorecards created in a selected date range.

Parameters

Name In Type Required Description
orgId path string true Alvaria-generated unique identifier for the organization.
beginTime query string(date-time) true Beginning date and time of the search range, specified in ISO 8601 format and in UTC time zone
endTime query string(date-time) false End date and time of the search range, specified in ISO 8601 format and in UTC time zone
maxResults query integer(int32) false Maximum results. This is used to specify the maximum number of records to return in the result set. You can use this to set a result set limit that is less than the system/API-specific limit.
startIndex query integer(int32) false The start index specifies the the beginning record for the result set. This is a zero based value. This can be used in conjuction with maxResults to return a specific range of items within a result set.
includeTraining query boolean false specifies whether to include training scorecards in the search results.
includeIncompleteScorecards query boolean false specifies whether to include incomplete scorecards in the search results.
scorecardTemplateId query string(uuid) false Alvaria-generated unique identifier for a scorecard template. If provided, results will be limited to scorecards using the scorecard template corresponding to the specified ID.
evaluator query string false Filter results based on the evaluator or creator of the scorecard, using the username or unique identifier.
agent query string false Filter results based on the agent the scorecard is evaluated against, using the username or unique identifier.
Authorization header string true Authentication token with the value: 'Bearer {accessToken}', where {accessToken} was returned from a call to the authorization endpoint.
x-api-key header string true Alvaria-provided value used to track API endpoint usage

Example responses

200 Response

{
  "kind": "via#ScorecardMetadataList",
  "scorecardMetadataItems": [
    {
      "agentReview": true,
      "createdOn": "2023-09-21T15:43:16.989Z",
      "creatorId": "00000000-0000-0000-0551-ee275caacb9c",
      "failed": false,
      "id": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
      "asCreatedDuringTransitoryAccess": false,
      "lastUpdatedOn": "2023-011-21T15:43:16.989Z",
      "mediaId": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
      "peerReview": false,
      "percentScore": 100,
      "pointScore": 10,
      "reviewedByRecordedAgent": false,
      "status": "Incomplete",
      "teamReview": false,
      "templateId": "8506aeb2-bf54-4630-81f6-d8c161d78959",
      "templateName": "My_Favorite_Scorecard_Template_01",
      "trainingScore": true,
      "updateUserId": "00000000-0000-0000-05a3-727a88db4edd",
      "coaching": true,
      "calibrationReview": false,
      "maxWeightedScore": 20,
      "coachingId": 27,
      "creatorUsername": "Doe, John",
      "updatedUsername": "Doe, John",
      "canEmail": true,
      "agentId": "00000000-0000-0000-05a3-727a88db4edd",
      "agentUsername": "Doe, John",
      "notes": [
        {
          "id": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
          "text": "This is a scorecard note"
        }
      ],
      "comments": [
        {
          "id": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
          "userId": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
          "modifiedDate": "2023-011-21T15:43:16.989Z",
          "text": "This is a scorecard comment",
          "commentIndex": 5
        }
      ],
      "sectionResults": [
        {
          "id": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
          "percentScore": 50,
          "failed": true,
          "comment": "This is a comment",
          "sectionId": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
          "pointScore": 10,
          "weightedScore": 10,
          "maxWeightedScore": 20,
          "questionResults": [
            {
              "id": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
              "questionId": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
              "percentScore": 50,
              "pointScore": 10,
              "failed": true,
              "comment": "This is a comment",
              "textAnswer": "This is an answer",
              "selectedOptions": [
                {
                  "id": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
                  "optionId": "7de8d7ab-6de2-4693-aeef-4ffa4006f426"
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK ScorecardMetadataCollection
206 Partial Content Partial Content ScorecardMetadataCollection
400 Bad Request Bad Request ErrorResponse
401 Unauthorized Unauthorized None
404 Not Found Not Found ErrorResponse
405 Method Not Allowed Method Not Allowed ErrorResponse
408 Request Timeout Request Timeout ErrorResponse
410 Gone Gone ErrorResponse
422 Unprocessable Entity Unprocessable Entity ErrorResponse
429 Too Many Requests Too Many Requests ErrorResponse
500 Internal Server Error Internal Server Error ErrorResponse
503 Service Unavailable Service Unavailable ErrorResponse

Recording Control

Pause Recording

Code samples

# You can also use wget
curl -X POST https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings/pause \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'x-api-key: string'

const fetch = require('node-fetch');
const inputBody = {
  "pauseAudio": "true",
  "pauseScreen": "true",
  "locatorType": "AspectUserId",
  "locatorIdentifier": "99b788f3000d99",
  "switchName": "customername"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string',
  'x-api-key':'string'
};

fetch('https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings/pause',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings/pause HTTP/1.1
Host: orgid.via.aspect-cloud.net
Content-Type: application/json
Accept: application/json
Authorization: string
x-api-key: string

POST /via/v3/organizations/{orgId}/quality/recordings/pause

Pause Recording associated with an agent

Body parameter

{
  "pauseAudio": "true",
  "pauseScreen": "true",
  "locatorType": "AspectUserId",
  "locatorIdentifier": "99b788f3000d99",
  "switchName": "customername"
}

Parameters

Name In Type Required Description
orgId path string true Alvaria-generated unique identifier for the organization.
Authorization header string true Authentication token with the value: 'Bearer {accessToken}', where {accessToken} was returned from a call to the authorization endpoint.
x-api-key header string true Alvaria-provided value used to track API endpoint usage.
body body PauseRecordingParmsSchema true none

Example responses

200 Response

{
  "status": "Success"
}

Responses

Status Meaning Description Schema
200 OK OK RecordingControlResponseSchema
400 Bad Request Client Error - Bad Request ErrorResponse
401 Unauthorized Client Error - Unauthorized None
404 Not Found Not Found ErrorResponse
405 Method Not Allowed Client Error - Method Not Allowed ErrorResponse
408 Request Timeout Request Timeout ErrorResponse
500 Internal Server Error Server Error - Internal Server Error ErrorResponse
503 Service Unavailable Server Error - Service Unavailable ErrorResponse

Resume Recording

Code samples

# You can also use wget
curl -X POST https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings/resume \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'x-api-key: string'

const fetch = require('node-fetch');
const inputBody = {
  "locatorType": "AspectUserId",
  "locatorIdentifier": "99b788f3000d99",
  "switchName": "customername"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string',
  'x-api-key':'string'
};

fetch('https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings/resume',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings/resume HTTP/1.1
Host: orgid.via.aspect-cloud.net
Content-Type: application/json
Accept: application/json
Authorization: string
x-api-key: string

POST /via/v3/organizations/{orgId}/quality/recordings/resume

Resume Recording associated with an agent

Body parameter

{
  "locatorType": "AspectUserId",
  "locatorIdentifier": "99b788f3000d99",
  "switchName": "customername"
}

Parameters

Name In Type Required Description
orgId path string true Alvaria-generated unique identifier for the organization.
Authorization header string true Authentication token with the value: 'Bearer {accessToken}', where {accessToken} was returned from a call to the authorization endpoint.
x-api-key header string true Alvaria-provided value used to track API endpoint usage.
body body ResumeRecordingParmsSchema true none

Example responses

200 Response

{
  "status": "Success"
}

Responses

Status Meaning Description Schema
200 OK OK RecordingControlResponseSchema
400 Bad Request Client Error - Bad Request ErrorResponse
401 Unauthorized Client Error - Unauthorized None
404 Not Found Not Found ErrorResponse
405 Method Not Allowed Client Error - Method Not Allowed ErrorResponse
408 Request Timeout Request Timeout ErrorResponse
500 Internal Server Error Server Error - Internal Server Error ErrorResponse
503 Service Unavailable Server Error - Service Unavailable ErrorResponse

Get Recording Status

Code samples

# You can also use wget
curl -X POST https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings/status \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'x-api-key: string'

const fetch = require('node-fetch');
const inputBody = {
  "interactionId": "1000",
  "locatorType": "AspectUserId",
  "locatorIdentifier": "99b788f3000d99",
  "retrieveScreenRecordingStatus": "true",
  "switchName": "customername"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string',
  'x-api-key':'string'
};

fetch('https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings/status',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings/status HTTP/1.1
Host: orgid.via.aspect-cloud.net
Content-Type: application/json
Accept: application/json
Authorization: string
x-api-key: string

POST /via/v3/organizations/{orgId}/quality/recordings/status

Retrieve Recording status of an interaction based on the agent and interaction Id

Body parameter

{
  "interactionId": "1000",
  "locatorType": "AspectUserId",
  "locatorIdentifier": "99b788f3000d99",
  "retrieveScreenRecordingStatus": "true",
  "switchName": "customername"
}

Parameters

Name In Type Required Description
orgId path string true Alvaria-generated unique identifier for the organization.
Authorization header string true Authentication token with the value: 'Bearer {accessToken}', where {accessToken} was returned from a call to the authorization endpoint.
x-api-key header string true Alvaria-provided value used to track API endpoint usage
body body RecordingStatusParmsSchema true none

Example responses

200 Response

{
  "status": "Success"
}

Responses

Status Meaning Description Schema
200 OK OK RecordingControlResponseSchema
400 Bad Request Client Error - Bad Request ErrorResponse
401 Unauthorized Client Error - Unauthorized None
404 Not Found Not Found ErrorResponse
405 Method Not Allowed Client Error - Method Not Allowed ErrorResponse
408 Request Timeout Request Timeout ErrorResponse
500 Internal Server Error Server Error - Internal Server Error ErrorResponse
503 Service Unavailable Server Error - Service Unavailable ErrorResponse

Start Recording

Code samples

# You can also use wget
curl -X POST https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings/start \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'x-api-key: string'

const fetch = require('node-fetch');
const inputBody = {
  "recordAudio": "true",
  "recordScreen": "true",
  "recordReason": "auditing purposes",
  "maxDuration": 120,
  "interactionType": "InboundQueuedCall",
  "locatorType": "AspectUserId",
  "locatorIdentifier": "99b788f3000d99",
  "switchName": "customername"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string',
  'x-api-key':'string'
};

fetch('https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings/start',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings/start HTTP/1.1
Host: orgid.via.aspect-cloud.net
Content-Type: application/json
Accept: application/json
Authorization: string
x-api-key: string

POST /via/v3/organizations/{orgId}/quality/recordings/start

Start recording associated with an agent

Body parameter

{
  "recordAudio": "true",
  "recordScreen": "true",
  "recordReason": "auditing purposes",
  "maxDuration": 120,
  "interactionType": "InboundQueuedCall",
  "locatorType": "AspectUserId",
  "locatorIdentifier": "99b788f3000d99",
  "switchName": "customername"
}

Parameters

Name In Type Required Description
orgId path string true Alvaria-generated unique identifier for the organization.
Authorization header string true Authentication token with the value: 'Bearer {accessToken}', where {accessToken} was returned from a call to the authorization endpoint.
x-api-key header string true Alvaria-provided value used to track API endpoint usage.
body body StartRecordingParmsSchema true none

Example responses

200 Response

{
  "status": "Success"
}

Responses

Status Meaning Description Schema
200 OK OK RecordingControlResponseSchema
400 Bad Request Client Error - Bad Request ErrorResponse
401 Unauthorized Client Error - Unauthorized None
404 Not Found Not Found ErrorResponse
405 Method Not Allowed Client Error - Method Not Allowed ErrorResponse
408 Request Timeout Request Timeout ErrorResponse
500 Internal Server Error Server Error - Internal Server Error ErrorResponse
503 Service Unavailable Server Error - Service Unavailable ErrorResponse

Stop Recording

Code samples

# You can also use wget
curl -X POST https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings/stop \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: string' \
  -H 'x-api-key: string'

const fetch = require('node-fetch');
const inputBody = {
  "locatorType": "AspectUserId",
  "locatorIdentifier": "99b788f3000d99",
  "switchName": "customername"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string',
  'x-api-key':'string'
};

fetch('https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings/stop',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST https://orgId.via.aspect-cloud.net/via/v3/organizations/{orgId}/quality/recordings/stop HTTP/1.1
Host: orgid.via.aspect-cloud.net
Content-Type: application/json
Accept: application/json
Authorization: string
x-api-key: string

POST /via/v3/organizations/{orgId}/quality/recordings/stop

Stop recording associated with an agent

Body parameter

{
  "locatorType": "AspectUserId",
  "locatorIdentifier": "99b788f3000d99",
  "switchName": "customername"
}

Parameters

Name In Type Required Description
orgId path string true Alvaria-generated unique identifier for the organization.
Authorization header string true Authentication token with the value: 'Bearer {accessToken}', where {accessToken} was returned from a call to the authorization endpoint.
x-api-key header string true Alvaria-provided value used to track API endpoint usage.
body body StopRecordingParmsSchema true none

Example responses

200 Response

{
  "status": "Success"
}

Responses

Status Meaning Description Schema
200 OK OK RecordingControlResponseSchema
400 Bad Request Client Error - Bad Request ErrorResponse
401 Unauthorized Client Error - Unauthorized None
404 Not Found Not Found ErrorResponse
405 Method Not Allowed Client Error - Method Not Allowed ErrorResponse
408 Request Timeout Request Timeout ErrorResponse
500 Internal Server Error Server Error - Internal Server Error ErrorResponse
503 Service Unavailable Server Error - Service Unavailable ErrorResponse

Schemas

RecordingMetadataCollection

{
  "kind": "via#recordingMetadataList",
  "recordingMetadataItems": [
    {
      "status": "Current",
      "channelType": "VoiceOnly",
      "ani": null,
      "voiceFileStatus": "Available",
      "customInformation": [
        {
          "displayName": "Disposition Code",
          "value": "DispositionCode"
        }
      ],
      "orgId": "customerName",
      "dnis": null,
      "endTime": "2020-05-01T23:28:35Z",
      "station": null,
      "holdCount": 0,
      "callLegId": 42,
      "recordingId": "f5581241-1d33-41c0-b0f9-f96911c1d03f",
      "initialWorkType": null,
      "maximumHoldDuration": 0,
      "parentRecordingId": "f5581241-1d33-41c0-b0f9-f96911c1d03f",
      "recordingReasons": {
        "user": false,
        "api": false,
        "logging": false,
        "parent": false,
        "rule": false
      },
      "relatedRecordingIds": null,
      "screenCaptureFileStatus": 0,
      "startTime": "2020-05-01T23:28:35Z",
      "switch": {
        "switchType": "AspectUnifiedIp",
        "switchName": "pats"
      },
      "takenWorkType": {
        "interactionType": "Email",
        "workTypeName": "EmailTeam"
      },
      "user": {
        "firstName": "firstName",
        "lastName": "lastName",
        "email": "name@example.com",
        "teamName": "teamName"
      },
      "totalHoldDuration": 0,
      "interactionType": "Email",
      "umId": "01-0010010000-200501-232819878-00001",
      "email": {
        "state": 1,
        "sentTime": "2020-05-01T23:28:35Z",
        "subject": "Test Message",
        "sender": "name@example.com"
      },
      "chat": null,
      "sms": null
    }
  ],
  "totalItems": 1
}

Recording metadata collection

Properties

Name Type Required Restrictions Description
kind string false none Identifier used by Alvaria™ Cloud components to serialize the payload of the results.
recordingMetadataItems [RecordingMetadataV3] false none [Recording metadata]
totalItems integer false none The total number of Entity instances existing in the system.

RecordingMetadata

{
  "ani": 1200,
  "customInformation": [
    {
      "displayName": "Disposition Code",
      "value": "Complete"
    }
  ],
  "orgId": "customername",
  "channelType": "VoiceOnly",
  "dnis": 1200,
  "endTime": "2017-10-19T16:09:58Z",
  "holdCount": 0,
  "initialWorkType": {
    "interactionType": "InboundQueuedCall",
    "name": "Support"
  },
  "callLegId": 151,
  "interactionType": "InboundQueuedCall",
  "recordingId": "c7725e34-a029-4618-aa9f-6c9c568b7fdb",
  "maximumHoldTime": 15,
  "parentRecordingId": "c7725e34-a029-4618-aa9f-6c9c568b7fdb",
  "recordingReasons": {
    "user": true,
    "api": false,
    "logging": false,
    "parent": false,
    "rule": false
  },
  "relatedRecordingIds": [
    "c7725e34-a029-4618-aa9f-6c9c568b7fdb"
  ],
  "screenCaptureFileStatus": "Available",
  "startTime": "2017-10-19T16:09:58Z",
  "station": 1000,
  "status": "Current",
  "switch": {
    "name": "uip",
    "type": "AspectUnifiedIp"
  },
  "takenWorkType": {
    "interactionType": "InboundQueuedCall",
    "name": "Support"
  },
  "user": {
    "firstName": "firstName",
    "lastName": "lastname",
    "email": "user@example.com",
    "teamName": "teamname"
  },
  "voiceFileStatus": "Available",
  "totalHoldTime": 5,
  "umId": "01-0010010000-200504-163852416-00001",
  "email": {
    "sentTime": "2017-10-19T16:09:58Z",
    "state": "Original",
    "subject": "Subject",
    "sender": "user@example.com"
  },
  "chat": {
    "customer": {
      "emailAddress": {
        "email": "user@example.com",
        "name": "emailname"
      },
      "id": 3,
      "name": "name"
    },
    "messageCount": 10,
    "attachmentCount": 1
  },
  "sms": {
    "messageCount": 10,
    "ani": 1200,
    "dnis": 1200
  }
}

Recording metadata

Properties

Name Type Required Restrictions Description
ani string false none ANI of the recorded interaction
customInformation [CustomInformation] false none Custom information of the recorded interaction
orgId string false none Alvaria-generated unique identifier for the organization
channelType string false none Channel type of the recorded interaction
dnis string false none DNIS of the recorded interaction
endTime string(date-time) false none End date and time of a recording, specified in ISO 8601 format.
holdCount integer(int32) false none How many times the interaction has been put on hold on the recording
initialWorkType WorkType false none Work type associated with the interaction
callLegId string false none Alvaria-generated unique identifier for the call leg
interactionType string false none Interaction type
recordingId string(uuid) false none Alvaria-generated unique identifier for the recording instance
maximumHoldTime integer(int32) false none Maximum hold time of the recording(in seconds)
parentRecordingId string(uuid) false none Alvaria-generated unique identifier for the parent recording
recordingReasons RecordingReasons false none Recording reasons for an interaction
relatedRecordingIds [string] false none Alvaria-generated unique identifiers for related recording IDs.
screenCaptureFileStatus string false none File status for screen recording
startTime string(date-time) false none Start time of a recording, specified in ISO 8601 format.
station string false none Station of the recorded interaction
status string false none status of an interaction
switch Switch false none Switch definition
takenWorkType WorkType false none Work type associated with the interaction
user User false none A user entity and all associated details
voiceFileStatus string false none File status for voice recording
totalHoldTime integer(int32) false none Total hold time for the recording (in seconds)
umId string false none Alvaria-generated unique identifier for the Universal Media
email Email false none Email data of an interaction
chat Chat false none Chat data of an interaction
sms SMS false none SMS data of an interaction

Enumerated Values

Property Value
channelType VoiceOnly
channelType ScreenOnly
channelType Email
channelType Chat
channelType SMS
channelType VoiceMail
channelType VoiceAndScreen
channelType Unknown
interactionType Unknown
interactionType InboundQueuedCall
interactionType InboundDirectCall
interactionType OutboundDirectCall
interactionType OutboundBlendedCall
interactionType Email
interactionType IvrCall
interactionType CallBack
interactionType VoiceMail
interactionType WebCallBack
interactionType WebChat
interactionType ReplyCall
interactionType Task
interactionType OutboundEmail
interactionType ReplyEmail
interactionType ForwardEmail
interactionType IntegratedEmail
interactionType Chat
interactionType InboundSMS
interactionType OutboundSMS
interactionType All
screenCaptureFileStatus NotRecorded
screenCaptureFileStatus Available
screenCaptureFileStatus Deleted
screenCaptureFileStatus RecordingFailed
screenCaptureFileStatus TransferFailed
screenCaptureFileStatus OfflineStorage
status Archived
status Current
status Historical
status Inactive
status PendingDisposition
voiceFileStatus NotRecorded
voiceFileStatus Available
voiceFileStatus Deleted
voiceFileStatus RecordingFailed
voiceFileStatus TransferFailed
voiceFileStatus OfflineStorage

RecordingMetadataV3

{
  "ani": 1200,
  "customInformation": [
    {
      "displayName": "Disposition Code",
      "value": "Complete"
    }
  ],
  "orgId": "customername",
  "channelType": "VoiceOnly",
  "dnis": 1200,
  "endTime": "2017-10-19T16:09:58Z",
  "holdCount": 0,
  "initialWorkType": {
    "interactionType": "InboundQueuedCall",
    "workTypeName": "Support"
  },
  "callLegId": 151,
  "interactionType": "InboundQueuedCall",
  "recordingId": "c7725e34-a029-4618-aa9f-6c9c568b7fdb",
  "maximumHoldDuration": 15,
  "parentRecordingId": "c7725e34-a029-4618-aa9f-6c9c568b7fdb",
  "recordingReasons": {
    "user": true,
    "api": false,
    "logging": false,
    "parent": false,
    "rule": false
  },
  "relatedRecordingIds": [
    "c7725e34-a029-4618-aa9f-6c9c568b7fdb"
  ],
  "screenCaptureFileStatus": "Available",
  "startTime": "2017-10-19T16:09:58Z",
  "station": 1000,
  "status": "Current",
  "switch": {
    "switchName": "uip",
    "switchType": "AspectUnifiedIp"
  },
  "takenWorkType": {
    "interactionType": "InboundQueuedCall",
    "workTypeName": "Support"
  },
  "user": {
    "firstName": "firstName",
    "lastName": "lastname",
    "email": "user@example.com",
    "teamName": "teamname"
  },
  "voiceFileStatus": "Available",
  "totalHoldDuration": 5,
  "umId": "01-0010010000-200504-163852416-00001",
  "email": {
    "sentTime": "2017-10-19T16:09:58Z",
    "state": "Original",
    "subject": "Subject",
    "sender": "user@example.com"
  },
  "chat": {
    "customer": {
      "emailAddress": {
        "email": "user@example.com",
        "emailName": "emailname"
      },
      "id": 3,
      "customerName": "name"
    },
    "messageCount": 10,
    "attachmentCount": 1
  },
  "sms": {
    "messageCount": 10,
    "ani": 1200,
    "dnis": 1200
  }
}

Recording metadata

Properties

Name Type Required Restrictions Description
ani string false none ANI of the recorded interaction
customInformation [CustomInformation] false none Custom information of the recorded interaction
orgId string false none Alvaria-generated unique identifier for the organization
channelType string false none Channel type of the recorded interaction
dnis string false none DNIS of the recorded interaction
endTime string(date-time) false none End date and time of a recording, specified in ISO 8601 format.
holdCount integer(int32) false none How many times the interaction has been put on hold on the recording
initialWorkType WorkTypeV3 false none Work type associated with the interaction
callLegId string false none Alvaria-generated unique identifier for the call leg
interactionType string false none Interaction type
recordingId string(uuid) false none Alvaria-generated unique identifier for the recording instance
maximumHoldDuration integer(int32) false none Maximum hold duration of the recording(in seconds)
parentRecordingId string(uuid) false none Alvaria-generated unique identifier for the parent recording
recordingReasons RecordingReasons false none Recording reasons for an interaction
relatedRecordingIds [string] false none Alvaria-generated unique identifiers for related recording IDs.
screenCaptureFileStatus string false none File status for screen recording
startTime string(date-time) false none Start time of a recording, specified in ISO 8601 format.
station string false none Station of the recorded interaction
status string false none status of an interaction
switch SwitchV3 false none Switch definition
takenWorkType WorkTypeV3 false none Work type associated with the interaction
user User false none A user entity and all associated details
voiceFileStatus string false none File status for voice recording
totalHoldDuration integer(int32) false none Total hold duration for the recording (in seconds)
umId string false none Alvaria-generated unique identifier for the Universal Media
email Email false none Email data of an interaction
chat ChatV3 false none Chat data of an interaction
sms SMS false none SMS data of an interaction

Enumerated Values

Property Value
channelType VoiceOnly
channelType ScreenOnly
channelType Email
channelType Chat
channelType SMS
channelType Task
channelType VoiceMail
channelType VoiceAndScreen
channelType InboundEmail
channelType ManualOutboundEmail
channelType Unknown
interactionType Unknown
interactionType InboundQueuedCall
interactionType InboundDirectCall
interactionType OutboundDirectCall
interactionType OutboundBlendedCall
interactionType Email
interactionType IvrCall
interactionType CallBack
interactionType VoiceMail
interactionType WebCallBack
interactionType WebChat
interactionType ReplyCall
interactionType Task
interactionType OutboundEmail
interactionType ReplyEmail
interactionType ForwardEmail
interactionType IntegratedEmail
interactionType Chat
interactionType InboundSMS
interactionType OutboundSMS
interactionType InboundEmail
interactionType ManualOutboundEmail
interactionType CampaignOutboundEmail
interactionType All
screenCaptureFileStatus NotRecorded
screenCaptureFileStatus Available
screenCaptureFileStatus Deleted
screenCaptureFileStatus RecordingFailed
screenCaptureFileStatus TransferFailed
screenCaptureFileStatus OfflineStorage
status Archived
status Current
status Historical
status Inactive
status PendingDisposition
voiceFileStatus NotRecorded
voiceFileStatus Available
voiceFileStatus Deleted
voiceFileStatus RecordingFailed
voiceFileStatus TransferFailed
voiceFileStatus OfflineStorage

RecordingIds

{
  "recordingIds": [
    "497f6eca-6276-4993-bfeb-53cbbbba6f08"
  ]
}

List of Alvaria-generated unique identifiers for recording instances.

Properties

Name Type Required Restrictions Description
recordingIds [string] false none none

CustomInformation

{
  "displayName": "Disposition Code",
  "value": "Complete"
}

Custom information for an interaction

Properties

Name Type Required Restrictions Description
displayName string false none Display name of the custom information
value string false none Custom information value

AddCustomInformation

{
  "customInformation": [
    {
      "displayName": "Disposition Code",
      "value": "Complete"
    }
  ]
}

List of custom information to be added to an interaction

Properties

Name Type Required Restrictions Description
customInformation [CustomInformation] false none [Custom information for an interaction]

RecordingReasons

{
  "user": true,
  "api": false,
  "logging": false,
  "parent": false,
  "rule": false
}

Recording reasons for an interaction

Properties

Name Type Required Restrictions Description
user boolean false none Whether the interaction is being monitored due to user action.
api boolean false none Whether the interaction is being monitored due to an API call.
logging boolean false none Whether the interaction is being monitored due to logging.
parent boolean false none Whether the interaction is being monitored due to the parent interaction also being monitored.
rule boolean false none Whether the interaction is being monitored due to a rule.

Email

{
  "sentTime": "2017-10-19T16:09:58Z",
  "state": "Original",
  "subject": "Subject",
  "sender": "user@example.com"
}

Email data of an interaction

Properties

Name Type Required Restrictions Description
sentTime string(date-time) false none Sent time of the email
state string false none State of the email
subject string false none Subject of the email
sender string false none Email sender

Enumerated Values

Property Value
state Original
state Transferred
state Replied

Chat

{
  "customer": {
    "emailAddress": {
      "email": "user@example.com",
      "name": "emailname"
    },
    "id": 3,
    "name": "name"
  },
  "messageCount": 10,
  "attachmentCount": 1
}

Chat data of an interaction

Properties

Name Type Required Restrictions Description
customer Customer false none Customer information
messageCount integer(int32) false none number of messages included in the Chat interaction
attachmentCount integer(int32) false none number of attachments included the Chat interaction

ChatV3

{
  "customer": {
    "emailAddress": {
      "email": "user@example.com",
      "emailName": "emailname"
    },
    "id": 3,
    "customerName": "name"
  },
  "messageCount": 10,
  "attachmentCount": 1
}

Chat data of an interaction

Properties

Name Type Required Restrictions Description
customer CustomerV3 false none Customer information
messageCount integer(int32) false none number of messages included in the Chat interaction
attachmentCount integer(int32) false none number of attachments included the Chat interaction

SMS

{
  "messageCount": 10,
  "ani": 1200,
  "dnis": 1200
}

SMS data of an interaction

Properties

Name Type Required Restrictions Description
messageCount integer(int32) false none Message count
ani string false none Originating phone number
dnis string false none Dialed phone number

Customer

{
  "emailAddress": {
    "email": "user@example.com",
    "name": "emailname"
  },
  "id": 3,
  "name": "name"
}

Customer information

Properties

Name Type Required Restrictions Description
emailAddress EmailAddress false none EmailAddress information associated with an interaction.
id string(int64) false none Alvaria-generated unique identifier for the customer
name string false none Name of a customer

CustomerV3

{
  "emailAddress": {
    "email": "user@example.com",
    "emailName": "emailname"
  },
  "id": 3,
  "customerName": "name"
}

Customer information

Properties

Name Type Required Restrictions Description
emailAddress EmailAddressV3 false none EmailAddress information associated with an interaction.
id string(int64) false none Alvaria-generated unique identifier for the customer
customerName string false none Name of a customer

EmailAddress

{
  "email": "user@example.com",
  "name": "emailname"
}

EmailAddress information associated with an interaction.

Properties

Name Type Required Restrictions Description
email string false none Email address
name string false none Display name of an email address

EmailAddressV3

{
  "email": "user@example.com",
  "emailName": "emailname"
}

EmailAddress information associated with an interaction.

Properties

Name Type Required Restrictions Description
email string false none Email address
emailName string false none Display name of an email address

WorkType

{
  "interactionType": "InboundQueuedCall",
  "name": "Support"
}

Work type associated with the interaction

Properties

Name Type Required Restrictions Description
interactionType string false none Interaction type
name string false none name of the work type

Enumerated Values

Property Value
interactionType Unknown
interactionType InboundQueuedCall
interactionType InboundDirectCall
interactionType OutboundDirectCall
interactionType OutboundBlendedCall
interactionType Email
interactionType IvrCall
interactionType CallBack
interactionType VoiceMail
interactionType WebCallBack
interactionType WebChat
interactionType ReplyCall
interactionType Task
interactionType OutboundEmail
interactionType ReplyEmail
interactionType ForwardEmail
interactionType IntegratedEmail
interactionType Chat
interactionType InboundSMS
interactionType OutboundSMS
interactionType All

WorkTypeV3

{
  "interactionType": "InboundQueuedCall",
  "workTypeName": "Support"
}

Work type associated with the interaction

Properties

Name Type Required Restrictions Description
interactionType string false none Interaction type
workTypeName string false none name of the work type

Enumerated Values

Property Value
interactionType Unknown
interactionType InboundQueuedCall
interactionType InboundDirectCall
interactionType OutboundDirectCall
interactionType OutboundBlendedCall
interactionType Email
interactionType IvrCall
interactionType CallBack
interactionType VoiceMail
interactionType WebCallBack
interactionType WebChat
interactionType ReplyCall
interactionType Task
interactionType OutboundEmail
interactionType ReplyEmail
interactionType ForwardEmail
interactionType IntegratedEmail
interactionType Chat
interactionType InboundSMS
interactionType OutboundSMS
interactionType All

User

{
  "firstName": "firstName",
  "lastName": "lastname",
  "email": "user@example.com",
  "teamName": "teamname"
}

A user entity and all associated details

Properties

Name Type Required Restrictions Description
firstName string false none First name of a user
lastName string false none Last name of a user
email string false none User login name
teamName string false none Team name of a user

Switch

{
  "name": "uip",
  "type": "AspectUnifiedIp"
}

Switch definition

Properties

Name Type Required Restrictions Description
name string false none Name of a switch
type string false none Switch type

Enumerated Values

Property Value
type None
type Avaya
type Cisco
type AspectUnifiedIp
type CiscoUnifiedContactCenter
type Zipwire

SwitchV3

{
  "switchName": "uip",
  "switchType": "AspectUnifiedIp"
}

Switch definition

Properties

Name Type Required Restrictions Description
switchName string false none Name of a switch
switchType string false none Switch type

Enumerated Values

Property Value
switchType None
switchType Avaya
switchType Cisco
switchType AspectUnifiedIp
switchType CiscoUnifiedContactCenter
switchType Zipwire

RecordingMediaCollection

{
  "kind": "via#recordingMediaList",
  "mediaItems": [
    {
      "channelType": "voice",
      "handle": "https://example.aspect-cloud.net/s3/example.s3.amazonaws.com/path/0000-19851005-101458/aqm00_0000_0000_0000.wav?X-Amz-Expires=1800&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=0000000000000000/20171005/us-east-1/s3/aws4_request&X-Amz-Date=19851005T151458Z&X-Amz-SignedHeaders=host;x-amz-server-side-encryption;x-amz-server-side-encryption-aws-kms-key-id&X-Amz-Signature=0000000000000000000000000000000000000000000000000000000000000000"
    }
  ],
  "totalItems": 1
}

Properties

Name Type Required Restrictions Description
kind string false none Identifier used by Alvaria™ Cloud components to serialize the payload of the results.
mediaItems [RecordingMedia] false none [File handles of the recording media]
totalItems integer false none The total number of Entity instances existing in the system.

RecordingMedia

{
  "channelType": "voice",
  "handle": "https://example.aspect-cloud.net/s3/example.s3.amazonaws.com/path/0000-19851005-101458/aqm00_0000_0000_0000.wav?X-Amz-Expires=1800&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=0000000000000000/20171005/us-east-1/s3/aws4_request&X-Amz-Date=19851005T151458Z&X-Amz-SignedHeaders=host;x-amz-server-side-encryption;x-amz-server-side-encryption-aws-kms-key-id&X-Amz-Signature=0000000000000000000000000000000000000000000000000000000000000000"
}

File handles of the recording media

Properties

Name Type Required Restrictions Description
channelType string false none Interaction channel type
handle string(uri) false none Signed URL pointing a recording media file.

Enumerated Values

Property Value
channelType voice
channelType chat
channelType sms
channelType email
channelType screen

PauseRecordingParmsSchema

{
  "pauseAudio": "true",
  "pauseScreen": "true",
  "locatorType": "AspectUserId",
  "locatorIdentifier": "99b788f3000d99",
  "switchName": "customername"
}

Properties

Name Type Required Restrictions Description
pauseAudio boolean false none Specifies whether to pause voice recording
pauseScreen boolean false none Specifies whether to pause screen recording
locatorType string false none Possible items that can be used to locate an agent.
AspectUserId : Alvaria-generated unique identifier for the Cloud agent instance that can be retrieved prior to use from the provisioning rest API. The url is /via/v3/organizations/{orgId}/provisioning/users
AgentAcdId : Agent ACD logon ID
PositionId : An ACD position ID
locatorIdentifier string true none The value that will be used to locate the agent based on the locator type. For Cloud, the locatorIdentifier is the userId, which can be retrieved using the /via/v3/organizations/{orgId}/provisioning/users endpoint.
switchName string false none The name of the switch that the agent is associated with in Alvaria Quality.

Enumerated Values

Property Value
locatorType AspectUserId
locatorType AgentAcdId
locatorType PositionId

ResumeRecordingParmsSchema

{
  "locatorType": "AspectUserId",
  "locatorIdentifier": "99b788f3000d99",
  "switchName": "customername"
}

Properties

Name Type Required Restrictions Description
locatorType string false none Possible items that can be used to locate an agent.
AspectUserId : Alvaria-generated unique identifier for the Cloud agent instance that can be retrieved prior to use from the provisioning rest API. The url is /via/v3/organizations/{orgId}/provisioning/users
AgentAcdId : Agent ACD logon ID
PositionId : An ACD position ID
locatorIdentifier string true none The value that will be used to locate the agent based on the locator type. For Cloud, the locatorIdentifier is the userId, which can be retrieved using the /via/v3/organizations/{orgId}/provisioning/users endpoint.
switchName string false none The name of the switch that the agent is associated with in Alvaria Quality Management system.

Enumerated Values

Property Value
locatorType AspectUserId
locatorType AgentAcdId
locatorType PositionId

RecordingStatusParmsSchema

{
  "interactionId": "1000",
  "locatorType": "AspectUserId",
  "locatorIdentifier": "99b788f3000d99",
  "retrieveScreenRecordingStatus": "true",
  "switchName": "customername"
}

Properties

Name Type Required Restrictions Description
interactionId string true none Alvaria-generated unique identifier for the interaction instance that can be retrieved prior to use from the streaming rest API, e.g., engagementCenter.Dialing event.
locatorType string false none Possible items that can be used to locate an agent.
AspectUserId : Alvaria-generated unique identifier for the Cloud agent instance that can be retrieved prior to use from the provisioning rest API. The url is /via/v3/organizations/{orgId}/provisioning/users
AgentAcdId : Agent ACD logon ID
PositionId : An ACD position ID
locatorIdentifier string true none The value that will be used to locate the agent based on the locator type. For Cloud, the locatorIdentifier is the userId, which can be retrieved using the /via/v3/organizations/{orgId}/provisioning/users endpoint.
retrieveScreenRecordingStatus boolean false none Specifies whether to check the recording status of the screen recording instead of the voice recording for a given interaction.
switchName string false none The name of the switch that the agent is associated with in Alvaria Quality.

Enumerated Values

Property Value
locatorType AspectUserId
locatorType AgentAcdId
locatorType PositionId

StartRecordingParmsSchema

{
  "recordAudio": "true",
  "recordScreen": "true",
  "recordReason": "auditing purposes",
  "maxDuration": 120,
  "interactionType": "InboundQueuedCall",
  "locatorType": "AspectUserId",
  "locatorIdentifier": "99b788f3000d99",
  "switchName": "customername"
}

Properties

Name Type Required Restrictions Description
recordAudio boolean false none Specifies whether to record voice.
recordScreen boolean false none Specifies whether to record screen.
recordReason string false none Reason to start the recording.
maxDuration integer false none The maximum duration of the recording. Applicable if starting a new screen only interaction.
interactionType string false none Type of the interaction. Applicable if starting a new screen only interaction.
locatorType string false none Possible items that can be used to locate an agent.
AspectUserId : Alvaria-generated unique identifier for the Cloud agent instance that can be retrieved prior to use from the provisioning rest API. The url is /via/v3/organizations/{orgId}/provisioning/users
AgentAcdId : Agent ACD logon ID
PositionId : An ACD position ID
locatorIdentifier string true none The value that will be used to locate the agent based on the locator type. For Cloud, the locatorIdentifier is the userId, which can be retrieved using the /via/v3/organizations/{orgId}/provisioning/users endpoint.
switchName string false none The name of the switch that the agent is associated with in Alvaria Quality.

Enumerated Values

Property Value
interactionType Unknown
interactionType InboundQueuedCall
interactionType InboundDirectCall
interactionType OutboundDirectCall
interactionType OutboundBlendedCall
interactionType IVRCall
interactionType Chat
locatorType AspectUserId
locatorType AgentAcdId
locatorType PositionId

StopRecordingParmsSchema

{
  "locatorType": "AspectUserId",
  "locatorIdentifier": "99b788f3000d99",
  "switchName": "customername"
}

Properties

Name Type Required Restrictions Description
locatorType string false none Possible items that can be used to locate an agent.
AspectUserId : Alvaria-generated unique identifier for the Cloud agent instance that can be retrieved prior to use from the provisioning rest API. The url is /via/v3/organizations/{orgId}/provisioning/users
AgentAcdId : Agent ACD logon ID
PositionId : An ACD position ID
locatorIdentifier string true none The value that will be used to locate the agent based on the locator type. For Cloud, the locatorIdentifier is the userId, which can be retrieved using the /via/v3/organizations/{orgId}/provisioning/users endpoint.
switchName string false none The name of the switch that the agent is associated with in Alvaria Quality.

Enumerated Values

Property Value
locatorType AspectUserId
locatorType AgentAcdId
locatorType PositionId

RecordingControlResponseSchema

{
  "status": "Success"
}

Properties

Name Type Required Restrictions Description
status string false none Possible results from a recording control request

Enumerated Values

Property Value
status Success
status Pending
status NotFound
status UnableToExecute
status InvalidLocator
status InvalidRequest
status InvalidParameter
status PermissionDenied
status Error
status Disconnected
status Recording
status NotRecording
status Paused

ErrorResponse

{
  "code": 404,
  "message": "not found",
  "errors": [
    {
      "scope": "scope",
      "reason": "reason",
      "message": "message"
    }
  ]
}

Properties

Name Type Required Restrictions Description
code integer false none HTTP error status
message string false none none
errors [Error] false none none

Error

{
  "scope": "scope",
  "reason": "reason",
  "message": "message"
}

Properties

Name Type Required Restrictions Description
scope string false none none
reason string false none none
message string false none none

GetScorecardTemplatesParmsSchema

{
  "scorecardTemplateIds": [
    "497f6eca-6276-4993-bfeb-53cbbbba6f08"
  ],
  "includeInactiveScorecardTemplates": true,
  "includeIncompleteScorecardTemplates": true,
  "scorecardTemplateName": "Template 01"
}

Properties

Name Type Required Restrictions Description
scorecardTemplateIds [string] true none List of the unique identifiers of the scorecard templates you wish to retrieve. Must be in GUID format.
includeInactiveScorecardTemplates boolean false none Specifies whether to include inactive scorecard templates in the search results.
includeIncompleteScorecardTemplates boolean false none Specifies whether to include incomplete scorecard templates in the search results.
scorecardTemplateName string true none All or part of the name of the scorecard template.

ScorecardTemplateMetadataCollection

{
  "kind": "via#ScorecardTemplateMetadataList",
  "scorecardTemplateMetadata": [
    {
      "defaultResponse": "None",
      "name": "My Favorite Scorecard Template",
      "description": "This is my favorite scorecard template",
      "creationDate": "2023-09-21T15:43:16.989Z",
      "overallScoreDisplay": "PercentageScoreAndPassFail",
      "isUsed": true,
      "id": "c7725e34-a029-4618-aa9f-6c9c568b7fdb",
      "maximumScore": 100,
      "minimumScore": 50,
      "questionScoresDisplay": "PercentageScoreAndPassFail",
      "sectionScoresDisplay": "PercentageScoreAndPassFail",
      "siteId": "4e454f92-b43d-ed11-abbf-1234887b2b15",
      "status": "Active",
      "displayQuestionNumber": true,
      "isComplete": true,
      "isLegacyTemplate": true,
      "isUsedByReports": true,
      "isUsedByCalibration": true,
      "ownerUserId": "00000000-0000-0000-05a3-727a88db4edd",
      "ownerUserName": "Doe, John",
      "weightForNotApplicableAnswerChoice": "None",
      "Sections": [
        {
          "id": "c7725e34-a029-4618-aa9f-6c9c568b7fdb",
          "name": "My Favorite Scorecard Template Section",
          "description": "This is my favorite scorecard template Section",
          "number": 3,
          "weight": 2,
          "enableComments": true,
          "questions": [
            {
              "id": "c7725e34-a029-4618-aa9f-6c9c568b7fdb",
              "number": 3,
              "description": "This is my favorite scorecard template",
              "optionsOrientation": "Horizontal",
              "responseRequired": true,
              "text": "What is your favorite color?",
              "type": "ChooseOne",
              "weight": 1,
              "scoreAdjustmentConditions": "PositiveOptionSelection",
              "scoreAdjustment": "Subtract",
              "isScorable": true,
              "enableComments": true,
              "addToLibrary": true,
              "isDependentQuestion": true,
              "additionalWeight": 0.1,
              "conditionalWeight": 0.1,
              "questions": [
                {
                  "id": "c7725e34-a029-4618-aa9f-6c9c568b7fdb",
                  "number": 3,
                  "text": "Blue",
                  "weight": 1,
                  "dependentQuestions": [
                    {}
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}

Scorecard template metadata collection

Properties

Name Type Required Restrictions Description
kind string false none Identifier used by Alvaria™ Cloud components to serialize the payload of the results.
scorecardTemplateMetadata [ScorecardTemplateMetadata] false none [Scorecard template metadata]

ScorecardTemplateMetadata

{
  "defaultResponse": "None",
  "name": "My Favorite Scorecard Template",
  "description": "This is my favorite scorecard template",
  "creationDate": "2023-09-21T15:43:16.989Z",
  "overallScoreDisplay": "PercentageScoreAndPassFail",
  "isUsed": true,
  "id": "c7725e34-a029-4618-aa9f-6c9c568b7fdb",
  "maximumScore": 100,
  "minimumScore": 50,
  "questionScoresDisplay": "PercentageScoreAndPassFail",
  "sectionScoresDisplay": "PercentageScoreAndPassFail",
  "siteId": "4e454f92-b43d-ed11-abbf-1234887b2b15",
  "status": "Active",
  "displayQuestionNumber": true,
  "isComplete": true,
  "isLegacyTemplate": true,
  "isUsedByReports": true,
  "isUsedByCalibration": true,
  "ownerUserId": "00000000-0000-0000-05a3-727a88db4edd",
  "ownerUserName": "Doe, John",
  "weightForNotApplicableAnswerChoice": "None",
  "Sections": [
    {
      "id": "c7725e34-a029-4618-aa9f-6c9c568b7fdb",
      "name": "My Favorite Scorecard Template Section",
      "description": "This is my favorite scorecard template Section",
      "number": 3,
      "weight": 2,
      "enableComments": true,
      "questions": [
        {
          "id": "c7725e34-a029-4618-aa9f-6c9c568b7fdb",
          "number": 3,
          "description": "This is my favorite scorecard template",
          "optionsOrientation": "Horizontal",
          "responseRequired": true,
          "text": "What is your favorite color?",
          "type": "ChooseOne",
          "weight": 1,
          "scoreAdjustmentConditions": "PositiveOptionSelection",
          "scoreAdjustment": "Subtract",
          "isScorable": true,
          "enableComments": true,
          "addToLibrary": true,
          "isDependentQuestion": true,
          "additionalWeight": 0.1,
          "conditionalWeight": 0.1,
          "questions": [
            {
              "id": "c7725e34-a029-4618-aa9f-6c9c568b7fdb",
              "number": 3,
              "text": "Blue",
              "weight": 1,
              "dependentQuestions": [
                {}
              ]
            }
          ]
        }
      ]
    }
  ]
}

Scorecard template metadata

Properties

Name Type Required Restrictions Description
defaultResponse string false none The default response
name string false none The name of the scorecard template
description string false none The description of the scorecard template
creationDate string(date-time) false none Creation date and time of a scorecard template, specified in ISO 8601 format.
overallScoreDisplay string false none The display of the overall score
isUsed boolean false none Flag to indicate if the scorecard template is used
id string(uuid) false none Alvaria-generated unique identifier for the scorecard template
maximumScore integer(int32) false none Maximum score of the scarecard template
minimumScore integer(int32) false none Minimum score of the scarecard template
questionScoresDisplay string false none The display of the question score
sectionScoresDisplay string false none The display of the section score
siteId string(uuid) false none Alvaria-generated unique identifier for the site
status string false none The status of the scorecard template
displayQuestionNumber boolean false none Flag to indicate whether or not to display question numbers
isComplete boolean false none Flag to indicate whether or not the scorecard template is complete
isLegacyTemplate boolean false none Flag to indicate whether or not the scorecard template is a legacy template
isUsedByReports boolean false none Flag to indicate whether or not the scorecard template is used by reports
isUsedByCalibration boolean false none Flag to indicate whether or not the scorecard template is used by calibration
ownerUserId string(uuid) false none Alvaria-generated unique identifier for the user who created the scorecard template
ownerUserName string false none The username of the user who created the scorecard template
weightForNotApplicableAnswerChoice string false none The status of the scorecard template
Sections [ScoreCardTemplateSection] false none [Scorecard template section]

Enumerated Values

Property Value
status Active
status Inactive
weightForNotApplicableAnswerChoice None
weightForNotApplicableAnswerChoice HighestWeightOfTheQuestion
weightForNotApplicableAnswerChoice LowestWeightOfTheQuestion

ScoreCardTemplateSection

{
  "id": "c7725e34-a029-4618-aa9f-6c9c568b7fdb",
  "name": "My Favorite Scorecard Template Section",
  "description": "This is my favorite scorecard template Section",
  "number": 3,
  "weight": 2,
  "enableComments": true,
  "questions": [
    {
      "id": "c7725e34-a029-4618-aa9f-6c9c568b7fdb",
      "number": 3,
      "description": "This is my favorite scorecard template",
      "optionsOrientation": "Horizontal",
      "responseRequired": true,
      "text": "What is your favorite color?",
      "type": "ChooseOne",
      "weight": 1,
      "scoreAdjustmentConditions": "PositiveOptionSelection",
      "scoreAdjustment": "Subtract",
      "isScorable": true,
      "enableComments": true,
      "addToLibrary": true,
      "isDependentQuestion": true,
      "additionalWeight": 0.1,
      "conditionalWeight": 0.1,
      "questions": [
        {
          "id": "c7725e34-a029-4618-aa9f-6c9c568b7fdb",
          "number": 3,
          "text": "Blue",
          "weight": 1,
          "dependentQuestions": [
            {}
          ]
        }
      ]
    }
  ]
}

Scorecard template section

Properties

Name Type Required Restrictions Description
id string(uuid) false none Alvaria-generated unique identifier for the scorecard template section
name string false none The name of the scorecard template section
description string false none The description of the scorecard template section
number integer(int32) false none The number of the scorecard template section
weight integer(int32) false none The weight of the scorecard template section
enableComments boolean false none Flag to indicate whether or not the scorecard template section has comments enabled
questions [ScoreCardTemplateQuestion] false none [Scorecard template question]

ScoreCardTemplateQuestion

{
  "id": "c7725e34-a029-4618-aa9f-6c9c568b7fdb",
  "number": 3,
  "description": "This is my favorite scorecard template",
  "optionsOrientation": "Horizontal",
  "responseRequired": true,
  "text": "What is your favorite color?",
  "type": "ChooseOne",
  "weight": 1,
  "scoreAdjustmentConditions": "PositiveOptionSelection",
  "scoreAdjustment": "Subtract",
  "isScorable": true,
  "enableComments": true,
  "addToLibrary": true,
  "isDependentQuestion": true,
  "additionalWeight": 0.1,
  "conditionalWeight": 0.1,
  "questions": [
    {
      "id": "c7725e34-a029-4618-aa9f-6c9c568b7fdb",
      "number": 3,
      "text": "Blue",
      "weight": 1,
      "dependentQuestions": [
        {
          "id": "c7725e34-a029-4618-aa9f-6c9c568b7fdb",
          "number": 3,
          "description": "This is my favorite scorecard template",
          "optionsOrientation": "Horizontal",
          "responseRequired": true,
          "text": "What is your favorite color?",
          "type": "ChooseOne",
          "weight": 1,
          "scoreAdjustmentConditions": "PositiveOptionSelection",
          "scoreAdjustment": "Subtract",
          "isScorable": true,
          "enableComments": true,
          "addToLibrary": true,
          "isDependentQuestion": true,
          "additionalWeight": 0.1,
          "conditionalWeight": 0.1,
          "questions": []
        }
      ]
    }
  ]
}

Scorecard template question

Properties

Name Type Required Restrictions Description
id string(uuid) false none Alvaria-generated unique identifier for the scorecard template question
number integer(int32) false none The number of the scorecard template question
description string false none The description of the scorecard template question
optionsOrientation string false none The orientation of the options on the scorecard template question
responseRequired boolean false none Flag to indicate whether or not the scorecard template question requires a response
text string false none The text of the scorecard template question
type string false none The type of the scorecard template question
weight integer(int32) false none The weight of the scorecard template question
scoreAdjustmentConditions string false none The score adjustment conditions of the scorecard template question
scoreAdjustment string false none The score adjustment of the scorecard template question
isScorable boolean false none Flag to indicate whether or not the scorecard template question is scorable
enableComments boolean false none Flag to indicate whether or not the scorecard template question has comments enabled
addToLibrary boolean false none Flag to indicate whether or not the scorecard template question should be added to the library
isDependentQuestion boolean false none Flag to indicate whether or not the scorecard template question is a dependent question
additionalWeight string(decimal) false none The weight of the scorecard template question
conditionalWeight string(decimal) false none The weight of the scorecard template question
questions [ScoreCardTemplateOption] false none [Scorecard template option]

Enumerated Values

Property Value
optionsOrientation NotApplicable
optionsOrientation Horizontal
optionsOrientation Vertical
optionsOrientation DropDown
type YesNo
type TrueFalse
type ScoredScaleLowToHigh
type ScoredScaleHighToLow
type ChooseOne
type ChooseOneOrMore
type SingleLineTextAnswer
type MultiLineTextAnswer
type PassFail
type BonusYesNo
type BonusTrueFalse
type BonusPassFail
type BonusScoredScale
scoreAdjustmentConditions GreaterThanWeight
scoreAdjustmentConditions LessThanWeight
scoreAdjustmentConditions NegativeOptionSelection
scoreAdjustmentConditions NotApplicable
scoreAdjustmentConditions PositiveOptionSelection
scoreAdjustment Add
scoreAdjustment None
scoreAdjustment Subtract

ScoreCardTemplateOption

{
  "id": "c7725e34-a029-4618-aa9f-6c9c568b7fdb",
  "number": 3,
  "text": "Blue",
  "weight": 1,
  "dependentQuestions": [
    {
      "id": "c7725e34-a029-4618-aa9f-6c9c568b7fdb",
      "number": 3,
      "description": "This is my favorite scorecard template",
      "optionsOrientation": "Horizontal",
      "responseRequired": true,
      "text": "What is your favorite color?",
      "type": "ChooseOne",
      "weight": 1,
      "scoreAdjustmentConditions": "PositiveOptionSelection",
      "scoreAdjustment": "Subtract",
      "isScorable": true,
      "enableComments": true,
      "addToLibrary": true,
      "isDependentQuestion": true,
      "additionalWeight": 0.1,
      "conditionalWeight": 0.1,
      "questions": [
        {
          "id": "c7725e34-a029-4618-aa9f-6c9c568b7fdb",
          "number": 3,
          "text": "Blue",
          "weight": 1,
          "dependentQuestions": []
        }
      ]
    }
  ]
}

Scorecard template option

Properties

Name Type Required Restrictions Description
id string(uuid) false none Alvaria-generated unique identifier for the scorecard template option
number integer(int32) false none The number of the scorecard template option
text string false none The text of the scorecard template option
weight string(decimal) false none The weight of the scorecard template option
dependentQuestions [ScoreCardTemplateQuestion] false none [Scorecard template question]

ScorecardMetadataCollection

{
  "kind": "via#ScorecardMetadataList",
  "scorecardMetadataItems": [
    {
      "agentReview": true,
      "createdOn": "2023-09-21T15:43:16.989Z",
      "creatorId": "00000000-0000-0000-0551-ee275caacb9c",
      "failed": false,
      "id": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
      "asCreatedDuringTransitoryAccess": false,
      "lastUpdatedOn": "2023-011-21T15:43:16.989Z",
      "mediaId": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
      "peerReview": false,
      "percentScore": 100,
      "pointScore": 10,
      "reviewedByRecordedAgent": false,
      "status": "Incomplete",
      "teamReview": false,
      "templateId": "8506aeb2-bf54-4630-81f6-d8c161d78959",
      "templateName": "My_Favorite_Scorecard_Template_01",
      "trainingScore": true,
      "updateUserId": "00000000-0000-0000-05a3-727a88db4edd",
      "coaching": true,
      "calibrationReview": false,
      "maxWeightedScore": 20,
      "coachingId": 27,
      "creatorUsername": "Doe, John",
      "updatedUsername": "Doe, John",
      "canEmail": true,
      "agentId": "00000000-0000-0000-05a3-727a88db4edd",
      "agentUsername": "Doe, John",
      "notes": [
        {
          "id": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
          "text": "This is a scorecard note"
        }
      ],
      "comments": [
        {
          "id": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
          "userId": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
          "modifiedDate": "2023-011-21T15:43:16.989Z",
          "text": "This is a scorecard comment",
          "commentIndex": 5
        }
      ],
      "sectionResults": [
        {
          "id": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
          "percentScore": 50,
          "failed": true,
          "comment": "This is a comment",
          "sectionId": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
          "pointScore": 10,
          "weightedScore": 10,
          "maxWeightedScore": 20,
          "questionResults": [
            {
              "id": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
              "questionId": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
              "percentScore": 50,
              "pointScore": 10,
              "failed": true,
              "comment": "This is a comment",
              "textAnswer": "This is an answer",
              "selectedOptions": [
                {
                  "id": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
                  "optionId": "7de8d7ab-6de2-4693-aeef-4ffa4006f426"
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}

Scorecard metadata collection

Properties

Name Type Required Restrictions Description
kind string false none Identifier used by Alvaria™ Cloud components to serialize the payload of the results.
scorecardMetadataItems [ScorecardMetadata] false none [Scorecard metadata]

ScorecardMetadata

{
  "agentReview": true,
  "createdOn": "2023-09-21T15:43:16.989Z",
  "creatorId": "00000000-0000-0000-0551-ee275caacb9c",
  "failed": false,
  "id": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
  "asCreatedDuringTransitoryAccess": false,
  "lastUpdatedOn": "2023-011-21T15:43:16.989Z",
  "mediaId": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
  "peerReview": false,
  "percentScore": 100,
  "pointScore": 10,
  "reviewedByRecordedAgent": false,
  "status": "Incomplete",
  "teamReview": false,
  "templateId": "8506aeb2-bf54-4630-81f6-d8c161d78959",
  "templateName": "My_Favorite_Scorecard_Template_01",
  "trainingScore": true,
  "updateUserId": "00000000-0000-0000-05a3-727a88db4edd",
  "coaching": true,
  "calibrationReview": false,
  "maxWeightedScore": 20,
  "coachingId": 27,
  "creatorUsername": "Doe, John",
  "updatedUsername": "Doe, John",
  "canEmail": true,
  "agentId": "00000000-0000-0000-05a3-727a88db4edd",
  "agentUsername": "Doe, John",
  "notes": [
    {
      "id": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
      "text": "This is a scorecard note"
    }
  ],
  "comments": [
    {
      "id": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
      "userId": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
      "modifiedDate": "2023-011-21T15:43:16.989Z",
      "text": "This is a scorecard comment",
      "commentIndex": 5
    }
  ],
  "sectionResults": [
    {
      "id": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
      "percentScore": 50,
      "failed": true,
      "comment": "This is a comment",
      "sectionId": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
      "pointScore": 10,
      "weightedScore": 10,
      "maxWeightedScore": 20,
      "questionResults": [
        {
          "id": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
          "questionId": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
          "percentScore": 50,
          "pointScore": 10,
          "failed": true,
          "comment": "This is a comment",
          "textAnswer": "This is an answer",
          "selectedOptions": [
            {
              "id": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
              "optionId": "7de8d7ab-6de2-4693-aeef-4ffa4006f426"
            }
          ]
        }
      ]
    }
  ]
}

Scorecard metadata

Properties

Name Type Required Restrictions Description
agentReview boolean false none Flag to indicate if the scorecard is an agent review
createdOn string(date-time) false none Creation date and time of a scorecard, specified in ISO 8601 format.
creatorId string(uuid) false none Alvaria-generated unique identifier for the user who created the scorecard
failed boolean false none Flag to indicate if the scorecard was failed
id string(uuid) false none Alvaria-generated unique identifier for the scorecard
asCreatedDuringTransitoryAccess boolean false none Flag to indicate if the scorecard was created during transitory access
lastUpdatedOn string(date-time) false none Date and time of the last time a scorecard was updated, specified in ISO 8601 format.
mediaId string(uuid) false none Alvaria-generated unique identifier of the media associated with the scorecard
peerReview boolean false none Flag to indicate if the scorecard is a peer review
percentScore integer(int32) false none Percent score of the scarecard
pointScore string(decimal) false none The point score of the scorecard
reviewedByRecordedAgent boolean false none Flag to indicate if the scorecard has been reviewed by the recorded agent
status string false none The status of the scorecard
teamReview boolean false none Flag to indicate if the scorecard is a team review
templateId string(uuid) false none Alvaria-generated unique identifier for the scorecard template associated with the scorecard
templateName string false none The name of the scorecard template associated with the scorecard
trainingScore boolean false none Flag to indicate if the scorecard is a training score
updateUserId string(uuid) false none Alvaria-generated unique identifier for the user who last updated the scorecard
coaching boolean false none Flag to indicate if the scorecard is used for coaching
calibrationReview boolean false none Flag to indicate if the scorecard is a calibration review
maxWeightedScore string(decimal) false none The maximum weighted score of the scorecard
coachingId integer(int32) false none coaching ID of the scarecard
creatorUsername string false none The name of the user who created the scorecard
updatedUsername string false none The name of the user who updated the scorecard
canEmail boolean false none Flag to indicate if the scorecard can be emailed
agentId string(uuid) false none Alvaria-generated unique identifier for the user associated with the scorecard
agentUsername string false none The name of the user who is associated with the scorecard
notes [ScorecardNote] false none [Scorecard note]
comments [ScorecardComment] false none [Scorecard comment]
sectionResults [ScorecardSectionResult] false none [Scorecard section result]

Enumerated Values

Property Value
status Complete
status Incomplete
status CoachingAssignment

ScorecardComment

{
  "id": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
  "userId": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
  "modifiedDate": "2023-011-21T15:43:16.989Z",
  "text": "This is a scorecard comment",
  "commentIndex": 5
}

Scorecard comment

Properties

Name Type Required Restrictions Description
id string(uuid) false none Alvaria-generated unique identifier for the scorecard comment
userId string(uuid) false none Alvaria-generated unique identifier for the user associated with the scorecard comment
modifiedDate string(date-time) false none Date and time of the last time a scorecard comment was modified, specified in ISO 8601 format.
text string false none The text of the scorecard comment
commentIndex integer(int32) false none The index of the scorecard comment

ScorecardNote

{
  "id": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
  "text": "This is a scorecard note"
}

Scorecard note

Properties

Name Type Required Restrictions Description
id string(uuid) false none Alvaria-generated unique identifier for the scorecard note
text string false none The text of the scorecard note

ScorecardSectionResult

{
  "id": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
  "percentScore": 50,
  "failed": true,
  "comment": "This is a comment",
  "sectionId": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
  "pointScore": 10,
  "weightedScore": 10,
  "maxWeightedScore": 20,
  "questionResults": [
    {
      "id": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
      "questionId": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
      "percentScore": 50,
      "pointScore": 10,
      "failed": true,
      "comment": "This is a comment",
      "textAnswer": "This is an answer",
      "selectedOptions": [
        {
          "id": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
          "optionId": "7de8d7ab-6de2-4693-aeef-4ffa4006f426"
        }
      ]
    }
  ]
}

Scorecard section result

Properties

Name Type Required Restrictions Description
id string(uuid) false none Alvaria-generated unique identifier for the scorecard section result
percentScore integer(int32) false none The percent score of the scorecard section result
failed boolean false none Flag to indicate if the scorecard section result was failed
comment string false none Scorecard section result comment
sectionId string(uuid) false none Alvaria-generated unique identifier for the associated scorecard section
pointScore string(decimal) false none The point score of the scorecard section result
weightedScore string(decimal) false none The weighted score of the scorecard section result
maxWeightedScore string(decimal) false none The maximum weighted score of the scorecard section result
questionResults [ScorecardQuestionResult] false none [Scorecard question result]

ScorecardQuestionResult

{
  "id": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
  "questionId": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
  "percentScore": 50,
  "pointScore": 10,
  "failed": true,
  "comment": "This is a comment",
  "textAnswer": "This is an answer",
  "selectedOptions": [
    {
      "id": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
      "optionId": "7de8d7ab-6de2-4693-aeef-4ffa4006f426"
    }
  ]
}

Scorecard question result

Properties

Name Type Required Restrictions Description
id string(uuid) false none Alvaria-generated unique identifier for the scorecard question result
questionId string(uuid) false none Alvaria-generated unique identifier for the associated scorecard question
percentScore integer(int32) false none The percent score of the scorecard question result
pointScore string(decimal) false none The point score of the scorecard question result
failed boolean false none Flag to indicate if the scorecard question result was failed
comment string false none Scorecard question result comment
textAnswer string false none Scorecard question result answer text
selectedOptions [ScorecardSelectedOption] false none [Scorecard selected option]

ScorecardSelectedOption

{
  "id": "7de8d7ab-6de2-4693-aeef-4ffa4006f426",
  "optionId": "7de8d7ab-6de2-4693-aeef-4ffa4006f426"
}

Scorecard selected option

Properties

Name Type Required Restrictions Description
id string(uuid) false none Alvaria-generated unique identifier for the scorecard selected option
optionId string(uuid) false none Alvaria-generated unique identifier for the associated scorecard option