Introduction
TVox provides standard reporting and a set of insights dashboards that allow monitoring of the service levels and occupation of Contact Center resources.
TVox Data Model responds the need to create customized reports or dashboards (for example integrating CRM data) by providing access to the TVox Contact Center statistical data.
TVox Data Model consists in:
- Complete documentation of the data model that describes the statistical data
- API to query and retrieve statistical data
Statistical data covers channels:
- Phone
- Video
- Chat
- Addressbook
- Support (Advanced only)
Requirements
- Fault tolerance (strongly recommended)
- Basic knowledge of Web API concept
- Basic knowledge of GraphQL query language (recommended)
API Reference
Overview
TVox Data Model API provides access to statistical data through Web requests.
Endpoint for requests is constructed as follows:
https://<TVOX_HOST>/datamodel/query
The API is build on GraphQL query language, which allows you to request exactly the information you need with a simple and intuitive syntax.
Consult the GraphQL Glossary for terminology.
Request
TVox Data Model API allows GET or POST requests over HTTPS protocol.
GET request
In GET request the query must be passed as value of the query
parameter.
query {
me {
name
}
}
Example:
https://<TVOX_HOST>/datamodel/query?query={me{name}}
POST request
POST request should use the application/json
content type, and include a JSON-encoded body of the following form:
{
"query": "{me{name}}"
}
Response
Regardless of the method by which the request was sent, the response is returned in the body of the request in JSON format. A query might result in some data and some errors, and those are returned in a JSON object of the form:
{
"data": { ... },
"errors": [ ... ]
}
If there were no errors returned, the errors
field is not be present on the response. If no data is returned the data
field is only be included if the error occurred during execution.
Authentication
TVox Data Model provides authentication via API Key, which can be retrieved from OCC (Advanced > TVox Data Model).
To authenticate requests it is necessary to have an X-Telenia-APIKey
header:
X-Telenia-APIKey: <YOUR_APIKEY>
Rate Limit
Requests to TVox Data Model API are subject to rate limit, i.e. a maximum number of requests that can be made within a certain time period.
The rate limit is 100 requests per minute.
Time Window
Given the nature of the statistical data that are reported by year / month, their request needs to specify the year and month in which to search the data.
Example:
search: { year: 1970, month: 1, ... }
Pagination
Statistical data can have very high cardinalities and a query without limits could lead to a reduction in server performance or, worse, to failure situations.
To avoid this, queries that include a list of elements as result are paged. This means that a limit (max: 1000) and an offset must be specified for each request.
Example:
search: { ..., pagination: { limit: 1000, offset: 0 } }
Sorting
It is possibile to return lists of elements thar are sorted (ordered) according to sort key and sort direction (ascending or descending).
Example:
search: { ..., sorting: { key: START_TIME, direction: ASC } }
Development & Testing
TVox Data Model provides an interactive web environment (Playground) for develop and testing your queries.
It can be reached at the following link:
https://<TVOX_HOST>/datamodel
The Playground consists of two main sections:
- a section (left) in which to insert queries in GraphQL format
- a section (right) where the query result will be displayed
To run the query just press the play button in the center.
Authentication header can be provided in HTTP HEADER
section on bottom-left as JSON object with X-Telenia-APIKey
field.
{
"X-Telenia-APIKey": "<YOUR_APIKEY>"
}
The Playground allows also to generate the query's cURL command as an HTTP POST request.
Testing queries in Playground is a good way to verify that your request is correct and gives you the result you expect.
Phone
Statistical data for phone channel include:
- Inbound service calls
- Outbound service calls
These data can be retrieved by ID, searched and counted.
Inbound Service Call
Get Inbound Service Call by ID.
Result is the list of steps that make up the requested call.
Example:
Get call with ID equals to 1588581589.1320 and of this call get id, step, start time and end time.
Inbound Service Call
query {
inboundCall(id: "1588581589.1320") {
id
step
startTime
endTime
}
}
curl 'https://<TVOX_HOST>/datamodel/query' -H 'Accept-Encoding: gzip, deflate, br' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'DNT: 1' -H 'Origin: https://<TVOX_HOST>' -H 'X-Telenia-APIKey: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' --data-binary '{"query":"query {\n inboundCall(id: \"1588581589.1320\") {\n id\n step\n startTime\n endTime\n }\n}"}' --compressed
Inbound Service Calls
Search Inbound Service Calls.
Argument search
is the object containing search criterias.
Search criterias include time window (year, month), pagination and sorting.
Result is the list of calls that respect search criteria; each call is in turn a list of steps that make up it.
Example:
Search calls according to the following search criteria:
- year 2020
- month 5
- limit 100 (applied to the number of calls and not to the individual steps that compose them) with offset 0
- sorted by ID (ascending)
- start time between 1 May 2020 and 15 May 2020
Inbound Service Calls
query {
inboundCalls(
search: {
year: 2020
month: 5
pagination: { limit: 100, offset: 0 }
sorting: { key: ID, direction: ASC }
startTime: {
operator: BETWEEN
valueLeft: "2020-05-01T00:00:00Z"
valueRight: "2020-05-15T00:00:00Z"
}
}
) {
id
step
startTime
endTime
}
}
curl 'https://<TVOX_HOST>/datamodel/query' -H 'Accept-Encoding: gzip, deflate, br' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'DNT: 1' -H 'Origin: https://<TVOX_HOST>' -H 'X-Telenia-APIKey: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' --data-binary '{"query":"query {\n inboundCalls(\n search: {\n year: 2020\n month: 5\n pagination: { limit: 100, offset: 0 }\n sorting: { key: ID, direction: ASC }\n startTime: {\n operator: BETWEEN\n valueLeft: \"2020-05-01T00:00:00Z\"\n valueRight: \"2020-05-15T00:00:00Z\"\n }\n }\n ) {\n id\n step\n startTime\n endTime\n }\n}\n"}' --compressed
Inbound Service Calls Count
Count Inbound Service Calls.
Argument search
is the object containing search criterias.
Search criterias include time window (year, month).
Result is the 32-bit postive integer counting searched calls.
Example:
Count calls according to the following search criteria:
- year 2020
- month 5
- start time between 1 May 2020 and 15 May 2020
Inbound Service Calls Count
query {
inboundCallsCount(
search: {
year: 2020
month: 5
startTime: {
operator: BETWEEN
valueLeft: "2020-05-01T00:00:00Z"
valueRight: "2020-05-15T00:00:00Z"
}
}
)
}
curl 'https://<TVOX_HOST>/datamodel/query' -H 'Accept-Encoding: gzip, deflate, br' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'DNT: 1' -H 'Origin: https://<TVOX_HOST>' -H 'X-Telenia-APIKey: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' --data-binary '{"query":"query {\n inboundCallsCount(\n search: {\n year: 2020\n month: 5\n startTime: {\n operator: BETWEEN\n valueLeft: \"2020-05-01T00:00:00Z\"\n valueRight: \"2020-05-15T00:00:00Z\"\n }\n }\n )\n}\n"}' --compressed
Outbound Service Call
Get Outbound Service Call by ID.
Result is the list of steps that make up the requested call.
Example:
Get call with ID equals to 1588581589.1320 and of this call get id, step, start time and end time.
Outbound Service Call
query {
outboundCall(id: "1588581589.1320") {
id
step
startTime
endTime
}
}
curl 'https://<TVOX_HOST>/datamodel/query' -H 'Accept-Encoding: gzip, deflate, br' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'DNT: 1' -H 'Origin: https://<TVOX_HOST>' -H 'X-Telenia-APIKey: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' --data-binary '{"query":"query {\n outboundCall(id: \"1588581589.1320\") {\n id\n step\n startTime\n endTime\n }\n}"}' --compressed
Outbound Service Calls
Search Outbound Service Calls.
Argument search
is the object containing search criterias.
Search criterias include time window (year, month), pagination and sorting.
Result is the list of calls that respect search criteria; each call is in turn a list of steps that make up it.
Example:
Search calls according to the following search criteria:
- year 2020
- month 5
- limit 100 with offset 0
- sorted by ID (ascending)
- start time between 1 May 2020 and 15 May 2020
Outbound Service Calls
query {
outboundCalls(
search: {
year: 2020
month: 5
pagination: { limit: 100, offset: 0 }
sorting: { key: ID, direction: ASC }
startTime: {
operator: BETWEEN
valueLeft: "2020-05-01T00:00:00Z"
valueRight: "2020-05-15T00:00:00Z"
}
}
) {
id
step
startTime
endTime
}
}
curl 'https://<TVOX_HOST>/datamodel/query' -H 'Accept-Encoding: gzip, deflate, br' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'DNT: 1' -H 'Origin: https://<TVOX_HOST>' -H 'X-Telenia-APIKey: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' --data-binary '{"query":"query {\n outboundCalls(\n search: {\n year: 2020\n month: 5\n pagination: { limit: 100, offset: 0 }\n sorting: { key: ID, direction: ASC }\n startTime: {\n operator: BETWEEN\n valueLeft: \"2020-05-01T00:00:00Z\"\n valueRight: \"2020-05-15T00:00:00Z\"\n }\n }\n ) {\n id\n step\n startTime\n endTime\n }\n}\n"}' --compressed
Outbound Service Calls Count
Count Outbound Service Calls.
Argument search
is the object containing search criterias.
Search criterias include time window (year, month).
Result is the 32-bit postive integer counting searched calls.
Example:
Count calls according to the following search criteria:
- year 2020
- month 5
- start time between 1 May 2020 and 15 May 2020
Outbound Service Calls Count
query {
outboundCallsCount(
search: {
year: 2020
month: 5
startTime: {
operator: BETWEEN
valueLeft: "2020-05-01T00:00:00Z"
valueRight: "2020-05-15T00:00:00Z"
}
}
)
}
curl 'https://<TVOX_HOST>/datamodel/query' -H 'Accept-Encoding: gzip, deflate, br' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'DNT: 1' -H 'Origin: https://<TVOX_HOST>' -H 'X-Telenia-APIKey: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' --data-binary '{"query":"query {\n outboundCallsCount(\n search: {\n year: 2020\n month: 5\n startTime: {\n operator: BETWEEN\n valueLeft: \"2020-05-01T00:00:00Z\"\n valueRight: \"2020-05-15T00:00:00Z\"\n }\n }\n )\n}\n"}' --compressed
Video
Statistical data for video channel include:
- Inbound service video calls
These data can be retrieved by ID, searched and counted.
Inbound Service Video Call
Get Inbound Service Video Call by ID.
Result is the list of steps that make up the requested video call.
Example:
Get video call with ID equals to 1588581589.1320 and of this video call get id, step, start time and end time.
Inbound Service Video Call
query {
inboundVideoCall(id: "1588581589.1320") {
id
step
startTime
endTime
}
}
curl 'https://<TVOX_HOST>/datamodel/query' -H 'Accept-Encoding: gzip, deflate, br' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'DNT: 1' -H 'Origin: https://<TVOX_HOST>' -H 'X-Telenia-APIKey: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' --data-binary '{"query":"query {\n inboundVideoCall(id: \"1588581589.1320\") {\n id\n step\n startTime\n endTime\n }\n}"}' --compressed
Inbound Service Video Calls
Search Inbound Service Video Calls.
Argument search
is the object containing search criterias.
Search criterias include time window (year, month), pagination and sorting.
Result is the list of video calls that respect search criteria; each video call is in turn a list of steps that make up it.
Example:
Search video calls according to the following search criteria:
- year 2020
- month 5
- limit 100 (applied to the number of video calls and not to the individual steps that compose them) with offset 0
- sorted by ID (ascending)
- start time between 1 May 2020 and 15 May 2020
Inbound Service Video Calls
query {
inboundVideoCalls(
search: {
year: 2020
month: 5
pagination: { limit: 100, offset: 0 }
sorting: { key: ID, direction: ASC }
startTime: {
operator: BETWEEN
valueLeft: "2020-05-01T00:00:00Z"
valueRight: "2020-05-15T00:00:00Z"
}
}
) {
id
step
startTime
endTime
}
}
curl 'https://<TVOX_HOST>/datamodel/query' -H 'Accept-Encoding: gzip, deflate, br' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'DNT: 1' -H 'Origin: https://<TVOX_HOST>' -H 'X-Telenia-APIKey: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' --data-binary '{"query":"query {\n inboundVideoCalls(\n search: {\n year: 2020\n month: 5\n pagination: { limit: 100, offset: 0 }\n sorting: { key: ID, direction: ASC }\n startTime: {\n operator: BETWEEN\n valueLeft: \"2020-05-01T00:00:00Z\"\n valueRight: \"2020-05-15T00:00:00Z\"\n }\n }\n ) {\n id\n step\n startTime\n endTime\n }\n}\n"}' --compressed
Inbound Service Video Calls Count
Count Inbound Service Video Calls.
Argument search
is the object containing search criterias.
Search criterias include time window (year, month).
Result is the 32-bit postive integer counting searched video calls.
Example:
Count video calls according to the following search criteria:
- year 2020
- month 5
- start time between 1 May 2020 and 15 May 2020
Inbound Service Video Calls Count
query {
inboundVideoCallsCount(
search: {
year: 2020
month: 5
startTime: {
operator: BETWEEN
valueLeft: "2020-05-01T00:00:00Z"
valueRight: "2020-05-15T00:00:00Z"
}
}
)
}
curl 'https://<TVOX_HOST>/datamodel/query' -H 'Accept-Encoding: gzip, deflate, br' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'DNT: 1' -H 'Origin: https://<TVOX_HOST>' -H 'X-Telenia-APIKey: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' --data-binary '{"query":"query {\n inboundVideoCallsCount(\n search: {\n year: 2020\n month: 5\n startTime: {\n operator: BETWEEN\n valueLeft: \"2020-05-01T00:00:00Z\"\n valueRight: \"2020-05-15T00:00:00Z\"\n }\n }\n )\n}\n"}' --compressed
Chat
Statistical data for chat channel include:
- Inbound service chats
These data can be retrieved by ID, searched and counted.
Inbound Service Chat
Get Inbound Service Chat by ID.
Result is the list of steps that make up the requested chat.
Example:
Get chat with ID equals to 1588581589.1320 and of this chat get id, step, start time and end time.
Inbound Service Chat
query {
inboundChat(id: "1588581589.1320") {
id
step
startTime
endTime
}
}
curl 'https://<TVOX_HOST>/datamodel/query' -H 'Accept-Encoding: gzip, deflate, br' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'DNT: 1' -H 'Origin: https://<TVOX_HOST>' -H 'X-Telenia-APIKey: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' --data-binary '{"query":"query {\n inboundChat(id: \"1588581589.1320\") {\n id\n step\n startTime\n endTime\n }\n}"}' --compressed
Inbound Service Chats
Search Inbound Service Chats.
Argument search
is the object containing search criterias.
Search criterias include time window (year, month), pagination and sorting.
Result is the list of chats that respect search criteria; each chat is in turn a list of steps that make up it.
Example:
Search chats according to the following search criteria:
- year 2020
- month 5
- limit 100 (applied to the number of chats and not to the individual steps that compose them) with offset 0
- sorted by ID (ascending)
- start time between 1 May 2020 and 15 May 2020
Inbound Service Chats
query {
inboundChats(
search: {
year: 2020
month: 5
pagination: { limit: 100, offset: 0 }
sorting: { key: ID, direction: ASC }
startTime: {
operator: BETWEEN
valueLeft: "2020-05-01T00:00:00Z"
valueRight: "2020-05-15T00:00:00Z"
}
}
) {
id
step
startTime
endTime
}
}
curl 'https://<TVOX_HOST>/datamodel/query' -H 'Accept-Encoding: gzip, deflate, br' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'DNT: 1' -H 'Origin: https://<TVOX_HOST>' -H 'X-Telenia-APIKey: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' --data-binary '{"query":"query {\n inboundChats(\n search: {\n year: 2020\n month: 5\n pagination: { limit: 100, offset: 0 }\n sorting: { key: ID, direction: ASC }\n startTime: {\n operator: BETWEEN\n valueLeft: \"2020-05-01T00:00:00Z\"\n valueRight: \"2020-05-15T00:00:00Z\"\n }\n }\n ) {\n id\n step\n startTime\n endTime\n }\n}\n"}' --compressed
Inbound Service Chats Count
Count Inbound Service Chats.
Argument search
is the object containing search criterias.
Search criterias include time window (year, month).
Result is the 32-bit postive integer counting searched chats.
Example:
Count chats according to the following search criteria:
- year 2020
- month 5
- start time between 1 May 2020 and 15 May 2020
Inbound Service Chats Count
query {
inboundChatsCount(
search: {
year: 2020
month: 5
startTime: {
operator: BETWEEN
valueLeft: "2020-05-01T00:00:00Z"
valueRight: "2020-05-15T00:00:00Z"
}
}
)
}
curl 'https://<TVOX_HOST>/datamodel/query' -H 'Accept-Encoding: gzip, deflate, br' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'DNT: 1' -H 'Origin: https://<TVOX_HOST>' -H 'X-Telenia-APIKey: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' --data-binary '{"query":"query {\n inboundChatsCount(\n search: {\n year: 2020\n month: 5\n startTime: {\n operator: BETWEEN\n valueLeft: \"2020-05-01T00:00:00Z\"\n valueRight: \"2020-05-15T00:00:00Z\"\n }\n }\n )\n}\n"}' --compressed
Addressbook
Data for Addressbook include:
These data can be retrieved by UUID, searched and counted.
Addressbook Contact
Get an addressbook contact by UUID.
Result is an addressbook contact
.
Example:
Get the addressbook contact with UUID equals to 0007418f-3d4a-4315-c3e2-b3bf3521a325 and for this contact get it's uuid, name and surname.
Addressbook Contact
query {
addressBookContact(uuid: "0007418f-3d4a-4315-c3e2-b3bf3521a325") {
uuid
name
surname
}
}
curl '<TVOX_HOST>/datamodel/query' -H 'Accept-Encoding: gzip, deflate, br' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'DNT: 1' -H 'Origin: <TVOX_HOST>' -H 'X-Telenia-APIKey: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' --data-binary '{"query":"query {\n addressBookContact(uuid: \"0007418f-3d4a-4315-c3e2-b3bf3521a325\") {\n uuid\n name\n surname\n }\n}\n"}' --compressed
Addressbook Contacts
Search Addressbook Contacts.
Argument search
is the object containing search criterias.
Search criterias include pagination and sorting.
Result is the list of Addressbook Contacts
that respect search criteria.
Example:
Search Addressbook Contacts according to the following search criteria:
- at least one email address that ends with "teleniasoftware.com"
- the organization name that contact belong must contain "telenia"
Addressbook Contacts
query {
addressBookContacts(
search: {
mail: { value: { operator: END_WITH, value: "teleniasoftware.com" } }
organization: { fullName: { operator: CONTAIN, value: "telenia" } }
}
) {
uuid
name
surname
mail {
value
}
}
}
curl '<TVOX_HOST>/datamodel/query' -H 'Accept-Encoding: gzip, deflate, br' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'DNT: 1' -H 'Origin: <TVOX_HOST>' -H 'X-Telenia-APIKey: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' --data-binary '{"query":"query {\n addressBookContacts(\n search: {\n mail: { value: { operator: END_WITH, value: \"gmail.com\" } }\n organization: { fullName: { operator: CONTAIN, value: \"google\" } }\n }\n ) {\n uuid\n name\n surname\n mail {\n value\n }\n }\n}\n"}' --compressed
Addressbook Contacts Count
Count Addressbook Contacts.
Argument search
is the object containing search criterias.
Result is the 32-bit postive integer counting searched chats.
Example:
Count Addressbook Contacts according to the following search criteria:
- at least one email address that ends with "teleniasoftware.com"
- the organization name that contact belong must contain "telenia"
Addressbook Contacts Count
query {
addressBookContactCount(
search: {
mail: { value: { operator: END_WITH, value: "teleniasoftware.com" } }
organization: { fullName: { operator: CONTAIN, value: "telenia" } }
}
)
}
curl '<TVOX_HOST>/datamodel/query' -H 'Accept-Encoding: gzip, deflate, br' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'DNT: 1' -H 'Origin: <TVOX_HOST>' -H 'X-Telenia-APIKey: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' --data-binary '{"query":"query {\n addressBookContactCount(\n search: {\n mail: { value: { operator: END_WITH, value: \"gmail.com\" } }\n organization: { fullName: { operator: CONTAIN, value: \"google\" } }\n }\n )\n}\n"}' --compressed
Advanced
Sometimes there is the need to produce data through complex queries.
To achieve this, a request can be made by directly specifying a SQL query on the available tables (described below).
Data are grouped in 3 areas:
- TVox, statistical data from channels: phone (
mc_id
: 0), video (mc_id
: 1001) and chat (mc_id
: 1004).
Data are stored in tables grouped by year / month. For example, data for May 2020 can be found in<TABLE>_202005
.
The advanded query can be applied on: - Addressbook, contact details and multichannel relationships.
Addressbook data can be used to match contacts on different channels.
The advanded query can be applied on: - Support, data from Support channel (
mc_id
: 1002).
The advanded query can be applied on:
Result is represented by a list of objects where the keys are the names of the selected fields and values are strings.
Advanced Query (TVox)
query {
advancedQuery(
type: TVOX
query: "SELECT COUNT( DISTINCT ( uniqueid )) AS total, cli AS callerNumber, MAX( datainizio ) AS lastStartDate, MAX( orainizio ) AS lastStartTime FROM ast_calls_202005 GROUP BY cli;"
)
}
curl 'https://<TVOX_HOST>/datamodel/query' -H 'Accept-Encoding: gzip, deflate, br' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'DNT: 1' -H 'Origin: https://<TVOX_HOST>' -H 'X-Telenia-APIKey: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' --data-binary '{"query":"query {\n advancedQuery(\n type: TVOX\n query: \"SELECT COUNT( DISTINCT ( uniqueid )) AS total, cli AS callerNumber, MAX( datainizio ) AS lastStartDate, MAX( orainizio ) AS lastStartTime FROM ast_calls_202005 GROUP BY cli;\"\n )\n}\n"}' --compressed
Example (TVox):
Count received service calls on May 2020 (table: ast_calls_202005
) distinct by unique id (column: uniqueid
) and grouped by caller number (column: cli
), reporting start time (columns: datainizio
and orainizio
) of the latest received call.
SELECT COUNT( DISTINCT ( uniqueid )) AS total, cli AS callerNumber, MAX( datainizio ) AS lastStartDate, MAX( orainizio ) AS lastStartTime FROM ast_calls_202005 GROUP BY cli;
Advanced Query (Addressbook)
query {
advancedQuery(
type: ADDRESSBOOK,
query: "SELECT uuid AS id, name, surname FROM t4you_global_addressbook;"
)
}
curl 'https://<TVOX_HOST>/datamodel/query' -H 'Accept-Encoding: gzip, deflate, br' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'DNT: 1' -H 'Origin: https://<TVOX_HOST>' -H 'X-Telenia-APIKey: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' --data-binary '{"query":"query {\n advancedQuery(\n type: ADDRESSBOOK\n query: \"SELECT uuid AS id, name, surname FROM t4you_global_addressbook;\"\n )\n}\n"}' --compressed
Example (Addressbook):
Select contacts (table: t4you_global_addressbook
) whose surname (columns: surname
) is "Rossi", reporting contact id (columns: uuid
), name (columns: name
) and surname (columns: surname
).
SELECT uuid AS id, name, surname FROM t4you_global_addressbook;
Advanced Query (Support)
query {
advancedQuery(
type: SUPPORT
query: "SELECT COUNT( DISTINCT id ) AS total FROM tickets WHERE created_at >= '2020-01-05 00:00:00' AND created_at <= '2020-01-31 23:59:59';"
)
}
curl 'https://<TVOX_HOST>/datamodel/query' -H 'Accept-Encoding: gzip, deflate, br' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'DNT: 1' -H 'Origin: https://<TVOX_HOST>' -H 'X-Telenia-APIKey: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' --data-binary '{"query":"query {\n advancedQuery(\n type: SUPPORT\n query: \"SELECT COUNT( DISTINCT id ) AS total FROM tickets WHERE created_at >= '2020-01-05 00:00:00' AND created_at <= '2020-01-31 23:59:59';\"\n )\n}\n"}' --compressed
Example (Support):
Count ticket created (column: created_at
) on May 2020 (table: tickets
) distinct by id (column: id
).
SELECT COUNT( DISTINCT id ) AS total FROM tickets WHERE created_at >= '2020-01-05 00:00:00' AND created_at <= '2020-01-31 23:59:59';
Inbound Service Interactions
Table: ast_calls_yyyymm
Primary keys: idlastcall
, step
Field | Type | Description | Note | Default |
---|---|---|---|---|
idchiamata | varchar(20) | * |
||
sito_distribuzione | varchar(10) | * |
||
pin | varchar(255) | Agent username | ||
priorita_agente | int(11) | Agent priority | ||
interno | varchar(100) | Agent logged exten | ||
tipochiamata | char(1) | Type (direction) | I alias Inbound |
|
canale | varchar(50) | SIP channel identifier | ||
skillset | varchar(30) | Skillset code | ||
cli | varchar(255) | Caller Line Identification (Calling number) | Only for Phone channel |
|
dnis | varchar(255) | Direct Number Information System (Called number) | Only for Phone channel |
|
datainizio | date | Start date | ||
orainizio | varchar(7) | Start time | NB: hour format is hh,mmss |
|
datadistribuzione | date | Distribution date | ||
oradistribuzione | varchar(7) | Distribution time | NB: hour format is hh,mmss |
|
stato_cc | varchar(30) | Type code | ||
statochiamata | varchar(3) | Status code | Possible values: H - Hanging up the caller, T - terminated by the system, TT - ended with transfer (see column "Transferred to"), RC - agent response and ended by the caller, RA - response from agent and ended by agent, RTB - answer and ended by transferring without consultation (Blind), RTC - answer and ended by transferring with consultation (Attended), E - reportion error for the call |
|
trasferita | varchar(30) | Number or service code it has been transfered to | ||
datarispostaag1 | date | Answer date by agent | ||
orarispostaag1 | varchar(7) | Answer time by agent | NB: hour format is hh,mmss |
|
attesaag1 | int(6) | Ringing time on agent | ||
durataag1 | int(6) | Connection time with agent | ||
datadisconnessione | date | End date | ||
oradisconnessione | varchar(7) | End time | NB: hour format is hh,mmss |
|
durataattesa | int(6) | Waiting duration time in IVR | ||
duratacomplessiva | int(6) | Total duration time in the system | ||
servizio | varchar(50) | Service code | ||
grpservizio | varchar(1020) | List of services crossed involved by the call | ||
popuptype | enum | Popup Type | EXE ,WEB |
|
popupresult | text | Popup result (if expected) | ||
popupinfo | varchar(1000) | Additional information collected by IVR or third party applications | The individual information is separated by the special character "|" | |
idlastcall | varchar(100) | * |
composed by uniqueid@sito | |
sito | varchar(10) | * |
||
uniqueid | varchar(50) | Unique identifier of the call | unixtimestamp followed by an incremental number separated by "." | |
priorita | int(20) unsigned | * |
||
contesto | varchar(3) | Time context | AT attivo, FO fuori orario, OS fuori servizio |
|
sipcallid | varchar(255) | SIP call identifier | ||
accodamento | text | * |
||
cliente | varchar(20) | Customer code | ||
prior_serv | int(3) | Service priority | ||
step | tinyint(1) unsigned | Step | ||
FdO | tinyint(1) | * |
||
pid | int(11) | * |
||
contatore | int(11) unsigned | * |
||
mc_id | int(11) unsigned | Multichannel channel id | 0 = Phone Channel, 1001 = Video Channel, 1002 = Support Channel, 1003 = LiveHelp Chat Channel, 1004 = Widget Chat channel, 1 , 2 , 3 for optional custom channel |
|
mc_session | varchar(100) | Multichannel session id | ||
mc_text | text | Multichannel additional data | ||
mc_description | varchar(255) | Multichannel description | ||
ivr_label | text | IVR node label | present if configured | |
interview_service | varchar(50) | Survey service code | ||
smartrec | varchar(255) | * |
||
calldata | varchar(1024) | Additional data | ||
data_coda | date | Starting queuing date | ||
ora_coda | varchar(7) | Queuing time | NB: hour format is hh,mmss |
|
data_wnr_ag1 | date | After call work date | ||
ora_wnr_ag1 | varchar(7) | After call work time | NB: hour format is hh,mmss |
|
durata_wnr_ag1 | int(6) | After call work duration time | ||
durata_coda | int(6) | Queuing duration time | ||
callresult_result | varchar(100) | Exit code id | ||
callresult_result_level_2 | varchar(100) | Second level exit code id | ||
callresult_note1 | text | Optional Exit code note | ||
callresult_note2 | text | Optional Exit code note | ||
durata_hold | int(11) | Hold duration time on agent | ||
calltag_note1 | varchar(512) | Optional tagging note | ||
calltag_note2 | varchar(512) | Optional tagging note | ||
channel_destination | enum | Transfer destination | INTERNAL , EXTERNAL , REMOTE |
|
ccbs_user_monitor | char(50) | * |
||
ccbs_result | enum | * |
DEFAULT , CHANUNAVAIL , CONGESTION , NOANSWER , BUSY , ANSWER , CANCEL , DONTCALL , TORTURE , INVALIDARGS , ERROR |
|
call_transfer_from_service | char(30) | * |
||
sentiment | int(11) | Customer sentiment code | ||
contact_id | varchar(40) | Contact identifier | UUID read from t4you | |
contact_username | varchar(255) | Contact username (if internal) | ||
contact_value | varchar(255) | Contact value | ||
contact_type | enum | Contact type | USER , SERVICE , SHORT_NUMBER , EXTERNAL_ITEM , EXTERNAL_ORGANIZATION , PERSONAL_ITEM , UNKNOWN , ANONYMOUS |
|
contact_lookup_type | enum | Contact lookup result | SUCCESS , MULTIPLE , NONE , ERROR |
|
census_result | varchar(100) | Contact census result | ||
access_list | int(10) unsigned | * |
||
abandoned_call_id | char(36) | Abandoned call id | ||
callback_call_id | char(36) | Callback call id | ||
generico1 | varchar(255) | Generic custom data | ||
generico2 | varchar(255) | Generic custom data | ||
generico3 | varchar(255) | Generic custom data | ||
generico4 | varchar(255) | Generic custom data | ||
generico5 | varchar(255) | Generic custom data | ||
update_time | timestamp | Last update timestamp |
Outbound Service Interactions
Table: ast_calls_outbound_yyyymm
Primary keys: idlastcall
, step
Field | Type | Description | Note | Default |
---|---|---|---|---|
idchiamata | varchar(20) | * |
||
sito_distribuzione | varchar(10) | * |
||
pin | varchar(255) | Agent username | ||
priorita_agente | int(11) | Agent priority | ||
interno | varchar(100) | Agent logged exten | ||
tipochiamata | char(1) | Type (direction) | O alias Outbound |
|
canale | varchar(50) | SIP channel identifier | ||
skillset | varchar(30) | Skillset code | ||
cli | varchar(255) | Caller Line Identification (Calling number) | ||
dnis | varchar(255) | Direct Number Information System (Called number) | ||
datainizio | date | Start date | ||
orainizio | varchar(7) | Start time | NB: hour format is hh,mmss |
|
datadistribuzione | date | Distribution date | ||
oradistribuzione | varchar(7) | Distribution time | NB: hour format is hh,mmss |
|
stato_cc | varchar(30) | Type code | ||
statochiamata | varchar(3) | Status code | Possible values: H - Hanging up the caller, T - terminated by the system, TT - ended with transfer (see column "Transferred to"), RC - agent response and ended by the caller, RA - response from agent and ended by agent, RTB - answer and ended by transferring without consultation (Blind), RTC - answer and ended by transferring with consultation (Attended), E - reportion error for the call |
|
trasferita | varchar(30) | Number or service code it has been transfered to | ||
datarispostaag1 | date | Answer date by agent | ||
orarispostaag1 | varchar(7) | Answer time by agent | NB: hour format is hh,mmss |
|
attesaag1 | int(6) | Ringing time on agent | ||
durataag1 | int(6) | Connection time with agent | ||
datadisconnessione | date | End date | ||
oradisconnessione | varchar(7) | End time | NB: hour format is hh,mmss |
|
durataattesa | int(6) | Waiting duration time in IVR | ||
duratacomplessiva | int(6) | Total duration time (in system) | ||
servizio | varchar(50) | Service code | ||
grpservizio | varchar(1020) | List of services crossed | ||
popuptype | enum | Popup Type | EXE , WEB |
|
popupresult | text | Popup result (if expected) | ||
popupinfo | varchar(1000) | Additional information collected by IVR or third party applications | The individual information is separated by the special character "|" | |
idlastcall | varchar(100) | * |
composed by uniqueid@sito | |
sito | varchar(10) | * |
||
uniqueid | varchar(50) | Unique identifier of the call | unixtimestamp followed by an incremental number separated by "." | |
priorita | int(20) unsigned | * |
||
contesto | varchar(3) | Time context | AT attivo, FO fuori orario, OS fuori servizio |
|
sipcallid | varchar(255) | SIP call identifier | ||
accodamento | text | * |
||
cliente | varchar(20) | Customer code | ||
prior_serv | int(3) | Service priority | ||
step | tinyint(1) unsigned | Step | ||
FdO | tinyint(1) | * |
||
pid | int(11) | * |
||
campagna | int(11) unsigned | Outbound campaign code | ||
lista | int(11) unsigned | Outbound campaign list code | ||
id_spool_record | int(11) | Contact id used by outbound campaign interface table | ||
item_number_spool_record | int(11) unsigned | Contact number id used by outbound campaign interface table | ||
run_id | int(11) | * |
||
contact_priority | int(11) | * |
||
contatore | int(11) unsigned | * |
||
mc_id | int(11) unsigned | Multichannel channel id | 0 Phone channel |
|
mc_session | varchar(100) | Multichannel session id | Not in use | |
mc_text | text | Multichannel additional data | Not in use | |
mc_description | varchar(255 | Multichannel description | Not in use | |
ivr_label | text | IVR node label | ||
interview_service | varchar(50) | Survey service code | ||
smartrec | varchar(255) | * |
||
calldata | varchar(1024) | Additional data | ||
data_coda | date | Queuing date | ||
ora_coda | varchar(7) | Queuing time | NB: hour format is hh,mmss |
|
data_wnr_ag1 | date | After call work date | ||
ora_wnr_ag1 | varchar(7) | After call work time | NB: hour format is hh,mmss |
|
durata_wnr_ag1 | int(6) | After call work duration time | ||
durata_coda | int(6) | Queuing duration time | ||
callresult_result | varchar(100) | Exit code id | ||
callresult_result_level_2 | varchar(100) | Second level exit code id | ||
callresult_note1 | text | Optional Exit code note | ||
callresult_note2 | text | Optional Exit code note | ||
durata_hold | int(11) | Hold duration time on agent | ||
calltag_note1 | varchar(512) | Optional tagging note | ||
calltag_note2 | varchar(512) | Optional tagging note | ||
channel_destination | enum | Transfer destination | INTERNAL , EXTERNAL , REMOTE |
|
call_transfer_from_service | char(30) | * |
||
sentiment | int(11) | |||
contact_id | varchar(40) | Contact identifier | UUID read from t4you | |
contact_username | varchar(255) | Contact username (if internal) | ||
contact_value | varchar(255) | Contact value | ||
contact_type | enum | Contact type | USER , SERVICE , SHORT_NUMBER , EXTERNAL_ITEM , EXTERNAL_ORGANIZATION , PERSONAL_ITEM , UNKNOWN , ANONYMOUS |
|
contact_lookup_type | enum | Contact lookup result | SUCCESS , MULTIPLE , NONE , ERROR |
|
access_list | int(10) unsigned | * |
||
abandoned_call_id | char(36) | |||
callback_call_id | char(36) | |||
generico1 | varchar(255) | Generic custom data | ||
generico2 | varchar(255) | Generic custom data | ||
generico3 | varchar(255) | Generic custom data | ||
generico4 | varchar(255) | Generic custom data | ||
generico5 | varchar(255) | Generic custom data | ||
update_time | timestamp | Last update timestamp |
Calls Detail
Table: ast_cdr_YYYYMM
Primary keys: uniqueid
, id_node
Field | Type | Description | Note | Default |
---|---|---|---|---|
uniqueid | char(50) | Unique call id (Unix timestamp) | ||
id_node | int(3) | node id | When the call is transferred, multiple records are created with the same uniqueid and increasing id_node values. The value 99 indicates the record relative to the end of the call. | |
subevent | int(11) | * |
||
subevent_digit | char(80) | * |
||
current_uniqueid | char(50) | * |
||
channel | varchar(255) | Identification of the SIP channel related to the call | ||
dstchannel | varchar(255) | Identifier of the SIP channel to which the call is transferred | ||
datainizio | timestamp | Call start date | ||
datarisposta | timestamp | Call answer date | ||
clid | char(80) | Caller Line IDentification | ||
user_clid | char(50) | Calling TVox user username | ||
sipcallid_clid | varchar(128) | * |
||
exten_type_clid | enum | clid exten type | SIP , MCS_SIP , MCS_APP , EXTERNAL , WEBRTC |
|
exten_clid | char(50) | * |
||
access_code | varchar(10) | Call access code | ||
dnis | char(80) | Called number = Direct Number Information Service | ||
user_dnis | char(50) | Username of the called TVox user | ||
sipcallid_dnis | varchar(128) | * |
||
exten_type_dnis | enum | dnis exten type | SIP , MCS_SIP , MCS_APP , EXTERNAL , WEBRTC |
|
exten_dnis | char(50) | * |
||
linea | varchar(100) | Identification code of the trunk engaged in the call | ||
durata | int(10) | Total call duration | ||
durata_costo | int(10) | Duration of the call that made the cost | ||
commessa | varchar(1024) | * |
||
id_centrale | int(10) | TVox identification code | ||
transfer | char(80) | Telephone number to which the call was transferred | ||
user_transfer | char(50) | Username TVox user to whom the call was transferred | ||
privata | char(50) | Identifies whether a call is private | ||
tipo | char(10) | Type of call | 0 = internal; 1 = outbound; 2 = inbound; 3 = trunk-in-to-trunk-out; 4 = trunk-out-to-trunk-out; 5 = trunk-in-to-trunk-in; 9 = SMS outbound; 11 = FAX internal; 12 = FAX outbound; 13 = FAX inbound; |
|
stato | varchar(100) | call status | NOANSWER , BUSY , FAILED , ANSWER , SUCCESS , TIMEOUT |
|
call_service_status | varchar(100) | Final call status where applicable | ||
webrtc_status_clid | enum | * |
OK , ERROR_ICE , ERROR_DTLS , ERROR_MEDIA , ERROR_CONNECTIVITY , ERROR_BAD_MEDIA |
|
janus_sessionid_clid | varchar(128) | * |
||
janus_handleid_clid | varchar(128) | * |
||
webrtc_status_dnis | enum | OK , ERROR_ICE , ERROR_DTLS , ERROR_MEDIA , ERROR_CONNECTIVITY , ERROR_BAD_MEDIA |
||
janus_sessionid_dnis | varchar(128) | * |
||
janus_handleid_dnis | varchar(128) | * |
||
abilitazione | int(10) | Enable code used for the outgoing call | ||
outbound_route | int(10) | Outbound rule code used for the outgoing call | ||
auth_code | char(50) | Username of the user who called using the authorization code | ||
contatore | int(11) | counter |
IVR Calls Detail
Table: ast_ivr_records_bis_yyyymm
Primary keys: idcall
, passaggio
, nodo
, passo
Field | Type | Description | Note | Default |
---|---|---|---|---|
idcall | varchar(50) | Unique call identifier (unix timestamp) | ||
passaggio | timestamp | Transit instant in the IVR node | ||
nodo | int(5) | Node ID | ||
passo | int(5) | Identification of the step in the node | ||
durata | int(11) | Total time spent in the current node | ||
servizio | varchar(30) | Service code associated with the call | ||
ntel | varchar(20) | * |
||
digit | varchar(20) | Any Digit selected in the current node | ||
timeout | int(1) | Indicates whether the call has passed the possible timeout period in the node without making any choice | ||
invalid | int(1) | Indicates whether the call registered an invalid choice among those requested in the current node | ||
retry | int(1) | * |
||
label | varchar(100) | * |
||
action | varchar(10) | Code of the action performed on the current node | ||
qi_evalutation | varchar(100) | Survey ID | ||
qi_service | varchar(30) | Identification of the service associated with the survey | ||
qi_evalutation_min | varchar(100) | Minimum value required by the survey | ||
qi_evalutation_max | varchar(100) | Maximum value required by the survey |
Callback Service Calls
Table: ast_calls_callback_yyyymm
Key: id
Field | Type | Description | Note | Default |
---|---|---|---|---|
id | char(36) | Record identifier | ||
score | int(11) | Score of the record, determines its priority and order of display | ||
firstCallId | char(100) | Id of the service call that generated the record | ||
closeCallId | char(100) | Id of the incoming or outgoing call that determined closed the record | ||
service | char(30) | Code of the called service | ||
type | enum | * |
IVR , WEB |
|
escalation_time | datetime(4) | * |
||
solution_time | datetime(4) | * |
||
remove_time | datetime(4) | * |
||
contact_uid_generated | varchar(255) | Indexing support column | ||
contact_id | varchar(40) | Uid of the calling contact | ||
contact_username | varchar(255) | Username of the calling internal contact | ||
contact_value | varchar(255) | Caller number for contacts not mapped in the address book | ||
contact_type | enum | Type of the calling contact | USER , SERVICE , SHORT_NUMBER , EXTERNAL_ITEM , EXTERNAL_ORGANIZATION , PERSONAL_ITEM , UNKNOWN , ANONYMOUS |
|
contact_last_number | varchar(255) | Number of the user's last call | ||
start_time | datetime(4) | Start time of the first callback request | ||
last_received_time | datetime(4) | Instant of the last call received by the customer | ||
last_recall_time | datetime(4) | Moment of the last attempt made by the operator | ||
update_time | datetime(4) | Last update of the callback request | ||
close_time | datetime(4) | Closing moment | ||
owner | varchar(255) | Operator username that is handling the call | ||
owner_retry | int(11) | Number of callback attempts made by operators | ||
user_retry | int(11) | Number of callback attempts made by the contact | ||
status | enum | Status of the callback request | NEW , LOCKED , UNLOCKED , CLOSED |
|
closed_result | enum | Reason for closing the record | SUCCESS , DELETED_BY_AGENT , EXPIRED , RETRY_EXCEEDED , CONTACT_RECALL , SUCCESS_FROM_ABANDONED , DELETED_BY_AGENT_FROM_ABANDONED |
|
last_recall_result_code | varchar(100) | Result of the last callback made by the operator | ||
last_recall_owner | varchar(255) | Last operator who managed the record | ||
note | text | Notes left by the operator |
Abandoned Service Calls
Table: ast_calls_abandoned_yyyymm
Key: id
Field | Type | Description | Note | Default |
---|---|---|---|---|
id | char(36) | Record identifier | ||
score | int(11) | Score of the record, determines its priority and order of display | ||
firstCallId | char(100) | Id of the service call that generated the record | ||
closeCallId | char(100) | Id of the incoming or outgoing call that determined closed the record | ||
service | char(30) | Code of the called service | ||
contact_uid_generated | varchar(255) | Indexing support column | ||
contact_id | varchar(40) | Uid of the calling contact | ||
contact_username | varchar(255) | Username of the calling internal contact | ||
contact_value | varchar(255) | Caller number for contacts not mapped in the address book | ||
contact_type | enum | Type of the calling contact | USER , SERVICE , SHORT_NUMBER , EXTERNAL_ITEM , EXTERNAL_ORGANIZATION , PERSONAL_ITEM , UNKNOWN , ANONYMOUS |
|
contact_last_number | varchar(255) | Number of the user's last call | ||
start_time | datetime(4) | Start time of the first abandoned call | ||
last_received_time | datetime(4) | Instant of the last call received by the customer | ||
last_recall_time | datetime(4) | Moment of the last attempt made by the operator | ||
update_time | datetime(4) | Last update of the abandoned call | ||
close_time | datetime(4) | Closing moment | ||
owner | varchar(255) | Operator username that is handling the call | ||
owner_retry | int(11) | Number of callback attempts made by operators | ||
user_retry | int(11) | Number of callback attempts made by the contact | ||
status | enum | Status of the abandoned call | NEW , LOCKED , UNLOCKED , CLOSED |
|
closed_result | enum | Reason for closing the record | SUCCESS , DELETED_BY_AGENT , EXPIRED , RETRY_EXCEEDED , CONTACT_RECALL , SUCCESS_FROM_CALLBACK , DELETED_BY_AGENT_FROM_CALLBACK |
|
last_recall_result_code | varchar(100) | Result of the last callback made by the operator | ||
last_recall_owner | varchar(255) | Last operator who managed the record | ||
note | text | Notes left by the operator |
Calls Recordings
Table: smartrec_yyyymm
Key: filewave
Field | Type | Description | Note | Default |
---|---|---|---|---|
data | date | Date of the call | ||
ora | varchar(7) | Time of the call | ||
id_sito | int(11) | * |
||
codiceagente | varchar(255) | Agent's username | ||
sito_agente | varchar(10) | * |
||
dnis | varchar(20) | Direct Number Information System | called number | |
clid | varchar(20) | Caller Line Identification | caller number | |
interno | varchar(32) | Extension where the Agent is logged in | ||
idchiamata | int(11) | * |
||
note | text | Notes associated with the call | ||
filewave | varchar(255) | Name of the call recording .wave file | ||
databackup | date | Registration filing date | ||
labelbackup | varchar(50) | Name of the registration archive | ||
durata | int(11) | Duration of registration | ||
tipo | char(1) | Type of call | I = Inbound, O = Outbound) |
|
dati_esterni | varchar(255) | Data collected by third party applications | ||
callhandle | varchar(255) | Unique identifier for call | ||
callhandle_linked | varchar(255) | * |
||
servizio | varchar(50) | Service Code | ||
sito_servizio | varchar(10) | * |
||
is_file_moved_on_remote_disk | int(11) | * |
||
is_file_removed | int(11) | * |
||
type | enum | Call recording type | SERVICE , ON_DEMAND , AUTOMATIC |
Outbound Campaign Calls
Table: ast_pd_history_yyyymm
Key: id
, item_number
, campagna
, lista
, insert_time
Field | Type | Description | Note | Default |
---|---|---|---|---|
insert_time | timestamp | Instant insertion of the record | unix timestamp | |
id | int(11) unsigned | Contact identifier read from the ast_pd_interface table | ||
item_number | int(11) unsigned | Contact telephone number of the contact read from the ast_pd_interface table | ||
campagna | int(11) unsigned | Outbound campaign code | ||
lista | int(11) unsigned | List code associated with the Outbound campaign | ||
phone_number | varchar(255) | phone number dialed | ||
stato | int(11) | call status | Initial state: 0 = "record to be processed" - Intermediate states: 1 = "call in progress", 4 = "ringing contact", 5 = "call in management to the queuing service", 10 = "call during distribution to operator / agent" - Final call states: 6 = "successfully completed", 7 = "ended unsuccessfully", 8 = "ended with generic error" |
|
call_result | varchar(20) | Outcome code of the call | ANSWER - the contact answered the call; BUSY - the contact is busy; NOANSWER - the contacted number has not been answered; |
|
tentativi | int(2) | Number of attempts logged for the current contact | ||
dial_sched_time | int(11) unsigned | * |
||
call_time | int(11) unsigned | * |
||
data | varchar(50) | Data needed for the agent's screen popup which are read from the ast_pd_interface table | ||
canale | varchar(50) | Identifier of the SIP channel from which the call entered | ||
run_id | int(11) | * |
||
contact_priority | int(11) | * |
||
contact_uuid | varchar(40) | * |
||
tentativi_NOANSWER | int(2) | number of attempts that resulted in "call not answered" | ||
tentativi_CANCEL | int(2) | number of attempts that resulted in "Call rejected" | ||
tentativi_BUSY | int(2) | number of attempts that resulted in "Call busy" | ||
tentativi_TVOX_CLOSED | int(2) | number of attempts that resulted in "Call closed by TVox" | ||
tentativi_AMD | int(2) | not in use |
||
tentativi_CONGESTION | int(2) | number of attempts that resulted in a failed call due to congestion |
Contacts
Table: t4you_global_addressbook
Primary keys: uuid
, owner
Field | Type | Description | Note | Default |
---|---|---|---|---|
owner | char(100) | username of the user to whom the contact belongs, if the contact data_source is PERSONAL | ||
uuid | varchar(100) | contact unique id | ||
resource | varchar(255) | * |
||
backend_source | varchar(100) | * |
||
backend_config_name | varchar(255) | id of the address book to which the contact belongs | ||
uuid_source | varchar(100) | contact id on source | ||
source_origin_type | enum | * |
SOURCE_SYNC , DIRECT_SYNC , T4YOU_USER_AGENT , MC0 , MC1 , MC2 , MC3 , MC1000 , MC1001 , MC1002 , MC1003 , MC1004 , MC1005 |
|
vcard_origin | text | * |
||
fullname | text | contact full name | ||
data_source | enum | the contact type | PERSONAL , EXTERNAL , INTERNAL |
EXTERNAL |
surname | text | * |
the contact surname | |
name | text | the contact name | ||
other_name | text | the contact other name | ||
customer_code | varchar(255) | the contact customer code | ||
company | text | the contact company | ||
department | text | the contact department | ||
street | text | the contact street | ||
city | text | the contact city | ||
district | text | the contact district | ||
cap | text | the contact cap | ||
country | text | the contact country | ||
category | text | the contact category | ||
note | mediumtext | * |
||
vip | tinyint(1) | if is a vip contact | 0 | |
presence | tinyint(1) | if the contact has enabled presence | 0 | |
kind | enum | the contact type | org , location , group , individual , thing |
individual |
accept_census | tinyint(1) | if contact accept census | 1 | |
img_retriver | varchar(50) | * |
||
img | varchar(50) | * |
||
site | varchar(255) | the conatct site | ||
role | varchar(255) | the conatct role | ||
groups | text | * |
||
persistent_interactions | tinyint(1) | * |
1 |
|
company_uuid_source | varchar(100) | source id of the company to which the contact belongs | ||
company_uuid | varchar(100) | id of the company to which the contact belongs | ||
nota_agente | text | note entered by a operator on the contact | ||
nps | int(11) | last nps vote entered by the contact who called | ||
tel_value_1 | varchar(255) | contact telephone number | ||
tel_type_1 | enum | contact tel_value_1 type | FAX , HOME , CELL , WORK , CELL_WORK , FAX_WORK , FAX_HOME , CELL_HOME , MAIN , OTHER |
|
tel_value_2 | varchar(255) | contact telephone number | ||
tel_type_2 | enum | contact tel_value_2 type | FAX , HOME , CELL , WORK , CELL_WORK , FAX_WORK , FAX_HOME , CELL_HOME , MAIN , OTHER |
|
tel_value_3 | varchar(255) | contact telephone number | ||
tel_type_3 | enum | contact tel_value_3 type | FAX , HOME , CELL , WORK , CELL_WORK , FAX_WORK , FAX_HOME , CELL_HOME , MAIN , OTHER |
|
tel_value_4 | varchar(255) | contact telephone number | ||
tel_type_4 | enum | contact tel_value_4 type | FAX , HOME , CELL , WORK , CELL_WORK , FAX_WORK , FAX_HOME , CELL_HOME , MAIN , OTHER |
|
tel_value_5 | varchar(255) | contact telephone number | ||
tel_type_5 | enum | contact tel_value_5 type | FAX , HOME , CELL , WORK , CELL_WORK , FAX_WORK , FAX_HOME , CELL_HOME , MAIN , OTHER |
|
tel_value_6 | varchar(255) | contact telephone number | ||
tel_type_6 | enum | contact tel_value_6 type | FAX , HOME , CELL , WORK , CELL_WORK , FAX_WORK , FAX_HOME , CELL_HOME , MAIN , OTHER |
|
tel_value_7 | varchar(255) | contact telephone number | ||
tel_type_7 | enum | contact tel_value_7 type | FAX , HOME , CELL , WORK , CELL_WORK , FAX_WORK , FAX_HOME , CELL_HOME , MAIN , OTHER |
|
tel_value_8 | varchar(255) | contact telephone number | ||
tel_type_8 | enum | contact tel_value_8 type | FAX , HOME , CELL , WORK , CELL_WORK , FAX_WORK , FAX_HOME , CELL_HOME , MAIN , OTHER |
|
tel_value_9 | varchar(255) | contact telephone number | ||
tel_type_9 | enum | contact tel_value_9 type | FAX , HOME , CELL , WORK , CELL_WORK , FAX_WORK , FAX_HOME , CELL_HOME , MAIN , OTHER |
|
tel_value_10 | varchar(255) | contact telephone number | ||
tel_type_10 | enum | contact tel_value_10 type | FAX , HOME , CELL , WORK , CELL_WORK , FAX_WORK , FAX_HOME , CELL_HOME , MAIN , OTHER |
|
mail_value_1 | varchar(255) | contact email address | ||
mail_type_1 | enum | contact mail_value_1 type | INTERNET_WORK , INTERNET_HOME |
|
mail_value_2 | varchar(255) | contact email address | ||
mail_type_2 | enum | contact mail_value_2 type | INTERNET_WORK , INTERNET_HOME |
|
mail_value_3 | varchar(255) | contact email address | ||
mail_type_3 | enum | contact mail_value_3 type | INTERNET_WORK , INTERNET_HOME |
|
mail_value_4 | varchar(255) | contact email address | ||
mail_type_4 | enum | contact mail_value_4 type | INTERNET_WORK , INTERNET_HOME |
|
mail_value_5 | varchar(255) | contact email address | ||
mail_type_5 | enum | contact mail_value_5 type | INTERNET_WORK , INTERNET_HOME |
|
mail_value_6 | varchar(255) | contact email address | ||
mail_type_6 | enum | contact mail_value_6 type | INTERNET_WORK , INTERNET_HOME |
|
mail_value_7 | varchar(255) | contact email address | ||
mail_type_7 | enum | contact mail_value_7 type | INTERNET_WORK , INTERNET_HOME |
|
mail_value_8 | varchar(255) | contact email address | ||
mail_type_8 | enum | contact mail_value_8 type | INTERNET_WORK , INTERNET_HOME |
|
mail_value_9 | varchar(255) | contact email address | ||
mail_type_9 | enum | contact mail_value_9 type | INTERNET_WORK , INTERNET_HOME |
|
mail_value_10 | varchar(255) | contact email address | ||
mail_type_10 | enum | contact mail_value_10 type | INTERNET_WORK , INTERNET_HOME |
|
web_value_1 | text | contact web site | ||
web_type_1 | enum | web_value_1 type | WORK , HOME |
|
web_value_2 | text | contact web site | ||
web_type_2 | enum | web_value_2 type | WORK , HOME |
|
web_value_3 | text | contact web site | ||
web_type_3 | enum | web_value_3 type | WORK , HOME |
|
custom_1 | text | general purpose custom field | ||
custom_2 | text | general purpose custom field | ||
custom_3 | text | general purpose custom field | ||
custom_4 | text | general purpose custom field | ||
custom_5 | text | general purpose custom field | ||
custom_6 | text | general purpose custom field | ||
custom_7 | text | general purpose custom field | ||
custom_8 | text | general purpose custom field | ||
custom_9 | text | general purpose custom field | ||
custom_10 | text | general purpose custom field |
Multichannel Contact Relationships
Table: t4you_multichannel_addressbook
Primary keys: channel_id
, backend_config_name
, channel_data
, contact_uuid
, contact_owner
Field | Type | Description | Note | Default |
---|---|---|---|---|
channel_id | int(11) | the channel id | ||
channel_data | varchar(255) | channel contact id | ||
contact_owner | varchar(100) | contact owner | ||
contact_uuid | varchar(100) | t4you uuid | FOREIGN KEY t4you_global_addressbook |
|
backend_config_name | varchar(255) | backend config name | ||
created_time | timestamp | when it was created | ||
to_delete | tinyint(1) | manages contacts that have been modified and must not be deleted at the new sync | 1 |
Tickets
Table: tickets
Primary keys: id
Foreign keys: group_id
, owner_id
, customer_id
, created_by_id
, updated_by_id
Field | Type | Description | Note | Default |
---|---|---|---|---|
id | int(11) | ticket id | ||
group_id | int(11) | the ticket service id | FOREIGN KEY groups |
|
owner_id | int(11) | the ticket owner (operator) id | FOREIGN KEY users |
|
customer_id | int(11) | the customer id from which the ticket was opened | FOREIGN KEY users |
|
state_id | int(11) | the ticket state id | Possible values:1 - new,2 - open,3 - pending reminder,4 - pending action,5 - closed,6 - merged |
|
priority_id | int(11) | the ticket priority id | Possible values: 1 - low, 2 - normal, 3 - high |
|
number | varchar(60) | the ticket number | ||
title | varchar(250) | the ticket title | ||
first_response_at | timestamp(3) | date on which the ticket received the first response | ||
first_response_escalation_at | timestamp(3) | date on which first response SLA expires | ||
first_response_in_min | int(11) | after how many minutes was the first answer given | ||
first_response_diff_in_min | int(11) | minutes difference from the first response SLA | ||
close_at | timestamp(3) | date on which the ticket the ticket was closed | ||
close_escalation_at | timestamp(3) | date on which close SLA expires | ||
close_in_min | int(11) | after how many minutes was closed the ticket | ||
close_diff_in_min | int(11) | minutes difference from the close SLA | ||
update_escalation_at | timestamp(3) | date when update SLA expires | ||
update_in_min | int(11) | after how many minutes was updated the ticket | ||
update_diff_in_min | int(11) | minutes difference from the update SLA | ||
last_contact_at | timestamp(3) | the date of the last operation on the ticket | ||
last_contact_agent_at | timestamp(3) | the date of the last message sent by the operator | ||
last_contact_customer_at | timestamp(3) | the date of the last message sent by the customer | ||
last_owner_update_at | timestamp(3) | the date of the last owner update | ||
create_article_type_id | int(11) | the type of the first ticket article | Possible values: 1 - email2 - sms3 - chat4 - fax5 - phone6 - twitter status7 - twitter direct-message8 - facebook feed post9 - facebook feed comment10 - note11 - web12 - telegram personal-message |
|
create_article_sender_id | int(11) | the type of the first ticket article sender | Possible values: 1 - Agent2 - Customer3 - System |
|
article_count | int(11) | number of ticket articles | ||
escalation_at | timestamp(3) | the most upcoming SLA date | ||
pending_time | timestamp(3) | the last date the ticket was pending | ||
time_unit | decimal(6,2) | minutes/100 of all article working time (addition of all Ticket Time Accountings) | ||
created_at | datetime | date when ticket was created | ||
updated_at | datetime(3) | last date when ticket was updated | ||
created_by_id | int(11) | the user who created the ticket | FOREIGN KEY users |
|
updated_by_id | int(11) | the last user who updated the ticket | FOREIGN KEY users |
|
t_custom_01 | varchar(120) | general purpose custom field | ||
t_custom_02 | varchar(120) | general purpose custom field | ||
t_custom_03 | varchar(120) | general purpose custom field | ||
t_custom_04 | varchar(120) | general purpose custom field | ||
t_custom_05 | varchar(120) | general purpose custom field | ||
t_custom_06 | varchar(120) | general purpose custom field | ||
t_custom_07 | varchar(120) | general purpose custom field | ||
t_custom_08 | varchar(120) | general purpose custom field | ||
t_custom_09 | varchar(120) | general purpose custom field | ||
t_custom_10 | varchar(120) | general purpose custom field | ||
t_custom_11 | varchar(255) | general purpose custom field | ||
t_custom_12 | varchar(255) | general purpose custom field | ||
t_custom_13 | varchar(255) | general purpose custom field | ||
t_custom_14 | varchar(255) | general purpose custom field | ||
t_custom_15 | varchar(255) | general purpose custom field | ||
t_custom_16 | varchar(255) | general purpose custom field | ||
t_custom_17 | varchar(255) | general purpose custom field | ||
t_custom_18 | varchar(255) | general purpose custom field | ||
t_custom_19 | varchar(255) | general purpose custom field | ||
t_custom_20 | varchar(255) | general purpose custom field | ||
t_custom_21 | varchar(120) | general purpose custom field | ||
t_custom_22 | varchar(120) | general purpose custom field | ||
t_custom_23 | varchar(120) | general purpose custom field | ||
t_custom_24 | varchar(120) | general purpose custom field | ||
t_custom_25 | varchar(120) | general purpose custom field | ||
t_custom_26 | varchar(120) | general purpose custom field | ||
t_custom_27 | varchar(120) | general purpose custom field | ||
t_custom_28 | varchar(120) | general purpose custom field | ||
t_custom_29 | varchar(120) | general purpose custom field | ||
t_custom_30 | varchar(120) | general purpose custom field | ||
t_custom_31 | varchar(120) | general purpose custom field | ||
t_custom_32 | varchar(120) | general purpose custom field | ||
t_custom_33 | varchar(120) | general purpose custom field | ||
t_custom_34 | varchar(120) | general purpose custom field | ||
t_custom_35 | varchar(120) | general purpose custom field | ||
t_custom_36 | varchar(120) | general purpose custom field | ||
t_custom_37 | varchar(120) | general purpose custom field | ||
t_custom_38 | varchar(120) | general purpose custom field | ||
t_custom_39 | varchar(120) | general purpose custom field | ||
t_custom_40 | varchar(120) | general purpose custom field | ||
t_custom_41 | varchar(120) | general purpose custom field | ||
t_custom_42 | varchar(120) | general purpose custom field | ||
t_custom_43 | varchar(120) | general purpose custom field | ||
t_custom_44 | varchar(120) | general purpose custom field | ||
t_custom_45 | varchar(120) | general purpose custom field | ||
t_custom_46 | varchar(120) | general purpose custom field | ||
t_custom_47 | varchar(120) | general purpose custom field | ||
t_custom_48 | varchar(120) | general purpose custom field | ||
t_custom_49 | varchar(120) | general purpose custom field | ||
t_custom_50 | varchar(120) | general purpose custom field | ||
t_custom_51 | varchar(120) | general purpose custom field | ||
t_custom_52 | varchar(120) | general purpose custom field | ||
t_custom_53 | varchar(120) | general purpose custom field | ||
t_custom_54 | varchar(120) | general purpose custom field | ||
t_custom_55 | varchar(120) | general purpose custom field | ||
t_custom_56 | varchar(120) | general purpose custom field | ||
t_custom_57 | varchar(120) | general purpose custom field | ||
t_custom_58 | varchar(120) | general purpose custom field | ||
t_custom_59 | varchar(120) | general purpose custom field | ||
t_custom_60 | varchar(120) | general purpose custom field | ||
t_custom_61 | varchar(120) | general purpose custom field | ||
t_custom_62 | varchar(120) | general purpose custom field | ||
t_custom_63 | varchar(120) | general purpose custom field | ||
t_custom_64 | varchar(120) | general purpose custom field | ||
t_custom_65 | varchar(120) | general purpose custom field | ||
t_custom_66 | varchar(120) | general purpose custom field | ||
t_custom_67 | varchar(120) | general purpose custom field | ||
t_custom_68 | varchar(120) | general purpose custom field | ||
t_custom_69 | varchar(120) | general purpose custom field | ||
t_custom_70 | varchar(120) | general purpose custom field | ||
t_custom_71 | varchar(120) | general purpose custom field | ||
t_custom_72 | varchar(120) | general purpose custom field | ||
t_custom_73 | varchar(120) | general purpose custom field | ||
t_custom_74 | varchar(120) | general purpose custom field | ||
t_custom_75 | varchar(120) | general purpose custom field | ||
t_custom_76 | varchar(120) | general purpose custom field | ||
t_custom_77 | varchar(120) | general purpose custom field | ||
t_custom_78 | varchar(120) | general purpose custom field | ||
t_custom_79 | varchar(120) | general purpose custom field | ||
t_custom_80 | varchar(120) | general purpose custom field | ||
t_custom_81 | varchar(120) | general purpose custom field | ||
t_custom_82 | varchar(120) | general purpose custom field | ||
t_custom_83 | varchar(120) | general purpose custom field | ||
t_custom_84 | varchar(120) | general purpose custom field | ||
t_custom_85 | varchar(120) | general purpose custom field | ||
t_custom_86 | varchar(120) | general purpose custom field | ||
t_custom_87 | varchar(120) | general purpose custom field | ||
t_custom_88 | varchar(120) | general purpose custom field | ||
t_custom_89 | varchar(120) | general purpose custom field | ||
t_custom_90 | varchar(120) | general purpose custom field | ||
t_custom_91 | varchar(120) | general purpose custom field | ||
t_custom_92 | varchar(120) | general purpose custom field | ||
t_custom_93 | varchar(120) | general purpose custom field | ||
t_custom_94 | varchar(120) | general purpose custom field | ||
t_custom_95 | varchar(120) | general purpose custom field | ||
t_custom_96 | varchar(120) | general purpose custom field | ||
t_custom_97 | varchar(120) | general purpose custom field | ||
t_custom_98 | varchar(120) | general purpose custom field | ||
t_custom_99 | varchar(120) | general purpose custom field | ||
t_custom_date_01 | datetime | date general purpose custom field | ||
t_custom_date_02 | datetime | date general purpose custom field | ||
t_custom_date_03 | datetime | date general purpose custom field | ||
t_custom_date_04 | datetime | date general purpose custom field | ||
t_custom_date_05 | datetime | date general purpose custom field | ||
t_custom_date_06 | datetime | date general purpose custom field | ||
t_custom_date_07 | datetime | date general purpose custom field | ||
t_custom_date_08 | datetime | date general purpose custom field | ||
t_custom_date_09 | datetime | date general purpose custom field | ||
t_custom_date_10 | datetime | date general purpose custom field | ||
t_custom_date_11 | datetime | date general purpose custom field | ||
t_custom_date_12 | datetime | date general purpose custom field | ||
t_custom_date_13 | datetime | date general purpose custom field | ||
t_custom_date_14 | datetime | date general purpose custom field | ||
t_custom_date_15 | datetime | date general purpose custom field | ||
t_custom_date_16 | datetime | date general purpose custom field | ||
t_custom_date_17 | datetime | date general purpose custom field | ||
t_custom_date_18 | datetime | date general purpose custom field | ||
t_custom_date_19 | datetime | date general purpose custom field | ||
t_custom_date_20 | datetime | date general purpose custom field | ||
t_custom_date_21 | datetime | date general purpose custom field | ||
t_custom_date_22 | datetime | date general purpose custom field | ||
t_custom_date_23 | datetime | date general purpose custom field | ||
t_custom_date_24 | datetime | date general purpose custom field | ||
t_custom_date_25 | datetime | date general purpose custom field | ||
t_custom_date_26 | datetime | date general purpose custom field | ||
t_custom_date_27 | datetime | date general purpose custom field | ||
t_custom_date_28 | datetime | date general purpose custom field | ||
t_custom_date_29 | datetime | date general purpose custom field | ||
t_custom_date_30 | datetime | date general purpose custom field | ||
t_custom_date_31 | datetime | date general purpose custom field | ||
t_custom_date_32 | datetime | date general purpose custom field | ||
t_custom_date_33 | datetime | date general purpose custom field | ||
t_custom_date_34 | datetime | date general purpose custom field | ||
t_custom_date_35 | datetime | date general purpose custom field | ||
t_custom_date_36 | datetime | date general purpose custom field | ||
t_custom_date_37 | datetime | date general purpose custom field | ||
t_custom_date_38 | datetime | date general purpose custom field | ||
t_custom_date_39 | datetime | date general purpose custom field | ||
t_custom_date_40 | datetime | date general purpose custom field | ||
t_custom_date_41 | datetime | date general purpose custom field | ||
t_custom_date_42 | datetime | date general purpose custom field | ||
t_custom_date_43 | datetime | date general purpose custom field | ||
t_custom_date_44 | datetime | date general purpose custom field | ||
t_custom_date_45 | datetime | date general purpose custom field | ||
t_custom_date_46 | datetime | date general purpose custom field | ||
t_custom_date_47 | datetime | date general purpose custom field | ||
t_custom_date_48 | datetime | date general purpose custom field | ||
t_custom_date_49 | datetime | date general purpose custom field |
Ticket Groups
Table: groups
Primary keys: id
Foreign keys: created_by_id
, updated_by_id
Field | Type | Description | Note | Default |
---|---|---|---|---|
id | int(11) | the group id | ||
email_address_id | int(11) | email address for incomig tickets | ||
name | varchar(160) | the group name | ||
follow_up_possible | varchar(100) | if follow up is enabled | yes |
|
follow_up_assignment | tinyint(1) | follwo up assignment value | 1 |
|
active | tinyint(1) | if group is active | 1 | |
created_at | datetime | creation date | ||
updated_at | datetime(3) | last update date | ||
created_by_id | int(11) | the user who created the group | FOREIGN KEY users |
|
updated_by_id | int(11) | the last user who updated the group | FOREIGN KEY users |
Ticket Time Accountings
Table: ticket_time_accountings
Primary keys: id
Foreign keys: ticket_id
, ticket_article_id
, created_by_id
Field | Type | Description | Note | Default |
---|---|---|---|---|
id | int(11) | time accounting unique id | ||
ticket_id | int(11) | ticket id | FOREIGN KEY tickets |
|
ticket_article_id | int(11) | ticket article id | FOREIGN KEY ticket_articles |
|
time_unit | decimal(6,2) | working time spent on the article (secods/100) | ||
created_at | datetime | creation date | ||
updated_at | datetime(3) | last update date | ||
created_by_id | int(11) | the user who created the time accounting | FOREIGN KEY users |
Ticket Groups Users
Table: groups_users
Foreign keys: user_id
, group_id
Field | Type | Description | Note | Default |
---|---|---|---|---|
user_id | int(11) | user id | FOREIGN KEY users |
|
group_id | int(11) | group id | FOREIGN KEY groups |
Ticket Links
Table: links
Primary keys: id
Field | Type | Description | Note | Default |
---|---|---|---|---|
id | int(11) | link id | ||
link_type_id | int(11) | link type | Possible values:1 - normal,2 - parent,3 - child |
|
link_object_source_id | int(11) | link source type | ||
link_object_source_value | int(11) | link source | ||
link_object_target_id | int(11) | link target type | ||
link_object_target_value | int(11) | link target | ||
created_at | datetime | creation date | ||
updated_at | datetime(3) | last update date |
Ticket Link Objects
Table: link_objects
Primary keys: id
Field | Type | Description | Note | Default |
---|---|---|---|---|
id | int(11) | link objects id | ||
name | varchar(250) | link object name | ||
active | tinyint(1) | if link objects is enabled | 1 |
|
created_at | datetime | creation date | ||
updated_at | datetime(3) | last update date |
Ticket Articles
Table: ticket_articles
Primary keys: id
Foreign keys: ticket_id
, created_by_id
, updated_by_id
Field | Type | Description | Note | Default |
---|---|---|---|---|
id | int(11) | icket article id | ||
ticket_id | int(11) | id of associated ticket | FOREIGN KEY tickets |
|
sender_id | int(11) | sender type id | Possible values: 1 - Agent,2 - Customer,3 - System |
|
type_id | int(11) | article tipe id | Possible values: 1 - email,2 - sms,3 - chat,4 - fax,5 - phone,6 - twitter status,7 - twitter direct-message,8 - facebook feed post,9 - facebook feed comment,10 - note,11 - web,12 - telegram personal-message |
|
from | varchar(3000) | the email address, and, optionally, the name of the author | ||
to | varchar(3000) | the email address, and optionally name of the message recipient | ||
cc | varchar(3000) | carbon copyin | ||
subject | varchar(3000) | a brief summary of the topic of the message | ||
reply_to | varchar(300) | address should be used to reply to the message | ||
message_id | varchar(3000) | an automatic-generated field to prevent multiple deliveries and for reference in in_reply_to | ||
in_reply_to | varchar(3000) | message-id of the message this is a reply to, used to link related messages together, this field only applies to reply messages | ||
content_type | varchar(20) | the message content type | text/plain |
|
references | varchar(3200) | message-id of the message this is a reply to, and the message-id of the message the previous reply was a reply to, etc. | ||
body | longtext | the message body | ||
internal | tinyint(1) | id is internal article | 0 |
|
created_at | datetime | creation date | ||
updated_at | datetime(3) | last update date | ||
created_by_id | int(11) | the user who created the article | FOREIGN KEY users |
|
updated_by_id | int(11) | the last user who updated the article | FOREIGN KEY users |
Ticket Users
Table: users
Primary keys: id
Foreign keys: created_by_id
, updated_by_id
Field | Type | Description | Note | Default |
---|---|---|---|---|
id | int(11) | users id | ||
firstname | varchar(100) | first name | ||
lastname | varchar(100) | last name | ||
varchar(255) | ||||
web | varchar(100) | web site | ||
phone | varchar(100) | phone number | ||
fax | varchar(100) | fax number | ||
mobile | varchar(100) | mobile phone number | ||
department | varchar(200) | department | ||
street | varchar(120) | street address | ||
zip | varchar(100) | postal code | ||
city | varchar(100) | city | ||
country | varchar(100) | country | ||
address | varchar(500) | address | ||
vip | tinyint(1) | if is vip user | 0 | |
verified | tinyint(1) | if user is verified | 0 | |
active | tinyint(1) | if user is enabled | 1 | |
created_at | datetime | creation date | ||
updated_at | datetime(3) | last update date | ||
created_by_id | int(11) | the user who created the user | FOREIGN KEY users |
|
updated_by_id | int(11) | the last user who updated the user | FOREIGN KEY users |
|
t_custom_01 | varchar(120) | general purpose custom field | ||
t_custom_02 | varchar(120) | general purpose custom field | ||
t_custom_03 | varchar(120) | general purpose custom field | ||
t_custom_04 | varchar(120) | general purpose custom field | ||
t_custom_05 | varchar(120) | general purpose custom field | ||
t_custom_06 | varchar(255) | general purpose custom field | ||
t_custom_07 | varchar(255) | general purpose custom field | ||
t_custom_08 | varchar(255) | general purpose custom field | ||
t_custom_09 | varchar(255) | general purpose custom field | ||
t_custom_10 | varchar(255) | general purpose custom field |
Schema Types
This section documents the schema types of the TVox Data Model API.
Basic knowledge
Syntax | Description |
---|---|
Type! |
Type object is required |
[Type] |
List of Type objects |
[Type]! |
List of Type objects where at least one element is required, but this element can be null |
[Type!]! |
List of Type objects where at least one element is required and this element can not be null |
Query
List of queries to retrieve statistical data.
Field | Argument | Type | Description |
---|---|---|---|
inboundCall | [InboundInteraction!] | Get Inbound Service Call by ID. Result is the list of steps that make up the requested call. | |
id | String! | ||
inboundCalls | [[InboundInteraction!]!]! | Search Inbound Service Calls. Argument `search` is the object containing search criterias. Search criterias include time window (year, month), pagination and sorting. Result is the list of calls that respect search criteria; each call is in turn a list of steps that make up it. | |
search | SearchInteraction! | ||
inboundCallsCount | Int! | Count Inbound Service Calls. Argument `search` is the object containing search criterias. Search criterias include time window (year, month), pagination and sorting. Result is the 32-bit postive integer counting searched calls. | |
search | SearchInteraction! | ||
outboundCall | [OutboundInteraction!] | Get Outbound Service Call by ID. Result is the list of steps that make up the requested call. | |
id | String! | ||
outboundCalls | [[OutboundInteraction!]!]! | Search Outbound Service Calls. Argument `search` is the object containing search criterias. Search criterias include time window (year, month), pagination and sorting. Result is the list of calls that respect search criteria; each call is in turn a list of steps that make up it. | |
search | SearchOutboundInteraction! | ||
outboundCallsCount | Int! | Count Outbound Service Calls. Argument `search` is the object containing search criterias. Search criterias include time window (year, month), pagination and sorting. Result is the 32-bit postive integer counting searched calls. | |
search | SearchOutboundInteraction! | ||
inboundVideoCall | [InboundInteraction!] | Get Inbound Service Video Call by ID. Result is the list of steps that make up the requested video call. | |
id | String! | ||
inboundVideoCalls | [[InboundInteraction!]!]! | Search Inbound Service Video Calls. Argument `search` is the object containing search criterias. Search criterias include time window (year, month), pagination and sorting. Result is the list of video calls that respect search criteria; each video call is in turn a list of steps that make up it. | |
search | SearchInteraction! | ||
inboundVideoCallsCount | Int! | Count Inbound Service Video Calls. Argument `search` is the object containing search criterias. Search criterias include time window (year, month), pagination and sorting. Result is the 32-bit postive integer counting searched video calls. | |
search | SearchInteraction! | ||
inboundChat | [InboundInteraction!] | Get Inbound Service Chat by ID. Result is the list of steps that make up the requested chat. | |
id | String! | ||
inboundChats | [[InboundInteraction!]!]! | Search Inbound Service Chats. Argument `search` is the object containing search criterias. Search criterias include time window (year, month), pagination and sorting. Result is the list of chats that respect search criteria; each chat is in turn a list of steps that make up it. | |
search | SearchInteraction! | ||
inboundChatsCount | Int! | Count Inbound Service Chats. Argument `search` is the object containing search criterias. Search criterias include time window (year, month), pagination and sorting. Result is the 32-bit postive integer counting searched chats. | |
search | SearchTicket! | ||
addressBookContact | AddressBookContact! | Get an AddressBookContact by ID. Result an AddressBookContact with given id if exists. | |
uuid | String! | ||
addressBookContacts | [AddressBookContact!]! | Search AddressBookContacts. Argument `search` is the object containing search criterias. Search criterias include, pagination and sorting. Result is the list of AddressBookContacts that respect search criteria. | |
search | SearchAddressBookContact! | ||
addressBookContactCount | Int! | Count AddressBookContacts. Argument `search` is the object containing search criterias. Search criterias include pagination and sorting. Result is the 32-bit postive integer counting searched AddressBookContacts. | |
search | SearchAddressBookContact! | ||
advancedQuery | [OrderedMap!]! | Advanced query for **TVox**(_phone_, _video_, _chat_), **Support** and **Addressbook**. See the complete documentation for model details and query limitations. Argument `type` is used to select query source between TVox, Support and Addressbook. Argument `query` is a string containing the advanced query to be executed. Update, insert or delete actions are not allowed. Result is represented by a list of objects where the keys are the names of the selected fields and values are strings. | |
type | AdvancedQueryType | ||
query | String! |
Objects
AddressBookContact
The AddressBookContact
type represents a single contact from an address-book
Field | Argument | Type | Description |
---|---|---|---|
uuid | String | the `uuid` represents the uuid of an addressbook contact | |
fullName | String | the `fullName` represents the full name of an addressbook contact | |
name | String | the `name` represents the name of an addressbook contact | |
surname | String | the `surname` represents the surname of an addressbook contact | |
contactType | AddressBookContactType | the `contactType` represents the contact type of an addressbook contact | |
otherName | String | the `otherName` represents the other Name of an addressbook contact | |
organization | AddressBookContactBase | the `organization` represents the organization of an addressbook contact | |
department | String | the `department` represents the department of an addressbook contact | |
street | String | the `street` represents the street of an addressbook contact | |
city | String | the `city` represents the city of an addressbook contact | |
district | String | the `district` represents the district of an addressbook contact | |
cap | String | the `cap` represents the cap of an addressbook contact | |
country | String | the `country` represents the country of an addressbook contact | |
customerCode | String | the `customerCode` represents the customer code of an addressbook contact | |
category | String | the `category` represents the category of an addressbook contact | |
note | String | the `note` represents the note of an addressbook contact | |
vip | Boolean | the `vip` if the contact is vip one | |
nps | Int | the `nps` represents the last nps vote entered by the contact | |
role | String | the `role` represents the role of an addressbook contact | |
tel | [AddressBookTel!] | the `tel` represents the tel of an addressbook contact | |
[AddressBookMail!] | the `mail` represents the mail of an addressbook contact | ||
web | [AddressBookWeb!] | the `web` represents the web of an addressbook contact | |
site | String | the `site` represents the site of an addressbook contact | |
custom_1 | String | general purpouse custom field | |
custom_2 | String | general purpouse custom field | |
custom_3 | String | general purpouse custom field | |
custom_4 | String | general purpouse custom field | |
custom_5 | String | general purpouse custom field | |
custom_6 | String | general purpouse custom field | |
custom_7 | String | general purpouse custom field | |
custom_8 | String | general purpouse custom field | |
custom_9 | String | general purpouse custom field | |
custom_10 | String | general purpouse custom field |
AddressBookContactBase
Field | Argument | Type | Description |
---|---|---|---|
uuid | String | uuid of an addressbook contact | |
fullName | String | fullName of an addressbook contact |
AddressBookMail
The AddressBookMail
type represents an adressbook contact email and its type
Field | Argument | Type | Description |
---|---|---|---|
value | String | The `value` type represents an adressbook contact email | |
type | AddressBookMailType | The `type` type represents an adressbook contact email type |
AddressBookTel
The AddressBookTel
type represents an adressbook contact telephone number and its type
Field | Argument | Type | Description |
---|---|---|---|
value | String | The `value` type represents an adressbook contact telephone number | |
type | AddressBookTelType | The `type` type represents an adressbook contact telephone number type |
AddressBookWeb
The AddressBookWeb
type represents an adressbook contact web site and its type
Field | Argument | Type | Description |
---|---|---|---|
value | String | The `type` type represents an adressbook contact web | |
type | AddressBookWebType | The `type` type represents an adressbook contact web type |
CallResult
The CallResult
type represents call result data
Field | Argument | Type | Description |
---|---|---|---|
resultLevel1 | String | 1st level call result (exit code) | |
resultLevel2 | String | 2nd level call result (exit code) | |
note1 | String | 1st level call result (exit code) note | |
note2 | String | 2nd level call result (exit code) note |
CallTag
The CallTag
type represents call tagging data
Field | Argument | Type | Description |
---|---|---|---|
note1 | String | 1st call tagging note | |
note2 | String | 2nd call tagging note |
Contact
The Contact
type represents contact data
Field | Argument | Type | Description |
---|---|---|---|
id | String | Contact UUID | |
username | String | Contact username (if internal of type "USER") | |
value | String | Contact value (e.g. phone number) | |
type | ContactType | Contact type | |
lookupType | ContactLookupType | Contact lookup result type |
GenericFields
The GenericFields
type represents generic fields data
Field | Argument | Type | Description |
---|---|---|---|
generic1 | String | Generic custom data 1 | |
generic2 | String | Generic custom data 2 | |
generic3 | String | Generic custom data 3 | |
generic4 | String | Generic custom data 4 | |
generic5 | String | Generic custom data 5 |
InboundInteraction
The InboundInteraction
type represents a single inbound interaction step (call, video call and chat).
Field | Argument | Type | Description |
---|---|---|---|
id | String! | Unique identifier | |
step | Int! | Number of the interaction step. Each interaction can be composed of several steps (N), sorted from the most recent (0) to the oldest (N-1). | |
user | String | User's username | |
exten | String | User's logged exten | |
SIPChannel | String | SIP channel identifier | |
skillset | String | Skillset code | |
cli | String | Caller Line Identification (Calling number) | |
dnis | String | Direct Number Information System (Called number) | |
startTime | Time | Start time | |
distributionTime | Time | Distribution time | |
status | Status | Status | |
transferedTo | TransferTo | Service or number to which the interaction was transferred | |
answerByUserTime | Time | Answer time by user | |
waitDurationOnUser | Int! | Ringing time on user | |
durationOnUser | Int! | Connection time with user | |
endTime | Time | End time | |
waitDuration | Int! | Waiting duration time in IVR | |
totalDuration | Int! | Total duration time in the system | |
service | String | Service code | |
popup | Popup | Popup | |
context | Context | Time context | |
SIPCallId | String | SIP call identifier (only for calls) | |
customer | String | Customer code | |
servicePriority | Int! | Service priority | |
multiChannel | MultiChannel! | Multichannel | |
IVRLabel | String | IVR node label | |
interviewService | String | Interview (Survey) service code | |
smartrec | String | Recording file (only for calls) | |
data | String | Additional data | |
queueTime | Time | Queueing time | |
queueDuration | Int! | Queueing duration time | |
wnrOnUserTime | Time | WNR (after interaction work) time | |
wnrDurationOnUser | Int! | WNR (after interaction work) duration time | |
callResult | CallResult | Call result (exit code) | |
holdDuration | Int! | Hold duration time on user | |
callTag | CallTag | Call tagging | |
channelDestination | ChannelDestinationType | Channel destination of transfer | |
sentiment | Int! | Customer sentiment code | |
contact | Contact | Contact | |
censusResult | String | Contact censur result | |
abandonedCall | String | Linked abandoned call id | |
callbackCall | String | Linked callback call id | |
generic | GenericFields | Generic custom data | |
lastUpdateTime | Time! | Last update time |
MultiChannel
The MultiChannel
type represents multichannel data
Field | Argument | Type | Description |
---|---|---|---|
type | MultiChannelType! | Multichannel type | |
session | String | Multichannel session id | |
text | String | Multichannel additional data | |
description | String | Multichannel description |
OutboundInteraction
The OutboundInteraction
type represents a single outbound interaction step (call).
Field | Argument | Type | Description |
---|---|---|---|
id | String! | Unique identifier | |
step | Int! | Number of the interaction step. Each interaction can be composed of several steps (N), sorted from the most recent (0) to the oldest (N-1). | |
user | String | User's username | |
exten | String | User's logged exten | |
SIPChannel | String | SIP channel identifier | |
cli | String | Caller Line Identification (Calling number) | |
dnis | String | Direct Number Information System (Called number) | |
startTime | Time | Start time | |
distributionTime | Time | Distribution time | |
status | Status | Status | |
transferedTo | String | Service or number to which the interaction was transferred | |
answerByUserTime | Time | Answer time by user | |
waitDurationOnUser | Int! | Ringing time on user | |
durationOnUser | Int! | Connection time with user | |
endTime | Time | End time | |
waitDuration | Int! | Waiting duration time in IVR | |
totalDuration | Int! | Total duration time in the system | |
service | String | Service code | |
popup | Popup | Popup | |
context | Context | Time context | |
SIPCallId | String | SIP call identifier (only for calls) | |
customer | String | Customer code | |
servicePriority | Int! | Service priority | |
multiChannel | MultiChannel! | Multichannel | |
IVRLabel | String | IVR node label | |
interviewService | String | Interview (Survey) service code | |
smartrec | String | Recording file (only for calls) | |
data | String | Additional data | |
queueTime | Time | Queueing time | |
queueDuration | Int! | Queueing duration time | |
wnrOnUserTime | Time | WNR (after interaction work) time | |
wnrDurationOnUser | Int! | WNR (after interaction work) duration time | |
callResult | CallResult | Call result (exit code) | |
holdDuration | Int! | Hold duration time on user | |
callTag | CallTag | Call tagging | |
channelDestination | ChannelDestinationType | Channel destination of transfer | |
sentiment | Int! | Customer sentiment code | |
contact | Contact | Contact | |
abandonedCall | String | Linked abandoned call id | |
callbackCall | String | Linked callback call id | |
generic | GenericFields | Generic custom data | |
lastUpdateTime | Time! | Last update time |
Popup
The Popup
type represents popup data
Field | Argument | Type | Description |
---|---|---|---|
type | PopupType! | Popup type (EXE or WEB) | |
result | String | Popup result | |
info | String | Additional information collected by IVR or third party applications. The individual information is separated by the special character "|". |
ServiceDescription
The ServiceDescription
type represents a service with its description
Field | Argument | Type | Description |
---|---|---|---|
code | String! | service code | |
description | String | service description |
TransferTo
The TransferTo
type represents transfer destination data
Field | Argument | Type | Description |
---|---|---|---|
type | TransferToType! | Transfer destination type (service or number) | |
value | String! | Transfer destination value (service code or phone number) |
Inputs
ComparisonDuration
The ComparisonDuration
type represents comparison between duration values.
Field | Type | Description | |
---|---|---|---|
operator | ComparisonTimeOperator | Operator to compare duration values | |
value | Int | Duration value to compare | |
valueLeft | Int | Duration value used as left term in bynary comparison | |
valueRight | Int | Duration value used as right term in bynary comparison |
ComparisonNumber
The ComparisonString
type represents comparison between string values.
Field | Type | Description | |
---|---|---|---|
operator | ComparisonNumberOperator | Operator to compare string values | |
value | [Int!] | List of string values to compare |
ComparisonString
The ComparisonString
type represents comparison between string values.
Field | Type | Description | |
---|---|---|---|
operator | ComparisonStringOperator | Operator to compare string values | |
value | [String!] | List of string values to compare | |
regexp | String | Regular expression to match |
ComparisonTime
The ComparisonTime
type represents comparison between time values.
Field | Type | Description | |
---|---|---|---|
operator | ComparisonTimeOperator | Operator to compare time values | |
value | Time | Time value to compare | |
valueLeft | Time | Time value used as left term in bynary comparison | |
valueRight | Time | Time value used as right term in bynary comparison |
Pagination
The Pagination
type represents pagination.
Field | Type | Description | |
---|---|---|---|
limit | Int | Maximum number of element to retrieve | |
offset | Int | Offset of the first element to retrieve (starting from 0) |
SearchAddressBookContact
The AddressBookContact
type represents a single contact from an addressbook
Field | Type | Description | |
---|---|---|---|
pagination | Pagination | Pagination (limit and offset) | |
sorting | SortingAddressBookContact | Sorting field and order | |
uuid | ComparisonString | the `uuid` represents the uuid of an addressbook contact | |
fullName | ComparisonString | the `fullName` represents the full name of an addressbook contact | |
name | ComparisonString | the `name` represents the name of an addressbook contact | |
surname | ComparisonString | the `surname` represents the surname of an addressbook contact | |
contactType | [AddressBookContactType!] | the `contactType` represents the contact type of an addressbook contact | |
otherName | ComparisonString | the `otherName` represents the other Name of an addressbook contact | |
organization | SearchAddressBookContactBase | the `organization` represents the organization of an addressbook contact, if the contact itself is not an organization | |
department | ComparisonString | the `department` represents the department of an addressbook contact | |
street | ComparisonString | the `street` represents the street of an addressbook contact | |
city | ComparisonString | the `city` represents the city of an addressbook contact | |
district | ComparisonString | the `district` represents the district of an addressbook contact | |
cap | ComparisonString | the `cap` represents the cap of an addressbook contact | |
country | ComparisonString | the `country` represents the country of an addressbook contact | |
customerCode | ComparisonString | the `customerCode` represents the customer code of an addressbook contact | |
category | ComparisonString | the `category` represents the category of an addressbook contact | |
note | ComparisonString | the `note` represents the note of an addressbook contact | |
vip | Boolean | the `vip` if the contact is vip one | |
nps | ComparisonNumber | the `nps` represents the last nps vote entered by the contact | |
role | ComparisonString | the `role` represents the role of an addressbook contact | |
tel | SearchAddressBookTel | the `tel` represents the tel of an addressbook contact | |
SearchAddressBookMail | the `mail` represents the mail of an addressbook contact | ||
web | SearchAddressBookWeb | the `web` represents the web of an addressbook contact | |
site | ComparisonString | the `site` represents the site of an addressbook contact | |
custom_1 | ComparisonString | general purpouse custom field | |
custom_2 | ComparisonString | general purpouse custom field | |
custom_3 | ComparisonString | general purpouse custom field | |
custom_4 | ComparisonString | general purpouse custom field | |
custom_5 | ComparisonString | general purpouse custom field | |
custom_6 | ComparisonString | general purpouse custom field | |
custom_7 | ComparisonString | general purpouse custom field | |
custom_8 | ComparisonString | general purpouse custom field | |
custom_9 | ComparisonString | general purpouse custom field | |
custom_10 | ComparisonString | general purpouse custom field |
SearchAddressBookContactBase
The SearchAddressBookContactBase
type represents a base search parameter on an address book contact
Field | Type | Description | |
---|---|---|---|
uuid | ComparisonString | uuid of an addressbook contact | |
fullName | ComparisonString | fullName of an addressbook contact |
SearchAddressBookMail
The SearchAddressBookMail
type represents a search parameter on an address book contact email
Field | Type | Description | |
---|---|---|---|
value | ComparisonString | The `value` type represents an adressbook contact email | |
type | [AddressBookMailType!] | The `type` type represents an adressbook contact email type |
SearchAddressBookTel
The AddressBookTel
type represents a search parameter on an address book contact telephone
Field | Type | Description | |
---|---|---|---|
value | ComparisonString | The `value` type represents an adressbook contact telephone number | |
type | [AddressBookTelType!] | The `type` type represents an adressbook contact telephone number type |
SearchAddressBookWeb
The AddressBookWeb
type represents a search parameter on an address book contact web
Field | Type | Description | |
---|---|---|---|
value | ComparisonString | The `type` type represents an adressbook contact web | |
type | [AddressBookWebType!] | The `type` type represents an adressbook contact web type |
SearchCallResult
The SearchCallResult
type represents search criteria for call result.
Field | Type | Description | |
---|---|---|---|
resultLevel1 | ComparisonString | String values comparison for call result (level 1) | |
resultLevel2 | ComparisonString | String values comparison for call result (level 2) | |
note1 | ComparisonString | String values comparison for call result note (level 1) | |
note2 | ComparisonString | String values comparison for call result note (level 2) |
SearchCallTag
The SearchCallTag
type represents search criteria for call tag.
Field | Type | Description | |
---|---|---|---|
note1 | ComparisonString | String values comparison for call tag note 1 | |
note2 | ComparisonString | String values comparison for call tag note 2 |
SearchContact
The SearchContact
type represents search criteria for contact.
Field | Type | Description | |
---|---|---|---|
id | ComparisonString | String values comparison for contact id | |
username | ComparisonString | String values comparison for contact username | |
value | ComparisonString | String values comparison for contact value | |
type | [ContactType!] | List of contact types to search | |
lookupType | [ContactLookupType!] | List of contact lookup types to search |
SearchGenericFields
The SearchGenericFields
type represents search criteria for generic fields.
Field | Type | Description | |
---|---|---|---|
generic1 | ComparisonString | String values comparison for generic field 1 | |
generic2 | ComparisonString | String values comparison for generic field 2 | |
generic3 | ComparisonString | String values comparison for generic field 3 | |
generic4 | ComparisonString | String values comparison for generic field 4 | |
generic5 | ComparisonString | String values comparison for generic field 5 |
SearchInteraction
The SearchInteraction
type represents search criterias for interactions (calls, video calls and chats).
Field | Type | Description | |
---|---|---|---|
year | Int | Year in which to search interactions | |
month | Int | Month in which to search interactions | |
pagination | Pagination | Pagination (limit and offset) | |
sorting | SortingInboundInteraction | Sorting (key and direction) | |
id | ComparisonString | String values comparison for id | |
step | Step | Interaction step to retrieve (last or all) | |
user | ComparisonString | String values comparison for user | |
exten | ComparisonString | String values comparison for exten | |
SIPChannel | ComparisonString | String values comparison for SIP channel | |
skillset | ComparisonString | String values comparison for skillset | |
cli | ComparisonString | String values comparison for cli | |
dnis | ComparisonString | String values comparison for dnis | |
startTime | ComparisonTime | Time values comparison for start time. The comparison is applied on year, month and day, not taking into account hours, minutes and seconds. | |
distributionTime | ComparisonTime | Time values comparison for distribution time The comparison is applied on year, month and day, not taking into account hours, minutes and seconds. | |
status | [Status!] | List of statuses to search | |
transferedTo | SearchTransferTo | Search criteria for transfer destination | |
answerByUserTime | ComparisonTime | Time values comparison for answer by user time The comparison is applied on year, month and day, not taking into account hours, minutes and seconds. | |
waitDurationOnUser | ComparisonDuration | Duration values comparison for wait duration on user | |
durationOnUser | ComparisonDuration | Duration values comparison for duration on user | |
endTime | ComparisonTime | Time values comparison for end time The comparison is applied on year, month and day, not taking into account hours, minutes and seconds. | |
waitDuration | ComparisonDuration | Duration values comparison for wait duration | |
totalDuration | ComparisonDuration | Duration values comparison for total duration | |
service | ComparisonString | String values comparison for service | |
popup | SearchPopup | Search criteria for popup | |
context | [Context!] | List of contexts to search | |
SIPCallId | ComparisonString | String values comparison for SIP call id | |
customer | ComparisonString | String values comparison for customer | |
servicePriority | [Int!] | List of service priorities (integers) to search | |
multiChannel | SearchMultiChannel | Search criteria for multichannel | |
IVRLabel | ComparisonString | String values comparison for IVR label | |
interviewService | ComparisonString | String values comparison for interview service | |
smartrec | ComparisonString | String values comparison for smartrec | |
data | ComparisonString | String values comparison for data | |
queueTime | ComparisonTime | Time values comparison for queue time The comparison is applied on year, month and day, not taking into account hours, minutes and seconds. | |
queueDuration | ComparisonDuration | Duration values comparison for queue duration | |
wnrOnUserTime | ComparisonTime | Time values comparison for wnr (after interaction work) on user time The comparison is applied on year, month and day, not taking into account hours, minutes and seconds. | |
wnrDurationOnUser | ComparisonDuration | Duration values comparison for wnr (after interaction work) duration on user | |
callResult | SearchCallResult | Search criteria for call result | |
holdDuration | ComparisonDuration | Duration values comparison for hold duration | |
callTag | SearchCallTag | Search criteria for call tag | |
channelDestination | [ChannelDestinationType!] | List of channel destination types to search | |
sentiment | [Int!] | List of sentiment values (integers) to search | |
contact | SearchContact | Search criteria for contact | |
censusResult | ComparisonString | String values comparison for census result | |
abandonedCall | Boolean | Has or not a linked abandoned call | |
callbackCall | Boolean | Has or not a linked callback call | |
generic | SearchGenericFields | Search criteria for generic fields | |
lastUpdateTime | ComparisonTime | Time values comparison for last update time |
SearchMultiChannel
The SearchMultiChannel
type represents search criteria for multichannel.
Field | Type | Description | |
---|---|---|---|
session | ComparisonString | String values comparison for multichannel session | |
text | ComparisonString | String values comparison for multichannel text | |
description | ComparisonString | String values comparison for multichannel description |
SearchOutboundInteraction
The SearchOutboundInteraction
type represents search criterias for outbound interactions (calls).
Field | Type | Description | |
---|---|---|---|
year | Int | Year in which to search interactions | |
month | Int | Month in which to search interactions | |
pagination | Pagination | Pagination (limit and offset) | |
sorting | SortingInboundInteraction | Sorting (key and direction) | |
id | ComparisonString | String values comparison for id | |
step | Step | Interaction step to retrieve (last or all) | |
user | ComparisonString | String values comparison for user | |
exten | ComparisonString | String values comparison for exten | |
SIPChannel | ComparisonString | String values comparison for SIP channel | |
cli | ComparisonString | String values comparison for cli | |
dnis | ComparisonString | String values comparison for dnis | |
startTime | ComparisonTime | Time values comparison for start time. The comparison is applied on year, month and day, not taking into account hours, minutes and seconds. | |
distributionTime | ComparisonTime | Time values comparison for distribution time The comparison is applied on year, month and day, not taking into account hours, minutes and seconds. | |
status | [Status!] | List of statuses to search | |
transferedTo | ComparisonString | Search criteria for transfer destination (service code or phone number) | |
answerByUserTime | ComparisonTime | Time values comparison for answer by user time The comparison is applied on year, month and day, not taking into account hours, minutes and seconds. | |
waitDurationOnUser | ComparisonDuration | Duration values comparison for wait duration on user | |
durationOnUser | ComparisonDuration | Duration values comparison for duration on user | |
endTime | ComparisonTime | Time values comparison for end time The comparison is applied on year, month and day, not taking into account hours, minutes and seconds. | |
waitDuration | ComparisonDuration | Duration values comparison for wait duration | |
totalDuration | ComparisonDuration | Duration values comparison for total duration | |
service | ComparisonString | String values comparison for service | |
popup | SearchPopup | Search criteria for popup | |
context | [Context!] | List of contexts to search | |
SIPCallId | ComparisonString | String values comparison for SIP call id | |
customer | ComparisonString | String values comparison for customer | |
servicePriority | [Int!] | List of service priorities (integers) to search | |
multiChannel | SearchMultiChannel | Search criteria for multichannel | |
IVRLabel | ComparisonString | String values comparison for IVR label | |
interviewService | ComparisonString | String values comparison for interview service | |
smartrec | ComparisonString | String values comparison for smartrec | |
data | ComparisonString | String values comparison for data | |
queueTime | ComparisonTime | Time values comparison for queue time The comparison is applied on year, month and day, not taking into account hours, minutes and seconds. | |
queueDuration | ComparisonDuration | Duration values comparison for queue duration | |
wnrOnUserTime | ComparisonTime | Time values comparison for wnr (after interaction work) on user time The comparison is applied on year, month and day, not taking into account hours, minutes and seconds. | |
wnrDurationOnUser | ComparisonDuration | Duration values comparison for wnr (after interaction work) duration on user | |
callResult | SearchCallResult | Search criteria for call result | |
holdDuration | ComparisonDuration | Duration values comparison for hold duration | |
callTag | SearchCallTag | Search criteria for call tag | |
channelDestination | [ChannelDestinationType!] | List of channel destination types to search | |
sentiment | [Int!] | List of sentiment values (integers) to search | |
contact | SearchContact | Search criteria for contact | |
abandonedCall | Boolean | Has or not a linked abandoned call | |
callbackCall | Boolean | Has or not a linked callback call | |
generic | SearchGenericFields | Search criteria for generic fields | |
lastUpdateTime | ComparisonTime | Time values comparison for last update time |
SearchPopup
The SearchPopup
type represents search criteria for popup.
Field | Type | Description | |
---|---|---|---|
type | [PopupType!] | List of popup types to search | |
result | ComparisonString | String values comparison for popup result | |
info | ComparisonString | String values comparison for popup info |
SearchTransferTo
The SearchTransferTo
type represents search criteria for transfer destination.
Field | Type | Description | |
---|---|---|---|
type | [TransferToType!] | List of transfer destination types to search | |
value | ComparisonString | String values comparison for value |
SortingAddressBookContact
Field | Type | Description | |
---|---|---|---|
key | SortKeyAddressBookContact | Key for sorting inbound interactions | |
direction | SortDirection | Direction for sorting inbound interactions |
SortingInboundInteraction
The SortingInboundInteraction
type represents sorting for inbound interactions (calls, video calls and chats).
Field | Type | Description | |
---|---|---|---|
key | SortKeyInboundInteraction | Key for sorting inbound interactions | |
direction | SortDirection | Direction for sorting inbound interactions |
Enums
AddressBookContactType
The AddressBookContactType
enum represents the type of an address book contact
Value | Description |
---|---|
USER | |
CUSTOMER | |
ORGANIZATION |
AddressBookMailType
The AddressBookMailType
enum represents the type of an addressbook contact email
Value | Description |
---|---|
WORK | Work mail type |
HOME | Home mail type |
AddressBookTelType
The AddressBookTelType
enum represents the type of an addressbook contact telephone number
Value | Description |
---|---|
FAX | Fax telephone number type |
HOME | Home telephone number type |
CELL | Cell telephone number type |
WORK | Work telephone number type |
CELL_WORK | Cell_work telephone number type |
FAX_WORK | Fax_work telephone number type |
FAX_HOME | Fax_home telephone number type |
CELL_HOME | Cell_home telephone number type |
MAIN | Main telephone number type |
OTHER | Other telephone number type |
AddressBookWebType
The AddressBookWebType
enum represents the type of an addressbook contact web site
Value | Description |
---|---|
WORK | Work web type |
HOME | Home web type |
AdvancedQueryType
The AdvancedQueryType
enum represents the type of the advanced query
Value | Description |
---|---|
TVOX | TVox type |
ADDRESSBOOK | Addressbook type |
SUPPORT | Support type |
ChannelDestinationType
The ChannelDestinationType
enum represents the channel destination type of transfer.
Value | Description |
---|---|
INTERNAL | Internal |
EXTERNAL | External |
REMOTE | Remote |
ComparisonNumberOperator
The ComparisonNumberOperator
enum represents operator to compare number values.
Value | Description |
---|---|
NULL | Number value is 'null'. |
EMPTY | Number value is empty. |
NOT_NULL | Number value is not 'null'. |
NOT_EMPTY | Number value is not empty. |
EQUAL | Number value is equal to at least one value of list field "value" of "ComparisonNumber" type. |
NOT_EQUAL | Number value is not equal to at least one value of list field "value" of "ComparisonNumber" type. |
CONTAIN | Number value is contained into at least one value of list field "value" of "ComparisonNumber" type. |
GREATER_THAN | Number value is greater than or equals to equal to field "value" of "ComparisonNumber" type. |
LESSER_THAN | Number value is lesser than or equals to equal to field "value" of "ComparisonNumber" type. |
GREATER_EQUAL_THAN | Number value is greater or equal than or equals to equal to field "value" of "ComparisonNumber" type. |
LESSER_EQUAL_THAN | Number value is lesser than or equals to equal to field "value" of "ComparisonNumber" type. |
BETWEEN | Number value is between field "valueLeft" and field "valueRight" of "ComparisonNumber" type. |
ComparisonStringOperator
The ComparisonStringOperator
enum represents operator to compare string values.
Value | Description |
---|---|
NULL | String value is 'null'. |
EMPTY | String value is empty. |
NOT_NULL | String value is not 'null'. |
NOT_EMPTY | String value is not empty. |
EQUAL | String value is equal to at least one value of list field "value" of "ComparisonString" type. |
NOT_EQUAL | String value is not equal to at least one value of list field "value" of "ComparisonString" type. |
CONTAIN | String value is contained into at least one value of list field "value" of "ComparisonString" type. |
START_WITH | String value is the initial part of at least one value of list field "value" of "ComparisonString" type. |
END_WITH | String value is the end of at least one value of list field "value" of "ComparisonString" type. |
REGEXP | String value matches the regular expression in field "regexp" of "ComparisonString" type. |
ComparisonTimeOperator
The ComparisonTimeOperator
enum represents operator to compare time values.
Value | Description |
---|---|
GREATER_THAN | Time value is greater than or equals to equal to field "value" of "ComparisonTime" type. |
LESSER_THAN | Time value is lesser than or equals to equal to field "value" of "ComparisonTime" type. |
BETWEEN | Time value is between field "valueLeft" and field "valueRight" of "ComparisonTime" type. |
ContactLookupType
The ContactLookupType
enum represents contact lookup type.
Value | Description |
---|---|
SUCCESS | Single contact lookup |
MULTIPLE | Multiple contact lookup |
NONE | No contact lookup |
ERROR | Error in contact lookup |
ContactType
The ContactType
enum represents contact type.
Value | Description |
---|---|
USER | Internal user contact |
SERVICE | Service contact |
SHORT_NUMBER | Short number contact |
EXTERNAL_ITEM | External contact |
EXTERNAL_ORGANIZATION | External organization contact |
PERSONAL_ITEM | Personal contact |
UNKNOWN | Unknown contact |
ANONYMOUS | Anonymous contact |
Context
The Context
enum represents the time context of interaction.
Value | Description |
---|---|
ACTIVE | Active |
OUT_OF_SERVICE | Out of service |
OUT_OF_CALENDAR | Out of calendar |
CUSTOM_1 | Custom context 1 |
CUSTOM_2 | Custom context 2 |
CUSTOM_3 | Custom context 3 |
CUSTOM_4 | Custom context 4 |
CUSTOM_5 | Custom context 5 |
MultiChannelType
The MultiChannelType
enum represents multichannel type.
Value | Description |
---|---|
CALL | Call / Phone channel |
GENERIC_1 | Custom generic channel 1 |
GENERIC_2 | Custom generic channel 2 |
GENERIC_3 | Custom generic channel 3 |
VIDEO | Video channel |
Mail / Support channel | |
LIVEHELP | LiveHelp channel |
CHAT | Chat channel |
PopupType
The PopupType
enum represents popup type.
Value | Description |
---|---|
EXE | Executable popup |
WEB | Web popup |
SortDirection
The SortKeyInboundInteraction
enum represents sort direction for inbound interactions search.
Value | Description |
---|---|
ASC | Ascending direction |
DESC | Descending direction |
SortKeyAddressBookContact
Value | Description |
---|---|
UUID | Uuid |
FULL_NAME | Full name |
NAME | Name |
SURNAME | Surname |
OTHER_NAME | Other name |
ORGANIZATION_UUID | Organization uuid |
ORGANIZATION_FULL_NAME | Organization full name |
DEPARTMENT | Department |
STREET | Street |
CITY | City |
DISTRICT | District |
CAP | Cap |
COUNTRY | Country |
CUSTOMER_CODE | Customer code |
CATEGORY | Category |
NOTE | Note |
VIP | Vip |
NPS | Nps |
ROLE | Role |
SITE | Site |
CUSTOM_1 | Custom 1 |
CUSTOM_2 | Custom 2 |
CUSTOM_3 | Custom 3 |
CUSTOM_4 | Custom 4 |
CUSTOM_5 | Custom 5 |
CUSTOM_6 | Custom 6 |
CUSTOM_7 | Custom 7 |
CUSTOM_8 | Custom 8 |
CUSTOM_9 | Custom 9 |
CUSTOM_10 | Custom 10 |
SortKeyInboundInteraction
The SortKeyInboundInteraction
enum represents sort key for inbound interactions search.
Value | Description |
---|---|
ID | Unique identifier |
USER | User's username |
EXTEN | User's logged exten |
SIP_CHANNEL | SIP channel identifier |
SKILLSET | Skillset code |
CLI | Caller Line Identification (Calling number) |
DNIS | Direct Number Information System (Called number) |
START_TIME | Start time |
DISTRIBUTION_TIME | Distribution time |
ANSWER_BY_USER_TIME | Answer time by user |
WAIT_DURATION_ON_USER | Ringing time on user |
DURATION_ON_USER | Connection time with user |
END_TIME | End time |
WAIT_DURATION | Waiting duration time in IVR |
TOTAL_DURATION | Total duration time in the system |
SERVICE | Service code |
POPUP_TYPE | Popup type |
CONTEXT | Time context |
SIP_CALL_ID | SIP call identifier (only for calls) |
CUSTOMER | Customer code |
SERVICE_PRIORITY | Service priority |
MULTICHANNEL_SESSION | Multichannel session id |
IVR_LABEL | IVR node label |
INTERVIEW_SERVICE | Interview (Survey) service code |
SMARTREC | Recording file (only for calls) |
DATA | Additional data |
QUEUE_TIME | Queueing time |
QUEUE_DURATION | Queueing duration time |
WNR_ON_USER_TIME | WNR (after interaction work) time |
WNR_DURATION_ON_USER | WNR (after interaction work) duration time |
CALL_RESULT_LEVEL_1 | 1st level of call result (exit code) |
CALL_RESULT_LEVEL_2 | 2nd level of call result (exit code) |
HOLD_DURATION | Hold duration time on user |
CALL_TAG_NOTE_1 | Call tagging note 1 |
CALL_TAG_NOTE_2 | Call tagging note 2 |
CHANNEL_DESTINATION | Channel destination of transfer |
SENTIMENT | Customer sentiment code |
CONTACT_ID | Contact UUID |
CONTACT_USERNAME | Contact username (if internal of type "USER") |
CONTACT_VALUE | Contact value (e.g. phone number) |
CONTACT_TYPE | Contact type |
CONTACT_LOOKUP_TYPE | Contact lookup result type |
CENSUS_RESULT | Contact censur result |
ABANDONED_CALL | Linked abandoned call id |
CALLBACK_CALL | Linked callback call id |
GENERIC_1 | Generic custom data 1 |
GENERIC_2 | Generic custom data 2 |
GENERIC_3 | Generic custom data 3 |
GENERIC_4 | Generic custom data 4 |
GENERIC_5 | Generic custom data 5 |
LAST_UPDATE_TIME | Last update time |
Status
The Status
enum represents the status of interaction.
Value | Description |
---|---|
HANGUP | Hanging up the caller |
CLOSED_BY_SYSTEM | Closed by the system |
CLOSED_BY_SYSTEM_NO_SELECTION | Closed by system for no selection in IVR |
CLOSED_BY_SYSTEM_MAX_QUEUED_CALL_OVER | Closed by system for reaching the maximum number of interactions in the queue |
CLOSED_BY_SYSTEM_MAX_CALL_OVER | Closed by system for reaching the maximum number of interactions |
CLOSED_BY_SYSTEM_CALLBACK | Closed by system for callback (phone channel) |
CLOSED_WITH_TRANSFER | Closed by system with transfer |
ANSWERED_CLOSED_BY_CALLER | Answered and closed by caller |
ANSWERED_CLOSED_BY_CALLED | Answered and closed by called |
ANSWERED_WITH_BLIND_TRANSFER | Answered and transfered (blind) |
ANSWERED_WITH_CONSULTATION_TRANSFER | Answered and transfered with consultation |
ERROR | Error |
Step
The Step
enum represents interaction step to return to the interaction type result.
Value | Description |
---|---|
LAST | Last step |
ALL | All steps |
TransferToType
The TransferToType
enum represents the type of transfer destination.
Value | Description |
---|---|
SERVICE | Transfer to service |
NUMBER | Transfer to number |
Scalars
Boolean
The Boolean
scalar type represents true
or false
.
Float
The Float
scalar type represents signed double-precision fractional values as specified by IEEE 754.
Int
The Int
scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
OrderedMap
The OrderedMap
scalar type represents a map where keys keeps an order and values are strings.
String
The String
scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
Time
The Time
scalar type represents date/time (RFC 3339) as string at UTC.
Integration
TVox Data Model can be integrated with any third-party software that can have a Web API (HTTP GET/POST requests) as its data source and can manipulate its response in JSON format.
Microsoft and Google provide some of the most popular tools for data analysis / BI and reporting:
- Microsoft Excel & Power BI
- Google Sheets
Microsoft Excel & Power BI
Microsoft Excel, both in its desktop and cloud version (Microsoft Office 365), is one of the industry standard for spreadsheet applications featuring calculation and graphing tools for data analysis and reporting.
Microsoft Power BI is a business analytics service. It aims to provide interactive visualizations and business intelligence capabilities with an interface simple enough for end users to create their own reports and dashboards.
Both Excel and Power BI use the Power Query tool to get data from an external source and transform it.
Example:
Below is an example of how to integrate the search for inbound service calls on Excel 2016.
query {
inboundCalls(search: { year: 2020, month: 5 }) {
id
step
cli
dnis
}
}
curl 'https://<TVOX_HOST>/datamodel/query' -H 'Accept-Encoding: gzip, deflate, br' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'DNT: 1' -H 'Origin: https://<TVOX_HOST>' -H 'X-Telenia-APIKey: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' --data-binary '{"query":"query {\n inboundCalls(search: { year: 2020, month: 5 }) {\n id\n step\n cli\n dnis\n }\n}\n"}' --compressed
Power Query
let /* Return error messages in table */ ErrorHandler = (errors) => let #"Conversione in tabella" = Table.FromList(errors, Splitter.SplitByNothing(), null, null, ExtraValues.Error), #"Tabella Column1 espansa" = Table.ExpandRecordColumn(#"Conversione in tabella", "Column1", {"message"}, {"message"}) in #"Tabella Column1 espansa", /* Return query result data in table */ DataHandler = (data) => let calls = data[inboundCalls], #"Conversione in tabella" = Table.FromList(calls, Splitter.SplitByNothing(), null, null, ExtraValues.Ignore), #"Tabella Column1 espansa" = Table.ExpandListColumn(#"Conversione in tabella", "Column1"), #"Tabella Column1 espansa1" = Table.ExpandRecordColumn(#"Tabella Column1 espansa", "Column1", {"id", "step", "cli", "dnis"}, {"id", "step", "cli", "dnis"}) in #"Tabella Column1 espansa1", Source = Web.Contents( "https://<TVOX_HOST>/datamodel/query", [ Headers=[ #"Method"="POST", #"Content-Type"="application/json", #"X-Telenia-APIKey"="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", #"Access-Control-Allow-Origin"="*" ], Content=Text.ToBinary("{""query"": ""query { inboundCalls(search: { year: 2020, month: 5 }) { id step cli dnis }}""}") ] ), #"JSON" = Json.Document(Source), Result = try ErrorHandler(JSON[errors]) otherwise if JSON[data] <> null then DataHandler(JSON[data]) else null in Result
The Power Query code on the right makes an HTTP POST call to the inboundCalls
API passing the APIKey in the header; the result is converted into a table showing for each call step its id
, step
, cli
and dnis
.
To execute the request:
- Open Excel 2016.
- Select the
Data
tab. - From
Get & Transform
selectNew Query
>Other sources
>Empty query
. - From
Query
openAdvanded editor
and write/paste the Power Query code you can find on the right, replacing <TVOX_HOST> with the host of your TVox and XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX value with the actual API Key. - Selecting
Close and save
query result will be loaded on your sheet.
This is just a simple example of how to integrate the TVox Data Model with Excel 2016 but it can be developed according to your needs and also integrated on Microsoft Excel for Office 365 and Microsoft PowerBI.
Consult the API Reference section to compose your query, helping you with the development and testing environment.
Google Sheets
Google Sheets is a cloud-based software where you can create and edit spreadsheets directly in your web browser or mobile app (Android or iOS). Multiple people can work simultaneously, you can see people’s changes as they make them, and every change is saved automatically.
Google Sheets does not natively allow you to retrieve data from a web source in JSON format, but it is possible to integrate custom functions (in Javascript code) capable of doing so.
IMPORTJSONAPI (complete documentation here) provides a custom function to selectively extract data from a JSON or GraphQL API in a tabular format suitable for import into a Google Sheets spreadsheet.
Following example uses this function.
Example:
Below is an example of how to integrate the search for inbound service calls on Google Spredsheet.
The Function Query code on the right makes an HTTP POST call to the inboundCalls
API passing the APIKey in the header; the result is converted into a table showing for each call step its id
, step
, cli
and dnis
.
query {
inboundCalls(search: { year: 2020, month: 5 }) {
id
step
cli
dnis
}
}
curl 'https://<TVOX_HOST>/datamodel/query' -H 'Accept-Encoding: gzip, deflate, br' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'DNT: 1' -H 'Origin: https://<TVOX_HOST>' -H 'X-Telenia-APIKey: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' --data-binary '{"query":"query {\n inboundCalls(search: { year: 2020, month: 5 }) {\n id\n step\n cli\n dnis\n }\n}\n"}' --compressed
Function Query
=IMPORTJSONAPI("https://<TVOX_HOST>/datamodel/query"; "$..inboundCalls[*][*]"; "id,step,cli,dnis"; "method=post"; "contentType=application/json"; "headers={ 'X-Telenia-APIKey' : 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' }"; "payload={ 'query': '{ inboundCalls(search: { year: 2020, month: 5 }) { id step cli dnis }}'}")
To add IMPORTJSONAPI custom function to your spreadsheet and use it, follow this procedure:
- Open the a Google Sheet spreadsheet in your browser.
- Select the
Tools
>Script
editor menu option. This will open a script editor window. You will need to copy and paste the function code into a blank script file. - Copy the entire contents of the IMPORTJSONAPI.gs file. The raw file can be found here.
- Paste this into the blank
Code.gs
script file or another blank script file that you have created. - Select the
File
>Save
menu option to save the script. - Go back to your sheet and you should now be able to use the
=IMPORTJSONAPI()
function. - In a cell of your spreadsheet write/paste the Function Query code you can find on the right, replacing <TVOX_HOST> with the host of your TVox and XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX value with the actual API Key.
This is just a simple example of how to integrate the TVox Data Model with Google Sheets but it can be developed according to your needs and also integrated on Google Sheets with you own custom function.
Consult the API Reference section to compose your query, helping you with the development and testing environment.
Glossary
TVox
Term | Description | Example |
---|---|---|
Step | Single event that makes up the life cycle of an interaction (call, video call or chat) | A call received from user A, transfered to user B and then closed, corresponds to an interaction consisting of 3 steps |
Interaction | Call, video call or chat. Formed by one or more steps, from the most recent to the oldest | |
CLI | Caller Line Identification (Calling number) | 1234567890 |
DNIS | Direct Number Information System (Called number) | 0452224600 |
GraphQL
Below a short GraphQL glossary of the main terms used in reference to the example on the right, reporting a basic GraphQL query for retrieving some users info searching them by name.
# Query "users" searches for users with name equal to "John"
# and displays their name, surname and address (street and city)
query {
users(searchName: "John") {
name
surname
address {
street
city
}
}
}
Term | Description | Example |
---|---|---|
Query | Operation type defining a single data request | query |
Operation | Function that retrieves requested data | users |
Argument | Condition to filter, paginate and sort requested data | searchName |
Field | Value that rapresents requested data | name , surname , address (street and city are defined as fields of address ) |
Changelog
2.2.2
Available from: 24.8.0, 24.3.25, 24.7.4
* Features / Enhancements
* added new chatsession count query: chatSessionCount
2.2.1
Available from: 24.6
* Features / Enhancements
* added new tickets history query: TicketsHistory
2.2.0
Available from: 23.0.0
* Features / Enhancements
* added new Power Dialer query: PowerDialerCampaigns
, PowerDialerCampaignExecutions
, PowerDialerMultiChannelHistory
* added new Power Dialer Instant Messaging query: PowerDialerInstantMessagingCampaignStatus
, PowerDialerInstantMessagingHistory
* added new Chat Channel query: chatHistorySummary
, chatHistorySummaryCount
, chatSession
* added new Callback Call query: callbackCallsHistory
, callbackCallsHistoryCount
* added new Call Detail Record (CDR) query: callDetailRecords
, callDetailRecordsCount
, callDetailRecordsSummary
2.1.4
Available from: 22.2.0
* Features / Enhancements
* added new Power Dialer query: PowerDialerCampaigns
, PowerDialerCampaignExecutions
, PowerDialerMultiChannelHistory
* added new Power Dialer Instant Messaging query: PowerDialerInstantMessagingCampaignStatus
, PowerDialerInstantMessagingHistory
2.1.3
Available from: 23.0.0, 22.1.0, 22.0.12
- Features / Enhancements
- added new Survery Report query:
surveyList
,surveyReport
,surveyReportCount
- added new Survery Report query:
2.1.2
Available from: 23.0.0, 22.1.0, 22.0.9
- Features / Enhancements
- added new Business Process Manager query:
bpmExecutionReport
,bpmExecutionReportCount
- added new Business Process Manager query:
2.1.1
Available from: 23.0.0, 22.1.0, 22.0.4
- Features / Enhancements
- search method
ticketArticles
: added theticketNumber
in the search filter and result
- search method
2.1.0
Available from: 23.0.0, 22.1.0, 22.0.2
- Features / Enhancements
- added new search method
abandonedCall
,abandonedCalls
,abandonedCallsCount
- added new search method
2.0.0
Available from: 22.0.0
- Features / Enhancements
- added new search method "multiChannelSummary"
- tickets method adaptation for contacts oblivion, 4 new parameters have been added (forgottenTimeUnit, notForgottenTimeUnit, forgottenArticleCount, notForgottenArticleCount)
1.2.9
- Features / Enhancements
- added new search method "IvrNodeInteractions"
- added new search method "IvrNodeInteractionCount"
- added new search method "IvrNodeInteractionCountGroup"
- added new search method "IvrNodeInteractionCountGroups"
1.2.8
- Features / Enhancements
- same as 1.2.7
- Bug Fixes
- support - ticketArticlesCountGroup sort by
1.2.7
- Features / Enhancements
- datamodel now can be switched between master/slave machines
- addressbook contacts - a contact can now have multiple addresses
- added new search method "ticketArticles"
- added new search method "ticketArticlesCount"
- added new search method "ticketArticlesCountGroup"
- Bug Fixes
- support - search ticket, fix on "first response time" search
- support - search ticket, fix on "knowledge base use" search
1.2.6
- Features / Enhancements
- knowledge base answer/category
- support, added new serachable property: escalation level, updated at, queue type
- In Redundant architecture, comprehensive warnings are provided when the slave is not accessible
- added new search method "PowerDialerCampaignSummary"
- added new search method "PowerDialerCampaignAnalytic"
- Bug Fixes
- support, createArticleSenderType now is corectly valorized
1.2.5
- Features / Enhancements
- Removed the pagination, sorting properties from the search objects, and add them to the parameters of the respective GraphQL methods
- Sorting result of Group Count methods
- inboundCallsCountGroups
- outboundCallsCountGroups
- inboundVideosCountGroups
- inboundChatsCountGroups
- ticketsCountGroups
- Bug Fixes
- The search by count filtered for a contact that does not exist returns the total count
1.2.4
- Features / Enhancements
- Count groupings for phone, chat, video, support channels
1.2.3
- Features / Enhancements
- Call, Video and Chat interaction are no longer treated as a set of interactions having the same unique-id, but as individual (atomic) interaction
- For the support, phone, video and chat channels it is now possible to view and search the use that the operator has made of the knowledge base, through the new knowledgeBaseUse property
- For phone, video and chat channels, it is now possible to view and search operator, customer and organization as AdressBoockContact
1.2.2
- Features / Enhancements
- Support
1.2.1
- Features / Enhancements
- Addressbook
1.2.0
- Features / Enhancements
- Advanced queries for Addressbook
- Advanced queries for Support
1.1.0
- Features / Enhancements
- Outbound Service Calls
1.0.0
- First release
- Inbound Service Calls
- Inbound Service Video Calls
- Inbound Service Chats
- Advanced queries for calls, video calls and chats