Unblu Web API (6.49.0)

Download OpenAPI specification:Download

Unblu Web API v3

Authentication

basicAuth

Security Scheme Type HTTP
HTTP Authorization Scheme basic

AccountSecrets

Service to read account secret of current account

getCurrentAccountSecret

getCurrentAccountSecret operation

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:

Responses

Response samples

Content type
application/json
{
  • "$_type": "AccountSecret",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "secretKey": "string"
}

Accounts

With this service the accounts of the unblu system can be managed. Most of the provided interface needs super admin permissions. Especially if the edited account is not the one of the current user.

The Account object can be expanded. If the query parameter expand is set to contactAddressId and/or billingAddressId (e.g ?expand=contactAddressId,billingAddressId) the address id's will be automatically resolved and wrapped into the object. This can also be done when sending the object

create

Creates the given entity in the system. The id of the entity can not be set for create operation, a new one is generated.

required-call-origin: TRUSTED
required-role: ["SUPER_ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

The entity to create

$_type
string
Default: "Account"
Value: "Account"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

name
string

The name of the account. Maximum length of 250 characters and can not be empty.

string or Address (object)
expand-query-key: billingAddress
type: ExpandableField

The id to an address which is used for billing, if the contact address should not be used. Should be null, if only contact address should be used.
When creating the Account object, this property can be omitted as there are not addresses for this account anyway. If it is desired to directly define a billing address for the account while creating it, the expand feature should be used.

string or Address (object)
expand-query-key: contactAddress
type: ExpandableField

The id of the contact address for the account. Is also used for billing if no extra billing address is defined.
When creating the Account object, this property can be omitted as there are not addresses for this account anyway. If it is desired to directly define a contact address for the account while creating it, the expand feature should be used.

string or Avatar (object)
expand-query-key: avatar
type: ExpandableField

Avatar of the entity: id that can be expanded.

object
expand-query-key: configuration
type: Map

The entity's configuration properties. Only contains values when the 'expand' query parameter is used with the value 'configuration'.

object
expand-query-key: metadata
type: Map

The entity's metadata properties. Only contains values when the 'expand' query parameter is used with the value 'metadata'.

object
expand-query-key: text
type: Map

The entity's text properties. Only contains values when the 'expand' query parameter is used with the value 'text'.

Responses

Request samples

Content type
application/json
{
  • "$_type": "Account",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "name": "string",
  • "billingAddress": "string",
  • "contactAddress": "string",
  • "avatar": "string",
  • "configuration": {
    },
  • "metadata": {
    },
  • "text": {
    }
}

Response samples

Content type
application/json
{
  • "$_type": "Account",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "name": "string",
  • "billingAddress": "string",
  • "contactAddress": "string",
  • "avatar": "string",
  • "configuration": {
    },
  • "metadata": {
    },
  • "text": {
    }
}

createAccountWithNewAdmin

createAccountWithNewAdmin operation

required-call-origin: TRUSTED
required-role: ["SUPER_ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json
$_type
string
Default: "AccountUserContainer"
Value: "AccountUserContainer"
object (Account)

Model of an account. The contact and the billing address can be directly resolved when using the expand feature.

object (User)

Model of a user. A user is normally an agent and/or a person who manages the system

Responses

Request samples

Content type
application/json

Create an Account and an Admin user for it

{
  • "$_type": "AccountUserContainer",
  • "account": {
    },
  • "adminUser": {
    }
}

Response samples

Content type
application/json
{
  • "$_type": "AccountUserContainer",
  • "account": {
    },
  • "adminUser": {
    }
}

delete

Deletes the entity for the given id

legacy-get: true
required-call-origin: TRUSTED
required-role: ["SUPER_ADMIN"]
Authorizations:
query Parameters
id
string

The id of the entity which should be deleted

Responses

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

getByName

Returns an account by the given name or null, if there is no such account

required-call-origin: TRUSTED
required-role: ["SUPER_ADMIN"]
Authorizations:
query Parameters
name
string

The name of the account which should be returned

expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"

Responses

Response samples

Content type
application/json
{
  • "$_type": "Account",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "name": "string",
  • "billingAddress": "string",
  • "contactAddress": "string",
  • "avatar": "string",
  • "configuration": {
    },
  • "metadata": {
    },
  • "text": {
    }
}

getCurrentAccount

Returns the account object of the current logged in user

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"

Responses

Response samples

Content type
application/json
{
  • "$_type": "Account",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "name": "string",
  • "billingAddress": "string",
  • "contactAddress": "string",
  • "avatar": "string",
  • "configuration": {
    },
  • "metadata": {
    },
  • "text": {
    }
}

isAccountNameAvailable

Checks if the account name is available for the given account id

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
name
string

The name which should be checked

accountId
string

The account id of the user for who the account should be set. When changing the name of an existing account, its id should be given. When the name is set to the one of the account, it will then also return true.

Responses

Response samples

Content type
application/json
true

read

Returns the entity for the given id

required-call-origin: TRUSTED
required-role: ["SUPER_ADMIN"]
Authorizations:
query Parameters
id
string

Id of the entity which should be returned

expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"

Responses

Response samples

Content type
application/json
{
  • "$_type": "Account",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "name": "string",
  • "billingAddress": "string",
  • "contactAddress": "string",
  • "avatar": "string",
  • "configuration": {
    },
  • "metadata": {
    },
  • "text": {
    }
}

readMultiple

Gets a list of entities for the given id's

required-call-origin: TRUSTED
required-role: ["SUPER_ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

The id's for which the entities should be fetched

Array
string

Responses

Request samples

Content type
application/json
[
  • "string"
]

Response samples

Content type
application/json
[
  • {
    }
]

search

Search for accounts

required-call-origin: TRUSTED
required-role: ["SUPER_ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json
$_type
string
Default: "AccountQuery"
Value: "AccountQuery"
Array of any (AccountSearchFilter) [ items ]

List of filters to narrow the search of entities

Array of objects (AccountOrderBy) [ items ]

List of criteria to order the search result list

offset
integer <int32>

Offset position in the result set to start pagination

limit
integer <int32>

Maximal amount of items returned

Responses

Request samples

Content type
application/json
{
  • "$_type": "AccountQuery",
  • "searchFilters": [
    ],
  • "orderBy": [
    ],
  • "offset": 0,
  • "limit": 0
}

Response samples

Content type
application/json
{
  • "$_type": "AccountResult",
  • "hasMoreItems": true,
  • "nextOffset": 0,
  • "items": [
    ]
}

update

Allows to update the current account as admin. If user is super admin, he can also update other accounts

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

The account entity to update

$_type
string
Default: "Account"
Value: "Account"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

name
string

The name of the account. Maximum length of 250 characters and can not be empty.

string or Address (object)
expand-query-key: billingAddress
type: ExpandableField

The id to an address which is used for billing, if the contact address should not be used. Should be null, if only contact address should be used.
When creating the Account object, this property can be omitted as there are not addresses for this account anyway. If it is desired to directly define a billing address for the account while creating it, the expand feature should be used.

string or Address (object)
expand-query-key: contactAddress
type: ExpandableField

The id of the contact address for the account. Is also used for billing if no extra billing address is defined.
When creating the Account object, this property can be omitted as there are not addresses for this account anyway. If it is desired to directly define a contact address for the account while creating it, the expand feature should be used.

string or Avatar (object)
expand-query-key: avatar
type: ExpandableField

Avatar of the entity: id that can be expanded.

object
expand-query-key: configuration
type: Map

The entity's configuration properties. Only contains values when the 'expand' query parameter is used with the value 'configuration'.

object
expand-query-key: metadata
type: Map

The entity's metadata properties. Only contains values when the 'expand' query parameter is used with the value 'metadata'.

object
expand-query-key: text
type: Map

The entity's text properties. Only contains values when the 'expand' query parameter is used with the value 'text'.

Responses

Request samples

Content type
application/json
{
  • "$_type": "Account",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "name": "string",
  • "billingAddress": "string",
  • "contactAddress": "string",
  • "avatar": "string",
  • "configuration": {
    },
  • "metadata": {
    },
  • "text": {
    }
}

Response samples

Content type
application/json
{
  • "$_type": "Account",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "name": "string",
  • "billingAddress": "string",
  • "contactAddress": "string",
  • "avatar": "string",
  • "configuration": {
    },
  • "metadata": {
    },
  • "text": {
    }
}

Addresses

With this service, the addresses of accounts can be managed.

create

Creates the given entity in the system. The id of the entity can not be set for create operation, a new one is generated.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json

The entity to create

$_type
string
Default: "Address"
Value: "Address"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

organisationName
string

Name of the organisation. Maximum of 250 characters. Can be omitted.

addressLine1
string

First address line. Maximum of 250 characters. Can be omitted.

addressLine2
string

Second address line. Maximum of 250 characters. Can be omitted.

zip
string

Zip code of the city. Maximum of 20 characters. Can not be omitted.

city
string

City name. Maximum of 250 characters. Can not be omitted.

state
string

Country state. Maximum of 250 characters. Can be omitted.

country
string

Country. Maximum of 250 characters. Can not be omitted.

Responses

Request samples

Content type
application/json
{
  • "$_type": "Address",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "organisationName": "string",
  • "addressLine1": "string",
  • "addressLine2": "string",
  • "zip": "string",
  • "city": "string",
  • "state": "string",
  • "country": "string"
}

Response samples

Content type
application/json
{
  • "$_type": "Address",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "organisationName": "string",
  • "addressLine1": "string",
  • "addressLine2": "string",
  • "zip": "string",
  • "city": "string",
  • "state": "string",
  • "country": "string"
}

delete

Deletes the entity for the given id

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
id
string

The id of the entity which should be deleted

Responses

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

read

Returns the entity for the given id

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
id
string

Id of the entity which should be returned

Responses

Response samples

Content type
application/json
{
  • "$_type": "Address",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "organisationName": "string",
  • "addressLine1": "string",
  • "addressLine2": "string",
  • "zip": "string",
  • "city": "string",
  • "state": "string",
  • "country": "string"
}

readMultiple

Gets a list of entities for the given id's

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json

The id's for which the entities should be fetched

Array
string

Responses

Request samples

Content type
application/json
[
  • "string"
]

Response samples

Content type
application/json
[
  • {
    }
]

search

Search for addresses in the current account

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
$_type
string
Default: "AddressQuery"
Value: "AddressQuery"
Array of any (AddressSearchFilter) [ items ]

List of filters to narrow the search of entities

Array of objects (AddressOrderBy) [ items ]

List of criteria to order the search result list

offset
integer <int32>

Offset position in the result set to start pagination

limit
integer <int32>

Maximal amount of items returned

Responses

Request samples

Content type
application/json
{
  • "$_type": "AddressQuery",
  • "searchFilters": [
    ],
  • "orderBy": [
    ],
  • "offset": 0,
  • "limit": 0
}

Response samples

Content type
application/json
{
  • "$_type": "AddressResult",
  • "hasMoreItems": true,
  • "nextOffset": 0,
  • "items": [
    ]
}

update

Updates the entity in the system with the given entity.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json

The entity to update

$_type
string
Default: "Address"
Value: "Address"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

organisationName
string

Name of the organisation. Maximum of 250 characters. Can be omitted.

addressLine1
string

First address line. Maximum of 250 characters. Can be omitted.

addressLine2
string

Second address line. Maximum of 250 characters. Can be omitted.

zip
string

Zip code of the city. Maximum of 20 characters. Can not be omitted.

city
string

City name. Maximum of 250 characters. Can not be omitted.

state
string

Country state. Maximum of 250 characters. Can be omitted.

country
string

Country. Maximum of 250 characters. Can not be omitted.

Responses

Request samples

Content type
application/json
{
  • "$_type": "Address",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "organisationName": "string",
  • "addressLine1": "string",
  • "addressLine2": "string",
  • "zip": "string",
  • "city": "string",
  • "state": "string",
  • "country": "string"
}

Response samples

Content type
application/json
{
  • "$_type": "Address",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "organisationName": "string",
  • "addressLine1": "string",
  • "addressLine2": "string",
  • "zip": "string",
  • "city": "string",
  • "state": "string",
  • "country": "string"
}

ApiKeys

With this service the api keys can be managed

create

Creates the given entity in the system. The id of the entity can not be set for create operation, a new one is generated.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

The entity to create

$_type
string
Default: "ApiKey"
Value: "ApiKey"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

apiKey
string

Api key string. When creating the entity it can be set to a specific value or omitted (in the second case a random value will be generated by the server). Can not be updated.

name
string

Name of the api key. Maximum of 250 characters. Can be omitted, but should not.

description
string

Description of the api key. E.g. where or for what it is used. Maximum of 500 characters. Can be omitted.

object
expand-query-key: configuration
type: Map

The entity's configuration properties. Only contains values when the 'expand' query parameter is used with the value 'configuration'.

object
expand-query-key: text
type: Map

The entity's text properties. Only contains values when the 'expand' query parameter is used with the value 'text'.

object
expand-query-key: metadata
type: Map

The entity's metadata properties. Only contains values when the 'expand' query parameter is used with the value 'metadata'.

Responses

Request samples

Content type
application/json
{
  • "$_type": "ApiKey",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "apiKey": "string",
  • "name": "string",
  • "description": "string",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "$_type": "ApiKey",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "apiKey": "string",
  • "name": "string",
  • "description": "string",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

delete

Deletes the entity for the given id

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
id
string

The id of the entity which should be deleted

Responses

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

getByKey

Returns the api key object for the given api key string in the current account

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
apiKey
string

The api key for which the object should be returned

expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"

Responses

Response samples

Content type
application/json
{
  • "$_type": "ApiKey",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "apiKey": "string",
  • "name": "string",
  • "description": "string",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

getDefaultForAccountId

Returns the default api key for the given account id. If the id of the account does not match with the one from the current user, null is returned

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"

Responses

Response samples

Content type
application/json
{
  • "$_type": "ApiKey",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "apiKey": "string",
  • "name": "string",
  • "description": "string",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

getQuotaUsage

Returns the number of entities already existing (for the current account)

required-call-origin: TRUSTED
required-role: ["SUPERVISOR"]
Authorizations:

Responses

Response samples

Content type
application/json
0

read

Returns the entity for the given id

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
id
string

Id of the entity which should be returned

expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"

Responses

Response samples

Content type
application/json
{
  • "$_type": "ApiKey",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "apiKey": "string",
  • "name": "string",
  • "description": "string",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

readMultiple

Gets a list of entities for the given id's

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

The id's for which the entities should be fetched

Array
string

Responses

Request samples

Content type
application/json
[
  • "string"
]

Response samples

Content type
application/json
[
  • {
    }
]

search

Search for api keys in the current account

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json
$_type
string
Default: "ApiKeyQuery"
Value: "ApiKeyQuery"
Array of any (ApiKeySearchFilter) [ items ]

List of filters to narrow the search of entities

Array of objects (ApiKeyOrderBy) [ items ]

List of criteria to order the search result list

offset
integer <int32>

Offset position in the result set to start pagination

limit
integer <int32>

Maximal amount of items returned

Responses

Request samples

Content type
application/json
{
  • "$_type": "ApiKeyQuery",
  • "searchFilters": [
    ],
  • "orderBy": [
    ],
  • "offset": 0,
  • "limit": 0
}

Response samples

Content type
application/json
{
  • "$_type": "ApiKeyResult",
  • "hasMoreItems": true,
  • "nextOffset": 0,
  • "items": [
    ]
}

update

Updates the entity in the system with the given entity.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

The entity to update

$_type
string
Default: "ApiKey"
Value: "ApiKey"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

apiKey
string

Api key string. When creating the entity it can be set to a specific value or omitted (in the second case a random value will be generated by the server). Can not be updated.

name
string

Name of the api key. Maximum of 250 characters. Can be omitted, but should not.

description
string

Description of the api key. E.g. where or for what it is used. Maximum of 500 characters. Can be omitted.

object
expand-query-key: configuration
type: Map

The entity's configuration properties. Only contains values when the 'expand' query parameter is used with the value 'configuration'.

object
expand-query-key: text
type: Map

The entity's text properties. Only contains values when the 'expand' query parameter is used with the value 'text'.

object
expand-query-key: metadata
type: Map

The entity's metadata properties. Only contains values when the 'expand' query parameter is used with the value 'metadata'.

Responses

Request samples

Content type
application/json
{
  • "$_type": "ApiKey",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "apiKey": "string",
  • "name": "string",
  • "description": "string",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "$_type": "ApiKey",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "apiKey": "string",
  • "name": "string",
  • "description": "string",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

Authenticator

Service to log in with a user or to switch to other accounts/users by impersonating them

authenticateWithToken

Authentication using a previously created authentication token from (createAuthenticationToken). Will create an authentication session if authentication succeeds (includes setting an authentication cookie)

required-call-origin: UNTRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:
query Parameters
authenticationToken
string

token to login with

redirectOnSuccess
string

redirection URL when the operation is successful

redirectOnFailure
string

redirection URL when the operation is not successful

Responses

Response samples

Content type
application/json
true

changePassword

Changes password for currently logged in user, if the old password is currently matching the stored password

legacy-get: true
required-call-origin: UNTRUSTED
required-role: ["WEBUSER"]
Authorizations:
Request Body schema: application/json
oldPassword
string

The old password for validation

newPassword
string

The new password to set

Responses

Request samples

Content type
application/json

Change password

{
  • "oldPassword": "L0remPf18!",
  • "newPassword": "L1rem_Hq23"
}

Response samples

Content type
application/json
true

checkPasswordAgainstPolicy

checks if a 'potential' password is valid given the current password policy

legacy-get: true
required-call-origin: UNTRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:
Request Body schema: application/json
password
string

Password to check against policy

Responses

Request samples

Content type
application/json

Check if the password will be accepted or not

{
  • "password": "L0remPf18!"
}

Response samples

Content type
application/json
[
  • "string"
]

checkSuperAdminPasswordFile

checks if a password file for the superadmin exists

required-call-origin: TRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:

Responses

Response samples

Content type
application/json
true

createAuthenticationToken

Creates a new authentication token, which can later be used for login.

legacy-get: true
required-call-origin: UNTRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:
Request Body schema: application/json
username
string

The username for which the token is created

password
string

The password of the user to authenticate

Responses

Request samples

Content type
application/json

Create a token for a given username and password

{
  • "username": "r@email.com",
  • "password": "L0remPf18!"
}

Response samples

Content type
application/json
"string"

createAuthenticationTokenForCurrentUser

Creates a new authentication token for the current logged in user.

legacy-get: true
required-call-origin: UNTRUSTED
required-role: ["WEBUSER"]
Authorizations:

Responses

Response samples

Content type
application/json
"string"

getAuthenticatedUserDisplayName

Returns the name of the user which can be displayed somewhere

required-call-origin: UNTRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:

Responses

Response samples

Content type
application/json
"string"

getAuthenticatedUserName

Returns the name of the logged in user

required-call-origin: UNTRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:

Responses

Response samples

Content type
application/json
"string"

getCompactUser

Returns a compact user object, which contains the most important information about the current logged in user.

required-call-origin: TRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"

Responses

Response samples

Content type
application/json
{
  • "$_type": "CompactUser",
  • "id": "string",
  • "accountId": "string",
  • "username": "string",
  • "displayName": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "avatar": "string",
  • "teamId": "string",
  • "parentTeamIds": [
    ],
  • "permissions": {
    },
  • "authorizationRole": "SUPER_ADMIN",
  • "passwordDefined": true,
  • "virtual": true,
  • "propagated": true,
  • "impersonatedFromUserId": "string",
  • "impersonatedFromAccountId": "string"
}

getUserId

The user id of the current user

required-call-origin: UNTRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:

Responses

Response samples

Content type
application/json
"string"

getUserPermissions

Returns the permissions of the current user

required-call-origin: UNTRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:

Responses

Response samples

Content type
application/json
{
  • "$_type": "Permissions",
  • "allPermissions": true,
  • "permissions": [
    ]
}

getUserRole

Returns the user role of the current logged in user

required-call-origin: UNTRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:

Responses

Response samples

Content type
application/json
"string"

impersonate

Impersonates with another user either via username or userid (one of the two may be null).

legacy-get: true
required-call-origin: TRUSTED
required-role: ["SUPER_ADMIN"]
Authorizations:
Request Body schema: application/json
username
string

If set and userid is set to null, the user is searched by the name

userId
string

If set, the username is ignored and the user for the given id is impersonated

superUser
boolean

if true, the impersonated user will have the SUPER_ADMIN role (even if he hasn't normally).

redirectOnSuccess
string

redirection URL when the operation is successful

redirectOnFailure
string

redirection URL when the operation is not successful

Responses

Request samples

Content type
application/json

Impersonate as user 'admin' without keeping the superadmin rights

{
  • "username": "admin",
  • "userId": null,
  • "superUser": false,
  • "redirectOnSuccess": null,
  • "redirectOnFailure": null
}

Response samples

Content type
application/json
true

isAuthenticated

Checks if the current client is authenticated and session has not expired

required-call-origin: UNTRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:

Responses

Response samples

Content type
application/json
true

isRegisteredUser

Checks if the user is a registered user and not a web user or anonymous one from the system

required-call-origin: TRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:

Responses

Response samples

Content type
application/json
true

isSuperAdmin

Checks if the current user is super admin

required-call-origin: TRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:

Responses

Response samples

Content type
application/json
true

login

Login using username and password credentials. Will create an authentication session if login succeeds (includes setting an authentication cookie)

legacy-get: true
required-call-origin: UNTRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:
Request Body schema: application/json
username
string

user to use for login

password
string

password to use for login

redirectOnSuccess
string

redirection URL when the operation is successful

redirectOnFailure
string

redirection URL when the operation is not successful

Responses

Request samples

Content type
application/json

Login with username and password

{
  • "username": "r@email.com",
  • "password": "L0remPf18!",
  • "redirectOnSuccess": null,
  • "redirectOnFailure": null
}

Response samples

Content type
application/json
true

loginWithSecureToken

Start a session using a signed JWT as the login credentials, a new user with role WEBUSER is automatically created. x-unblu-apikey is a mandatory GET parameter for this operation, even though it is not part of the OpenAPI specification.

required-call-origin: UNTRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:
Request Body schema: application/json
$_type
string
Default: "SecureTokenRequest"
Value: "SecureTokenRequest"
token
string
type
string (ESecureTokenType)
Enum: "JWT" "OIDC_ACCESS_TOKEN"
enum-descriptions: ["JWT","OIDC_ACCESS_TOKEN"]

Token type

Responses

Request samples

Content type
application/json
{
  • "$_type": "SecureTokenRequest",
  • "token": "string",
  • "type": "JWT"
}

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

logout

Call this to logout (clear internal session and session cookie on response)

legacy-get: true
required-call-origin: UNTRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:
Request Body schema: application/json
redirectOnSuccess
string

redirection URL when the operation is successful

Responses

Request samples

Content type
application/json

Logout with a redirection to unblu.com

{}

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

resetImpersonation

Resets the current impersonation. Will do nothing if there is no impersonation.

legacy-get: true
required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
Request Body schema: application/json
redirectOnSuccess
string

redirection URL when the operation is successful. Also if nothing needed to be done.

redirectOnFailure
string

redirection URL when the operation is not successful

Responses

Request samples

Content type
application/json

Reset impersonation and redirect to the Global Configuration page on success

{
  • "redirectOnSuccess": "/co-unblu/config-global",
  • "redirectOnFailure": null
}

Response samples

Content type
application/json
true

sendPasswordResetMail

Sends a reset password link to the user by email only if the user exists

legacy-get: true
required-call-origin: UNTRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:
Request Body schema: application/json
username
string

The username of the user which receives a password reset mail

Responses

Request samples

Content type
application/json

Reset impersonation and redirect to the Global Configuration page on success

{
  • "username": "r@email.com"
}

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

setDefaultLocale

Changes the language of the current user. It is stored also in the returned cookies
Note: A reload should be done afterwards.

legacy-get: true
required-call-origin: UNTRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:
Request Body schema: application/json
locale
string

The new locale in the language-tag format (as defined in the IETF BCP 47) which should be used (e.g. en - english, de - german, fr - french, it - italian)

Responses

Request samples

Content type
application/json

Change the default locale to french

{
  • "locale": "fr"
}

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

setNewPassword

Saves a new password for the user behind the given authentication token. The token can be created withcreateAuthenticationToken. The user needs to be authenticated first.

legacy-get: true
required-call-origin: UNTRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:
Request Body schema: application/json
authenticationToken
string

for authentication.

password
string

the new password to be used

Responses

Request samples

Content type
application/json

Set a new password

{
  • "authenticationToken": "Y2w5el...naW77w=",
  • "password": "L0remPf18!"
}

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

switchToAccount

Switches the account in a given authentication session. If successful, the user is treated, as if he/she was a member of the target account.

legacy-get: true
required-call-origin: TRUSTED
required-role: ["SUPER_ADMIN"]
Authorizations:
Request Body schema: application/json
accountId
string

the account id to impersonate on

redirectOnSuccess
string

redirection URL when the operation is successful

redirectOnFailure
string

redirection URL when the operation is not successful

Responses

Request samples

Content type
application/json

Switch to account with a redirect to the Account Configuration page on success

{
  • "accountId": "A7d9E_0-c3cC4aoFDb85t6n",
  • "redirectOnSuccess": "/co-unblu/config-account",
  • "redirectOnFailure": null
}

Response samples

Content type
application/json
true

Availability

getAgentAvailability

Returns the current availability state a given named area and locale.

required-call-origin: UNTRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:
query Parameters
locale
string

The locale in form of a BCP 47 language tag (including the region if available) to check the availability for. If omitted, the service will check the availability of agents who did not filter the queue by language.

namedAreaSiteId
string

The site ID (meta tag or domain) of the named area to check the availability for. If omitted, the service will check for the availability of agents who did not filter the queue by named area.

apiKey
string

API key to specify the account; mandatory when called as an anonymous user

Responses

Response samples

Content type
application/json
"AVAILABLE"

Avatars

With this service, the avatar pictures can be managed.

create

Creates the avatar in the system. The id can not be set for create operation, a new one is generated.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json

The entity to create

$_type
string
Default: "Avatar"
Value: "Avatar"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

imageZoomFactor
number <float>

Zoom factor to crop the original image. Must be bigger than 1. If omitted a minimal factor will be computed.

imageXPositionRatio
number <float>

Ratio to determine the horizontal position of the cropping area. Must be between 0 and 1: 0 means moved at the left border, 1 means moved at the right border. If omitted 0.5 will be used.

imageYPositionRatio
number <float>

Ratio to determine the vertical position of the cropping area. Must be between 0 and 1: 0 means moved at the top border, 1 means moved at the bottom border. If omitted 0.5 will be used.

imageRotationAngle
integer <int32>

Clockwise angle in degree (0-380) for rotation. If omitted 0 will be used.

imageData
string

Image content as data URL scheme (RFC2397 - data:[<mediatype>][;base64],<data>)

Responses

Request samples

Content type
application/json
{
  • "$_type": "Avatar",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "accountId": "string",
  • "imageZoomFactor": 0,
  • "imageXPositionRatio": 0,
  • "imageYPositionRatio": 0,
  • "imageRotationAngle": 0,
  • "imageData": "string"
}

Response samples

Content type
application/json
{
  • "$_type": "Avatar",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "accountId": "string",
  • "imageZoomFactor": 0,
  • "imageXPositionRatio": 0,
  • "imageYPositionRatio": 0,
  • "imageRotationAngle": 0,
  • "imageData": "string"
}

read

Returns the avatar for the given id

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
id
string

Id of the entity which should be returned

Responses

Response samples

Content type
application/json
{
  • "$_type": "Avatar",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "accountId": "string",
  • "imageZoomFactor": 0,
  • "imageXPositionRatio": 0,
  • "imageYPositionRatio": 0,
  • "imageRotationAngle": 0,
  • "imageData": "string"
}

Bots

Service to manage all kind of bots. Additionally the bots use this service to interact with a conversation/dialog.

acceptDialogOffer

Accepts a dialog offer that was triggered either via a BotOnboardingOfferEvent, BotReboardingOfferEvent or a BotOffboardingOfferEventwebhook.

Accepting the dialog offer will result in the dialog bot participating in the offered dialog. As soon as it is the dialogs turn it will receive aBotDialogOpenEvent webhook.

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
dialogOfferToken
string

the onboarding-, reboarding- or offboarding-offer token contained in the webhook.

Responses

Request samples

Content type
application/json

Accept dialog offer

{
  • "dialogOfferToken": "AcviDb210C5BoFd6e_79oan-c-diOogO6lQerZwXgjGQ1NCQ"
}

Response samples

Content type
application/json
"string"

cancelPendingDialogQuestions

Cancels all pending questions in a bot dialog.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
dialogToken
string

The token belonging to the dialog

Responses

Request samples

Content type
application/json
{
  • "dialogToken": "string"
}

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

cancelPendingQuestion

Cancels a bot's question message. If the message is not from a bot, the call will throw an error.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
conversationId
string

The ID of the conversation the question message was sent to

questionMessageId
string

The ID of the question message that will be cancelled

Responses

Request samples

Content type
application/json
{
  • "conversationId": "string",
  • "questionMessageId": "string"
}

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

create

Creates a new dialog bot that can be used for conversation onboarding, reboarding and offboarding.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json

The dialog bot to create.

$_type
string
Default: "DialogBotData"
Value: "DialogBotData"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

name
string

Name of the dialog bot. Maximum length of 250 characters. Can not be omitted.

description
string

Description of the dialog bot. Maximum length of 500 characters. Can be omitted.

botPersonId
string

ID of the person representing the bot

webhookStatus
string (ERegistrationStatus)
Enum: "ACTIVE" "INACTIVE" "INACTIVE_UNAVAILABLE"
enum-descriptions: ["ACTIVE: Registration is active","INACTIVE: Registration is not active","INACTIVE_UNAVAILABLE: Registration is not active, because it is unavailable"]

Possible Webhook Registration Status

webhookEndpoint
string

The endpoint url of the webhook registration. To this url the requests for the webhook events are done. Maximum length of 4000 characters.

Based on the configured filters/flags the following events will be sent to the endpoint:

  • TypedEvent.BOT_ONBOARDING_OFFER: When a person matching the onboarding filter joins a conversation.
  • TypedEvent.BOT_REBOARDING_OFFER: When a person writes a message to an unassigned conversation and the reboardingEnabled flag is set to true.
  • TypedEvent.BOT_OFFBOARDING_OFFER: When a person matching the offboarding filter leaves a conversation or the conversation ends.
  • TypedEvent.BOT_DIALOG_OPENED: When a preaviously accepted bot dialog starts
  • TypedEvent.BOT_DIALOG_MESSAGE: On each message of a previously accepted bot dialog.
  • TypedEvent.BOT_DIALOG_MESSAGE_STATE: On each message state update of a previously accepted bot dialog.
  • TypedEvent.BOT_DIALOG_COUNTERPART_CHANGED: When the counterpart person of dialog changes during a dialog.
  • TypedEvent.BOT_DIALOG_CLOSED: When a previously accepted bot dialog closes.

webhookSecret
string

Optional secret which is send with each webhook event.

Maximum length of 4000 characters.

onboardingOrder
integer <int32>

Defines the onboarding order of this bot.

If more than one bots want to participate in an onboarding, the one with the lowest order value will go first.

reboardingOrder
integer <int32>

Defines the reboarding order of this bot.

If more than one bots want to participate in an reboarding, the one with the lowest order value will go first.

offboardingOrder
integer <int32>

Defines the offboarding priority of this bot.

If more than one bots want to participate in an offboarding, the one with the lowest order value will go first.

onboardingFilter
string (EBotDialogFilter)
Enum: "VISITORS" "AGENTS" "BOTH" "NONE"
enum-descriptions: ["VISITORS: Only handle dialogs that with visitors as the counterpart.","AGENTS: Only handle dialogs with agents as the counterpart","BOTH: Handle dialogs with both agents and visitors as the counterpart","NONE: Don't handle any dialogs."]
reboardingEnabled
boolean

Defines if this bot can reboard.

A reboarding offer will be sent only if this flag is enabled, giving the bot the chance to be part of the reboarding.

offboardingFilter
string (EBotDialogFilter)
Enum: "VISITORS" "AGENTS" "BOTH" "NONE"
enum-descriptions: ["VISITORS: Only handle dialogs that with visitors as the counterpart.","AGENTS: Only handle dialogs with agents as the counterpart","BOTH: Handle dialogs with both agents and visitors as the counterpart","NONE: Don't handle any dialogs."]
needsCounterpartPresence
boolean

Defines if the counterpart has to be online for the onboarding to start. E.g. if questions have to be answered live.

messageStateHandledExternally
boolean

Defines if the delivered/read state of messages is handled externally or by the collaboration server.
If the collaboration server handles the state, the messages are marked as delivered and read a soon as the webhook could be successfully dispatched to the configured webhookEndpoint.
If the it is handled externally, the external service has to call the api function to mark the message as delivered/read. Additionally webhook events for the message state of messages from the bot are dispatched.

onTimeoutBehavior
string (EBotDialogTimeoutBehavior)
Enum: "ABORT" "HAND_OFF"
enum-descriptions: ["ABORT: Abort on-boarding the conversation when it comes to timeout. Default for internal bots.","HAND_OFF: Proceed further in on-boarding the conversation when it comes to timeout. Default for external bots."]

Defines what should happen with the conversation when it comes to timeout during on-boarding.
When omitted the default for external bots is set to HAND_OFF.

Responses

Callbacks

Request samples

Content type
application/json

Create a new dialog bot

{
  • "$_type": "DialogBotData",
  • "id": null,
  • "creationTimestamp": null,
  • "modificationTimestamp": null,
  • "version": null,
  • "accountId": null,
  • "name": "test-bot-1",
  • "description": null,
  • "botPersonId": "BoL9zZSbQeGGXMfCLxWZ4g",
  • "webhookStatus": "INACTIVE",
  • "webhookEndpoint": "https://test.unblu.com",
  • "webhookSecret": null,
  • "onboardingOrder": 10,
  • "reboardingOrder": 10,
  • "offboardingOrder": 10,
  • "onboardingFilter": "VISITORS",
  • "reboardingEnabled": false,
  • "offboardingFilter": "NONE",
  • "needsCounterpartPresence": false,
  • "messageStateHandledExternally": false,
  • "onTimeoutBehavior": "HAND_OFF"
}

Response samples

Content type
application/json

New dialog bot

{
  • "$_type": "DialogBotData",
  • "id": "c1a-ED06Dbat9daFBtC4l85",
  • "creationTimestamp": 1546300800000,
  • "modificationTimestamp": 1548979200000,
  • "version": 1,
  • "accountId": "A7d9E_0-c3cC4aoFDb85t6n",
  • "name": "test-bot-1",
  • "description": null,
  • "botPersonId": "BoL9zZSbQeGGXMfCLxWZ4g",
  • "webhookStatus": "INACTIVE",
  • "webhookEndpoint": "https://test.unblu.com",
  • "webhookSecret": null,
  • "onboardingOrder": 10,
  • "reboardingOrder": 10,
  • "offboardingOrder": 10,
  • "onboardingFilter": "VISITORS",
  • "reboardingEnabled": false,
  • "offboardingFilter": "NONE",
  • "needsCounterpartPresence": false,
  • "messageStateHandledExternally": false,
  • "onTimeoutBehavior": "HAND_OFF"
}

Callback payload samples

Callback
Content type
application/json
{
  • "$_type": "BotDialogClosedEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "dialogToken": "string"
}

declineDialogOffer

Declines a dialog offer that was triggered either via a BotOnboardingOfferEvent, BotReboardingOfferEvent or aBotOffboardingOfferEvent webhook.

No further webhooks will be sent for this dialog.

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
dialogOfferToken
string

the onboarding-, reboarding- or offboarding-offer token contained in the webhook.

Responses

Request samples

Content type
application/json

Decline a dialog offer

{
  • "dialogOfferToken": "AcviDb210C5BoFd6e_79oan-c-diOogO6lQerZwXgjGQ1NCQ"
}

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

delete

Deletes an existing dialog bot.

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
id
string

ID of the dialog bot.

Responses

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

dialogMessageDelivered

Marks a message as delivered to the bot.

Note: If the message is also read use the dialogMessageRead end point directly as it will also mark the message as delivered.

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
dialogToken
string

The token belonging to the dialog of the bot

messageId
string

The ID of the delivered message

Responses

Request samples

Content type
application/json

Mark a message as delivered

{
  • "dialogToken": "AcviDb210C5BoFd6e_79oan-c-daOogO9iQmqUbgNzZN4X2A",
  • "messageId": "mGesYagET_2GipaDGinA9A"
}

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

dialogMessageRead

Marks a message as read to the bot.

Note: This will also mark the message as delivered, if this hasn't happened yet.

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
dialogToken
string

The token belonging to the dialog of the bot

messageId
string

The ID of the message that was read

Responses

Request samples

Content type
application/json

Mark a message as read

{
  • "dialogToken": "AcviDb210C5BoFd6e_79oan-c-daOogO9iQmqUbgNzZN4X2A",
  • "messageId": "mGesYagET_2GipaDGinA9A"
}

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

finishDialog

Ends the dialog. Depending on the reason given and whether the dialog takes place during onboarding, reboarding, or offboarding, this will have specific effects. See the list below.

Reason: EBotDialogFinishReason.HAND_OFF:

  • Onboarding:
    • Next Bot: a further bot takes over the onboarding.
    • Activate Participation: If no further bots are in the queue the participation is activated. For inbound requests this is the point where the conversation is added to the queue. For PIN conversation and invitations the person is simply placed into the conversation and can actively participate.
  • Reboarding:
    • Next Bot: a further bot takes over the reboarding.
    • Requeue Conversation: If no further bots are in the queue the conversation is put back into the queue.
  • Offboarding:
    • Next Bot: a further bot takes over the offboarding.
    • End Participation: If no further bots are in the queue the participation is ended and the offboarding person can no longer access it.
Reason: EBotDialogFinishReason.SOLVED:
  • Onboarding:
    • Unassign Conversation: The conversation will be put in unassigned state and therefore will not be added to the queue as the problem is solved. New messages to the conversation will start reboarding.
    Reboarding:
    • Unassign Conversation: The conversation will be put in unassigned state and therefore will not be added to the queue as the problem is solved. New messages to the conversation will start reboarding again.
    Offboarding:
    • End Participation: Independent if there are further bots in the queue the participation is ended and the offboarding person can no longer access it.
Reason: EBotDialogFinishReason.ABORTED:
  • Onboarding:
    • Offboard Participant: The participant is directly moved to the offboarding phase and won't be allowed to enter the conversation.
    Reboarding:
    • Unassign Conversation: The participant is directly moved to the offboarding phase and won't be allowed to enter the conversation.
    Offboarding:
    • End Participation: Independent if there are further bots in the queue the participation is ended and the offboarding person can no longer access the conversation.

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
dialogToken
string

The dialog token contained in each bot dialog webhook.

reason
string (EBotDialogFinishReason)
Enum: "HAND_OFF" "SOLVED" "ABORTED"
enum-descriptions: ["HAND_OFF: The bot is done with his part and the next bot can to the on-, re- or offboarding.","SOLVED: The problem of the dialog was solved and therefore no further bots are invoked.","ABORTED: The dialog was not successful and the on-, re- or offboarding has to be aborted."]

Reason why a bot finished a dialog.

Responses

Request samples

Content type
application/json

Hand off the dialog to an agent

{
  • "dialogToken": "AcviDb210C5BoFd6e_79oan-c-daOogO9iQmqUbgNzZN4X2A",
  • "reason": "HAND_OFF"
}

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

getByName

Searches for an existing dialog bot with the given name.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
name
string

Name of the dialog bot.

Responses

Response samples

Content type
application/json

Dialog bot

{
  • "$_type": "DialogBotData",
  • "id": "c1a-ED06Dbat9daFBtC4l85",
  • "creationTimestamp": 1546300800000,
  • "modificationTimestamp": 1548979200000,
  • "version": 1,
  • "accountId": "A7d9E_0-c3cC4aoFDb85t6n",
  • "name": "test-bot-1",
  • "description": null,
  • "botPersonId": "BoL9zZSbQeGGXMfCLxWZ4g",
  • "webhookStatus": "INACTIVE",
  • "webhookEndpoint": "http://test.webhook.com",
  • "webhookSecret": null,
  • "onboardingOrder": 10,
  • "reboardingOrder": 10,
  • "offboardingOrder": 10,
  • "onboardingFilter": "NONE",
  • "reboardingEnabled": false,
  • "offboardingFilter": "NONE",
  • "needsCounterpartPresence": false,
  • "messageStateHandledExternally": false,
  • "onTimeoutBehavior": "HAND_OFF"
}

pingWebhook

Emits a WebhookPingEvent on the configured webhook for the dialog bot.

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
dialogBotId
string

The ID of the dialog bot

Responses

Request samples

Content type
application/json

Send a ping event for the given bot

{
  • "dialogBotId": "c1a-ED06Dbat9daFBtC4l85"
}

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

read

Reads an existing dialog bot.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
id
string

The ID of the dialog bot.

Responses

Response samples

Content type
application/json

Dialog bot

{
  • "$_type": "DialogBotData",
  • "id": "c1a-ED06Dbat9daFBtC4l85",
  • "creationTimestamp": 1546300800000,
  • "modificationTimestamp": 1548979200000,
  • "version": 1,
  • "accountId": "A7d9E_0-c3cC4aoFDb85t6n",
  • "name": "test-bot-1",
  • "description": null,
  • "botPersonId": "BoL9zZSbQeGGXMfCLxWZ4g",
  • "webhookStatus": "INACTIVE",
  • "webhookEndpoint": "http://test.webhook.com",
  • "webhookSecret": null,
  • "onboardingOrder": 10,
  • "reboardingOrder": 10,
  • "offboardingOrder": 10,
  • "onboardingFilter": "NONE",
  • "reboardingEnabled": false,
  • "offboardingFilter": "NONE",
  • "needsCounterpartPresence": false,
  • "messageStateHandledExternally": false,
  • "onTimeoutBehavior": "HAND_OFF"
}

search

Search for dialog bots in the current account

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
$_type
string
Default: "DialogBotQuery"
Value: "DialogBotQuery"
Array of any (DialogBotSearchFilter) [ items ]

List of filters to narrow the search of entities

Array of objects (DialogBotOrderBy) [ items ]

List of criteria to order the search result list

offset
integer <int32>

Offset position in the result set to start pagination

limit
integer <int32>

Maximal amount of items returned

Responses

Request samples

Content type
application/json
{
  • "$_type": "DialogBotQuery",
  • "searchFilters": [
    ],
  • "orderBy": [
    ],
  • "offset": 0,
  • "limit": 0
}

Response samples

Content type
application/json
{
  • "$_type": "DialogBotResult",
  • "hasMoreItems": true,
  • "nextOffset": 0,
  • "items": [
    ]
}

sendDialogMessage

Sends a message as a bot into an ongoing dialog.

It can only be used after the bot received the BotDialogOpenEvent webhook for this dialog.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json

The message to send

$_type
string
Default: "BotDialogPostMessage"
Value: "BotDialogPostMessage"
dialogToken
string

The token belonging to the dialog the bot wants the message to

any (PostMessageData)

Base class for all conversation messages send to the collaboration server.
Can be one of FilePostMessageData, MultichoiceQuestionPostMessageData, RatingQuestionPostMessageData, ReplyPostMessageData,TextPostMessageData or TextQuestionPostMessageData

Responses

Request samples

Content type
application/json
{
  • "$_type": "BotDialogPostMessage",
  • "dialogToken": "string",
  • "messageData": {
    }
}

Response samples

Content type
application/json
"string"

sendMessage

Sends a message to a conversation as a bot.

This can be used at any time during a conversation. It is not related to bot dialogs.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json

The message to send

$_type
string
Default: "BotPostMessage"
Value: "BotPostMessage"
conversationId
string

The id of the conversation to which this message belongs to

senderPersonId
string

ID of the bot person that sent the message.

recipientPersonIds
Array of strings

Person IDs of the recipients of the message. If it is null, all active participations are recipients

any (PostMessageData)

Base class for all conversation messages send to the collaboration server.
Can be one of FilePostMessageData, MultichoiceQuestionPostMessageData, RatingQuestionPostMessageData, ReplyPostMessageData,TextPostMessageData or TextQuestionPostMessageData

Responses

Request samples

Content type
application/json
Example

Send card message from the bot

{
  • "$_type": "BotPostMessage",
  • "conversationId": "AcviDb210C5BoFd6e_79oan",
  • "senderPersonId": "nta30CBa-6d1a89cE57Db_F",
  • "recipientPersonIds": [
    ],
  • "messageData": {
    }
}

Response samples

Content type
application/json
"string"

update

Updates an existing dialog bot.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
$_type
string
Default: "DialogBotData"
Value: "DialogBotData"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

name
string

Name of the dialog bot. Maximum length of 250 characters. Can not be omitted.

description
string

Description of the dialog bot. Maximum length of 500 characters. Can be omitted.

botPersonId
string

ID of the person representing the bot

webhookStatus
string (ERegistrationStatus)
Enum: "ACTIVE" "INACTIVE" "INACTIVE_UNAVAILABLE"
enum-descriptions: ["ACTIVE: Registration is active","INACTIVE: Registration is not active","INACTIVE_UNAVAILABLE: Registration is not active, because it is unavailable"]

Possible Webhook Registration Status

webhookEndpoint
string

The endpoint url of the webhook registration. To this url the requests for the webhook events are done. Maximum length of 4000 characters.

Based on the configured filters/flags the following events will be sent to the endpoint:

  • TypedEvent.BOT_ONBOARDING_OFFER: When a person matching the onboarding filter joins a conversation.
  • TypedEvent.BOT_REBOARDING_OFFER: When a person writes a message to an unassigned conversation and the reboardingEnabled flag is set to true.
  • TypedEvent.BOT_OFFBOARDING_OFFER: When a person matching the offboarding filter leaves a conversation or the conversation ends.
  • TypedEvent.BOT_DIALOG_OPENED: When a preaviously accepted bot dialog starts
  • TypedEvent.BOT_DIALOG_MESSAGE: On each message of a previously accepted bot dialog.
  • TypedEvent.BOT_DIALOG_MESSAGE_STATE: On each message state update of a previously accepted bot dialog.
  • TypedEvent.BOT_DIALOG_COUNTERPART_CHANGED: When the counterpart person of dialog changes during a dialog.
  • TypedEvent.BOT_DIALOG_CLOSED: When a previously accepted bot dialog closes.

webhookSecret
string

Optional secret which is send with each webhook event.

Maximum length of 4000 characters.

onboardingOrder
integer <int32>

Defines the onboarding order of this bot.

If more than one bots want to participate in an onboarding, the one with the lowest order value will go first.

reboardingOrder
integer <int32>

Defines the reboarding order of this bot.

If more than one bots want to participate in an reboarding, the one with the lowest order value will go first.

offboardingOrder
integer <int32>

Defines the offboarding priority of this bot.

If more than one bots want to participate in an offboarding, the one with the lowest order value will go first.

onboardingFilter
string (EBotDialogFilter)
Enum: "VISITORS" "AGENTS" "BOTH" "NONE"
enum-descriptions: ["VISITORS: Only handle dialogs that with visitors as the counterpart.","AGENTS: Only handle dialogs with agents as the counterpart","BOTH: Handle dialogs with both agents and visitors as the counterpart","NONE: Don't handle any dialogs."]
reboardingEnabled
boolean

Defines if this bot can reboard.

A reboarding offer will be sent only if this flag is enabled, giving the bot the chance to be part of the reboarding.

offboardingFilter
string (EBotDialogFilter)
Enum: "VISITORS" "AGENTS" "BOTH" "NONE"
enum-descriptions: ["VISITORS: Only handle dialogs that with visitors as the counterpart.","AGENTS: Only handle dialogs with agents as the counterpart","BOTH: Handle dialogs with both agents and visitors as the counterpart","NONE: Don't handle any dialogs."]
needsCounterpartPresence
boolean

Defines if the counterpart has to be online for the onboarding to start. E.g. if questions have to be answered live.

messageStateHandledExternally
boolean

Defines if the delivered/read state of messages is handled externally or by the collaboration server.
If the collaboration server handles the state, the messages are marked as delivered and read a soon as the webhook could be successfully dispatched to the configured webhookEndpoint.
If the it is handled externally, the external service has to call the api function to mark the message as delivered/read. Additionally webhook events for the message state of messages from the bot are dispatched.

onTimeoutBehavior
string (EBotDialogTimeoutBehavior)
Enum: "ABORT" "HAND_OFF"
enum-descriptions: ["ABORT: Abort on-boarding the conversation when it comes to timeout. Default for internal bots.","HAND_OFF: Proceed further in on-boarding the conversation when it comes to timeout. Default for external bots."]

Defines what should happen with the conversation when it comes to timeout during on-boarding.
When omitted the default for external bots is set to HAND_OFF.

Responses

Request samples

Content type
application/json
{
  • "$_type": "DialogBotData",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "name": "string",
  • "description": "string",
  • "botPersonId": "string",
  • "webhookStatus": "ACTIVE",
  • "webhookEndpoint": "string",
  • "webhookSecret": "string",
  • "onboardingOrder": 0,
  • "reboardingOrder": 0,
  • "offboardingOrder": 0,
  • "onboardingFilter": "VISITORS",
  • "reboardingEnabled": true,
  • "offboardingFilter": "VISITORS",
  • "needsCounterpartPresence": true,
  • "messageStateHandledExternally": true,
  • "onTimeoutBehavior": "ABORT"
}

Response samples

Content type
application/json
{
  • "$_type": "DialogBotData",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "name": "string",
  • "description": "string",
  • "botPersonId": "string",
  • "webhookStatus": "ACTIVE",
  • "webhookEndpoint": "string",
  • "webhookSecret": "string",
  • "onboardingOrder": 0,
  • "reboardingOrder": 0,
  • "offboardingOrder": 0,
  • "onboardingFilter": "VISITORS",
  • "reboardingEnabled": true,
  • "offboardingFilter": "VISITORS",
  • "needsCounterpartPresence": true,
  • "messageStateHandledExternally": true,
  • "onTimeoutBehavior": "ABORT"
}

CannedResponses

Service to manage canned responses.
The canned responses a user can edit and the once he can use for chat can differ. The once he can edit are depending on his role. The ones he can use in a chat depends on the team setup and his role. See the following policies for the list of chat messages available for chat:

  • All canned responses of the own user.
  • All canned responses of the team cascade (the users team and all of the parent teams)
  • All canned responses of the sub-teams if role is: SUPERVISOR or higher.
  • All canned responses of all teams if role is: ADMIN or higher.
  • All canned responses of the users account.
In comparison to this the creation/editing/deleting of canned responses follow the following policies:
  • All canned responses of the own user.
  • All canned responses of the sub-teams if role is: SUPERVISOR or higher.
  • All canned responses of all teams if role is: ADMIN or higher.
  • All canned responses of the users account if role is: ADMIN or higher.

create

Creates the given entity in the system. The id of the entity can not be set for create operation, a new one is generated.

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
Request Body schema: application/json

The entity to create

$_type
string
Default: "CannedResponse"
Value: "CannedResponse"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

ownerId
string

Id of the owner of the entity. Can not be omitted.

ownerType
string (EPropertyOwnerType)
Enum: "GLOBAL" "ACCOUNT" "TEAM" "USER" "AREA" "APIKEY" "PERSON" "CONVERSATION" "CONVERSATION_TEMPLATE" "EXTERNAL_MESSENGER_CHANNEL"
enum-descriptions: ["GLOBAL: Global system is owner","ACCOUNT: Account is owner","TEAM: Team is owner","USER: User is owner","AREA: NamedArea is owner","APIKEY: ApiKey is owner","PERSON: Person","CONVERSATION: Conversation","CONVERSATION_TEMPLATE: Conversation template","EXTERNAL_MESSENGER_CHANNEL: External messenger channel"]

Type of an owner of an entity

key
string

The key of a canned response to access it quickly. Maximum of 250 characters. Can not be omitted.

title
string

The title of a canned response. Maximum of 250 characters. Can be omitted, but should not.

text
string

The text of a canned response. Can be omitted, but should not.

Responses

Request samples

Content type
application/json
Example

Create a new canned response for the account

{
  • "$_type": "CannedResponse",
  • "id": null,
  • "creationTimestamp": null,
  • "modificationTimestamp": null,
  • "version": null,
  • "accountId": null,
  • "ownerId": null,
  • "ownerType": "ACCOUNT",
  • "key": "niceDay",
  • "title": "Have a nice day",
  • "text": "It was great chatting with you, have a nice day!"
}

Response samples

Content type
application/json
Example

New canned response for the account

{
  • "$_type": "CannedResponse",
  • "id": "EasFde6CRn83pnBCec_4Ds0",
  • "creationTimestamp": 1546300800000,
  • "modificationTimestamp": 1548979200000,
  • "version": 1,
  • "accountId": "A7d9E_0-c3cC4aoFDb85t6n",
  • "ownerId": "A7d9E_0-c3cC4aoFDb85t6n",
  • "ownerType": "ACCOUNT",
  • "key": "niceDay",
  • "title": "Have a nice day",
  • "text": "It was great chatting with you, have a nice day!"
}

delete

Deletes the entity for the given id

legacy-get: true
required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
id
string

The id of the entity which should be deleted

Responses

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

getCannedResponsesAvailableForChat

Returns all CannedResponses that are available inside chat sessions for the calling user.
The user may be allowed to edit more than the returned canned responses if he has the rights.

Note: For editing use the getByOwnerTypeAndId or getAll service.


required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:

Responses

Response samples

Content type
application/json
[
  • {
    }
]

getWritableConfigurationScopes

Returns a list of all configuration scopes for which the calling user may add, delete or edits canned responses. Depending on the permissions of the users, these configuration scopes can be more then the ones which are available for the user in a chat.

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:

Responses

Response samples

Content type
application/json
[
  • {
    }
]

getWritableConfigurationScopesAvailableForChat

Returns all configurations scopes available for chat to the calling user that the calling user may add, delete and edit canned responses for.

Note: The returned scopes may be equal to or be a subset of the the scopes returned by getWritableConfigurationScopes depending on the user role.

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:

Responses

Response samples

Content type
application/json
[
  • {
    }
]

read

Returns the canned response for the given id

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
id
string

Id of the canned response which should be returned

Responses

Response samples

Content type
application/json
{
  • "$_type": "CannedResponse",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "ownerId": "string",
  • "ownerType": "GLOBAL",
  • "key": "string",
  • "title": "string",
  • "text": "string"
}

readMultiple

Gets a list of canned responses for the given id's

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
Request Body schema: application/json

The id's for which the canned responses should be fetched

Array
string

Responses

Request samples

Content type
application/json
[
  • "string"
]

Response samples

Content type
application/json
[
  • {
    }
]

search

Search for domains in the current account

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
Request Body schema: application/json
$_type
string
Default: "CannedResponseQuery"
Value: "CannedResponseQuery"
Array of any (CannedResponseSearchFilter) [ items ]

List of filters to narrow the search of entities

Array of objects (CannedResponseOrderBy) [ items ]

List of criteria to order the search result list

offset
integer <int32>

Offset position in the result set to start pagination

limit
integer <int32>

Maximal amount of items returned

Responses

Request samples

Content type
application/json
{
  • "$_type": "CannedResponseQuery",
  • "searchFilters": [
    ],
  • "orderBy": [
    ],
  • "offset": 0,
  • "limit": 0
}

Response samples

Content type
application/json
{
  • "$_type": "CannedResponseResult",
  • "hasMoreItems": true,
  • "nextOffset": 0,
  • "items": [
    ]
}

update

Updates the entity in the system with the given entity.

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
Request Body schema: application/json

The entity to update

$_type
string
Default: "CannedResponse"
Value: "CannedResponse"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

ownerId
string

Id of the owner of the entity. Can not be omitted.

ownerType
string (EPropertyOwnerType)
Enum: "GLOBAL" "ACCOUNT" "TEAM" "USER" "AREA" "APIKEY" "PERSON" "CONVERSATION" "CONVERSATION_TEMPLATE" "EXTERNAL_MESSENGER_CHANNEL"
enum-descriptions: ["GLOBAL: Global system is owner","ACCOUNT: Account is owner","TEAM: Team is owner","USER: User is owner","AREA: NamedArea is owner","APIKEY: ApiKey is owner","PERSON: Person","CONVERSATION: Conversation","CONVERSATION_TEMPLATE: Conversation template","EXTERNAL_MESSENGER_CHANNEL: External messenger channel"]

Type of an owner of an entity

key
string

The key of a canned response to access it quickly. Maximum of 250 characters. Can not be omitted.

title
string

The title of a canned response. Maximum of 250 characters. Can be omitted, but should not.

text
string

The text of a canned response. Can be omitted, but should not.

Responses

Request samples

Content type
application/json
{
  • "$_type": "CannedResponse",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "ownerId": "string",
  • "ownerType": "GLOBAL",
  • "key": "string",
  • "title": "string",
  • "text": "string"
}

Response samples

Content type
application/json
{
  • "$_type": "CannedResponse",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "ownerId": "string",
  • "ownerType": "GLOBAL",
  • "key": "string",
  • "title": "string",
  • "text": "string"
}

Contacts

Service to access the contact data for an account

create

Creates the given entity in the system. The id of the entity can not be set for create operation, a new one is generated.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json

The entity to create

$_type
string
Default: "Contact"
Value: "Contact"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

ownerId
string

Id of the owner of the entity. Can not be omitted.

ownerType
string (EPropertyOwnerType)
Enum: "GLOBAL" "ACCOUNT" "TEAM" "USER" "AREA" "APIKEY" "PERSON" "CONVERSATION" "CONVERSATION_TEMPLATE" "EXTERNAL_MESSENGER_CHANNEL"
enum-descriptions: ["GLOBAL: Global system is owner","ACCOUNT: Account is owner","TEAM: Team is owner","USER: User is owner","AREA: NamedArea is owner","APIKEY: ApiKey is owner","PERSON: Person","CONVERSATION: Conversation","CONVERSATION_TEMPLATE: Conversation template","EXTERNAL_MESSENGER_CHANNEL: External messenger channel"]

Type of an owner of an entity

type
string (EContactType)
Enum: "UNKNOWN_PHONE" "MOBILE_PHONE" "FIXNET_PHONE" "EMAIL" "URL"
enum-descriptions: ["UNKNOWN_PHONE: Any phone number (fixnet, mobile,...)","MOBILE_PHONE: Mobile phone number","FIXNET_PHONE: Fixnet phone number","EMAIL: email address","URL: Url (e.g. company homepage url)"]

Type of a contact information

data
string

The data of the contact information. e.g. a phone number. It is used for presentation. Can not be omitted.

rawData
string

The raw data of the contact information. In most cases it is the same as the data field. Can not be omitted.

Responses

Request samples

Content type
application/json
{
  • "$_type": "Contact",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "ownerId": "string",
  • "ownerType": "GLOBAL",
  • "type": "UNKNOWN_PHONE",
  • "data": "string",
  • "rawData": "string"
}

Response samples

Content type
application/json
{
  • "$_type": "Contact",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "ownerId": "string",
  • "ownerType": "GLOBAL",
  • "type": "UNKNOWN_PHONE",
  • "data": "string",
  • "rawData": "string"
}

delete

Deletes the entity for the given id

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
id
string

The id of the entity which should be deleted

Responses

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

read

Returns the entity for the given id

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
id
string

Id of the entity which should be returned

Responses

Response samples

Content type
application/json
{
  • "$_type": "Contact",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "ownerId": "string",
  • "ownerType": "GLOBAL",
  • "type": "UNKNOWN_PHONE",
  • "data": "string",
  • "rawData": "string"
}

readMultiple

Gets a list of entities for the given id's

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json

The id's for which the entities should be fetched

Array
string

Responses

Request samples

Content type
application/json
[
  • "string"
]

Response samples

Content type
application/json
[
  • {
    }
]

search

Search for contacts in the current account

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
$_type
string
Default: "ContactQuery"
Value: "ContactQuery"
Array of any (ContactSearchFilter) [ items ]

List of filters to narrow the search of entities

Array of objects (ContactOrderBy) [ items ]

List of criteria to order the search result list

offset
integer <int32>

Offset position in the result set to start pagination

limit
integer <int32>

Maximal amount of items returned

Responses

Request samples

Content type
application/json
{
  • "$_type": "ContactQuery",
  • "searchFilters": [
    ],
  • "orderBy": [
    ],
  • "offset": 0,
  • "limit": 0
}

Response samples

Content type
application/json
{
  • "$_type": "ContactResult",
  • "hasMoreItems": true,
  • "nextOffset": 0,
  • "items": [
    ]
}

update

Updates the entity in the system with the given entity.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json

The entity to update

$_type
string
Default: "Contact"
Value: "Contact"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

ownerId
string

Id of the owner of the entity. Can not be omitted.

ownerType
string (EPropertyOwnerType)
Enum: "GLOBAL" "ACCOUNT" "TEAM" "USER" "AREA" "APIKEY" "PERSON" "CONVERSATION" "CONVERSATION_TEMPLATE" "EXTERNAL_MESSENGER_CHANNEL"
enum-descriptions: ["GLOBAL: Global system is owner","ACCOUNT: Account is owner","TEAM: Team is owner","USER: User is owner","AREA: NamedArea is owner","APIKEY: ApiKey is owner","PERSON: Person","CONVERSATION: Conversation","CONVERSATION_TEMPLATE: Conversation template","EXTERNAL_MESSENGER_CHANNEL: External messenger channel"]

Type of an owner of an entity

type
string (EContactType)
Enum: "UNKNOWN_PHONE" "MOBILE_PHONE" "FIXNET_PHONE" "EMAIL" "URL"
enum-descriptions: ["UNKNOWN_PHONE: Any phone number (fixnet, mobile,...)","MOBILE_PHONE: Mobile phone number","FIXNET_PHONE: Fixnet phone number","EMAIL: email address","URL: Url (e.g. company homepage url)"]

Type of a contact information

data
string

The data of the contact information. e.g. a phone number. It is used for presentation. Can not be omitted.

rawData
string

The raw data of the contact information. In most cases it is the same as the data field. Can not be omitted.

Responses

Request samples

Content type
application/json
{
  • "$_type": "Contact",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "ownerId": "string",
  • "ownerType": "GLOBAL",
  • "type": "UNKNOWN_PHONE",
  • "data": "string",
  • "rawData": "string"
}

Response samples

Content type
application/json
{
  • "$_type": "Contact",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "ownerId": "string",
  • "ownerType": "GLOBAL",
  • "type": "UNKNOWN_PHONE",
  • "data": "string",
  • "rawData": "string"
}

ConversationHistory

Service to get the history of conversations

read

Returns the conversation history data for a given conversation.

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
conversationId
string

id of the conversation

expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"

Responses

Response samples

Content type
application/json
{
  • "$_type": "ConversationHistoryData",
  • "id": "string",
  • "recipient": {
    },
  • "assigneePerson": {
    },
  • "contextPerson": {
    },
  • "endPerson": {
    },
  • "participants": [
    ],
  • "createdTimestamp": 0,
  • "onboardingTimestamp": 0,
  • "activationTimestamp": 0,
  • "assigneeJoinTimestamp": 0,
  • "reboardingTimestamp": 0,
  • "offboardingTimestamp": 0,
  • "endTimestamp": 0,
  • "queuedTimestamp": 0,
  • "state": "CREATED",
  • "initialEngagementType": "CHAT_REQUEST",
  • "locale": "string",
  • "endReason": "ENDED_BY_PARTICIPANT",
  • "tokboxSessionId": "string",
  • "conversationTemplateId": "string",
  • "externalMessengerChannelIconId": "string",
  • "externalMessengerChannelName": "string"
}

search

Generic conversation history search.

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

The Conversation history query.

$_type
string
Default: "ConversationQuery"
Value: "ConversationQuery"
Array of any (ConversationSearchFilter) [ items ]

List of filters to narrow the search of entities

Array of objects (ConversationOrderBy) [ items ]

List of criteria to order the search result list

offset
integer <int32>

Offset position in the result set to start pagination

limit
integer <int32>

Maximal amount of items returned

Responses

Request samples

Content type
application/json
{
  • "$_type": "ConversationQuery",
  • "searchFilters": [
    ],
  • "orderBy": [
    ],
  • "offset": 0,
  • "limit": 0
}

Response samples

Content type
application/json
[
  • {
    }
]

searchMessages

Search messages belonging to a specific conversation

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
path Parameters
conversationId
required
string

id of the conversation

Request Body schema: application/json
$_type
string
Default: "MessageQuery"
Value: "MessageQuery"
Array of any (MessageSearchFilter) [ items ]

List of filters to narrow the search of entities

Array of objects (MessageOrderBy) [ items ]

List of criteria to order the search result list

offset
integer <int32>

Offset position in the result set to start pagination

limit
integer <int32>

Maximal amount of items returned

Responses

Request samples

Content type
application/json
{
  • "$_type": "MessageQuery",
  • "searchFilters": [
    ],
  • "orderBy": [
    ],
  • "offset": 0,
  • "limit": 0
}

Response samples

Content type
application/json
{
  • "$_type": "MessageResult",
  • "hasMoreItems": true,
  • "nextOffset": 0,
  • "items": [
    ]
}

ConversationTemplates

Service to manage all conversation templates.

create

Creates the given entity in the system. The id of the entity can not be set for create operation, a new one is generated.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

The entity to create

$_type
string
Default: "ConversationTemplate"
Value: "ConversationTemplate"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

name
string

Name of the named area. Maximum of 250 characters. Can not be omitted.

description
string

Description of the named area. Maximum of 500 characters. Can be omitted.

defaultTemplate
boolean

If true, this will be the default template for the initial engagement Type

initialEngagementType
string (EInitialEngagementType)
Enum: "CHAT_REQUEST" "OFFLINE_CHAT_REQUEST" "VIDEO_REQUEST" "AUDIO_REQUEST" "HEADLESS_BROWSER_REQUEST" "DOMCAP_BROWSER_REQUEST" "MOBILE_COBROWSING_REQUEST" "SCREEN_SHARING_REQUEST" "VISITOR_COBROWSING" "HEADLESS_PIN" "DOMCAP_PIN" "MOBILE_PIN" "SCREEN_SHARING_PIN" "CHAT_INVITE" "HEADLESS_INVITE" "SCREEN_SHARING_INVITE"
enum-descriptions: ["CHAT_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming chat conversation.","OFFLINE_CHAT_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming chat conversation while all agents are offline.","VIDEO_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming video conversation.","AUDIO_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming audio conversation.","HEADLESS_BROWSER_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming universal co-browsing conversation.","DOMCAP_BROWSER_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming embedded co-browsing conversation.","MOBILE_COBROWSING_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming mobile co-browsing conversation.","SCREEN_SHARING_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming screen sharing conversation.","VISITOR_COBROWSING: (Api initiated, visitor centered) A visitor creates a conversation via API which is not added to the queue and where he can invite other visitor to do embedded","HEADLESS_PIN: (Agent initiated, visitor centered) An agent creates a conversation with a PIN invitation for the visitor to join an universal co-browsing conversation.","DOMCAP_PIN: (Agent initiated, visitor centered) An agent creates a conversation with a PIN invitation for the visitor to join an embedded co-browsing conversation.","MOBILE_PIN: (Agent initiated, visitor centered) An agent creates a conversation with a PIN invitation for the visitor to join a mobile co-browsing conversation.","SCREEN_SHARING_PIN: (Agent initiated, visitor centered) An agent creates a conversation with a PIN invitation for the visitor to join a screen sharing conversation.","CHAT_INVITE: (Agent initiated, agent centered) An agent creates a chat conversation (this is the recommended initial engagement type for conversation created with the Web API).","HEADLESS_INVITE: (Agent initiated, agent centered) An agent creates universal co-browsing conversation and invites customer later.","SCREEN_SHARING_INVITE: (Agent initiated, agent centered) An agent creates screen sharing conversation and invites customer later."]

The initial type of a conversation. The type used at creation time of the conversation determines the conversation template that is used.

object
expand-query-key: configuration
type: Map

The entity's configuration properties. Only contains values when the 'expand' query parameter is used with the value 'configuration'.

object
expand-query-key: text
type: Map

The entity's text properties. Only contains values when the 'expand' query parameter is used with the value 'text'.

object
expand-query-key: metadata
type: Map

The entity's metadata properties. Only contains values when the 'expand' query parameter is used with the value 'metadata'.

Responses

Request samples

Content type
application/json
{
  • "$_type": "ConversationTemplate",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "name": "string",
  • "description": "string",
  • "defaultTemplate": true,
  • "initialEngagementType": "CHAT_REQUEST",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "$_type": "ConversationTemplate",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "name": "string",
  • "description": "string",
  • "defaultTemplate": true,
  • "initialEngagementType": "CHAT_REQUEST",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

delete

Deletes the entity for the given id

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
id
string

The id of the entity which should be deleted

Responses

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

getDefaultTemplateByEngagementType

Gets the default conversation template for a given initial engagement type

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
initialEngagementType
string (EInitialEngagementType)
Enum: "CHAT_REQUEST" "OFFLINE_CHAT_REQUEST" "VIDEO_REQUEST" "AUDIO_REQUEST" "HEADLESS_BROWSER_REQUEST" "DOMCAP_BROWSER_REQUEST" "MOBILE_COBROWSING_REQUEST" "SCREEN_SHARING_REQUEST" "VISITOR_COBROWSING" "HEADLESS_PIN" "DOMCAP_PIN" "MOBILE_PIN" "SCREEN_SHARING_PIN" "CHAT_INVITE" "HEADLESS_INVITE" "SCREEN_SHARING_INVITE"
enum-descriptions: ["CHAT_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming chat conversation.","OFFLINE_CHAT_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming chat conversation while all agents are offline.","VIDEO_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming video conversation.","AUDIO_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming audio conversation.","HEADLESS_BROWSER_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming universal co-browsing conversation.","DOMCAP_BROWSER_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming embedded co-browsing conversation.","MOBILE_COBROWSING_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming mobile co-browsing conversation.","SCREEN_SHARING_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming screen sharing conversation.","VISITOR_COBROWSING: (Api initiated, visitor centered) A visitor creates a conversation via API which is not added to the queue and where he can invite other visitor to do embedded","HEADLESS_PIN: (Agent initiated, visitor centered) An agent creates a conversation with a PIN invitation for the visitor to join an universal co-browsing conversation.","DOMCAP_PIN: (Agent initiated, visitor centered) An agent creates a conversation with a PIN invitation for the visitor to join an embedded co-browsing conversation.","MOBILE_PIN: (Agent initiated, visitor centered) An agent creates a conversation with a PIN invitation for the visitor to join a mobile co-browsing conversation.","SCREEN_SHARING_PIN: (Agent initiated, visitor centered) An agent creates a conversation with a PIN invitation for the visitor to join a screen sharing conversation.","CHAT_INVITE: (Agent initiated, agent centered) An agent creates a chat conversation (this is the recommended initial engagement type for conversation created with the Web API).","HEADLESS_INVITE: (Agent initiated, agent centered) An agent creates universal co-browsing conversation and invites customer later.","SCREEN_SHARING_INVITE: (Agent initiated, agent centered) An agent creates screen sharing conversation and invites customer later."]

The initial type of a conversation. The type used at creation time of the conversation determines the conversation template that is used.

expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"

Responses

Response samples

Content type
application/json
{
  • "$_type": "ConversationTemplate",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "name": "string",
  • "description": "string",
  • "defaultTemplate": true,
  • "initialEngagementType": "CHAT_REQUEST",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

read

Returns the entity for the given id

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
id
string

Id of the entity which should be returned

expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"

Responses

Response samples

Content type
application/json
{
  • "$_type": "ConversationTemplate",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "name": "string",
  • "description": "string",
  • "defaultTemplate": true,
  • "initialEngagementType": "CHAT_REQUEST",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

readMultiple

Gets a list of entities for the given id's

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

The id's for which the entities should be fetched

Array
string

Responses

Request samples

Content type
application/json
[
  • "string"
]

Response samples

Content type
application/json
[
  • {
    }
]

search

Search for conversation-templates in the current account

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json
$_type
string
Default: "ConversationTemplateQuery"
Value: "ConversationTemplateQuery"
Array of any (ConversationTemplateSearchFilter) [ items ]

List of filters to narrow the search of entities

Array of objects (ConversationTemplateOrderBy) [ items ]

List of criteria to order the search result list

offset
integer <int32>

Offset position in the result set to start pagination

limit
integer <int32>

Maximal amount of items returned

Responses

Request samples

Content type
application/json
{
  • "$_type": "ConversationTemplateQuery",
  • "searchFilters": [
    ],
  • "orderBy": [
    ],
  • "offset": 0,
  • "limit": 0
}

Response samples

Content type
application/json
{
  • "$_type": "ConversationTemplateResult",
  • "hasMoreItems": true,
  • "nextOffset": 0,
  • "items": [
    ]
}

update

Updates the entity in the system with the given entity.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

The entity to update

$_type
string
Default: "ConversationTemplate"
Value: "ConversationTemplate"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

name
string

Name of the named area. Maximum of 250 characters. Can not be omitted.

description
string

Description of the named area. Maximum of 500 characters. Can be omitted.

defaultTemplate
boolean

If true, this will be the default template for the initial engagement Type

initialEngagementType
string (EInitialEngagementType)
Enum: "CHAT_REQUEST" "OFFLINE_CHAT_REQUEST" "VIDEO_REQUEST" "AUDIO_REQUEST" "HEADLESS_BROWSER_REQUEST" "DOMCAP_BROWSER_REQUEST" "MOBILE_COBROWSING_REQUEST" "SCREEN_SHARING_REQUEST" "VISITOR_COBROWSING" "HEADLESS_PIN" "DOMCAP_PIN" "MOBILE_PIN" "SCREEN_SHARING_PIN" "CHAT_INVITE" "HEADLESS_INVITE" "SCREEN_SHARING_INVITE"
enum-descriptions: ["CHAT_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming chat conversation.","OFFLINE_CHAT_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming chat conversation while all agents are offline.","VIDEO_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming video conversation.","AUDIO_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming audio conversation.","HEADLESS_BROWSER_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming universal co-browsing conversation.","DOMCAP_BROWSER_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming embedded co-browsing conversation.","MOBILE_COBROWSING_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming mobile co-browsing conversation.","SCREEN_SHARING_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming screen sharing conversation.","VISITOR_COBROWSING: (Api initiated, visitor centered) A visitor creates a conversation via API which is not added to the queue and where he can invite other visitor to do embedded","HEADLESS_PIN: (Agent initiated, visitor centered) An agent creates a conversation with a PIN invitation for the visitor to join an universal co-browsing conversation.","DOMCAP_PIN: (Agent initiated, visitor centered) An agent creates a conversation with a PIN invitation for the visitor to join an embedded co-browsing conversation.","MOBILE_PIN: (Agent initiated, visitor centered) An agent creates a conversation with a PIN invitation for the visitor to join a mobile co-browsing conversation.","SCREEN_SHARING_PIN: (Agent initiated, visitor centered) An agent creates a conversation with a PIN invitation for the visitor to join a screen sharing conversation.","CHAT_INVITE: (Agent initiated, agent centered) An agent creates a chat conversation (this is the recommended initial engagement type for conversation created with the Web API).","HEADLESS_INVITE: (Agent initiated, agent centered) An agent creates universal co-browsing conversation and invites customer later.","SCREEN_SHARING_INVITE: (Agent initiated, agent centered) An agent creates screen sharing conversation and invites customer later."]

The initial type of a conversation. The type used at creation time of the conversation determines the conversation template that is used.

object
expand-query-key: configuration
type: Map

The entity's configuration properties. Only contains values when the 'expand' query parameter is used with the value 'configuration'.

object
expand-query-key: text
type: Map

The entity's text properties. Only contains values when the 'expand' query parameter is used with the value 'text'.

object
expand-query-key: metadata
type: Map

The entity's metadata properties. Only contains values when the 'expand' query parameter is used with the value 'metadata'.

Responses

Request samples

Content type
application/json
{
  • "$_type": "ConversationTemplate",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "name": "string",
  • "description": "string",
  • "defaultTemplate": true,
  • "initialEngagementType": "CHAT_REQUEST",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "$_type": "ConversationTemplate",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "name": "string",
  • "description": "string",
  • "defaultTemplate": true,
  • "initialEngagementType": "CHAT_REQUEST",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

Conversations

Service to manage conversations

addParticipant

Add a participant to a conversation.

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
path Parameters
conversationId
required
string

the conversation that is updated

query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json
personId
string

Id of the person to add

connectedViaExternalMessenger
boolean

If the participant is sending messages via a messenger channel, this parameter must be set to true. Otherwise false or do not set.

hidden
boolean

If the person should be hidden or not. Note: only secondary agents and bots may be hidden.

conversationStarred
boolean

If this conversation should be marked as starred for the person. If null, the default value is false

Responses

Request samples

Content type
application/json

Add a participant to a conversation

{
  • "personId": "nta30CBa-6d1a89cE57Db_F",
  • "connectedViaExternalMessenger": false,
  • "hidden": false,
  • "conversationStarred": false
}

Response samples

Content type
application/json
{
  • "$_type": "ConversationData",
  • "creationTimestamp": 0,
  • "endTimestamp": 0,
  • "id": "string",
  • "accountId": "string",
  • "topic": "string",
  • "recipient": {
    },
  • "participants": [
    ],
  • "assigneePersonId": "string",
  • "contextPersonId": "string",
  • "state": "CREATED",
  • "initialEngagementType": "CHAT_REQUEST",
  • "locale": "string",
  • "tokboxSessionId": "string",
  • "visitorData": "string",
  • "conversationTemplateId": "string",
  • "links": [
    ],
  • "externalMessengerChannelId": "string",
  • "sourceId": "string",
  • "endReason": "ENDED_BY_PARTICIPANT",
  • "initialEngagementUrl": "string",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

changeParticipantVisibility

Changes the visibility of a conversation's participant.

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
path Parameters
conversationId
required
string
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json
personId
string
hidden
boolean

Responses

Request samples

Content type
application/json

Mark an agent as visible

{
  • "personId": "nta30CBa-6d1a89cE57Db_F",
  • "hidden": false
}

Response samples

Content type
application/json
{
  • "$_type": "ConversationData",
  • "creationTimestamp": 0,
  • "endTimestamp": 0,
  • "id": "string",
  • "accountId": "string",
  • "topic": "string",
  • "recipient": {
    },
  • "participants": [
    ],
  • "assigneePersonId": "string",
  • "contextPersonId": "string",
  • "state": "CREATED",
  • "initialEngagementType": "CHAT_REQUEST",
  • "locale": "string",
  • "tokboxSessionId": "string",
  • "visitorData": "string",
  • "conversationTemplateId": "string",
  • "links": [
    ],
  • "externalMessengerChannelId": "string",
  • "sourceId": "string",
  • "endReason": "ENDED_BY_PARTICIPANT",
  • "initialEngagementUrl": "string",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

create

Creates the conversation in the system. The id of the conversation must not be set for the 'create' operation as a new one will be generated.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json
$_type
string
Default: "ConversationData"
Value: "ConversationData"
creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system.

endTimestamp
integer <int64>

utc timestamp when the conversation has ended (all participants have finished their offboarding).

id
string

Unique id of the conversation. When creating an entity this property can be omitted as it will be generated by the server anyway.

accountId
string

Account id to which the conversation belongs to. When creating a conversation, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

topic
string

Topic of the conversation. Can be omitted.

any (ConversationRecipientData)

Recipient of a conversation: Either a single PersonData, TeamData, NamedAreaData or AccountData. For compatibility reasons,RecipientData is also supported.

Array of objects (ParticipantData) [ items ]

Current participants of the conversation

assigneePersonId
string

PersonId of the assignee, must be one of the participants

contextPersonId
string

PersonId of the main visitor, must be one of the participants

state
string (EConversationState)
Enum: "CREATED" "ONBOARDING" "REBOARDING" "QUEUED" "ACTIVE" "UNASSIGNED" "OFFBOARDING" "ENDED"
enum-descriptions: ["CREATED: Initial state of a conversation","ONBOARDING: Depending of the engagement type of the conversation, the conversation stays in the onboarding state as long as the person in the center of the conversation is doing his onboarding","REBOARDING: When a message is send to an unassigned conversation, the conversation first is put into the reboarding state as long as the person in the center of the conversation is doing the reboarding.","QUEUED: Depending of the engagement type of the conversation, the conversation is put in the queued state when it is inside the queue.","ACTIVE: Conversation is active","UNASSIGNED: After there is no assignee of a conversation anymore, the conversation goes to unassigned state until a message from a visitor is written to start reboarding again.","OFFBOARDING: Conversation is being ended","ENDED: Conversation is ended"]

Life cycle state of the conversation. Following transitions are possible:

  • CREATED --> ONBOARDING, OFFBOARDING
  • ONBOARDING --> QUEUED, ACTIVE, OFFBOARDING, UNASSIGNED
  • REBOARDING --> QUEUED, OFFBOARDING
  • QUEUED --> ACTIVE, OFFBOARDING
  • ACTIVE --> UNASSIGNED, OFFBOARDING
  • UNASSIGNED --> REBOARDING, OFFBOARDING
  • OFFBOARDING --> ENDED
  • ENDED --> none

initialEngagementType
string (EInitialEngagementType)
Enum: "CHAT_REQUEST" "OFFLINE_CHAT_REQUEST" "VIDEO_REQUEST" "AUDIO_REQUEST" "HEADLESS_BROWSER_REQUEST" "DOMCAP_BROWSER_REQUEST" "MOBILE_COBROWSING_REQUEST" "SCREEN_SHARING_REQUEST" "VISITOR_COBROWSING" "HEADLESS_PIN" "DOMCAP_PIN" "MOBILE_PIN" "SCREEN_SHARING_PIN" "CHAT_INVITE" "HEADLESS_INVITE" "SCREEN_SHARING_INVITE"
enum-descriptions: ["CHAT_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming chat conversation.","OFFLINE_CHAT_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming chat conversation while all agents are offline.","VIDEO_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming video conversation.","AUDIO_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming audio conversation.","HEADLESS_BROWSER_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming universal co-browsing conversation.","DOMCAP_BROWSER_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming embedded co-browsing conversation.","MOBILE_COBROWSING_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming mobile co-browsing conversation.","SCREEN_SHARING_REQUEST: (Visitor initiated, visitor centered) A visitor creates an incoming screen sharing conversation.","VISITOR_COBROWSING: (Api initiated, visitor centered) A visitor creates a conversation via API which is not added to the queue and where he can invite other visitor to do embedded","HEADLESS_PIN: (Agent initiated, visitor centered) An agent creates a conversation with a PIN invitation for the visitor to join an universal co-browsing conversation.","DOMCAP_PIN: (Agent initiated, visitor centered) An agent creates a conversation with a PIN invitation for the visitor to join an embedded co-browsing conversation.","MOBILE_PIN: (Agent initiated, visitor centered) An agent creates a conversation with a PIN invitation for the visitor to join a mobile co-browsing conversation.","SCREEN_SHARING_PIN: (Agent initiated, visitor centered) An agent creates a conversation with a PIN invitation for the visitor to join a screen sharing conversation.","CHAT_INVITE: (Agent initiated, agent centered) An agent creates a chat conversation (this is the recommended initial engagement type for conversation created with the Web API).","HEADLESS_INVITE: (Agent initiated, agent centered) An agent creates universal co-browsing conversation and invites customer later.","SCREEN_SHARING_INVITE: (Agent initiated, agent centered) An agent creates screen sharing conversation and invites customer later."]

The initial type of a conversation. The type used at creation time of the conversation determines the conversation template that is used.

locale
string

Locale of the conversation language (as BCP 47 language tag form including region if available)

tokboxSessionId
string

Tokbox sessionId. When creating a conversation this property can be omitted as it will be generated by the server anyway.

visitorData
string

Custom data for the visitor. This has no specific format.

conversationTemplateId
string

Template id of this conversation. If omitted, the default conversationTemplate will be retrieved based on the initialEngagementType

Array of objects (ConversationLink) [ items ]

Links to open the conversation. When creating a conversation this property can be omitted as it will be generated by the server anyway.

externalMessengerChannelId
string

Id to the external messenger channel the conversation should be linked to. If this property is null the conversation is an Unblu conversation and not linked to a messenger channel.

sourceId
string

Custom id to identify the source of the conversation. Typically this is used in connection to an external messenger to create a link to the external conversation.
If this id is specified, it has to be unique per external channel. Also if the external channel is not used (null), it has to be unique for this "null"

endReason
string (EConversationEndReason)
Enum: "ENDED_BY_PARTICIPANT" "MANDATORY_PARTICIPANT_GONE" "EXTERNAL_CHANNEL_CLOSED" "SOLVED_BY_BOT" "OTHER"
enum-descriptions: ["ENDED_BY_PARTICIPANT","MANDATORY_PARTICIPANT_GONE","EXTERNAL_CHANNEL_CLOSED","SOLVED_BY_BOT","OTHER"]

Closing reason of a conversation

initialEngagementUrl
string

The URL where the conversation was originated. Conversations originated by a visitor where Unblu was integrated in the customers website will have a value. e.g. conversations initiated from the mobile SDK won't have a initial engagement URL.
Conversations created using the Web-API can also contain an initial engagement URL if one was provided at creation time.

object
expand-query-key: configuration
type: Map

The entity's configuration properties. Only contains values when the 'expand' query parameter is used with the value 'configuration'.

object
expand-query-key: text
type: Map

The entity's text properties. Only contains values when the 'expand' query parameter is used with the value 'text'.

object
expand-query-key: metadata
type: Map

The entity's metadata properties. Only contains values when the 'expand' query parameter is used with the value 'metadata'.

Responses

Request samples

Content type
application/json
{
  • "$_type": "ConversationData",
  • "creationTimestamp": 0,
  • "endTimestamp": 0,
  • "id": "string",
  • "accountId": "string",
  • "topic": "string",
  • "recipient": {
    },
  • "participants": [
    ],
  • "assigneePersonId": "string",
  • "contextPersonId": "string",
  • "state": "CREATED",
  • "initialEngagementType": "CHAT_REQUEST",
  • "locale": "string",
  • "tokboxSessionId": "string",
  • "visitorData": "string",
  • "conversationTemplateId": "string",
  • "links": [
    ],
  • "externalMessengerChannelId": "string",
  • "sourceId": "string",
  • "endReason": "ENDED_BY_PARTICIPANT",
  • "initialEngagementUrl": "string",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

Response samples

Content type
application/json

New conversation created

{
  • "$_type": "ConversationData",
  • "creationTimestamp": 1546300800000,
  • "endTimestamp": null,
  • "id": "AcviDb210C5BoFd6e_79oan",
  • "accountId": "A7d9E_0-c3cC4aoFDb85t6n",
  • "topic": null,
  • "recipient": {
    },
  • "participants": [
    ],
  • "assigneePersonId": null,
  • "contextPersonId": "nta30CBa-6d1a89cE57Db_F",
  • "state": "QUEUED",
  • "initialEngagementType": "CHAT_REQUEST",
  • "locale": "en",
  • "tokboxSessionId": null,
  • "visitorData": "test-visitorData-1234",
  • "conversationTemplateId": "ab32em6Be-5le_48rE1F9Ad",
  • "links": [
    ],
  • "externalMessengerChannelId": null,
  • "sourceId": null,
  • "endReason": null,
  • "initialEngagementUrl": null,
  • "configuration": null,
  • "text": null,
  • "metadata": null
}

delete

Deletes the conversation for the given id

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
id
string

The id of the conversation which should be deleted

Responses

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

end

End a conversation.

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
path Parameters
conversationId
required
string

the conversation that is updated

query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json
reason
string (EConversationEndReason)
Enum: "ENDED_BY_PARTICIPANT" "MANDATORY_PARTICIPANT_GONE" "EXTERNAL_CHANNEL_CLOSED" "SOLVED_BY_BOT" "OTHER"
enum-descriptions: ["ENDED_BY_PARTICIPANT","MANDATORY_PARTICIPANT_GONE","EXTERNAL_CHANNEL_CLOSED","SOLVED_BY_BOT","OTHER"]

Closing reason of a conversation

comment
string

Responses

Request samples

Content type
application/json

End a conversation

{
  • "reason": "OTHER",
  • "comment": "Some comment"
}

Response samples

Content type
application/json
{
  • "$_type": "ConversationData",
  • "creationTimestamp": 0,
  • "endTimestamp": 0,
  • "id": "string",
  • "accountId": "string",
  • "topic": "string",
  • "recipient": {
    },
  • "participants": [
    ],
  • "assigneePersonId": "string",
  • "contextPersonId": "string",
  • "state": "CREATED",
  • "initialEngagementType": "CHAT_REQUEST",
  • "locale": "string",
  • "tokboxSessionId": "string",
  • "visitorData": "string",
  • "conversationTemplateId": "string",
  • "links": [
    ],
  • "externalMessengerChannelId": "string",
  • "sourceId": "string",
  • "endReason": "ENDED_BY_PARTICIPANT",
  • "initialEngagementUrl": "string",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

getBySourceIdAndChannelId

Returns the conversation for the given source and channel id

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
sourceId
string

The sourceId with which the conversation was created

externalMessengerChannelId
string

The messenger channel id to which the conversation is connected. Can be null for internal conversations.

expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"

Responses

Response samples

Content type
application/json
{
  • "$_type": "ConversationData",
  • "creationTimestamp": 0,
  • "endTimestamp": 0,
  • "id": "string",
  • "accountId": "string",
  • "topic": "string",
  • "recipient": {
    },
  • "participants": [
    ],
  • "assigneePersonId": "string",
  • "contextPersonId": "string",
  • "state": "CREATED",
  • "initialEngagementType": "CHAT_REQUEST",
  • "locale": "string",
  • "tokboxSessionId": "string",
  • "visitorData": "string",
  • "conversationTemplateId": "string",
  • "links": [
    ],
  • "externalMessengerChannelId": "string",
  • "sourceId": "string",
  • "endReason": "ENDED_BY_PARTICIPANT",
  • "initialEngagementUrl": "string",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

getConversationFiles

Returns a list of all files that have been shared/sent within the specified conversation.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
path Parameters
conversationId
required
string

the id of conversation, for which the file list should be retrieved

Responses

Response samples

Content type
application/json
[
  • {
    }
]

offboardParticipant

Offboard a participant from a conversation.

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
path Parameters
conversationId
required
string

the conversation that is updated

query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json
personId
string
reason
string (EConversationLeftReason)
Enum: "FORWARDED" "PARTICIPANT_LEFT" "REMOVED_AFTER_TIMEOUT" "ONBOARDING_DECLINED" "ONBOARDING_IDLE_TIMEOUT" "ONBOARDING_TIMEOUT" "USER_CHANGED" "KICKED" "CONVERSATION_UNASSIGNED" "CONVERSATION_REQUEUED" "OTHER"
enum-descriptions: ["FORWARDED","PARTICIPANT_LEFT","REMOVED_AFTER_TIMEOUT","ONBOARDING_DECLINED","ONBOARDING_IDLE_TIMEOUT","ONBOARDING_TIMEOUT","USER_CHANGED","KICKED","CONVERSATION_UNASSIGNED","CONVERSATION_REQUEUED","OTHER"]

Participation left reason of a conversation

comment
string

Responses

Request samples

Content type
application/json

Offboard a participant

{
  • "personId": "nta30CBa-6d1a89cE57Db_F",
  • "reason": "OTHER",
  • "comment": "Some other important reason"
}

Response samples

Content type
application/json
{
  • "$_type": "ConversationData",
  • "creationTimestamp": 0,
  • "endTimestamp": 0,
  • "id": "string",
  • "accountId": "string",
  • "topic": "string",
  • "recipient": {
    },
  • "participants": [
    ],
  • "assigneePersonId": "string",
  • "contextPersonId": "string",
  • "state": "CREATED",
  • "initialEngagementType": "CHAT_REQUEST",
  • "locale": "string",
  • "tokboxSessionId": "string",
  • "visitorData": "string",
  • "conversationTemplateId": "string",
  • "links": [
    ],
  • "externalMessengerChannelId": "string",
  • "sourceId": "string",
  • "endReason": "ENDED_BY_PARTICIPANT",
  • "initialEngagementUrl": "string",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

read

Returns the conversation for the given id

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
id
string

Id of the conversation which should be returned

expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"

Responses

Response samples

Content type
application/json
{
  • "$_type": "ConversationData",
  • "creationTimestamp": 0,
  • "endTimestamp": 0,
  • "id": "string",
  • "accountId": "string",
  • "topic": "string",
  • "recipient": {
    },
  • "participants": [
    ],
  • "assigneePersonId": "string",
  • "contextPersonId": "string",
  • "state": "CREATED",
  • "initialEngagementType": "CHAT_REQUEST",
  • "locale": "string",
  • "tokboxSessionId": "string",
  • "visitorData": "string",
  • "conversationTemplateId": "string",
  • "links": [
    ],
  • "externalMessengerChannelId": "string",
  • "sourceId": "string",
  • "endReason": "ENDED_BY_PARTICIPANT",
  • "initialEngagementUrl": "string",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

search

Search for conversations in the current account

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json
$_type
string
Default: "ConversationQuery"
Value: "ConversationQuery"
Array of any (ConversationSearchFilter) [ items ]

List of filters to narrow the search of entities

Array of objects (ConversationOrderBy) [ items ]

List of criteria to order the search result list

offset
integer <int32>

Offset position in the result set to start pagination

limit
integer <int32>

Maximal amount of items returned

Responses

Request samples

Content type
application/json
{
  • "$_type": "ConversationQuery",
  • "searchFilters": [
    ],
  • "orderBy": [
    ],
  • "offset": 0,
  • "limit": 0
}

Response samples

Content type
application/json
{
  • "$_type": "ConversationResult",
  • "hasMoreItems": true,
  • "nextOffset": 0,
  • "items": [
    ]
}

setAssigneePerson

Set an agent as assignee to a conversation.

Note: The person has to have an active participation in the conversation

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
path Parameters
conversationId
required
string

the conversation that is updated

query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json
personId
string

Responses

Request samples

Content type
application/json

Set the assigned agent

{
  • "personId": "nta30CBa-6d1a89cE57Db_F"
}

Response samples

Content type
application/json
{
  • "$_type": "ConversationData",
  • "creationTimestamp": 0,
  • "endTimestamp": 0,
  • "id": "string",
  • "accountId": "string",
  • "topic": "string",
  • "recipient": {
    },
  • "participants": [
    ],
  • "assigneePersonId": "string",
  • "contextPersonId": "string",
  • "state": "CREATED",
  • "initialEngagementType": "CHAT_REQUEST",
  • "locale": "string",
  • "tokboxSessionId": "string",
  • "visitorData": "string",
  • "conversationTemplateId": "string",
  • "links": [
    ],
  • "externalMessengerChannelId": "string",
  • "sourceId": "string",
  • "endReason": "ENDED_BY_PARTICIPANT",
  • "initialEngagementUrl": "string",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

setContextPerson

Set a visitor as context person of a conversation.

Note: The person has to have an active participation in the conversation

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
path Parameters
conversationId
required
string

the conversation that is updated

query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json
personId
string

Responses

Request samples

Content type
application/json

Set the primary visitor

{
  • "personId": "nta30CBa-6d1a89cE57Db_F"
}

Response samples

Content type
application/json
{
  • "$_type": "ConversationData",
  • "creationTimestamp": 0,
  • "endTimestamp": 0,
  • "id": "string",
  • "accountId": "string",
  • "topic": "string",
  • "recipient": {
    },
  • "participants": [
    ],
  • "assigneePersonId": "string",
  • "contextPersonId": "string",
  • "state": "CREATED",
  • "initialEngagementType": "CHAT_REQUEST",
  • "locale": "string",
  • "tokboxSessionId": "string",
  • "visitorData": "string",
  • "conversationTemplateId": "string",
  • "links": [
    ],
  • "externalMessengerChannelId": "string",
  • "sourceId": "string",
  • "endReason": "ENDED_BY_PARTICIPANT",
  • "initialEngagementUrl": "string",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

setLocale

Set the the locale of the conversation language (as BCP 47 language tag form including region if available).

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
path Parameters
conversationId
required
string

the conversation that is updated

query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json
locale
string

the new locale

Responses

Request samples

Content type
application/json

Set the conversation locale to german

{
  • "locale": "de"
}

Response samples

Content type
application/json
{
  • "$_type": "ConversationData",
  • "creationTimestamp": 0,
  • "endTimestamp": 0,
  • "id": "string",
  • "accountId": "string",
  • "topic": "string",
  • "recipient": {
    },
  • "participants": [
    ],
  • "assigneePersonId": "string",
  • "contextPersonId": "string",
  • "state": "CREATED",
  • "initialEngagementType": "CHAT_REQUEST",
  • "locale": "string",
  • "tokboxSessionId": "string",
  • "visitorData": "string",
  • "conversationTemplateId": "string",
  • "links": [
    ],
  • "externalMessengerChannelId": "string",
  • "sourceId": "string",
  • "endReason": "ENDED_BY_PARTICIPANT",
  • "initialEngagementUrl": "string",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

setRecipient

Set a person, named area, team or account as the recipient of a conversation.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
path Parameters
conversationId
required
string

the conversation that is updated

query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json
$_type
string
Default: "AccountData"
id
string

Unique id of the account.

displayName
string

Display-Name of the account

string or Avatar (object)
expand-query-key: avatar
type: ExpandableField

Avatar of the account: id that can be expanded.

Responses

Request samples

Content type
application/json
Example
{
  • "$_type": "AccountData",
  • "id": "string",
  • "displayName": "string",
  • "avatar": "string"
}

Response samples

Content type
application/json
{
  • "$_type": "ConversationData",
  • "creationTimestamp": 0,
  • "endTimestamp": 0,
  • "id": "string",
  • "accountId": "string",
  • "topic": "string",
  • "recipient": {
    },
  • "participants": [
    ],
  • "assigneePersonId": "string",
  • "contextPersonId": "string",
  • "state": "CREATED",
  • "initialEngagementType": "CHAT_REQUEST",
  • "locale": "string",
  • "tokboxSessionId": "string",
  • "visitorData": "string",
  • "conversationTemplateId": "string",
  • "links": [
    ],
  • "externalMessengerChannelId": "string",
  • "sourceId": "string",
  • "endReason": "ENDED_BY_PARTICIPANT",
  • "initialEngagementUrl": "string",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

setStarred

Set the starred status of a conversation for a particular person

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
path Parameters
conversationId
required
string

the conversation to be starred/unstarred

query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json
personId
string

the person for whom the starred status will be set

starred
boolean

the starred status to b set

Responses

Request samples

Content type
application/json
{
  • "personId": "string",
  • "starred": true
}

Response samples

Content type
application/json
{
  • "$_type": "ConversationData",
  • "creationTimestamp": 0,
  • "endTimestamp": 0,
  • "id": "string",
  • "accountId": "string",
  • "topic": "string",
  • "recipient": {
    },
  • "participants": [
    ],
  • "assigneePersonId": "string",
  • "contextPersonId": "string",
  • "state": "CREATED",
  • "initialEngagementType": "CHAT_REQUEST",
  • "locale": "string",
  • "tokboxSessionId": "string",
  • "visitorData": "string",
  • "conversationTemplateId": "string",
  • "links": [
    ],
  • "externalMessengerChannelId": "string",
  • "sourceId": "string",
  • "endReason": "ENDED_BY_PARTICIPANT",
  • "initialEngagementUrl": "string",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

setVisitorData

Set custom visitor data.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
path Parameters
conversationId
required
string

the conversation where the custom data should be added

query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

the custom visitor data

$_type
string
Default: "ConversationsSetVisitorDataBody"
Value: "ConversationsSetVisitorDataBody"
visitorData
string

Custom visitor data in any format.

Responses

Request samples

Content type
application/json
{
  • "$_type": "ConversationsSetVisitorDataBody",
  • "visitorData": "string"
}

Response samples

Content type
application/json
{
  • "$_type": "ConversationData",
  • "creationTimestamp": 0,
  • "endTimestamp": 0,
  • "id": "string",
  • "accountId": "string",
  • "topic": "string",
  • "recipient": {
    },
  • "participants": [
    ],
  • "assigneePersonId": "string",
  • "contextPersonId": "string",
  • "state": "CREATED",
  • "initialEngagementType": "CHAT_REQUEST",
  • "locale": "string",
  • "tokboxSessionId": "string",
  • "visitorData": "string",
  • "conversationTemplateId": "string",
  • "links": [
    ],
  • "externalMessengerChannelId": "string",
  • "sourceId": "string",
  • "endReason": "ENDED_BY_PARTICIPANT",
  • "initialEngagementUrl": "string",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

updateConfiguration

Update the configuration map for a specific conversation

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
path Parameters
conversationId
required
string

the conversation that is updated

query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

the key-value map of settings that will be updated. The source for this map has to be the configuration attribute when you read the conversation using configuration in the expand query parameter.

property name*
string

Responses

Request samples

Content type
application/json

Map to update the translations

{
  • "$_version": "d41d8cd98f00b204e9800998ecf8427e",
  • "com.unblu.conversation.feature.callEnabled": "true",
  • "com.unblu.conversation.feature.textChatEnabled": "false",
  • "com.unblu.conversation.lifecycle.autoEndOnLeave": "SECONDARY_AGENT"
}

Response samples

Content type
application/json

Conversation after the settings update (loaded with expanded configuration)

{
  • "$_type": "ConversationData",
  • "creationTimestamp": 1546300800000,
  • "endTimestamp": null,
  • "id": "AcviDb210C5BoFd6e_79oan",
  • "accountId": "A7d9E_0-c3cC4aoFDb85t6n",
  • "topic": null,
  • "recipient": {
    },
  • "participants": [
    ],
  • "assigneePersonId": null,
  • "contextPersonId": "nta30CBa-6d1a89cE57Db_F",
  • "state": "QUEUED",
  • "initialEngagementType": "CHAT_REQUEST",
  • "locale": "en",
  • "tokboxSessionId": null,
  • "visitorData": null,
  • "conversationTemplateId": "ab32em6Be-5le_48rE1F9Ad",
  • "links": [
    ],
  • "externalMessengerChannelId": null,
  • "sourceId": null,
  • "endReason": null,
  • "initialEngagementUrl": null,
  • "configuration": {
    },
  • "text": null,
  • "metadata": null
}

updateMetadata

Update the metadata map for a specific conversation

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
path Parameters
conversationId
required
string

the conversation that is updated

query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

the key-value map of metadata that will be updated. The source for this map has to be the metadata attribute when you read the conversation using metadata in the expand query parameter.

property name*
string

Responses

Request samples

Content type
application/json

Map to update the medata

{
  • "$_version": "d41d8cd98f00b204e9800998ecf8427e",
  • "foo": "bar",
  • "lorem": "ipsum"
}

Response samples

Content type
application/json

Conversation after the metadata update (loaded with expanded metadata)

{
  • "$_type": "ConversationData",
  • "creationTimestamp": 1546300800000,
  • "endTimestamp": null,
  • "id": "AcviDb210C5BoFd6e_79oan",
  • "accountId": "A7d9E_0-c3cC4aoFDb85t6n",
  • "topic": null,
  • "recipient": {
    },
  • "participants": [
    ],
  • "assigneePersonId": null,
  • "contextPersonId": "nta30CBa-6d1a89cE57Db_F",
  • "state": "QUEUED",
  • "initialEngagementType": "CHAT_REQUEST",
  • "locale": "en",
  • "tokboxSessionId": null,
  • "visitorData": null,
  • "conversationTemplateId": "ab32em6Be-5le_48rE1F9Ad",
  • "links": [
    ],
  • "externalMessengerChannelId": null,
  • "sourceId": null,
  • "endReason": null,
  • "initialEngagementUrl": null,
  • "configuration": null,
  • "text": null,
  • "metadata": {
    }
}

updateText

Update the text map for a specific conversation

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
path Parameters
conversationId
required
string

the conversation that is updated

query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

the key-value map of translations that will be updated. The source for this map has to be the text attribute when you read the conversation using text in the expand query parameter.

object

Responses

Request samples

Content type
application/json

Map to update the translations

{
  • "$_version": {
    },
  • "com.unblu.conversation.concierge.onboardingDoneMessage": {
    },
  • "com.unblu.conversation.concierge.onboardingWelcomeMessage": {
    }
}

Response samples

Content type
application/json

Conversation after the translations update (loaded with expanded text)

{
  • "$_type": "ConversationData",
  • "creationTimestamp": 1546300800000,
  • "endTimestamp": null,
  • "id": "AcviDb210C5BoFd6e_79oan",
  • "accountId": "A7d9E_0-c3cC4aoFDb85t6n",
  • "topic": null,
  • "recipient": {
    },
  • "participants": [
    ],
  • "assigneePersonId": null,
  • "contextPersonId": "nta30CBa-6d1a89cE57Db_F",
  • "state": "QUEUED",
  • "initialEngagementType": "CHAT_REQUEST",
  • "locale": "en",
  • "tokboxSessionId": null,
  • "visitorData": null,
  • "conversationTemplateId": "ab32em6Be-5le_48rE1F9Ad",
  • "links": [
    ],
  • "externalMessengerChannelId": null,
  • "sourceId": null,
  • "endReason": null,
  • "initialEngagementUrl": null,
  • "configuration": null,
  • "text": {
    },
  • "metadata": null
}

Domains

Service to manage the domains of the account. A domain needs to be defined to use unblu on it.

create

Creates the given entity in the system. The id of the entity can not be set for create operation, a new one is generated.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json

The entity to create

$_type
string
Default: "Domain"
Value: "Domain"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

domainName
string

The name/adress of the domain. It should normally contain a protocol (e.g. http:// or https://) and the url of the domain (e.g. www.unblu.com). Maximum of 250 characters. Can not be omitted. 250 characters.

Responses

Request samples

Content type
application/json
{
  • "$_type": "Domain",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "domainName": "string"
}

Response samples

Content type
application/json
{
  • "$_type": "Domain",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "domainName": "string"
}

delete

Deletes the entity for the given id

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
id
string

The id of the entity which should be deleted

Responses

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

getAccountDomainsAsString

Returns all configured domains for the current account as strings

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:

Responses

Response samples

Content type
application/json
[
  • "string"
]

getQuotaUsage

Returns the number of entities already existing (for the current account)

required-call-origin: TRUSTED
required-role: ["SUPERVISOR"]
Authorizations:

Responses

Response samples

Content type
application/json
0

read

Returns the entity for the given id

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
id
string

Id of the entity which should be returned

Responses

Response samples

Content type
application/json
{
  • "$_type": "Domain",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "domainName": "string"
}

readMultiple

Gets a list of entities for the given id's

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json

The id's for which the entities should be fetched

Array
string

Responses

Request samples

Content type
application/json
[
  • "string"
]

Response samples

Content type
application/json
[
  • {
    }
]

search

Search for domains in the current account

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
$_type
string
Default: "DomainQuery"
Value: "DomainQuery"
Array of any (DomainSearchFilter) [ items ]

List of filters to narrow the search of entities

Array of objects (DomainOrderBy) [ items ]

List of criteria to order the search result list

offset
integer <int32>

Offset position in the result set to start pagination

limit
integer <int32>

Maximal amount of items returned

Responses

Request samples

Content type
application/json
{
  • "$_type": "DomainQuery",
  • "searchFilters": [
    ],
  • "orderBy": [
    ],
  • "offset": 0,
  • "limit": 0
}

Response samples

Content type
application/json
{
  • "$_type": "DomainResult",
  • "hasMoreItems": true,
  • "nextOffset": 0,
  • "items": [
    ]
}

update

Updates the entity in the system with the given entity.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json

The entity to update

$_type
string
Default: "Domain"
Value: "Domain"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

domainName
string

The name/adress of the domain. It should normally contain a protocol (e.g. http:// or https://) and the url of the domain (e.g. www.unblu.com). Maximum of 250 characters. Can not be omitted. 250 characters.

Responses

Request samples

Content type
application/json
{
  • "$_type": "Domain",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "domainName": "string"
}

Response samples

Content type
application/json
{
  • "$_type": "Domain",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "domainName": "string"
}

ExternalMessengers

Manages all types of ExternalMessengerChannel and can be used to send messages from external messengers into a collaboration server conversation.

create

Creates a new external messenger channel

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

The channel which should be created

$_type
string
Default: "CustomExternalMessengerChannel"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

name
string

Name of the channel. Needs to be unique in the account.

description
string

Optional description of the channel

string or Avatar (object)
expand-query-key: channelIcon
type: ExpandableField

Channel icon of the entity: id that can be expanded.

sourceId
string

Custom identifier to find the source of the channel.
Has a maximum of 250 characters

type
string (EExternalMessengerChannelType)
Enum: "CUSTOM" "WHATS_APP" "FACEBOOK"
enum-descriptions: ["CUSTOM: Custom channel which is connected via rest and webhooks","WHATS_APP: WhatsApp channel which is managed by the collaboration server","FACEBOOK: Facebook channel which is managed by the collaboration server"]

The type of the external messenger channel

webhookEndpoint
string

The endpoint url of the webhook registration. To this url the requests for the webhook events are done. Maximum length of 4000 characters. Can not be omitted.

webhookSecret
string

A secret which is send with each webhook event. Maximum length of 4000 characters. Can be omitted.

webhookStatus
string (ERegistrationStatus)
Enum: "ACTIVE" "INACTIVE" "INACTIVE_UNAVAILABLE"
enum-descriptions: ["ACTIVE: Registration is active","INACTIVE: Registration is not active","INACTIVE_UNAVAILABLE: Registration is not active, because it is unavailable"]

Possible Webhook Registration Status

messageStateHandledExternally
boolean

Defines if the delivered/read state of messages is handled externally or by the collaboration server.
If the collaboration server handles the state, the messages are marked as delivered and read a soon as the webhook could be successfully dispatched to the configured webhookEndpoint.
If the it is handled externally, the external service has to call the api function to mark the message as delivered/read. Additionally webhook events for the message state of messages from the external messenger are dispatched.

object
expand-query-key: metadata
type: Map

The entity's metadata properties. Only contains values when the 'expand' query parameter is used with the value 'metadata'.

Responses

Callbacks

Request samples

Content type
application/json

Create a new external messenger channel

{
  • "$_type": "CustomExternalMessengerChannel",
  • "id": null,
  • "creationTimestamp": null,
  • "modificationTimestamp": null,
  • "version": null,
  • "accountId": null,
  • "name": "custom name",
  • "description": "custom description",
  • "channelIcon": null,
  • "sourceId": "custom-sourceId",
  • "type": "CUSTOM",
  • "webhookEndpoint": "http://custom/endpoint",
  • "webhookSecret": "custom-secret",
  • "webhookStatus": "ACTIVE",
  • "messageStateHandledExternally": null,
  • "metadata": null
}

Response samples

Content type
application/json

New external messenger channel

{
  • "$_type": "CustomExternalMessengerChannel",
  • "id": "cne9hsne4rgxa2es6MenC8d",
  • "creationTimestamp": 1546300800000,
  • "modificationTimestamp": 1548979200000,
  • "version": 1,
  • "accountId": "A7d9E_0-c3cC4aoFDb85t6n",
  • "name": "custom name",
  • "description": "custom description",
  • "channelIcon": "custom",
  • "sourceId": "custom-sourceId",
  • "type": "CUSTOM",
  • "webhookEndpoint": "http://custom/endpoint",
  • "webhookSecret": "custom-secret",
  • "webhookStatus": "ACTIVE",
  • "messageStateHandledExternally": false,
  • "metadata": null
}

Callback payload samples

Callback
Content type
application/json
{
  • "$_type": "ExternalMessengerMessageStateEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "messageId": "string",
  • "state": "DELIVERED",
  • "sourceId": "string",
  • "externalMessengerChannelId": "string",
  • "conversationId": "string"
}

delete

Deletes an external messenger channel. All conversations connected to this channel will be ended as soon as they activated again

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
id
string

The ID of the channel which should be deleted

Responses

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

getByName

Returns the channel for the given name

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
name
string

The name of the external messenger channel

expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"

Responses

Response samples

Content type
application/json

External messenger channel

{
  • "$_type": "CustomExternalMessengerChannel",
  • "id": "cne9hsne4rgxa2es6MenC8d",
  • "creationTimestamp": 1546300800000,
  • "modificationTimestamp": 1548979200000,
  • "version": 1,
  • "accountId": "A7d9E_0-c3cC4aoFDb85t6n",
  • "name": "123 name",
  • "description": "123 description",
  • "channelIcon": "custom",
  • "sourceId": "123-sourceId",
  • "type": "CUSTOM",
  • "webhookEndpoint": "http://123/endpoint",
  • "webhookSecret": "123-secret",
  • "webhookStatus": "ACTIVE",
  • "messageStateHandledExternally": false,
  • "metadata": null
}

messageDelivered

Marks a message as delivered to the given person. If no person is specified, it will be marked as delivered to all persons which are connected via the external messenger.
If the message is also read, use directly the end point messageRead as it will mark it as delivered too.

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
conversationId
string

The id of the conversation

externalMessengerChannelId
string

The id of the custom external messenger channel

messageId
string

The id of the message from the conversation, which should be marked as delivered

personId
string

The id of the person who received the message. If null, it will be assumed that the message has been delivered to all persons which are connected via the external messenger.

Responses

Request samples

Content type
application/json

Mark a message as delivered

{
  • "conversationId": "AcviDb210C5BoFd6e_79oan",
  • "externalMessengerChannelId": "cne9hsne4rgxa2es6MenC8d",
  • "messageId": "mGesYagET_2GipaDGinA9A",
  • "personId": "nta30CBa-6d1a89cE57Db_F"
}

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

messageRead

Marks a message as read by the given person. If no person is specified, it will be marked as read by all persons which are connected via the external messenger.
This will also mark the message as delivered, if it was not already.

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
conversationId
string

The id of the conversation

externalMessengerChannelId
string

The id of the custom external messenger channel

messageId
string

The id of the message from the conversation, which should be marked as read

personId
string

The id of the person who read the message. If null, it will be assumed that the message has been read by all persons which are connected via the external messenger.

Responses

Request samples

Content type
application/json

Mark a message as delivered

{
  • "conversationId": "AcviDb210C5BoFd6e_79oan",
  • "externalMessengerChannelId": "cne9hsne4rgxa2es6MenC8d",
  • "messageId": "mGesYagET_2GipaDGinA9A",
  • "personId": "nta30CBa-6d1a89cE57Db_F"
}

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

messageSendFailed

Indicates that the message could not be sent to the external messenger. There are the following fail state which can be set:

  • ESendFailState.RETRYABLE: if a retry of sending in the future may solve the problem. (e.g. temporary connection failure). In this case the user will be provided with a UI to retry sending the message
  • ESendFailState.TERMINAL: if no amount of retries would solve the problem. (e.g. the underlying conversation no longer exists in the external messenger.)

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
conversationId
string

The id of the conversation

externalMessengerChannelId
string

The id of the custom external messenger channel

messageId
string

The id of the message from the conversation, which should be set to the failed state

failedState
string (ESendFailState)
Enum: "RETRYABLE" "TERMINAL"
enum-descriptions: ["RETRYABLE: Message could not be sent, but it is not terminal and can be tried again","TERMINAL: Message could not be sent and it will not be possible to send it again"]

The failed state of a message which was sent to an external messenger

failureText
string

A text which describes why a message could not be sent to the external messenger. This text will be displayed to the user in the UI of the message

Responses

Request samples

Content type
application/json
{
  • "conversationId": "string",
  • "externalMessengerChannelId": "string",
  • "messageId": "string",
  • "failedState": "RETRYABLE",
  • "failureText": "string"
}

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

messageSentSuccessfully

Indication that a message was successfully sent to the external messenger.

This will be visualized in the Unblu UI.

Note: This does not mean the message has been delivered to or read by the recipient. These states can be updated using themessageDelivered and messageRead services.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
conversationId
string

The id of the conversation

externalMessengerChannelId
string

The id of the custom external messenger channel

messageId
string

The id of the message from the conversation, which was successfully sent

Responses

Request samples

Content type
application/json
{
  • "conversationId": "string",
  • "externalMessengerChannelId": "string",
  • "messageId": "string"
}

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

pingCustomChannel

Emits a WebhookPingEvent on the configured webhook for the custom channel.

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
externalMessengerChannelId
string

The ID of an external messenger channel of type EExternalMessengerChannelType.CUSTOM

Responses

Request samples

Content type
application/json

Send a ping event for the given External messenger channel

{
  • "externalMessengerChannelId": "cne9hsne4rgxa2es6MenC8d"
}

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

read

Returns the channel for the given ID

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
id
string

The ID of the external messenger channel

expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"

Responses

Response samples

Content type
application/json

External messenger channel

{
  • "$_type": "CustomExternalMessengerChannel",
  • "id": "cne9hsne4rgxa2es6MenC8d",
  • "creationTimestamp": 1546300800000,
  • "modificationTimestamp": 1548979200000,
  • "version": 1,
  • "accountId": "A7d9E_0-c3cC4aoFDb85t6n",
  • "name": "custom name",
  • "description": "custom description",
  • "channelIcon": "custom",
  • "sourceId": "custom-sourceId",
  • "type": "CUSTOM",
  • "webhookEndpoint": "http://custom/endpoint",
  • "webhookSecret": "custom-secret",
  • "webhookStatus": "ACTIVE",
  • "messageStateHandledExternally": false,
  • "metadata": null
}

search

Search for external messenger channels in the current account

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json
$_type
string
Default: "ExternalMessengerChannelQuery"
Value: "ExternalMessengerChannelQuery"
Array of any (ExternalMessengerChannelSearchFilter) [ items ]

List of filters to narrow the search of entities

Array of objects (ExternalMessengerChannelOrderBy) [ items ]

List of criteria to order the search result list

offset
integer <int32>

Offset position in the result set to start pagination

limit
integer <int32>

Maximal amount of items returned

Responses

Request samples

Content type
application/json
{
  • "$_type": "ExternalMessengerChannelQuery",
  • "searchFilters": [
    ],
  • "orderBy": [
    ],
  • "offset": 0,
  • "limit": 0
}

Response samples

Content type
application/json
{
  • "$_type": "ExternalMessengerChannelResult",
  • "hasMoreItems": true,
  • "nextOffset": 0,
  • "items": [
    ]
}

sendMessage

Send a message to a conversation. The corresponding conversation has to be connected to the same custom channel.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json

The message to send into the conversation.

$_type
string
Default: "ExternalMessengerPostMessage"
Value: "ExternalMessengerPostMessage"
conversationId
string

The id of the conversation to which this message belongs to

externalMessengerChannelId
string

The id of the external messenger channel this message belongs to

senderPersonId
string

ID of the person that sent the message.

recipientPersonIds
Array of strings

Person IDs of the recipients of the message. If it is null, all active participations are recipients

sourceId
string

An id identifying the source of the external message. Typically the id of the message in the other messaging system

any (PostMessageData)

Base class for all conversation messages send to the collaboration server.
Can be one of FilePostMessageData, MultichoiceQuestionPostMessageData, RatingQuestionPostMessageData, ReplyPostMessageData,TextPostMessageData or TextQuestionPostMessageData

Responses

Request samples

Content type
application/json
Example

Send text message containing fallback text and quick replies to external messenger channel

{
  • "$_type": "ExternalMessengerPostMessage",
  • "conversationId": "AcviDb210C5BoFd6e_79oan",
  • "externalMessengerChannelId": "cne9hsne4rgxa2es6MenC8d",
  • "senderPersonId": "nta30CBa-6d1a89cE57Db_F",
  • "recipientPersonIds": null,
  • "sourceId": "message-source",
  • "messageData": {
    }
}

Response samples

Content type
application/json
"string"

update

Updates an external messenger channel

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

The channel which should be updated

$_type
string
Default: "CustomExternalMessengerChannel"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

name
string

Name of the channel. Needs to be unique in the account.

description
string

Optional description of the channel

string or Avatar (object)
expand-query-key: channelIcon
type: ExpandableField

Channel icon of the entity: id that can be expanded.

sourceId
string

Custom identifier to find the source of the channel.
Has a maximum of 250 characters

type
string (EExternalMessengerChannelType)
Enum: "CUSTOM" "WHATS_APP" "FACEBOOK"
enum-descriptions: ["CUSTOM: Custom channel which is connected via rest and webhooks","WHATS_APP: WhatsApp channel which is managed by the collaboration server","FACEBOOK: Facebook channel which is managed by the collaboration server"]

The type of the external messenger channel

webhookEndpoint
string

The endpoint url of the webhook registration. To this url the requests for the webhook events are done. Maximum length of 4000 characters. Can not be omitted.

webhookSecret
string

A secret which is send with each webhook event. Maximum length of 4000 characters. Can be omitted.

webhookStatus
string (ERegistrationStatus)
Enum: "ACTIVE" "INACTIVE" "INACTIVE_UNAVAILABLE"
enum-descriptions: ["ACTIVE: Registration is active","INACTIVE: Registration is not active","INACTIVE_UNAVAILABLE: Registration is not active, because it is unavailable"]

Possible Webhook Registration Status

messageStateHandledExternally
boolean

Defines if the delivered/read state of messages is handled externally or by the collaboration server.
If the collaboration server handles the state, the messages are marked as delivered and read a soon as the webhook could be successfully dispatched to the configured webhookEndpoint.
If the it is handled externally, the external service has to call the api function to mark the message as delivered/read. Additionally webhook events for the message state of messages from the external messenger are dispatched.

object
expand-query-key: metadata
type: Map

The entity's metadata properties. Only contains values when the 'expand' query parameter is used with the value 'metadata'.

Responses

Request samples

Content type
application/json

Update a external messenger channel

{
  • "$_type": "CustomExternalMessengerChannel",
  • "id": "cne9hsne4rgxa2es6MenC8d",
  • "creationTimestamp": 1546300800000,
  • "modificationTimestamp": 1548979200000,
  • "version": 1,
  • "accountId": "A7d9E_0-c3cC4aoFDb85t6n",
  • "name": "Updated Name ",
  • "description": "custom description",
  • "channelIcon": "custom",
  • "sourceId": "custom-sourceId",
  • "type": "CUSTOM",
  • "webhookEndpoint": "http://custom/endpoint",
  • "webhookSecret": "custom-secret",
  • "webhookStatus": "ACTIVE",
  • "messageStateHandledExternally": false,
  • "metadata": null
}

Response samples

Content type
application/json

Updated external messenger channel

{
  • "$_type": "CustomExternalMessengerChannel",
  • "id": "cne9hsne4rgxa2es6MenC8d",
  • "creationTimestamp": 1546300800000,
  • "modificationTimestamp": 1548979200000,
  • "version": 2,
  • "accountId": "A7d9E_0-c3cC4aoFDb85t6n",
  • "name": "Updated Name ",
  • "description": "custom description",
  • "channelIcon": "custom",
  • "sourceId": "custom-sourceId",
  • "type": "CUSTOM",
  • "webhookEndpoint": "http://custom/endpoint",
  • "webhookSecret": "custom-secret",
  • "webhookStatus": "ACTIVE",
  • "messageStateHandledExternally": false,
  • "metadata": null
}

Global

With this service the global Unblu system can be managed.

For super-admin the Global object can be expanded to set configuration or translations.

installLicense

Install a new license in the global server.

required-call-origin: TRUSTED
required-role: ["SUPER_ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: text/plain

licenseContent

string

Responses

Response samples

Content type
application/json
{
  • "$_type": "GlobalData",
  • "serverIdentifier": "string",
  • "currentLicense": {
    },
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

productVersion

productVersion operation

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:

Responses

Response samples

Content type
application/json
{
  • "$_type": "ProductVersion",
  • "productVersion": "string",
  • "productGuid": "string"
}

read

Returns the GlobalData object containing information about the system (license, settings).

required-call-origin: TRUSTED
required-role: ["SUPER_ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"

Responses

Response samples

Content type
application/json
{
  • "$_type": "GlobalData",
  • "serverIdentifier": "string",
  • "currentLicense": {
    },
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

update

Updates the GlobalData object. Since the properties of the Global object are read-only, this methods only make sense when used with the expand parameter.

required-call-origin: TRUSTED
required-role: ["SUPER_ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json
$_type
string
Default: "GlobalData"
Value: "GlobalData"
serverIdentifier
string

A unique id identifying an Unblu installation. This is read only information it will be set by the server anyway.

object (LicenseData)

Entity representing the current installed license

object
expand-query-key: configuration
type: Map

The entity's configuration properties. Only contains values when the 'expand' query parameter is used with the value 'configuration'.

object
expand-query-key: text
type: Map

The entity's text properties. Only contains values when the 'expand' query parameter is used with the value 'text'.

object
expand-query-key: metadata
type: Map

The entity's metadata properties. Only contains values when the 'expand' query parameter is used with the value 'metadata'.

Responses

Request samples

Content type
application/json
{
  • "$_type": "GlobalData",
  • "serverIdentifier": "string",
  • "currentLicense": {
    },
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "$_type": "GlobalData",
  • "serverIdentifier": "string",
  • "currentLicense": {
    },
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

Invitations

Service to manage conversation invitations

forwardConversationToAgent

Forwards a conversation to an agent. The current assigned agent stays in the conversation until the invitation is accepted. Once the invited agent accepts the invitation, they join the conversation as the assigned agent, and the previous assigned agent is removed from the conversation.

If there is already a forwarding invitation for the conversation, that invitation is revoked.
If the conversation is in the queue, the assignment request invitation is revoked.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
conversationId
string

Conversation id.

agentPersonId
string

Person ID of the agent.

comment
string

Invitation comment that will be displayed to the invited agent. Optional.

Responses

Request samples

Content type
application/json
{
  • "conversationId": "string",
  • "agentPersonId": "string",
  • "comment": "string"
}

Response samples

Content type
application/json
{
  • "$_type": "ConversationInvitationData",
  • "accountId": "string",
  • "invitationType": "CONVERSATION_REQUEST",
  • "invitationState": "OPEN",
  • "id": "string",
  • "conversationId": "string",
  • "token": "string",
  • "createdTimestamp": 0,
  • "creatorType": "WEB_API",
  • "creatorPersonId": "string",
  • "targetId": "string",
  • "targetType": "ANONYMOUS",
  • "links": [
    ],
  • "redeemingPersonId": "string",
  • "comment": "string",
  • "email": "string",
  • "nickname": "string",
  • "expirationTimestamp": 0
}

forwardConversationToTeam

Forwards a conversation to a team. The current assigned agent remains in the conversation until the invitation is accepted. Once an agent of the invited team or its parent teams accepts the invitation, they join the conversation as its assigned agent, and the previous assigned agent is removed from the conversation.

If there is already a forwarding invitation for the conversation, that invitation is revoked.
If the conversation is in the queue, the assignment request invitation is revoked.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
conversationId
string

Conversation id.

teamId
string

Team id.

comment
string

Invitation comment. Optional.

Responses

Request samples

Content type
application/json
{
  • "conversationId": "string",
  • "teamId": "string",
  • "comment": "string"
}

Response samples

Content type
application/json
{
  • "$_type": "ConversationInvitationData",
  • "accountId": "string",
  • "invitationType": "CONVERSATION_REQUEST",
  • "invitationState": "OPEN",
  • "id": "string",
  • "conversationId": "string",
  • "token": "string",
  • "createdTimestamp": 0,
  • "creatorType": "WEB_API",
  • "creatorPersonId": "string",
  • "targetId": "string",
  • "targetType": "ANONYMOUS",
  • "links": [
    ],
  • "redeemingPersonId": "string",
  • "comment": "string",
  • "email": "string",
  • "nickname": "string",
  • "expirationTimestamp": 0
}

inviteAgentToConversation

Creates an invitation to the given conversation for an agent. If the agent accepts the invitation, they join the conversation as a secondary agent. If a conflicting invitation already exists, an error is returned.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
conversationId
string

Conversation id.

agentPersonId
string

Person ID of the invited agent.

comment
string

Invitation comment. Optional.

Responses

Request samples

Content type
application/json
{
  • "conversationId": "string",
  • "agentPersonId": "string",
  • "comment": "string"
}

Response samples

Content type
application/json
{
  • "$_type": "ConversationInvitationData",
  • "accountId": "string",
  • "invitationType": "CONVERSATION_REQUEST",
  • "invitationState": "OPEN",
  • "id": "string",
  • "conversationId": "string",
  • "token": "string",
  • "createdTimestamp": 0,
  • "creatorType": "WEB_API",
  • "creatorPersonId": "string",
  • "targetId": "string",
  • "targetType": "ANONYMOUS",
  • "links": [
    ],
  • "redeemingPersonId": "string",
  • "comment": "string",
  • "email": "string",
  • "nickname": "string",
  • "expirationTimestamp": 0
}

inviteAnonymousVisitorToConversationWithEmail

Invites an authenticated visitor to join a conversation by email. Calling this method sends an email to the email address provided containing a link that opens the conversation in the Visitor Desk.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
conversationId
string

Conversation id.

email
string

Email address that will be applied to the visitor who accepts the invitation if they are anonymous and haven't provided an email address. Optional.

nickname
string

Nickname that will be applied to the visitor who accepts the invitation if they are anonymous and don't already have a nickname set. Optional.

Responses

Request samples

Content type
application/json
{
  • "conversationId": "string",
  • "email": "string",
  • "nickname": "string"
}

Response samples

Content type
application/json
{
  • "$_type": "ConversationInvitationData",
  • "accountId": "string",
  • "invitationType": "CONVERSATION_REQUEST",
  • "invitationState": "OPEN",
  • "id": "string",
  • "conversationId": "string",
  • "token": "string",
  • "createdTimestamp": 0,
  • "creatorType": "WEB_API",
  • "creatorPersonId": "string",
  • "targetId": "string",
  • "targetType": "ANONYMOUS",
  • "links": [
    ],
  • "redeemingPersonId": "string",
  • "comment": "string",
  • "email": "string",
  • "nickname": "string",
  • "expirationTimestamp": 0
}

inviteAnonymousVisitorToConversationWithPin

Invites an authenticated visitor to join a conversation using a PIN. The PIN con be found in the "token" field of the returned invitation. It can be redeemed by entering it in the embedded or floating site integration UI.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
conversationId
string

Conversation id.

nickname
string

Nickname that will be applied to the visitor who accepts the invitation if they are anonymous and don't already have a nickname set. Optional.

Responses

Request samples

Content type
application/json
{
  • "conversationId": "string",
  • "nickname": "string"
}

Response samples

Content type
application/json
{
  • "$_type": "ConversationInvitationData",
  • "accountId": "string",
  • "invitationType": "CONVERSATION_REQUEST",
  • "invitationState": "OPEN",
  • "id": "string",
  • "conversationId": "string",
  • "token": "string",
  • "createdTimestamp": 0,
  • "creatorType": "WEB_API",
  • "creatorPersonId": "string",
  • "targetId": "string",
  • "targetType": "ANONYMOUS",
  • "links": [
    ],
  • "redeemingPersonId": "string",
  • "comment": "string",
  • "email": "string",
  • "nickname": "string",
  • "expirationTimestamp": 0
}

inviteTeamToConversation

Creates an invitation for a team for the given conversation. The invitation can be redeemed once by any agent in either the invited team or one of its parent teams. The agent who redeeems the invitation joins the conversation as a secondary agent. If a conflicting invitation already exists, an error is returned.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
conversationId
string

Conversation id.

teamId
string

Team id.

comment
string

Invitation comment. Optional.

Responses

Request samples

Content type
application/json
{
  • "conversationId": "string",
  • "teamId": "string",
  • "comment": "string"
}

Response samples

Content type
application/json
{
  • "$_type": "ConversationInvitationData",
  • "accountId": "string",
  • "invitationType": "CONVERSATION_REQUEST",
  • "invitationState": "OPEN",
  • "id": "string",
  • "conversationId": "string",
  • "token": "string",
  • "createdTimestamp": 0,
  • "creatorType": "WEB_API",
  • "creatorPersonId": "string",
  • "targetId": "string",
  • "targetType": "ANONYMOUS",
  • "links": [
    ],
  • "redeemingPersonId": "string",
  • "comment": "string",
  • "email": "string",
  • "nickname": "string",
  • "expirationTimestamp": 0
}

renewPin

Renews the PIN of an anonymous visitor PIN invitation. An error is returned if the method is called for any other type of invitation.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
path Parameters
invitationId
required
string

Invitation id.

Responses

Response samples

Content type
application/json
{
  • "$_type": "ConversationInvitationData",
  • "accountId": "string",
  • "invitationType": "CONVERSATION_REQUEST",
  • "invitationState": "OPEN",
  • "id": "string",
  • "conversationId": "string",
  • "token": "string",
  • "createdTimestamp": 0,
  • "creatorType": "WEB_API",
  • "creatorPersonId": "string",
  • "targetId": "string",
  • "targetType": "ANONYMOUS",
  • "links": [
    ],
  • "redeemingPersonId": "string",
  • "comment": "string",
  • "email": "string",
  • "nickname": "string",
  • "expirationTimestamp": 0
}

requeueConversation

Return the given conversation to the queue by creating an assignment request invitation.
This is only possible for conversations that were initiated by the visitor, that is, the conversation's initial engagement type must be a request.

Optionally, existing agent participants can be removed from the conversation.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
conversationId
string

Conversation id.

agentRemovalType
string (EAgentRemovalType)
Enum: "KEEP_AGENTS" "REMOVE_ASSIGNED_AGENT" "REMOVE_ALL_AGENTS"
enum-descriptions: ["KEEP_AGENTS","REMOVE_ASSIGNED_AGENT","REMOVE_ALL_AGENTS"]

Responses

Request samples

Content type
application/json
{
  • "conversationId": "string",
  • "agentRemovalType": "KEEP_AGENTS"
}

Response samples

Content type
application/json
{
  • "$_type": "ConversationInvitationData",
  • "accountId": "string",
  • "invitationType": "CONVERSATION_REQUEST",
  • "invitationState": "OPEN",
  • "id": "string",
  • "conversationId": "string",
  • "token": "string",
  • "createdTimestamp": 0,
  • "creatorType": "WEB_API",
  • "creatorPersonId": "string",
  • "targetId": "string",
  • "targetType": "ANONYMOUS",
  • "links": [
    ],
  • "redeemingPersonId": "string",
  • "comment": "string",
  • "email": "string",
  • "nickname": "string",
  • "expirationTimestamp": 0
}

revoke

Revokes the invitation making it impossible to accept it anymore.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
path Parameters
invitationId
required
string

Invitation id.

Responses

Response samples

Content type
application/json
{
  • "$_type": "ConversationInvitationData",
  • "accountId": "string",
  • "invitationType": "CONVERSATION_REQUEST",
  • "invitationState": "OPEN",
  • "id": "string",
  • "conversationId": "string",
  • "token": "string",
  • "createdTimestamp": 0,
  • "creatorType": "WEB_API",
  • "creatorPersonId": "string",
  • "targetId": "string",
  • "targetType": "ANONYMOUS",
  • "links": [
    ],
  • "redeemingPersonId": "string",
  • "comment": "string",
  • "email": "string",
  • "nickname": "string",
  • "expirationTimestamp": 0
}

search

Search for invitations in the current account

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
$_type
string
Default: "ConversationInvitationQuery"
Value: "ConversationInvitationQuery"
Array of any (ConversationInvitationSearchFilter) [ items ]

List of filters to narrow the search of entities

Array of objects (ConversationInvitationOrderBy) [ items ]

List of criteria to order the search result list

offset
integer <int32>

Offset position in the result set to start pagination

limit
integer <int32>

Maximal amount of items returned

Responses

Request samples

Content type
application/json
{
  • "$_type": "ConversationInvitationQuery",
  • "searchFilters": [
    ],
  • "orderBy": [
    ],
  • "offset": 0,
  • "limit": 0
}

Response samples

Content type
application/json
{
  • "$_type": "ConversationInvitationResult",
  • "hasMoreItems": true,
  • "nextOffset": 0,
  • "items": [
    ]
}

NamedAreas

Service to manage named areas.

create

Creates the given entity in the system. The id of the entity can not be set for create operation, a new one is generated.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

The entity to create

$_type
string
Default: "NamedArea"
Value: "NamedArea"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

string or Avatar (object)
expand-query-key: avatar
type: ExpandableField

Avatar of the entity: id that can be expanded.

name
string

Name of the named area. Maximum of 250 characters. Can not be omitted.

description
string

Description of the named area. Maximum of 500 characters. Can be omitted.

type
string (ENamedAreaType)
Enum: "META_TAG" "DOMAIN"
enum-descriptions: ["META_TAG: A meta tag","DOMAIN: a (sub)domain"]

Type of a named area

siteId
string

Meta tag name if the type is META_TAG or domain name if the type is DOMAIN. If the type is META_TAG, it can be omitted during creation and a random ID will generated for it. Modification of this attribute is not allowed. Maximum of 250 characters.

object
expand-query-key: configuration
type: Map

The entity's configuration properties. Only contains values when the 'expand' query parameter is used with the value 'configuration'.

object
expand-query-key: text
type: Map

The entity's text properties. Only contains values when the 'expand' query parameter is used with the value 'text'.

object
expand-query-key: metadata
type: Map

The entity's metadata properties. Only contains values when the 'expand' query parameter is used with the value 'metadata'.

Responses

Request samples

Content type
application/json
{
  • "$_type": "NamedArea",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "avatar": "string",
  • "name": "string",
  • "description": "string",
  • "type": "META_TAG",
  • "siteId": "string",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "$_type": "NamedArea",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "avatar": "string",
  • "name": "string",
  • "description": "string",
  • "type": "META_TAG",
  • "siteId": "string",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

delete

Deletes the entity for the given id

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
id
string

The id of the entity which should be deleted

Responses

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

getQuotaUsage

Returns the number of entities already existing (for the current account)

required-call-origin: TRUSTED
required-role: ["SUPERVISOR"]
Authorizations:

Responses

Response samples

Content type
application/json
0

read

Returns the named area for the given id

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
id
string

Id of the named area which should be returned

expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"

Responses

Response samples

Content type
application/json
{
  • "$_type": "NamedArea",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "avatar": "string",
  • "name": "string",
  • "description": "string",
  • "type": "META_TAG",
  • "siteId": "string",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

readMultiple

Gets a list of named areas for the given id's

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

The id's for which the named areas should be fetched

Array
string

Responses

Request samples

Content type
application/json
[
  • "string"
]

Response samples

Content type
application/json
[
  • {
    }
]

search

Search for named areas in the current account

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json
$_type
string
Default: "NamedAreaQuery"
Value: "NamedAreaQuery"
Array of any (NamedAreaSearchFilter) [ items ]

List of filters to narrow the search of entities

Array of objects (NamedAreaOrderBy) [ items ]

List of criteria to order the search result list

offset
integer <int32>

Offset position in the result set to start pagination

limit
integer <int32>

Maximal amount of items returned

Responses

Request samples

Content type
application/json
{
  • "$_type": "NamedAreaQuery",
  • "searchFilters": [
    ],
  • "orderBy": [
    ],
  • "offset": 0,
  • "limit": 0
}

Response samples

Content type
application/json
{
  • "$_type": "NamedAreaResult",
  • "hasMoreItems": true,
  • "nextOffset": 0,
  • "items": [
    ]
}

update

Updates the entity in the system with the given entity.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

The entity to update

$_type
string
Default: "NamedArea"
Value: "NamedArea"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

string or Avatar (object)
expand-query-key: avatar
type: ExpandableField

Avatar of the entity: id that can be expanded.

name
string

Name of the named area. Maximum of 250 characters. Can not be omitted.

description
string

Description of the named area. Maximum of 500 characters. Can be omitted.

type
string (ENamedAreaType)
Enum: "META_TAG" "DOMAIN"
enum-descriptions: ["META_TAG: A meta tag","DOMAIN: a (sub)domain"]

Type of a named area

siteId
string

Meta tag name if the type is META_TAG or domain name if the type is DOMAIN. If the type is META_TAG, it can be omitted during creation and a random ID will generated for it. Modification of this attribute is not allowed. Maximum of 250 characters.

object
expand-query-key: configuration
type: Map

The entity's configuration properties. Only contains values when the 'expand' query parameter is used with the value 'configuration'.

object
expand-query-key: text
type: Map

The entity's text properties. Only contains values when the 'expand' query parameter is used with the value 'text'.

object
expand-query-key: metadata
type: Map

The entity's metadata properties. Only contains values when the 'expand' query parameter is used with the value 'metadata'.

Responses

Request samples

Content type
application/json
{
  • "$_type": "NamedArea",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "avatar": "string",
  • "name": "string",
  • "description": "string",
  • "type": "META_TAG",
  • "siteId": "string",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "$_type": "NamedArea",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "avatar": "string",
  • "name": "string",
  • "description": "string",
  • "type": "META_TAG",
  • "siteId": "string",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

PersonPresences

Service to access person presences

read

Helper method read a PersonPresenceData by id

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
id
string

Responses

Response samples

Content type
application/json
{
  • "$_type": "PersonPresenceData",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "accountId": "string",
  • "joinedTimestamp": 0,
  • "leftTimestamp": 0,
  • "personId": "string",
  • "deviceInfo": {
    },
  • "touchTimestamp": 0,
  • "impersonationType": "NONE",
  • "impersonatedFromUserId": "string",
  • "impersonatedFromAccountId": "string",
  • "additionalInfo": "string",
  • "authInfo": "string",
  • "propagated": true
}

search

Search for person presences in the current account

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
$_type
string
Default: "PersonPresenceQuery"
Value: "PersonPresenceQuery"
Array of any (PersonPresenceSearchFilter) [ items ]

List of filters to narrow the search of entities

Array of objects (PersonPresenceOrderBy) [ items ]

List of criteria to order the search result list

offset
integer <int32>

Offset position in the result set to start pagination

limit
integer <int32>

Maximal amount of items returned

Responses

Request samples

Content type
application/json
{
  • "$_type": "PersonPresenceQuery",
  • "searchFilters": [
    ],
  • "orderBy": [
    ],
  • "offset": 0,
  • "limit": 0
}

Response samples

Content type
application/json
{
  • "$_type": "PersonPresenceResult",
  • "hasMoreItems": true,
  • "nextOffset": 0,
  • "items": [
    ]
}

Persons

Service to manage virtual or bot persons

createOrUpdateBot

Updates and returns an existing bot person or creates and returns a bot person if absent.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

person data

$_type
string
Default: "PersonData"
Value: "PersonData"
id
string

Unique id of the person, when creating a person this property can be omitted as it will be generated by the server anyway.

accountId
string

Account id to which a Person belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

personSource
string (EPersonSource)
Enum: "USER_DB" "VIRTUAL"
enum-descriptions: ["USER_DB: Person-Source is on the main_user table","VIRTUAL: Person-Source is only virtual (no seperate storage)"]

The source type of a person (participant of a conversation)

sourceId
string

Identifier of the person in its source (defined by personSource). For EPersonSource.USER_DB this is the userId, forEPersonSource.VIRTUAL the propagated user id. Maximum length of 250 characters. Mandatory for virtual persons.

sourceData
string

Vendor specific data.

firstName
string

The first name of the person. Maximum length of 250 characters. Can be omitted.

lastName
string

the last name of the person. Maximum length of 250 characters. Can be omitted.

username
string

The username of the person. When firstName and lastName are unknown, it is recommended to use this value to change the displayName. Depending on the configuration, this is may also be the email of the corresponding user. Maximum length of 250 characters. Can be omitted.

nickname
string

A name that an anonymous person has given itself. Maximum length of 250 characters. Can be omitted.

displayName
string

Display name of the person. This is read only information, it will be set by the server anyway.

personType
string (EPersonType)
Enum: "AGENT" "VISITOR" "SYSTEM" "BOT"
enum-descriptions: ["AGENT: Agent participant","VISITOR: Visitor participant","SYSTEM: System participant","BOT: Bot participant"]

The type of a person (participant of a session)

authorizationRole
string (EAuthorizationRole)
Enum: "SUPER_ADMIN" "PARTNER" "TECHNICAL_ADMIN" "ADMIN" "SUPERVISOR" "REGISTERED_USER" "WEBUSER" "ANONYMOUS_USER"
enum-descriptions: ["SUPER_ADMIN: Super admin role. Only for unblu or system admins","PARTNER: Partner role. (no longer used)","TECHNICAL_ADMIN: Technical admin role.","ADMIN: Admin role. For Admins of the system","SUPERVISOR: Supervisor role. For users which manage teams","REGISTERED_USER: User role. For normal users (agents)","WEBUSER: Webuser role. For internal representation of users from the outside","ANONYMOUS_USER: Anonymous role. For internal representation of unknown users"]

The authorization role is mainly used for access definition of a service

email
string

The email of the person. Optional.

phone
string

The phone of the person. Optional.

teamId
string

Team id of the person. Optional.

teamName
string

Team name of the person, only present when the team id is set. When creating or updating a person this property can be omitted as it will be set by the server anyway.

string or Avatar (object)
expand-query-key: avatar
type: ExpandableField

Avatar of the entity: id that can be expanded.

object
expand-query-key: metadata
type: Map

The entity's metadata properties. Only contains values when the 'expand' query parameter is used with the value 'metadata'.

Responses

Request samples

Content type
application/json
{
  • "$_type": "PersonData",
  • "id": null,
  • "accountId": null,
  • "personSource": null,
  • "sourceId": "b",
  • "sourceData": null,
  • "firstName": null,
  • "lastName": null,
  • "username": "Example B",
  • "nickname": null,
  • "displayName": null,
  • "personType": null,
  • "authorizationRole": null,
  • "email": "b@example.com",
  • "phone": null,
  • "teamId": null,
  • "teamName": null,
  • "avatar": null,
  • "metadata": null
}

Response samples

Content type
application/json
{
  • "$_type": "PersonData",
  • "id": "nta30CBa-6d1a89cE57Db_F",
  • "accountId": "A7d9E_0-c3cC4aoFDb85t6n",
  • "personSource": "VIRTUAL",
  • "sourceId": "bot3",
  • "sourceData": null,
  • "firstName": null,
  • "lastName": null,
  • "username": "Example BOT3",
  • "nickname": null,
  • "displayName": "Bot",
  • "personType": "BOT",
  • "authorizationRole": "REGISTERED_USER",
  • "email": "bot3@example.com",
  • "phone": null,
  • "teamId": null,
  • "teamName": null,
  • "avatar": null,
  • "metadata": null
}

createOrUpdateVirtual

Updates and returns an existing virtual person or creates and returns a virtual person if absent.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

person data

$_type
string
Default: "PersonData"
Value: "PersonData"
id
string

Unique id of the person, when creating a person this property can be omitted as it will be generated by the server anyway.

accountId
string

Account id to which a Person belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

personSource
string (EPersonSource)
Enum: "USER_DB" "VIRTUAL"
enum-descriptions: ["USER_DB: Person-Source is on the main_user table","VIRTUAL: Person-Source is only virtual (no seperate storage)"]

The source type of a person (participant of a conversation)

sourceId
string

Identifier of the person in its source (defined by personSource). For EPersonSource.USER_DB this is the userId, forEPersonSource.VIRTUAL the propagated user id. Maximum length of 250 characters. Mandatory for virtual persons.

sourceData
string

Vendor specific data.

firstName
string

The first name of the person. Maximum length of 250 characters. Can be omitted.

lastName
string

the last name of the person. Maximum length of 250 characters. Can be omitted.

username
string

The username of the person. When firstName and lastName are unknown, it is recommended to use this value to change the displayName. Depending on the configuration, this is may also be the email of the corresponding user. Maximum length of 250 characters. Can be omitted.

nickname
string

A name that an anonymous person has given itself. Maximum length of 250 characters. Can be omitted.

displayName
string

Display name of the person. This is read only information, it will be set by the server anyway.

personType
string (EPersonType)
Enum: "AGENT" "VISITOR" "SYSTEM" "BOT"
enum-descriptions: ["AGENT: Agent participant","VISITOR: Visitor participant","SYSTEM: System participant","BOT: Bot participant"]

The type of a person (participant of a session)

authorizationRole
string (EAuthorizationRole)
Enum: "SUPER_ADMIN" "PARTNER" "TECHNICAL_ADMIN" "ADMIN" "SUPERVISOR" "REGISTERED_USER" "WEBUSER" "ANONYMOUS_USER"
enum-descriptions: ["SUPER_ADMIN: Super admin role. Only for unblu or system admins","PARTNER: Partner role. (no longer used)","TECHNICAL_ADMIN: Technical admin role.","ADMIN: Admin role. For Admins of the system","SUPERVISOR: Supervisor role. For users which manage teams","REGISTERED_USER: User role. For normal users (agents)","WEBUSER: Webuser role. For internal representation of users from the outside","ANONYMOUS_USER: Anonymous role. For internal representation of unknown users"]

The authorization role is mainly used for access definition of a service

email
string

The email of the person. Optional.

phone
string

The phone of the person. Optional.

teamId
string

Team id of the person. Optional.

teamName
string

Team name of the person, only present when the team id is set. When creating or updating a person this property can be omitted as it will be set by the server anyway.

string or Avatar (object)
expand-query-key: avatar
type: ExpandableField

Avatar of the entity: id that can be expanded.

object
expand-query-key: metadata
type: Map

The entity's metadata properties. Only contains values when the 'expand' query parameter is used with the value 'metadata'.

Responses

Request samples

Content type
application/json
{
  • "$_type": "PersonData",
  • "id": "string",
  • "accountId": "string",
  • "personSource": "USER_DB",
  • "sourceId": "string",
  • "sourceData": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "username": "string",
  • "nickname": "string",
  • "displayName": "string",
  • "personType": "AGENT",
  • "authorizationRole": "SUPER_ADMIN",
  • "email": "string",
  • "phone": "string",
  • "teamId": "string",
  • "teamName": "string",
  • "avatar": "string",
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "$_type": "PersonData",
  • "id": "string",
  • "accountId": "string",
  • "personSource": "USER_DB",
  • "sourceId": "string",
  • "sourceData": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "username": "string",
  • "nickname": "string",
  • "displayName": "string",
  • "personType": "AGENT",
  • "authorizationRole": "SUPER_ADMIN",
  • "email": "string",
  • "phone": "string",
  • "teamId": "string",
  • "teamName": "string",
  • "avatar": "string",
  • "metadata": {
    }
}

getBySource

Returns a person by source

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
personSource
string (EPersonSource)
Enum: "USER_DB" "VIRTUAL"
enum-descriptions: ["USER_DB: Person-Source is on the main_user table","VIRTUAL: Person-Source is only virtual (no seperate storage)"]

Source of the of the person

sourceId
string

Identifier of the person in its source

expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"

Responses

Response samples

Content type
application/json
{
  • "$_type": "PersonData",
  • "id": "string",
  • "accountId": "string",
  • "personSource": "USER_DB",
  • "sourceId": "string",
  • "sourceData": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "username": "string",
  • "nickname": "string",
  • "displayName": "string",
  • "personType": "AGENT",
  • "authorizationRole": "SUPER_ADMIN",
  • "email": "string",
  • "phone": "string",
  • "teamId": "string",
  • "teamName": "string",
  • "avatar": "string",
  • "metadata": {
    }
}

read

Method to read a PersonData by id

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
id
string

the personId

expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"

Responses

Response samples

Content type
application/json
{
  • "$_type": "PersonData",
  • "id": "string",
  • "accountId": "string",
  • "personSource": "USER_DB",
  • "sourceId": "string",
  • "sourceData": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "username": "string",
  • "nickname": "string",
  • "displayName": "string",
  • "personType": "AGENT",
  • "authorizationRole": "SUPER_ADMIN",
  • "email": "string",
  • "phone": "string",
  • "teamId": "string",
  • "teamName": "string",
  • "avatar": "string",
  • "metadata": {
    }
}

search

Search for persons in the current account

required-call-origin: TRUSTED
required-role: ["SUPERVISOR"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json
$_type
string
Default: "PersonQuery"
Value: "PersonQuery"
Array of any (PersonSearchFilter) [ items ]

List of filters to narrow the search of entities

Array of objects (PersonOrderBy) [ items ]

List of criteria to order the search result list

offset
integer <int32>

Offset position in the result set to start pagination

limit
integer <int32>

Maximal amount of items returned

Responses

Request samples

Content type
application/json
{
  • "$_type": "PersonQuery",
  • "searchFilters": [
    ],
  • "orderBy": [
    ],
  • "offset": 0,
  • "limit": 0
}

Response samples

Content type
application/json
{
  • "$_type": "PersonResult",
  • "hasMoreItems": true,
  • "nextOffset": 0,
  • "items": [
    ]
}

Services

Service which provides metadata information for all services and used types.

findWebhookEventTypeNamesBy

Returns the webhook event type names matching certain condition

required-call-origin: UNTRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:
query Parameters
apiVersion
string (EWebApiVersion)
Enum: "V1" "V2" "V3"
enum-descriptions: ["V1: Version 1 of the Web-API. Introduced with Unblu 4.x.","V2: Version 2 of the Web-API. Introduced with Unblu 5.","V3: Version 3 of the Web-API. Introduced with Unblu 6."]

only the events compatible with this version will be returned. If null the newest Web-API version will be used.

registrationLocation
string (ERegistrationLocation)
Enum: "WEBHOOK_REGISTRATION" "BOT" "EXTERNAL_MESSENGER"
enum-descriptions: ["WEBHOOK_REGISTRATION","BOT","EXTERNAL_MESSENGER"]

only the events having this registration location will be returned. If null all location will be considered

Responses

Response samples

Content type
application/json
[
  • "string"
]

getAllServiceNames

Returns the name of all available services

required-call-origin: UNTRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:

Responses

Response samples

Content type
application/json
[
  • "string"
]

getAllServices

Returns a list of all available services

required-call-origin: UNTRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:

Responses

Response samples

Content type
application/json
[
  • {
    }
]

getAllServicesMetadata

Returns all metadata information available in one batch

required-call-origin: UNTRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:

Responses

Response samples

Content type
application/json
{
  • "$_type": "ServicesContainer",
  • "version": "string",
  • "services": [
    ],
  • "webhookEvents": [
    ],
  • "types": [
    ]
}

getAllTypeNames

Returns A list of all type names used by the services and the webhook events

required-call-origin: UNTRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:

Responses

Response samples

Content type
application/json
[
  • "string"
]

getAllTypes

Returns All available types used by the services and the webhook events

required-call-origin: UNTRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:

Responses

Response samples

Content type
application/json
[
  • {
    }
]

getAllWebhookEventTypeNames

Returns all webhook event type names

required-call-origin: UNTRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:

Responses

Response samples

Content type
application/json
[
  • "string"
]

getAllWebhookEventTypes

Returns all webhook event types

required-call-origin: UNTRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:

Responses

Response samples

Content type
application/json
[
  • {
    }
]

getServiceByName

Returns the metadata for the requested service

required-call-origin: UNTRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:
path Parameters
serviceName
required
string

The name of the service of which the metadata should be returned

Responses

Response samples

Content type
application/json
{
  • "$_type": "WebApiService",
  • "documentation": "string",
  • "name": "string",
  • "implementationName": "string",
  • "resources": [
    ]
}

getTypeByName

Returns a type definition by the given name

required-call-origin: UNTRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:
path Parameters
name
required
string

The name of the type of which the metadata should be returned

Responses

Response samples

Content type
application/json
{
  • "$_type": "ServiceType",
  • "documentation": "string",
  • "name": "string",
  • "implementationName": "string",
  • "isEnum": true,
  • "additionalExpandables": [
    ],
  • "properties": [
    ],
  • "staticProperties": [
    ],
  • "implementationTypes": [
    ],
  • "discriminatorName": "string"
}

getWebhookEventTypeByName

Returns the webhook event type definition for the requested webhook event

required-call-origin: UNTRUSTED
required-role: ["ANONYMOUS_USER"]
Authorizations:
path Parameters
name
required
string

The name of the webhook event type of which the metadata should be returned

Responses

Response samples

Content type
application/json
{
  • "$_type": "ServiceWebhookEventType",
  • "documentation": "string",
  • "name": "string",
  • "implementationName": "string",
  • "registrationLocation": "WEBHOOK_REGISTRATION",
  • "since": "V1",
  • "properties": [
    ],
  • "staticProperties": [
    ]
}

Teams

Service to manage all teams in the system. For each account there is always a default team, which users are assigned to, when no explicit team is set.

create

Creates the given entity in the system. The id of the entity can not be set for create operation, a new one is generated.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

The entity to create

$_type
string
Default: "Team"
Value: "Team"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

string or Avatar (object)
expand-query-key: avatar
type: ExpandableField

Avatar of the entity: id that can be expanded.

name
string

Name of the team. Maximum of 250 characters. Can not be omitted.

parentId
string

Id of the parent team. Only the default team has no parent team. When creating a team and the parentId is omitted, the default team is automatically inserted by the server.

description
string

Description of the team. Maximum of 500 characters. Can be omitted.

externallyManaged
boolean

True if the team is externally managed and cannot be edited in the Unblu user interface. If omitted, the property is set to false.

object
expand-query-key: configuration
type: Map

The entity's configuration properties. Only contains values when the 'expand' query parameter is used with the value 'configuration'.

object
expand-query-key: metadata
type: Map

The entity's metadata properties. Only contains values when the 'expand' query parameter is used with the value 'metadata'.

Responses

Request samples

Content type
application/json
{
  • "$_type": "Team",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "avatar": "string",
  • "name": "string",
  • "parentId": "string",
  • "description": "string",
  • "externallyManaged": true,
  • "configuration": {
    },
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "$_type": "Team",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "avatar": "string",
  • "name": "string",
  • "parentId": "string",
  • "description": "string",
  • "externallyManaged": true,
  • "configuration": {
    },
  • "metadata": {
    }
}

delete

Deletes the entity for the given id

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
id
string

The id of the entity which should be deleted

Responses

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

getByParentId

Returns a list of teams, which directly belong to the given parent team.

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
parentId
string

The id of the parent for which the direct child teams should be returned

expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"

Responses

Response samples

Content type
application/json
[
  • {
    }
]

getChildTeamIds

Returns a list of teams ids, which recursively belong to the given parent team. So child teams of a child team are also listed

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
teamId
string

The ID of the parent team for which the child teams should be returned recursively

Responses

Response samples

Content type
application/json
[
  • "string"
]

getChildTeams

Returns a list of teams, which recursively belong to the given parent team. So child teams of a child team are also listed

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
teamId
string

The ID of the parent team for which the child teams should be returned recursively

expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"

Responses

Response samples

Content type
application/json
[
  • {
    }
]

getQuotaUsage

Returns the number of entities already existing (for the current account)

required-call-origin: TRUSTED
required-role: ["SUPERVISOR"]
Authorizations:

Responses

Response samples

Content type
application/json
0

getTeamOfCurrentUser

Returns the team of the current logged in user. There is always a team, at least the default team.

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"

Responses

Response samples

Content type
application/json
{
  • "$_type": "Team",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "avatar": "string",
  • "name": "string",
  • "parentId": "string",
  • "description": "string",
  • "externallyManaged": true,
  • "configuration": {
    },
  • "metadata": {
    }
}

read

Returns the team for the given id

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
id
string

Id of the team which should be returned

expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"

Responses

Response samples

Content type
application/json
{
  • "$_type": "Team",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "avatar": "string",
  • "name": "string",
  • "parentId": "string",
  • "description": "string",
  • "externallyManaged": true,
  • "configuration": {
    },
  • "metadata": {
    }
}

readMultiple

Gets a list of teams for the given id's

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

The id's for which the teams should be fetched

Array
string

Responses

Request samples

Content type
application/json
[
  • "string"
]

Response samples

Content type
application/json
[
  • {
    }
]

search

Search for teams in the current account

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json
$_type
string
Default: "TeamQuery"
Value: "TeamQuery"
Array of any (TeamSearchFilter) [ items ]

List of filters to narrow the search of entities

Array of objects (TeamOrderBy) [ items ]

List of criteria to order the search result list

offset
integer <int32>

Offset position in the result set to start pagination

limit
integer <int32>

Maximal amount of items returned

Responses

Request samples

Content type
application/json
{
  • "$_type": "TeamQuery",
  • "searchFilters": [
    ],
  • "orderBy": [
    ],
  • "offset": 0,
  • "limit": 0
}

Response samples

Content type
application/json
{
  • "$_type": "TeamResult",
  • "hasMoreItems": true,
  • "nextOffset": 0,
  • "items": [
    ]
}

teamIsChildOfOtherTeam

Checks if the subTeamId is a child team of the parentTeamId.
If isParentTeamItselfAllowed is true, this functions returns true if subTeamId is equals parentTeamId.
This check is recursive. It will check all parent teams of the sub team until it either finds the given parent team or if there is no parent team anymore.

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
parentTeamId
string

The parent team id against which the check should be done

subTeamId
string

The sub team id, which is checked against the parent team id

Responses

Response samples

Content type
application/json
true

update

Updates the team entity with the given instance. A supervisor can change his team and all sub teams

required-call-origin: TRUSTED
required-role: ["SUPERVISOR"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

The entity to update

$_type
string
Default: "Team"
Value: "Team"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

string or Avatar (object)
expand-query-key: avatar
type: ExpandableField

Avatar of the entity: id that can be expanded.

name
string

Name of the team. Maximum of 250 characters. Can not be omitted.

parentId
string

Id of the parent team. Only the default team has no parent team. When creating a team and the parentId is omitted, the default team is automatically inserted by the server.

description
string

Description of the team. Maximum of 500 characters. Can be omitted.

externallyManaged
boolean

True if the team is externally managed and cannot be edited in the Unblu user interface. If omitted, the property is set to false.

object
expand-query-key: configuration
type: Map

The entity's configuration properties. Only contains values when the 'expand' query parameter is used with the value 'configuration'.

object
expand-query-key: metadata
type: Map

The entity's metadata properties. Only contains values when the 'expand' query parameter is used with the value 'metadata'.

Responses

Request samples

Content type
application/json
{
  • "$_type": "Team",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "avatar": "string",
  • "name": "string",
  • "parentId": "string",
  • "description": "string",
  • "externallyManaged": true,
  • "configuration": {
    },
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "$_type": "Team",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "avatar": "string",
  • "name": "string",
  • "parentId": "string",
  • "description": "string",
  • "externallyManaged": true,
  • "configuration": {
    },
  • "metadata": {
    }
}

Users

Service to manage all users in the system. Most of the service's endpoints to read, list, or search for users exclude virtual visitors from the results. If an endpoint returns virtual visitors, it will be noted in the endpoint's description.

create

Creates the given entity in the system. The id of the entity can not be set for create operation, a new one is generated.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

The entity to create

$_type
string
Default: "User"
Value: "User"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

string or Avatar (object)
expand-query-key: avatar
type: ExpandableField

Avatar of the entity: id that can be expanded.

username
string

The username for the login. Depending on the configuration, this is may also the email. Maximum length of 250 characters. Can not be omitted. When creating/updating a user and configuration 'storage.user.useEmailAsUsername' is enabled, this value must be the same as the email address.

email
string

The email address of the user. Maximum length of 250 characters. Can not be omitted, but can be an empty string, if storage.user.useEmailAsUsername is not used.

phone
string

The phone number of the user. Maximum length of 100 characters.

teamId
string

The id of the team the user belongs to. This can be omitted, when creating a user and will be filled by the server with the default team id of the account.

authorizationRole
string (EAuthorizationRole)
Enum: "SUPER_ADMIN" "PARTNER" "TECHNICAL_ADMIN" "ADMIN" "SUPERVISOR" "REGISTERED_USER" "WEBUSER" "ANONYMOUS_USER"
enum-descriptions: ["SUPER_ADMIN: Super admin role. Only for unblu or system admins","PARTNER: Partner role. (no longer used)","TECHNICAL_ADMIN: Technical admin role.","ADMIN: Admin role. For Admins of the system","SUPERVISOR: Supervisor role. For users which manage teams","REGISTERED_USER: User role. For normal users (agents)","WEBUSER: Webuser role. For internal representation of users from the outside","ANONYMOUS_USER: Anonymous role. For internal representation of unknown users"]

The authorization role is mainly used for access definition of a service

displayName
string

The display name of the user. Will be calculated by the server. Can be omitted while creating a user.

firstName
string

The first name of the user. Maximum length of 250 characters. Can not be omitted.

lastName
string

The user's last name. Maximum length of 250 characters. Cannot be omitted.

externallyManaged
boolean

True if the user is externally managed and cannot be edited in the Unblu user interface. If omitted, the property is set to false.

virtualUser
boolean

True if the user is pure virtual (i.e. not created beforehand by LDAP sync for instance) and therefore can not be edited by the Unblu user interface. If omitted, the property is set to false.

object
expand-query-key: configuration
type: Map

The entity's configuration properties. Only contains values when the 'expand' query parameter is used with the value 'configuration'.

object
expand-query-key: metadata
type: Map

The entity's metadata properties. Only contains values when the 'expand' query parameter is used with the value 'metadata'.

Responses

Request samples

Content type
application/json
{
  • "$_type": "User",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "avatar": "string",
  • "username": "string",
  • "email": "string",
  • "phone": "string",
  • "teamId": "string",
  • "authorizationRole": "SUPER_ADMIN",
  • "displayName": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "externallyManaged": true,
  • "virtualUser": true,
  • "configuration": {
    },
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "$_type": "User",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "avatar": "string",
  • "username": "string",
  • "email": "string",
  • "phone": "string",
  • "teamId": "string",
  • "authorizationRole": "SUPER_ADMIN",
  • "displayName": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "externallyManaged": true,
  • "virtualUser": true,
  • "configuration": {
    },
  • "metadata": {
    }
}

createUserWithRandomPassword

Creates a new user with a random password. The random password is returned and also send via email, if email is correctly configured.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

The user data with which the new user is created

$_type
string
Default: "User"
Value: "User"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

string or Avatar (object)
expand-query-key: avatar
type: ExpandableField

Avatar of the entity: id that can be expanded.

username
string

The username for the login. Depending on the configuration, this is may also the email. Maximum length of 250 characters. Can not be omitted. When creating/updating a user and configuration 'storage.user.useEmailAsUsername' is enabled, this value must be the same as the email address.

email
string

The email address of the user. Maximum length of 250 characters. Can not be omitted, but can be an empty string, if storage.user.useEmailAsUsername is not used.

phone
string

The phone number of the user. Maximum length of 100 characters.

teamId
string

The id of the team the user belongs to. This can be omitted, when creating a user and will be filled by the server with the default team id of the account.

authorizationRole
string (EAuthorizationRole)
Enum: "SUPER_ADMIN" "PARTNER" "TECHNICAL_ADMIN" "ADMIN" "SUPERVISOR" "REGISTERED_USER" "WEBUSER" "ANONYMOUS_USER"
enum-descriptions: ["SUPER_ADMIN: Super admin role. Only for unblu or system admins","PARTNER: Partner role. (no longer used)","TECHNICAL_ADMIN: Technical admin role.","ADMIN: Admin role. For Admins of the system","SUPERVISOR: Supervisor role. For users which manage teams","REGISTERED_USER: User role. For normal users (agents)","WEBUSER: Webuser role. For internal representation of users from the outside","ANONYMOUS_USER: Anonymous role. For internal representation of unknown users"]

The authorization role is mainly used for access definition of a service

displayName
string

The display name of the user. Will be calculated by the server. Can be omitted while creating a user.

firstName
string

The first name of the user. Maximum length of 250 characters. Can not be omitted.

lastName
string

The user's last name. Maximum length of 250 characters. Cannot be omitted.

externallyManaged
boolean

True if the user is externally managed and cannot be edited in the Unblu user interface. If omitted, the property is set to false.

virtualUser
boolean

True if the user is pure virtual (i.e. not created beforehand by LDAP sync for instance) and therefore can not be edited by the Unblu user interface. If omitted, the property is set to false.

object
expand-query-key: configuration
type: Map

The entity's configuration properties. Only contains values when the 'expand' query parameter is used with the value 'configuration'.

object
expand-query-key: metadata
type: Map

The entity's metadata properties. Only contains values when the 'expand' query parameter is used with the value 'metadata'.

Responses

Request samples

Content type
application/json
{
  • "$_type": "User",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "avatar": "string",
  • "username": "string",
  • "email": "string",
  • "phone": "string",
  • "teamId": "string",
  • "authorizationRole": "SUPER_ADMIN",
  • "displayName": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "externallyManaged": true,
  • "virtualUser": true,
  • "configuration": {
    },
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "$_type": "UserPasswordContainer",
  • "user": {
    },
  • "password": "string"
}

createWithPassword

Creates a new user with the provided password for login.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

The user and the password which should be created

$_type
string
Default: "UserPasswordContainer"
Value: "UserPasswordContainer"
object (User)

Model of a user. A user is normally an agent and/or a person who manages the system

password
string

The password which belongs to the user

Responses

Request samples

Content type
application/json

create a new user with a given password

{
  • "$_type": "UserPasswordContainer",
  • "user": {
    },
  • "password": "L0remPf18!"
}

Response samples

Content type
application/json
{
  • "$_type": "User",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "avatar": "string",
  • "username": "string",
  • "email": "string",
  • "phone": "string",
  • "teamId": "string",
  • "authorizationRole": "SUPER_ADMIN",
  • "displayName": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "externallyManaged": true,
  • "virtualUser": true,
  • "configuration": {
    },
  • "metadata": {
    }
}

delete

Deletes the entity for the given id

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
id
string

The id of the entity which should be deleted

Responses

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

doesUserLoginExist

Checks if the given username exists in the system. Only checks the current account. This endpoint can be used for any type of users including virtual visitors.

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
username
string

The username which will be looked up

Responses

Response samples

Content type
application/json
true

getByUsername

Returns the user for the given username.

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
username
string

The username of the requested user

expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"

Responses

Response samples

Content type
application/json
{
  • "$_type": "User",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "avatar": "string",
  • "username": "string",
  • "email": "string",
  • "phone": "string",
  • "teamId": "string",
  • "authorizationRole": "SUPER_ADMIN",
  • "displayName": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "externallyManaged": true,
  • "virtualUser": true,
  • "configuration": {
    },
  • "metadata": {
    }
}

getQuotaUsage

Returns the number of entities already existing (for the current account)

required-call-origin: TRUSTED
required-role: ["SUPERVISOR"]
Authorizations:

Responses

Response samples

Content type
application/json
0

isSuperUser

Checks if the given user id belongs to a super admin user. This endpoint can be used for any type of users including virtual visitors.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
userId
string

The id of a user which should be checked

Responses

Response samples

Content type
application/json
true

isUsernameAvailable

Checks if the username is available in general or for the given userId. Checks all accounts and includes virtual visitors.

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
name
string

The name which should be checked

userId
string

The user id of the user for who the username should be set. When set, the name of the user (for himself) is considered as available.

Responses

Response samples

Content type
application/json
true

read

Returns the user for the given id.

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
id
string

Id of the user which should be returned

expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"

Responses

Response samples

Content type
application/json
{
  • "$_type": "User",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "avatar": "string",
  • "username": "string",
  • "email": "string",
  • "phone": "string",
  • "teamId": "string",
  • "authorizationRole": "SUPER_ADMIN",
  • "displayName": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "externallyManaged": true,
  • "virtualUser": true,
  • "configuration": {
    },
  • "metadata": {
    }
}

readMultiple

Gets a list of users for the given id's. The response will not include virtual visitors.

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

The id's for which the users should be fetched

Array
string

Responses

Request samples

Content type
application/json
[
  • "string"
]

Response samples

Content type
application/json
[
  • {
    }
]

search

Search for users in the current account. The response will not include virtual visitors.

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json
$_type
string
Default: "UserQuery"
Value: "UserQuery"
Array of any (UserSearchFilter) [ items ]

List of filters to narrow the search of entities

Array of objects (UserOrderBy) [ items ]

List of criteria to order the search result list

offset
integer <int32>

Offset position in the result set to start pagination

limit
integer <int32>

Maximal amount of items returned

Responses

Request samples

Content type
application/json
{
  • "$_type": "UserQuery",
  • "searchFilters": [
    ],
  • "orderBy": [
    ],
  • "offset": 0,
  • "limit": 0
}

Response samples

Content type
application/json
{
  • "$_type": "UserResult",
  • "hasMoreItems": true,
  • "nextOffset": 0,
  • "items": [
    ]
}

update

Updates the given user with the new data.

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

The new user data

$_type
string
Default: "User"
Value: "User"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

string or Avatar (object)
expand-query-key: avatar
type: ExpandableField

Avatar of the entity: id that can be expanded.

username
string

The username for the login. Depending on the configuration, this is may also the email. Maximum length of 250 characters. Can not be omitted. When creating/updating a user and configuration 'storage.user.useEmailAsUsername' is enabled, this value must be the same as the email address.

email
string

The email address of the user. Maximum length of 250 characters. Can not be omitted, but can be an empty string, if storage.user.useEmailAsUsername is not used.

phone
string

The phone number of the user. Maximum length of 100 characters.

teamId
string

The id of the team the user belongs to. This can be omitted, when creating a user and will be filled by the server with the default team id of the account.

authorizationRole
string (EAuthorizationRole)
Enum: "SUPER_ADMIN" "PARTNER" "TECHNICAL_ADMIN" "ADMIN" "SUPERVISOR" "REGISTERED_USER" "WEBUSER" "ANONYMOUS_USER"
enum-descriptions: ["SUPER_ADMIN: Super admin role. Only for unblu or system admins","PARTNER: Partner role. (no longer used)","TECHNICAL_ADMIN: Technical admin role.","ADMIN: Admin role. For Admins of the system","SUPERVISOR: Supervisor role. For users which manage teams","REGISTERED_USER: User role. For normal users (agents)","WEBUSER: Webuser role. For internal representation of users from the outside","ANONYMOUS_USER: Anonymous role. For internal representation of unknown users"]

The authorization role is mainly used for access definition of a service

displayName
string

The display name of the user. Will be calculated by the server. Can be omitted while creating a user.

firstName
string

The first name of the user. Maximum length of 250 characters. Can not be omitted.

lastName
string

The user's last name. Maximum length of 250 characters. Cannot be omitted.

externallyManaged
boolean

True if the user is externally managed and cannot be edited in the Unblu user interface. If omitted, the property is set to false.

virtualUser
boolean

True if the user is pure virtual (i.e. not created beforehand by LDAP sync for instance) and therefore can not be edited by the Unblu user interface. If omitted, the property is set to false.

object
expand-query-key: configuration
type: Map

The entity's configuration properties. Only contains values when the 'expand' query parameter is used with the value 'configuration'.

object
expand-query-key: metadata
type: Map

The entity's metadata properties. Only contains values when the 'expand' query parameter is used with the value 'metadata'.

Responses

Request samples

Content type
application/json
{
  • "$_type": "User",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "avatar": "string",
  • "username": "string",
  • "email": "string",
  • "phone": "string",
  • "teamId": "string",
  • "authorizationRole": "SUPER_ADMIN",
  • "displayName": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "externallyManaged": true,
  • "virtualUser": true,
  • "configuration": {
    },
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "$_type": "User",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "avatar": "string",
  • "username": "string",
  • "email": "string",
  • "phone": "string",
  • "teamId": "string",
  • "authorizationRole": "SUPER_ADMIN",
  • "displayName": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "externallyManaged": true,
  • "virtualUser": true,
  • "configuration": {
    },
  • "metadata": {
    }
}

updateAndRemovePassword

Updates a user and remove the existing password of this user. Without password the user will not be able to log in directly into the system. Users without a password are typically used in setups with ID propagation.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

The user which should be updated (password will be removed)

$_type
string
Default: "User"
Value: "User"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

string or Avatar (object)
expand-query-key: avatar
type: ExpandableField

Avatar of the entity: id that can be expanded.

username
string

The username for the login. Depending on the configuration, this is may also the email. Maximum length of 250 characters. Can not be omitted. When creating/updating a user and configuration 'storage.user.useEmailAsUsername' is enabled, this value must be the same as the email address.

email
string

The email address of the user. Maximum length of 250 characters. Can not be omitted, but can be an empty string, if storage.user.useEmailAsUsername is not used.

phone
string

The phone number of the user. Maximum length of 100 characters.

teamId
string

The id of the team the user belongs to. This can be omitted, when creating a user and will be filled by the server with the default team id of the account.

authorizationRole
string (EAuthorizationRole)
Enum: "SUPER_ADMIN" "PARTNER" "TECHNICAL_ADMIN" "ADMIN" "SUPERVISOR" "REGISTERED_USER" "WEBUSER" "ANONYMOUS_USER"
enum-descriptions: ["SUPER_ADMIN: Super admin role. Only for unblu or system admins","PARTNER: Partner role. (no longer used)","TECHNICAL_ADMIN: Technical admin role.","ADMIN: Admin role. For Admins of the system","SUPERVISOR: Supervisor role. For users which manage teams","REGISTERED_USER: User role. For normal users (agents)","WEBUSER: Webuser role. For internal representation of users from the outside","ANONYMOUS_USER: Anonymous role. For internal representation of unknown users"]

The authorization role is mainly used for access definition of a service

displayName
string

The display name of the user. Will be calculated by the server. Can be omitted while creating a user.

firstName
string

The first name of the user. Maximum length of 250 characters. Can not be omitted.

lastName
string

The user's last name. Maximum length of 250 characters. Cannot be omitted.

externallyManaged
boolean

True if the user is externally managed and cannot be edited in the Unblu user interface. If omitted, the property is set to false.

virtualUser
boolean

True if the user is pure virtual (i.e. not created beforehand by LDAP sync for instance) and therefore can not be edited by the Unblu user interface. If omitted, the property is set to false.

object
expand-query-key: configuration
type: Map

The entity's configuration properties. Only contains values when the 'expand' query parameter is used with the value 'configuration'.

object
expand-query-key: metadata
type: Map

The entity's metadata properties. Only contains values when the 'expand' query parameter is used with the value 'metadata'.

Responses

Request samples

Content type
application/json
{
  • "$_type": "User",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "avatar": "string",
  • "username": "string",
  • "email": "string",
  • "phone": "string",
  • "teamId": "string",
  • "authorizationRole": "SUPER_ADMIN",
  • "displayName": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "externallyManaged": true,
  • "virtualUser": true,
  • "configuration": {
    },
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "$_type": "User",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "avatar": "string",
  • "username": "string",
  • "email": "string",
  • "phone": "string",
  • "teamId": "string",
  • "authorizationRole": "SUPER_ADMIN",
  • "displayName": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "externallyManaged": true,
  • "virtualUser": true,
  • "configuration": {
    },
  • "metadata": {
    }
}

updatePassword

Updates the password of the given user.

legacy-get: true
required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json
userId
string

The id of the user which should be updated

password
string

The new password for the user

Responses

Request samples

Content type
application/json

update password for a given user

{
  • "userId": "d5_2rD019scCA7eEB48U6ab",
  • "password": "L0remPf18!"
}

Response samples

Content type
application/json
{
  • "$_type": "User",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "avatar": "string",
  • "username": "string",
  • "email": "string",
  • "phone": "string",
  • "teamId": "string",
  • "authorizationRole": "SUPER_ADMIN",
  • "displayName": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "externallyManaged": true,
  • "virtualUser": true,
  • "configuration": {
    },
  • "metadata": {
    }
}

updateUserWithRandomPassword

Updates the password of a user with a new random password and also the user data. The random password is returned and also send via email, if email is correctly configured.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

The user which should be updated with a random password

$_type
string
Default: "User"
Value: "User"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

string or Avatar (object)
expand-query-key: avatar
type: ExpandableField

Avatar of the entity: id that can be expanded.

username
string

The username for the login. Depending on the configuration, this is may also the email. Maximum length of 250 characters. Can not be omitted. When creating/updating a user and configuration 'storage.user.useEmailAsUsername' is enabled, this value must be the same as the email address.

email
string

The email address of the user. Maximum length of 250 characters. Can not be omitted, but can be an empty string, if storage.user.useEmailAsUsername is not used.

phone
string

The phone number of the user. Maximum length of 100 characters.

teamId
string

The id of the team the user belongs to. This can be omitted, when creating a user and will be filled by the server with the default team id of the account.

authorizationRole
string (EAuthorizationRole)
Enum: "SUPER_ADMIN" "PARTNER" "TECHNICAL_ADMIN" "ADMIN" "SUPERVISOR" "REGISTERED_USER" "WEBUSER" "ANONYMOUS_USER"
enum-descriptions: ["SUPER_ADMIN: Super admin role. Only for unblu or system admins","PARTNER: Partner role. (no longer used)","TECHNICAL_ADMIN: Technical admin role.","ADMIN: Admin role. For Admins of the system","SUPERVISOR: Supervisor role. For users which manage teams","REGISTERED_USER: User role. For normal users (agents)","WEBUSER: Webuser role. For internal representation of users from the outside","ANONYMOUS_USER: Anonymous role. For internal representation of unknown users"]

The authorization role is mainly used for access definition of a service

displayName
string

The display name of the user. Will be calculated by the server. Can be omitted while creating a user.

firstName
string

The first name of the user. Maximum length of 250 characters. Can not be omitted.

lastName
string

The user's last name. Maximum length of 250 characters. Cannot be omitted.

externallyManaged
boolean

True if the user is externally managed and cannot be edited in the Unblu user interface. If omitted, the property is set to false.

virtualUser
boolean

True if the user is pure virtual (i.e. not created beforehand by LDAP sync for instance) and therefore can not be edited by the Unblu user interface. If omitted, the property is set to false.

object
expand-query-key: configuration
type: Map

The entity's configuration properties. Only contains values when the 'expand' query parameter is used with the value 'configuration'.

object
expand-query-key: metadata
type: Map

The entity's metadata properties. Only contains values when the 'expand' query parameter is used with the value 'metadata'.

Responses

Request samples

Content type
application/json
{
  • "$_type": "User",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "avatar": "string",
  • "username": "string",
  • "email": "string",
  • "phone": "string",
  • "teamId": "string",
  • "authorizationRole": "SUPER_ADMIN",
  • "displayName": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "externallyManaged": true,
  • "virtualUser": true,
  • "configuration": {
    },
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "$_type": "UserPasswordContainer",
  • "user": {
    },
  • "password": "string"
}

updateWithPassword

Updates the password of the given user.

required-call-origin: TRUSTED
required-role: ["REGISTERED_USER"]
Authorizations:
query Parameters
expand
Array of strings (ExpandFields)
Items Enum: "avatar" "billingAddress" "channelIcon" "configuration" "contactAddress" "metadata" "text"
Request Body schema: application/json

The user and the password which should be updated

$_type
string
Default: "UserPasswordContainer"
Value: "UserPasswordContainer"
object (User)

Model of a user. A user is normally an agent and/or a person who manages the system

password
string

The password which belongs to the user

Responses

Request samples

Content type
application/json

update user and password

{
  • "$_type": "UserPasswordContainer",
  • "user": {
    },
  • "password": "L0remPf18!"
}

Response samples

Content type
application/json
{
  • "$_type": "User",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "avatar": "string",
  • "username": "string",
  • "email": "string",
  • "phone": "string",
  • "teamId": "string",
  • "authorizationRole": "SUPER_ADMIN",
  • "displayName": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "externallyManaged": true,
  • "virtualUser": true,
  • "configuration": {
    },
  • "metadata": {
    }
}

userHasPassword

Checks if a user has a password defined. This endpoint can be used for any type of users including virtual visitors.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
userId
string

The id of the user to check

Responses

Response samples

Content type
application/json
true

WebhookCallLogs

Service to get logs of webhook calls

read

Returns the entity for the given id

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
id
string

Id of the entity which should be returned

Responses

Response samples

Content type
application/json
{
  • "$_type": "WebhookCallLog",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "registrationId": "string",
  • "requestId": "string",
  • "executionTimestamp": 0,
  • "endpoint": "string",
  • "retryNr": 0,
  • "callId": "string",
  • "eventName": "string",
  • "requestHeaders": "string",
  • "requestSent": "string",
  • "requestSentTableColumn": "string",
  • "requestFileStoreId": "string",
  • "httpResponseCode": 0,
  • "httpResponseReason": "string",
  • "httpResponseHeaders": "string",
  • "responseFromServer": "string",
  • "responseFromServerTableColumn": "string",
  • "responseMimeType": "string",
  • "responseFileStoreId": "string"
}

readMultiple

Gets a list of entities for the given id's

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json

The id's for which the entities should be fetched

Array
string

Responses

Request samples

Content type
application/json
[
  • "string"
]

Response samples

Content type
application/json
[
  • {
    }
]

search

Search for call logs in the current account

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
$_type
string
Default: "WebhookCallLogQuery"
Value: "WebhookCallLogQuery"
Array of any (WebhookCallLogSearchFilter) [ items ]

List of filters to narrow the search of entities

Array of objects (WebhookCallLogOrderBy) [ items ]

List of criteria to order the search result list

offset
integer <int32>

Offset position in the result set to start pagination

limit
integer <int32>

Maximal amount of items returned

Responses

Request samples

Content type
application/json
{
  • "$_type": "WebhookCallLogQuery",
  • "searchFilters": [
    ],
  • "orderBy": [
    ],
  • "offset": 0,
  • "limit": 0
}

Response samples

Content type
application/json
{
  • "$_type": "WebhookCallLogResult",
  • "hasMoreItems": true,
  • "nextOffset": 0,
  • "items": [
    ]
}

WebhookRegistrations

Service to manage all webhook registrations

create

Creates the given entity in the system. The id of the entity can not be set for create operation, a new one is generated.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json

The entity to create

$_type
string
Default: "WebhookRegistration"
Value: "WebhookRegistration"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

name
string

Name of the webhook registration. Maximum length of 250 characters. Can not be omitted.

status
string (ERegistrationStatus)
Enum: "ACTIVE" "INACTIVE" "INACTIVE_UNAVAILABLE"
enum-descriptions: ["ACTIVE: Registration is active","INACTIVE: Registration is not active","INACTIVE_UNAVAILABLE: Registration is not active, because it is unavailable"]

Possible Webhook Registration Status

description
string

Description of the webhook registration. Maximum length of 500 characters. Can be omitted.

endpoint
string

The endpoint url of the webhook registration. To this url the requests for the webhook events are done. Maximum length of 4000 characters. Can be omitted, but should not.

apiVersion
string (EWebApiVersion)
Enum: "V1" "V2" "V3"
enum-descriptions: ["V1: Version 1 of the Web-API. Introduced with Unblu 4.x.","V2: Version 2 of the Web-API. Introduced with Unblu 5.","V3: Version 3 of the Web-API. Introduced with Unblu 6."]

Version of the Web-API. Version of API corresponds to a path element of the request URL. E.g.: /rest/v3/<service>/...

secret
string

A secret which is send with each webhook event. Maximum length of 4000 characters. Can be omitted.

events
Array of strings

Events for which the webhook endpoint is called, if they occur. Can not be omitted. Check the Webhook Events for possible values.

Responses

Callbacks

Request samples

Content type
application/json
{
  • "$_type": "WebhookRegistration",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "name": "string",
  • "status": "ACTIVE",
  • "description": "string",
  • "endpoint": "string",
  • "apiVersion": "V1",
  • "secret": "string",
  • "events": [
    ]
}

Response samples

Content type
application/json
{
  • "$_type": "WebhookRegistration",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "name": "string",
  • "status": "ACTIVE",
  • "description": "string",
  • "endpoint": "string",
  • "apiVersion": "V1",
  • "secret": "string",
  • "events": [
    ]
}

Callback payload samples

Callback
Content type
application/json
{
  • "$_type": "AccountModificationEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "action": "CREATE",
  • "entity": {
    },
  • "editingUser": {
    }
}

delete

Deletes the entity for the given id

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
id
string

The id of the entity which should be deleted

Responses

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

getByName

Returns the webhook registration for the given name.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
name
string

Responses

Response samples

Content type
application/json
{
  • "$_type": "WebhookRegistration",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "name": "string",
  • "status": "ACTIVE",
  • "description": "string",
  • "endpoint": "string",
  • "apiVersion": "V1",
  • "secret": "string",
  • "events": [
    ]
}

ping

Sends a "ping" webhook to the endpoint of the given registration.

legacy-get: true
required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
id
string

Id of the registration to send the ping webhook to.

Responses

Request samples

Content type
application/json

Send a ping event for the given Webhook registration

{
  • "id": "r1acbAidia_35-tB4o7FbWR"
}

Response samples

Content type
application/json
{
  • "$_type": "Error",
  • "statusCode": 0,
  • "statusDescription": "string",
  • "errorMessage": "string"
}

read

Returns the entity for the given id

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
query Parameters
id
string

Id of the entity which should be returned

Responses

Response samples

Content type
application/json
{
  • "$_type": "WebhookRegistration",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "name": "string",
  • "status": "ACTIVE",
  • "description": "string",
  • "endpoint": "string",
  • "apiVersion": "V1",
  • "secret": "string",
  • "events": [
    ]
}

readMultiple

Gets a list of entities for the given id's

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json

The id's for which the entities should be fetched

Array
string

Responses

Request samples

Content type
application/json
[
  • "string"
]

Response samples

Content type
application/json
[
  • {
    }
]

search

Search for webhook registrations in the current account

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json
$_type
string
Default: "WebhookRegistrationQuery"
Value: "WebhookRegistrationQuery"
Array of any (WebhookRegistrationSearchFilter) [ items ]

List of filters to narrow the search of entities

Array of objects (WebhookRegistrationOrderBy) [ items ]

List of criteria to order the search result list

offset
integer <int32>

Offset position in the result set to start pagination

limit
integer <int32>

Maximal amount of items returned

Responses

Request samples

Content type
application/json
{
  • "$_type": "WebhookRegistrationQuery",
  • "searchFilters": [
    ],
  • "orderBy": [
    ],
  • "offset": 0,
  • "limit": 0
}

Response samples

Content type
application/json
{
  • "$_type": "WebhookRegistrationResult",
  • "hasMoreItems": true,
  • "nextOffset": 0,
  • "items": [
    ]
}

update

Updates the entity in the system with the given entity.

required-call-origin: TRUSTED
required-role: ["ADMIN"]
Authorizations:
Request Body schema: application/json

The entity to update

$_type
string
Default: "WebhookRegistration"
Value: "WebhookRegistration"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

name
string

Name of the webhook registration. Maximum length of 250 characters. Can not be omitted.

status
string (ERegistrationStatus)
Enum: "ACTIVE" "INACTIVE" "INACTIVE_UNAVAILABLE"
enum-descriptions: ["ACTIVE: Registration is active","INACTIVE: Registration is not active","INACTIVE_UNAVAILABLE: Registration is not active, because it is unavailable"]

Possible Webhook Registration Status

description
string

Description of the webhook registration. Maximum length of 500 characters. Can be omitted.

endpoint
string

The endpoint url of the webhook registration. To this url the requests for the webhook events are done. Maximum length of 4000 characters. Can be omitted, but should not.

apiVersion
string (EWebApiVersion)
Enum: "V1" "V2" "V3"
enum-descriptions: ["V1: Version 1 of the Web-API. Introduced with Unblu 4.x.","V2: Version 2 of the Web-API. Introduced with Unblu 5.","V3: Version 3 of the Web-API. Introduced with Unblu 6."]

Version of the Web-API. Version of API corresponds to a path element of the request URL. E.g.: /rest/v3/<service>/...

secret
string

A secret which is send with each webhook event. Maximum length of 4000 characters. Can be omitted.

events
Array of strings

Events for which the webhook endpoint is called, if they occur. Can not be omitted. Check the Webhook Events for possible values.

Responses

Request samples

Content type
application/json
{
  • "$_type": "WebhookRegistration",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "name": "string",
  • "status": "ACTIVE",
  • "description": "string",
  • "endpoint": "string",
  • "apiVersion": "V1",
  • "secret": "string",
  • "events": [
    ]
}

Response samples

Content type
application/json
{
  • "$_type": "WebhookRegistration",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "name": "string",
  • "status": "ACTIVE",
  • "description": "string",
  • "endpoint": "string",
  • "apiVersion": "V1",
  • "secret": "string",
  • "events": [
    ]
}

For bots

bot.dialog.closed

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "BotDialogClosedEvent"
Value: "BotDialogClosedEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

dialogToken
string

Token for this dialog. It is present in every dialog webhook and must be passed to all Bot Web-API service calls to identify the dialog.

{
  • "$_type": "BotDialogClosedEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "dialogToken": "string"
}

bot.dialog.counterpart_changed

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "BotDialogCounterpartChanged"
Value: "BotDialogCounterpartChanged"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

dialogToken
string

Token for this dialog. It is present in every dialog webhook and must be passed to all Bot Web-API service calls to identify the dialog.

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

{
  • "$_type": "BotDialogCounterpartChanged",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "dialogToken": "string",
  • "oldCounterpartPerson": {
    },
  • "newCounterpartPerson": {
    }
}

bot.dialog.message

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "BotDialogMessageEvent"
Value: "BotDialogMessageEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

dialogToken
string

Token for this dialog. It is present in every dialog webhook and must be passed to all Bot Web-API service calls to identify the dialog.

any (MessageData)

Base class for all conversation messages. Can be one of ApprovalRequestMessageData, FileMessageData, CardMessageData,MultichoiceQuestionMessageData, RatingQuestionMessageData, ReplyMessageData, TextMessageData orTextQuestionMessageData

{
  • "$_type": "BotDialogMessageEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "dialogToken": "string",
  • "conversationMessage": {
    }
}

bot.dialog.message_state

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "BotDialogMessageStateEvent"
Value: "BotDialogMessageStateEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

dialogToken
string

Token for this dialog. It is present in every dialog webhook and must be passed to all Bot Web-API service calls to identify the dialog.

messageId
string

The id of the message which state has changed

state
string (EMessageState)
Enum: "DELIVERED" "READ"
enum-descriptions: ["DELIVERED: The message was delivered to the recipients","READ: The message was read by the recipients"]

The state of a message if it was delivered or read

botPersonId
string

The id if the bot who send the message

conversationId
string

The conversation to which the message belongs to

{
  • "$_type": "BotDialogMessageStateEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "dialogToken": "string",
  • "messageId": "string",
  • "state": "DELIVERED",
  • "botPersonId": "string",
  • "conversationId": "string"
}

bot.dialog.opened

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "BotDialogOpenEvent"
Value: "BotDialogOpenEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

dialogToken
string

Token for this dialog. It is present in every dialog webhook and must be passed to all Bot Web-API service calls to identify the dialog.

dialogType
string (EBotDialogType)
Enum: "ONBOARDING" "REBOARDING" "OFFBOARDING"
enum-descriptions: ["ONBOARDING","REBOARDING","OFFBOARDING"]

Type of a bot dialog

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

object (ConversationData)

Metadata information about a conversation

{
  • "$_type": "BotDialogOpenEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "dialogToken": "string",
  • "dialogType": "ONBOARDING",
  • "counterpartPerson": {
    },
  • "conversation": {
    }
}

bot.offboarding_offer

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "BotOffboardingOfferEvent"
Value: "BotOffboardingOfferEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

offboardingToken
string

The unique offboarding token for this bot used to identify this offboarding via the bot web API.

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

offboardingReason
string (EOffboardingReason)
Enum: "FORWARDED" "PARTICIPANT_LEFT" "REMOVED_AFTER_TIMEOUT" "ONBOARDING_DECLINED" "ONBOARDING_TIMEOUT" "ONBOARDING_IDLE_TIMEOUT" "KICKED" "CONVERSATION_UNASSIGNED" "EXTERNAL_CHANNEL_CLOSED" "CONVERSATION_ENDED" "SOLVED_BY_BOT" "CONVERSATION_REQUEUED" "OTHER"
enum-descriptions: ["FORWARDED: Conversation was forwarded to another agent and this agent therefore left the conversation","PARTICIPANT_LEFT: The participant left the conversation by himself","REMOVED_AFTER_TIMEOUT: The participant was removed from the conversation as he had a connection timeout","ONBOARDING_DECLINED: The onboarding was declined and therefore the participant will not join the conversation","ONBOARDING_TIMEOUT: The onboarding took too long and therefore the participant will not join the conversation","ONBOARDING_IDLE_TIMEOUT: The onboarding timed out and therefore the participant will not join the conversation","KICKED: The participant was kicked out of the conversation","CONVERSATION_UNASSIGNED: The conversation is no longer assigned to an agent and therefore all other agents were removed","EXTERNAL_CHANNEL_CLOSED: The external channel connected to this conversation has closed, no further messages are possible.","CONVERSATION_ENDED: The conversation has ended","SOLVED_BY_BOT: The conversation was ended because an onboarding bot solved it.","CONVERSATION_REQUEUED: The conversation has been re-queued.","OTHER: Some other unspecified reason"]

Reason why the offboarding from a conversation was triggered for an individual person.

object (ConversationData)

Metadata information about a conversation

{
  • "$_type": "BotOffboardingOfferEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "offboardingToken": "string",
  • "offboardingPerson": {
    },
  • "offboardingReason": "FORWARDED",
  • "conversation": {
    }
}

bot.onboarding_offer

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "BotOnboardingOfferEvent"
Value: "BotOnboardingOfferEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

onboardingToken
string

The unique onboarding token for this bot used to identify this onboarding via the bot web API.

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

object (ConversationData)

Metadata information about a conversation

{
  • "$_type": "BotOnboardingOfferEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "onboardingToken": "string",
  • "onboardingPerson": {
    },
  • "conversation": {
    }
}

bot.reboarding_offer

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "BotReboardingOfferEvent"
Value: "BotReboardingOfferEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

reboardingToken
string

The token reboarding token for this bot used to identify this reboarding via the bot web API.

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

object (ConversationData)

Metadata information about a conversation

{
  • "$_type": "BotReboardingOfferEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "reboardingToken": "string",
  • "reboardingPerson": {
    },
  • "conversation": {
    }
}

For external messengers

external_messenger.message_state

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "ExternalMessengerMessageStateEvent"
Value: "ExternalMessengerMessageStateEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

messageId
string

The id of the message which state has changed

state
string (EMessageState)
Enum: "DELIVERED" "READ"
enum-descriptions: ["DELIVERED: The message was delivered to the recipients","READ: The message was read by the recipients"]

The state of a message if it was delivered or read

sourceId
string

The source id of the message

externalMessengerChannelId
string

The id if the external messenger channel

conversationId
string

The conversation to which the message belongs to

{
  • "$_type": "ExternalMessengerMessageStateEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "messageId": "string",
  • "state": "DELIVERED",
  • "sourceId": "string",
  • "externalMessengerChannelId": "string",
  • "conversationId": "string"
}

external_messenger.new_message

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "ExternalMessengerNewMessageEvent"
Value: "ExternalMessengerNewMessageEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

any (MessageData)

Base class for all conversation messages. Can be one of ApprovalRequestMessageData, FileMessageData, CardMessageData,MultichoiceQuestionMessageData, RatingQuestionMessageData, ReplyMessageData, TextMessageData orTextQuestionMessageData

{
  • "$_type": "ExternalMessengerNewMessageEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "conversationMessage": {
    }
}

For webhooks

account

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "AccountModificationEvent"
Value: "AccountModificationEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

action
string (EntityModificationAction)
Enum: "CREATE" "UPDATE" "DELETE"
enum-descriptions: ["CREATE: Entity was created","UPDATE: Entity was updated","DELETE: Entity was deleted"]

Type of modification of an entity

object (Account)

Model of an account. The contact and the billing address can be directly resolved when using the expand feature.

object (UserInfo)

User information which are normally used together with webhook events.

{
  • "$_type": "AccountModificationEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "action": "CREATE",
  • "entity": {
    },
  • "editingUser": {
    }
}

agent_forwarding.created

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "AgentForwardingCreatedEvent"
Value: "AgentForwardingCreatedEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

invitationId
string

Id of the invitation

conversationId
string

Id of the conversation

token
string

Token (digits for pin or character sequence) requested to redeem or revoke the invitation

dateCreated
integer <int64>

Unix timestamp when the event was created

creatorType
string (EInvitationCreatorType)
Enum: "WEB_API" "SYSTEM" "AGENT" "VISITOR"
enum-descriptions: ["WEB_API: Invitation created with the API","SYSTEM: Invitation created by the system","AGENT: Invitation created by an agent","VISITOR: Invitation created by a visitor"]

The type of the person/system who created an invitation

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

object (ContextPersonInfo)

Information about the context person of a conversation. Normally send together with webhook events.

any (AgentTargetData)

Target of an 'agent forwarding' or an 'agent invitation' event which can be the agent directly (as PersonData) or a team (as TeamData). In this second case multiple agents are targeted by the event.

comment
string

Text provided by the creator for the target

Array of objects (ConversationLink) [ items ]

List of links that can be used to accept the accept forwarding event with the token.
Only one link can be used.

{
  • "$_type": "AgentForwardingCreatedEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "invitationId": "string",
  • "conversationId": "string",
  • "token": "string",
  • "dateCreated": 0,
  • "creatorType": "WEB_API",
  • "creatorPerson": {
    },
  • "contextPersonInfo": {
    },
  • "target": {
    },
  • "comment": "string",
  • "links": [
    ]
}

agent_forwarding.redeemed

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "AgentForwardingRedeemedEvent"
Value: "AgentForwardingRedeemedEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

invitationId
string

Id of the invitation

conversationId
string

Id of the conversation

token
string

Token (digits for pin or character sequence) requested to redeem or revoke the invitation

dateCreated
integer <int64>

Unix timestamp when the event was created

creatorType
string (EInvitationCreatorType)
Enum: "WEB_API" "SYSTEM" "AGENT" "VISITOR"
enum-descriptions: ["WEB_API: Invitation created with the API","SYSTEM: Invitation created by the system","AGENT: Invitation created by an agent","VISITOR: Invitation created by a visitor"]

The type of the person/system who created an invitation

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

object (ContextPersonInfo)

Information about the context person of a conversation. Normally send together with webhook events.

any (AgentTargetData)

Target of an 'agent forwarding' or an 'agent invitation' event which can be the agent directly (as PersonData) or a team (as TeamData). In this second case multiple agents are targeted by the event.

comment
string

Text provided by the creator for the target

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

{
  • "$_type": "AgentForwardingRedeemedEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "invitationId": "string",
  • "conversationId": "string",
  • "token": "string",
  • "dateCreated": 0,
  • "creatorType": "WEB_API",
  • "creatorPerson": {
    },
  • "contextPersonInfo": {
    },
  • "target": {
    },
  • "comment": "string",
  • "redeemingPerson": {
    }
}

agent_forwarding.revoked

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "AgentForwardingRevokedEvent"
Value: "AgentForwardingRevokedEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

invitationId
string

Id of the invitation

conversationId
string

Id of the conversation

token
string

Token (digits for pin or character sequence) requested to redeem or revoke the invitation

dateCreated
integer <int64>

Unix timestamp when the event was created

creatorType
string (EInvitationCreatorType)
Enum: "WEB_API" "SYSTEM" "AGENT" "VISITOR"
enum-descriptions: ["WEB_API: Invitation created with the API","SYSTEM: Invitation created by the system","AGENT: Invitation created by an agent","VISITOR: Invitation created by a visitor"]

The type of the person/system who created an invitation

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

object (ContextPersonInfo)

Information about the context person of a conversation. Normally send together with webhook events.

any (AgentTargetData)

Target of an 'agent forwarding' or an 'agent invitation' event which can be the agent directly (as PersonData) or a team (as TeamData). In this second case multiple agents are targeted by the event.

comment
string

Text provided by the creator for the target

{
  • "$_type": "AgentForwardingRevokedEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "invitationId": "string",
  • "conversationId": "string",
  • "token": "string",
  • "dateCreated": 0,
  • "creatorType": "WEB_API",
  • "creatorPerson": {
    },
  • "contextPersonInfo": {
    },
  • "target": {
    },
  • "comment": "string"
}

agent_invitation.created

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "AgentInvitationCreatedEvent"
Value: "AgentInvitationCreatedEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

invitationId
string

Id of the invitation

conversationId
string

Id of the conversation

token
string

Token (digits for pin or character sequence) requested to redeem or revoke the invitation

dateCreated
integer <int64>

Unix timestamp when the event was created

creatorType
string (EInvitationCreatorType)
Enum: "WEB_API" "SYSTEM" "AGENT" "VISITOR"
enum-descriptions: ["WEB_API: Invitation created with the API","SYSTEM: Invitation created by the system","AGENT: Invitation created by an agent","VISITOR: Invitation created by a visitor"]

The type of the person/system who created an invitation

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

object (ContextPersonInfo)

Information about the context person of a conversation. Normally send together with webhook events.

any (AgentTargetData)

Target of an 'agent forwarding' or an 'agent invitation' event which can be the agent directly (as PersonData) or a team (as TeamData). In this second case multiple agents are targeted by the event.

comment
string

Text provided by the creator for the target

Array of objects (ConversationLink) [ items ]

List of links that can be used to accept the agent invitation event with the token.
Only one link can be used.

{
  • "$_type": "AgentInvitationCreatedEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "invitationId": "string",
  • "conversationId": "string",
  • "token": "string",
  • "dateCreated": 0,
  • "creatorType": "WEB_API",
  • "creatorPerson": {
    },
  • "contextPersonInfo": {
    },
  • "target": {
    },
  • "comment": "string",
  • "links": [
    ]
}

agent_invitation.redeemed

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "AgentInvitationRedeemedEvent"
Value: "AgentInvitationRedeemedEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

invitationId
string

Id of the invitation

conversationId
string

Id of the conversation

token
string

Token (digits for pin or character sequence) requested to redeem or revoke the invitation

dateCreated
integer <int64>

Unix timestamp when the event was created

creatorType
string (EInvitationCreatorType)
Enum: "WEB_API" "SYSTEM" "AGENT" "VISITOR"
enum-descriptions: ["WEB_API: Invitation created with the API","SYSTEM: Invitation created by the system","AGENT: Invitation created by an agent","VISITOR: Invitation created by a visitor"]

The type of the person/system who created an invitation

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

object (ContextPersonInfo)

Information about the context person of a conversation. Normally send together with webhook events.

any (AgentTargetData)

Target of an 'agent forwarding' or an 'agent invitation' event which can be the agent directly (as PersonData) or a team (as TeamData). In this second case multiple agents are targeted by the event.

comment
string

Text provided by the creator for the target

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

{
  • "$_type": "AgentInvitationRedeemedEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "invitationId": "string",
  • "conversationId": "string",
  • "token": "string",
  • "dateCreated": 0,
  • "creatorType": "WEB_API",
  • "creatorPerson": {
    },
  • "contextPersonInfo": {
    },
  • "target": {
    },
  • "comment": "string",
  • "redeemingPerson": {
    }
}

agent_invitation.revoked

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "AgentInvitationRevokedEvent"
Value: "AgentInvitationRevokedEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

invitationId
string

Id of the invitation

conversationId
string

Id of the conversation

token
string

Token (digits for pin or character sequence) requested to redeem or revoke the invitation

dateCreated
integer <int64>

Unix timestamp when the event was created

creatorType
string (EInvitationCreatorType)
Enum: "WEB_API" "SYSTEM" "AGENT" "VISITOR"
enum-descriptions: ["WEB_API: Invitation created with the API","SYSTEM: Invitation created by the system","AGENT: Invitation created by an agent","VISITOR: Invitation created by a visitor"]

The type of the person/system who created an invitation

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

object (ContextPersonInfo)

Information about the context person of a conversation. Normally send together with webhook events.

any (AgentTargetData)

Target of an 'agent forwarding' or an 'agent invitation' event which can be the agent directly (as PersonData) or a team (as TeamData). In this second case multiple agents are targeted by the event.

comment
string

Text provided by the creator for the target

{
  • "$_type": "AgentInvitationRevokedEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "invitationId": "string",
  • "conversationId": "string",
  • "token": "string",
  • "dateCreated": 0,
  • "creatorType": "WEB_API",
  • "creatorPerson": {
    },
  • "contextPersonInfo": {
    },
  • "target": {
    },
  • "comment": "string"
}

api_key

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "ApiKeyModificationEvent"
Value: "ApiKeyModificationEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

action
string (EntityModificationAction)
Enum: "CREATE" "UPDATE" "DELETE"
enum-descriptions: ["CREATE: Entity was created","UPDATE: Entity was updated","DELETE: Entity was deleted"]

Type of modification of an entity

object (ApiKey)

Model of an ApiKey. Api keys identify the usage of unblu to a certain account. There can be multiple api keys per account to define different configurations

object (UserInfo)

User information which are normally used together with webhook events.

{
  • "$_type": "ApiKeyModificationEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "action": "CREATE",
  • "entity": {
    },
  • "editingUser": {
    }
}

assignment_request.created

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "AssignmentRequestCreatedEvent"
Value: "AssignmentRequestCreatedEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

invitationId
string

Id of the invitation

conversationId
string

Id of the conversation

token
string

Token (digits for pin or character sequence) requested to redeem or revoke the invitation

dateCreated
integer <int64>

Unix timestamp when the event was created

creatorType
string (EInvitationCreatorType)
Enum: "WEB_API" "SYSTEM" "AGENT" "VISITOR"
enum-descriptions: ["WEB_API: Invitation created with the API","SYSTEM: Invitation created by the system","AGENT: Invitation created by an agent","VISITOR: Invitation created by a visitor"]

The type of the person/system who created an invitation

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

object (ContextPersonInfo)

Information about the context person of a conversation. Normally send together with webhook events.

any (ConversationRecipientData)

Recipient of a conversation: Either a single PersonData, TeamData, NamedAreaData or AccountData. For compatibility reasons,RecipientData is also supported.

Array of objects (ConversationLink) [ items ]

List of links that can be used to accept the assignment request event with the token.
Only one link can be used.

initialEngagementUrl
string

The URL where the visitor originating the conversation was. Only available for conversations originated by a visitor where Unblu was integrated in the customers website. e.g. conversations initiated from the mobile SDK won't have an initial engagement URL.

{
  • "$_type": "AssignmentRequestCreatedEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "invitationId": "string",
  • "conversationId": "string",
  • "token": "string",
  • "dateCreated": 0,
  • "creatorType": "WEB_API",
  • "creatorPerson": {
    },
  • "contextPersonInfo": {
    },
  • "target": {
    },
  • "links": [
    ],
  • "initialEngagementUrl": "string"
}

assignment_request.redeemed

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "AssignmentRequestRedeemedEvent"
Value: "AssignmentRequestRedeemedEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

invitationId
string

Id of the invitation

conversationId
string

Id of the conversation

token
string

Token (digits for pin or character sequence) requested to redeem or revoke the invitation

dateCreated
integer <int64>

Unix timestamp when the event was created

creatorType
string (EInvitationCreatorType)
Enum: "WEB_API" "SYSTEM" "AGENT" "VISITOR"
enum-descriptions: ["WEB_API: Invitation created with the API","SYSTEM: Invitation created by the system","AGENT: Invitation created by an agent","VISITOR: Invitation created by a visitor"]

The type of the person/system who created an invitation

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

object (ContextPersonInfo)

Information about the context person of a conversation. Normally send together with webhook events.

any (ConversationRecipientData)

Recipient of a conversation: Either a single PersonData, TeamData, NamedAreaData or AccountData. For compatibility reasons,RecipientData is also supported.

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

{
  • "$_type": "AssignmentRequestRedeemedEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "invitationId": "string",
  • "conversationId": "string",
  • "token": "string",
  • "dateCreated": 0,
  • "creatorType": "WEB_API",
  • "creatorPerson": {
    },
  • "contextPersonInfo": {
    },
  • "target": {
    },
  • "redeemingPerson": {
    }
}

assignment_request.revoked

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "AssignmentRequestRevokedEvent"
Value: "AssignmentRequestRevokedEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

invitationId
string

Id of the invitation

conversationId
string

Id of the conversation

token
string

Token (digits for pin or character sequence) requested to redeem or revoke the invitation

dateCreated
integer <int64>

Unix timestamp when the event was created

creatorType
string (EInvitationCreatorType)
Enum: "WEB_API" "SYSTEM" "AGENT" "VISITOR"
enum-descriptions: ["WEB_API: Invitation created with the API","SYSTEM: Invitation created by the system","AGENT: Invitation created by an agent","VISITOR: Invitation created by a visitor"]

The type of the person/system who created an invitation

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

object (ContextPersonInfo)

Information about the context person of a conversation. Normally send together with webhook events.

any (ConversationRecipientData)

Recipient of a conversation: Either a single PersonData, TeamData, NamedAreaData or AccountData. For compatibility reasons,RecipientData is also supported.

{
  • "$_type": "AssignmentRequestRevokedEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "invitationId": "string",
  • "conversationId": "string",
  • "token": "string",
  • "dateCreated": 0,
  • "creatorType": "WEB_API",
  • "creatorPerson": {
    },
  • "contextPersonInfo": {
    },
  • "target": {
    }
}

conversation.created

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "ConversationCreatedEvent"
Value: "ConversationCreatedEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

object (ConversationData)

Metadata information about a conversation

{
  • "$_type": "ConversationCreatedEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "conversation": {
    }
}

conversation.ended

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "ConversationEndedEvent"
Value: "ConversationEndedEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

object (ConversationData)

Metadata information about a conversation

{
  • "$_type": "ConversationEndedEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "conversation": {
    }
}

conversation.message_state

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "ConversationMessageStateEvent"
Value: "ConversationMessageStateEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

messageId
string

The id of the message which state has changed

state
string (EMessageState)
Enum: "DELIVERED" "READ"
enum-descriptions: ["DELIVERED: The message was delivered to the recipients","READ: The message was read by the recipients"]

The state of a message if it was delivered or read

conversationId
string

The conversation to which the message belongs to

{
  • "$_type": "ConversationMessageStateEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "messageId": "string",
  • "state": "DELIVERED",
  • "conversationId": "string"
}

conversation.new_message

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "ConversationNewMessageEvent"
Value: "ConversationNewMessageEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

any (MessageData)

Base class for all conversation messages. Can be one of ApprovalRequestMessageData, FileMessageData, CardMessageData,MultichoiceQuestionMessageData, RatingQuestionMessageData, ReplyMessageData, TextMessageData orTextQuestionMessageData

{
  • "$_type": "ConversationNewMessageEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "conversationMessage": {
    }
}

conversation.updated

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "ConversationUpdatedEvent"
Value: "ConversationUpdatedEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

object (ConversationData)

Metadata information about a conversation

{
  • "$_type": "ConversationUpdatedEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "conversation": {
    }
}

domain

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "DomainModificationEvent"
Value: "DomainModificationEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

action
string (EntityModificationAction)
Enum: "CREATE" "UPDATE" "DELETE"
enum-descriptions: ["CREATE: Entity was created","UPDATE: Entity was updated","DELETE: Entity was deleted"]

Type of modification of an entity

object (Domain)

Model of a domain

object (UserInfo)

User information which are normally used together with webhook events.

{
  • "$_type": "DomainModificationEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "action": "CREATE",
  • "entity": {
    },
  • "editingUser": {
    }
}

named_area

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "NamedAreaModificationEvent"
Value: "NamedAreaModificationEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

action
string (EntityModificationAction)
Enum: "CREATE" "UPDATE" "DELETE"
enum-descriptions: ["CREATE: Entity was created","UPDATE: Entity was updated","DELETE: Entity was deleted"]

Type of modification of an entity

object (NamedArea)

Model of named areas. They can either be domains or meta tags

object (UserInfo)

User information which are normally used together with webhook events.

{
  • "$_type": "NamedAreaModificationEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "action": "CREATE",
  • "entity": {
    },
  • "editingUser": {
    }
}

person

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "PersonModificationEvent"
Value: "PersonModificationEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

action
string (EntityModificationAction)
Enum: "CREATE" "UPDATE" "DELETE"
enum-descriptions: ["CREATE: Entity was created","UPDATE: Entity was updated","DELETE: Entity was deleted"]

Type of modification of an entity

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

object (UserInfo)

User information which are normally used together with webhook events.

{
  • "$_type": "PersonModificationEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "action": "CREATE",
  • "entity": {
    },
  • "editingUser": {
    }
}

pin.created

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "PinCreatedEvent"
Value: "PinCreatedEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

invitationId
string

Id of the invitation

conversationId
string

Id of the conversation

token
string

Token (digits for pin or character sequence) requested to redeem or revoke the invitation

dateCreated
integer <int64>

Unix timestamp when the event was created

creatorType
string (EInvitationCreatorType)
Enum: "WEB_API" "SYSTEM" "AGENT" "VISITOR"
enum-descriptions: ["WEB_API: Invitation created with the API","SYSTEM: Invitation created by the system","AGENT: Invitation created by an agent","VISITOR: Invitation created by a visitor"]

The type of the person/system who created an invitation

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

expirationTimestamp
integer <int64>

Unix timestamp after witch the invitation is no longer valid

Array of objects (ConversationLink) [ items ]

List of links that can be used to accept the pin event with the token.
Only one link can be used.

{
  • "$_type": "PinCreatedEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "invitationId": "string",
  • "conversationId": "string",
  • "token": "string",
  • "dateCreated": 0,
  • "creatorType": "WEB_API",
  • "creatorPerson": {
    },
  • "expirationTimestamp": 0,
  • "links": [
    ]
}

pin.redeemed

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "PinRedeemedEvent"
Value: "PinRedeemedEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

invitationId
string

Id of the invitation

conversationId
string

Id of the conversation

token
string

Token (digits for pin or character sequence) requested to redeem or revoke the invitation

dateCreated
integer <int64>

Unix timestamp when the event was created

creatorType
string (EInvitationCreatorType)
Enum: "WEB_API" "SYSTEM" "AGENT" "VISITOR"
enum-descriptions: ["WEB_API: Invitation created with the API","SYSTEM: Invitation created by the system","AGENT: Invitation created by an agent","VISITOR: Invitation created by a visitor"]

The type of the person/system who created an invitation

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

expirationTimestamp
integer <int64>

Unix timestamp after witch the invitation is no longer valid

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

{
  • "$_type": "PinRedeemedEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "invitationId": "string",
  • "conversationId": "string",
  • "token": "string",
  • "dateCreated": 0,
  • "creatorType": "WEB_API",
  • "creatorPerson": {
    },
  • "expirationTimestamp": 0,
  • "redeemingPerson": {
    }
}

pin.renewed

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "PinRenewedEvent"
Value: "PinRenewedEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

invitationId
string

Id of the invitation

conversationId
string

Id of the conversation

token
string

Token (digits for pin or character sequence) requested to redeem or revoke the invitation

dateCreated
integer <int64>

Unix timestamp when the event was created

creatorType
string (EInvitationCreatorType)
Enum: "WEB_API" "SYSTEM" "AGENT" "VISITOR"
enum-descriptions: ["WEB_API: Invitation created with the API","SYSTEM: Invitation created by the system","AGENT: Invitation created by an agent","VISITOR: Invitation created by a visitor"]

The type of the person/system who created an invitation

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

expirationTimestamp
integer <int64>

Unix timestamp after witch the invitation is no longer valid

Array of objects (ConversationLink) [ items ]

List of links that can be used to accept the visitor invitation event with the token.
Only one link can be used.

{
  • "$_type": "PinRenewedEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "invitationId": "string",
  • "conversationId": "string",
  • "token": "string",
  • "dateCreated": 0,
  • "creatorType": "WEB_API",
  • "creatorPerson": {
    },
  • "expirationTimestamp": 0,
  • "links": [
    ]
}

pin.revoked

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "PinRevokedEvent"
Value: "PinRevokedEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

invitationId
string

Id of the invitation

conversationId
string

Id of the conversation

token
string

Token (digits for pin or character sequence) requested to redeem or revoke the invitation

dateCreated
integer <int64>

Unix timestamp when the event was created

creatorType
string (EInvitationCreatorType)
Enum: "WEB_API" "SYSTEM" "AGENT" "VISITOR"
enum-descriptions: ["WEB_API: Invitation created with the API","SYSTEM: Invitation created by the system","AGENT: Invitation created by an agent","VISITOR: Invitation created by a visitor"]

The type of the person/system who created an invitation

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

expirationTimestamp
integer <int64>

Unix timestamp after witch the invitation is no longer valid

{
  • "$_type": "PinRevokedEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "invitationId": "string",
  • "conversationId": "string",
  • "token": "string",
  • "dateCreated": 0,
  • "creatorType": "WEB_API",
  • "creatorPerson": {
    },
  • "expirationTimestamp": 0
}

ping

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "WebhookPingEvent"
Value: "WebhookPingEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

object (WebhookRegistration)

Model of a webhook registration. Registered webhooks for certain events are stored inside this model.

{
  • "$_type": "WebhookPingEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "webhookConfiguration": {
    }
}

push_notification.incoming_call

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "IncomingCallPushNotificationEvent"
Value: "IncomingCallPushNotificationEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

locale
string

Locale (as BCP 47 language tag form including region if available)

conversationId
string

Id of the conversation

deviceTokens
Array of strings

List of device tokens

callState
string (ECallState)
Enum: "IDLE" "CALLING" "FORWARDING" "ACTIVE"
enum-descriptions: ["IDLE: The call is not active (anymore)","CALLING: The call is ringing, nobody accepted it yet","FORWARDING: The call is ringing for the hidden agents of the conversation, after no visible agent has accepted the call","ACTIVE: The call is active"]

State of the call

callType
string (ECallType)
Enum: "AUDIO" "VIDEO"
enum-descriptions: ["AUDIO: The call was started as voice call","VIDEO: The call was started as video call"]

Type of the call

callStartTimestamp
integer <int64>

Timestamp when the call started

callerName
string

Name of the person calling

callerPersonId
string

Person id of the person calling

{
  • "$_type": "IncomingCallPushNotificationEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "recipient": {
    },
  • "locale": "string",
  • "conversationId": "string",
  • "deviceTokens": [
    ],
  • "callState": "IDLE",
  • "callType": "AUDIO",
  • "callStartTimestamp": 0,
  • "callerName": "string",
  • "callerPersonId": "string"
}

push_notification.missed_call

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "MissedCallPushNotificationEvent"
Value: "MissedCallPushNotificationEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

locale
string

Locale (as BCP 47 language tag form including region if available)

conversationId
string

Id of the conversation

deviceTokens
Array of strings

List of device tokens

callState
string (ECallState)
Enum: "IDLE" "CALLING" "FORWARDING" "ACTIVE"
enum-descriptions: ["IDLE: The call is not active (anymore)","CALLING: The call is ringing, nobody accepted it yet","FORWARDING: The call is ringing for the hidden agents of the conversation, after no visible agent has accepted the call","ACTIVE: The call is active"]

State of the call

callType
string (ECallType)
Enum: "AUDIO" "VIDEO"
enum-descriptions: ["AUDIO: The call was started as voice call","VIDEO: The call was started as video call"]

Type of the call

callStartTimestamp
integer <int64>

Timestamp when the call started

callerName
string

Name of the person calling

callerPersonId
string

Person ID of the person calling

callEndReason
string (ECallParticipationEndReason)
Enum: "MISSED_BECAUSE_TIMEOUT" "MISSED_BECAUSE_TERMINATED" "TERMINATED_BY_PARTICIPANT"
enum-descriptions: ["MISSED_BECAUSE_TIMEOUT: The participation was ended because of a timeout on the participant's side.","MISSED_BECAUSE_TERMINATED: The participation ended because the initiator terminated the call before the other participant answered it.","TERMINATED_BY_PARTICIPANT: The participation ended normally"]

Determines the reason why the participation on a call ended.

{
  • "$_type": "MissedCallPushNotificationEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "recipient": {
    },
  • "locale": "string",
  • "conversationId": "string",
  • "deviceTokens": [
    ],
  • "callState": "IDLE",
  • "callType": "AUDIO",
  • "callStartTimestamp": 0,
  • "callerName": "string",
  • "callerPersonId": "string",
  • "callEndReason": "MISSED_BECAUSE_TIMEOUT"
}

push_notification.new_message

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "NewMessagePushNotificationEvent"
Value: "NewMessagePushNotificationEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

locale
string

Locale (as BCP 47 language tag form including region if available)

conversationId
string

Id of the conversation

deviceTokens
Array of strings

List of device tokens

messageId
string

Id of the message

messageText
string

Text of the message

messageSendTimestamp
integer <int64>

Timestamp when the message was sent

messageServerTimestamp
integer <int64>

Timestamp when the message was received by the server.

senderName
string

Name of the sender, can be null if the message was sent by the system.

senderPersonId
string

Person id of the sender, can be null if the message was sent by the system.

notificationCount
integer <int32>

Number of notifications (i.e. unread messages) in this conversation

{
  • "$_type": "NewMessagePushNotificationEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "recipient": {
    },
  • "locale": "string",
  • "conversationId": "string",
  • "deviceTokens": [
    ],
  • "messageId": "string",
  • "messageText": "string",
  • "messageSendTimestamp": 0,
  • "messageServerTimestamp": 0,
  • "senderName": "string",
  • "senderPersonId": "string",
  • "notificationCount": 0
}

push_notification.read_message

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "ReadMessagePushNotificationEvent"
Value: "ReadMessagePushNotificationEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

locale
string

Locale (as BCP 47 language tag form including region if available)

conversationId
string

Id of the conversation

deviceTokens
Array of strings

List of device tokens

messageId
string

Id of the message

readTimestamp
integer <int64>

Timestamp when the message was read.

notificationCount
integer <int32>

Number of notifications (i.e. unread messages) in this conversation

{
  • "$_type": "ReadMessagePushNotificationEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "recipient": {
    },
  • "locale": "string",
  • "conversationId": "string",
  • "deviceTokens": [
    ],
  • "messageId": "string",
  • "readTimestamp": 0,
  • "notificationCount": 0
}

push_notification.revoke_call

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "RevokeCallPushNotificationEvent"
Value: "RevokeCallPushNotificationEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

locale
string

Locale (as BCP 47 language tag form including region if available)

conversationId
string

Id of the conversation

deviceTokens
Array of strings

List of device tokens

callState
string (ECallState)
Enum: "IDLE" "CALLING" "FORWARDING" "ACTIVE"
enum-descriptions: ["IDLE: The call is not active (anymore)","CALLING: The call is ringing, nobody accepted it yet","FORWARDING: The call is ringing for the hidden agents of the conversation, after no visible agent has accepted the call","ACTIVE: The call is active"]

State of the call

{
  • "$_type": "RevokeCallPushNotificationEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "recipient": {
    },
  • "locale": "string",
  • "conversationId": "string",
  • "deviceTokens": [
    ],
  • "callState": "IDLE"
}

team

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "TeamModificationEvent"
Value: "TeamModificationEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

action
string (EntityModificationAction)
Enum: "CREATE" "UPDATE" "DELETE"
enum-descriptions: ["CREATE: Entity was created","UPDATE: Entity was updated","DELETE: Entity was deleted"]

Type of modification of an entity

object (Team)

Model of a team. A team consist out of multiple users. For each account there is at least the default team.

object (UserInfo)

User information which are normally used together with webhook events.

{
  • "$_type": "TeamModificationEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "action": "CREATE",
  • "entity": {
    },
  • "editingUser": {
    }
}

user

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "UserModificationEvent"
Value: "UserModificationEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

action
string (EntityModificationAction)
Enum: "CREATE" "UPDATE" "DELETE"
enum-descriptions: ["CREATE: Entity was created","UPDATE: Entity was updated","DELETE: Entity was deleted"]

Type of modification of an entity

object (User)

Model of a user. A user is normally an agent and/or a person who manages the system

object (UserInfo)

User information which are normally used together with webhook events.

{
  • "$_type": "UserModificationEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "action": "CREATE",
  • "entity": {
    },
  • "editingUser": {
    }
}

visitor_invitation.created

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "VisitorInvitationCreatedEvent"
Value: "VisitorInvitationCreatedEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

invitationId
string

Id of the invitation

conversationId
string

Id of the conversation

token
string

Token (digits for pin or character sequence) requested to redeem or revoke the invitation

dateCreated
integer <int64>

Unix timestamp when the event was created

creatorType
string (EInvitationCreatorType)
Enum: "WEB_API" "SYSTEM" "AGENT" "VISITOR"
enum-descriptions: ["WEB_API: Invitation created with the API","SYSTEM: Invitation created by the system","AGENT: Invitation created by an agent","VISITOR: Invitation created by a visitor"]

The type of the person/system who created an invitation

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

email
string

Visitor email

nickname
string

Visitor nickname

expirationTimestamp
integer <int64>

Unix timestamp after witch the invitation is no longer valid

Array of objects (ConversationLink) [ items ]

List of links that can be used to accept the visitor invitation event with the token.
Only one link can be used.

{
  • "$_type": "VisitorInvitationCreatedEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "invitationId": "string",
  • "conversationId": "string",
  • "token": "string",
  • "dateCreated": 0,
  • "creatorType": "WEB_API",
  • "creatorPerson": {
    },
  • "email": "string",
  • "nickname": "string",
  • "expirationTimestamp": 0,
  • "links": [
    ]
}

visitor_invitation.redeemed

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "VisitorInvitationRedeemedEvent"
Value: "VisitorInvitationRedeemedEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

invitationId
string

Id of the invitation

conversationId
string

Id of the conversation

token
string

Token (digits for pin or character sequence) requested to redeem or revoke the invitation

dateCreated
integer <int64>

Unix timestamp when the event was created

creatorType
string (EInvitationCreatorType)
Enum: "WEB_API" "SYSTEM" "AGENT" "VISITOR"
enum-descriptions: ["WEB_API: Invitation created with the API","SYSTEM: Invitation created by the system","AGENT: Invitation created by an agent","VISITOR: Invitation created by a visitor"]

The type of the person/system who created an invitation

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

email
string

Visitor email

nickname
string

Visitor nickname

expirationTimestamp
integer <int64>

Unix timestamp after witch the invitation is no longer valid

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

{
  • "$_type": "VisitorInvitationRedeemedEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "invitationId": "string",
  • "conversationId": "string",
  • "token": "string",
  • "dateCreated": 0,
  • "creatorType": "WEB_API",
  • "creatorPerson": {
    },
  • "email": "string",
  • "nickname": "string",
  • "expirationTimestamp": 0,
  • "redeemingPerson": {
    }
}

visitor_invitation.renewed

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "VisitorInvitationRenewedEvent"
Value: "VisitorInvitationRenewedEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

invitationId
string

Id of the invitation

conversationId
string

Id of the conversation

token
string

Token (digits for pin or character sequence) requested to redeem or revoke the invitation

dateCreated
integer <int64>

Unix timestamp when the event was created

creatorType
string (EInvitationCreatorType)
Enum: "WEB_API" "SYSTEM" "AGENT" "VISITOR"
enum-descriptions: ["WEB_API: Invitation created with the API","SYSTEM: Invitation created by the system","AGENT: Invitation created by an agent","VISITOR: Invitation created by a visitor"]

The type of the person/system who created an invitation

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

email
string

Visitor email

nickname
string

Visitor nickname

expirationTimestamp
integer <int64>

Unix timestamp after witch the invitation is no longer valid

Array of objects (ConversationLink) [ items ]

List of links that can be used to accept the visitor invitation event with the token.
Only one link can be used.

{
  • "$_type": "VisitorInvitationRenewedEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "invitationId": "string",
  • "conversationId": "string",
  • "token": "string",
  • "dateCreated": 0,
  • "creatorType": "WEB_API",
  • "creatorPerson": {
    },
  • "email": "string",
  • "nickname": "string",
  • "expirationTimestamp": 0,
  • "links": [
    ]
}

visitor_invitation.revoked

The following HTTP request body is sent as a POST request on the URL used to register the callback:

$_type
string
Default: "VisitorInvitationRevokedEvent"
Value: "VisitorInvitationRevokedEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

invitationId
string

Id of the invitation

conversationId
string

Id of the conversation

token
string

Token (digits for pin or character sequence) requested to redeem or revoke the invitation

dateCreated
integer <int64>

Unix timestamp when the event was created

creatorType
string (EInvitationCreatorType)
Enum: "WEB_API" "SYSTEM" "AGENT" "VISITOR"
enum-descriptions: ["WEB_API: Invitation created with the API","SYSTEM: Invitation created by the system","AGENT: Invitation created by an agent","VISITOR: Invitation created by a visitor"]

The type of the person/system who created an invitation

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

email
string

Visitor email

nickname
string

Visitor nickname

expirationTimestamp
integer <int64>

Unix timestamp after witch the invitation is no longer valid

{
  • "$_type": "VisitorInvitationRevokedEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "invitationId": "string",
  • "conversationId": "string",
  • "token": "string",
  • "dateCreated": 0,
  • "creatorType": "WEB_API",
  • "creatorPerson": {
    },
  • "email": "string",
  • "nickname": "string",
  • "expirationTimestamp": 0
}

Schemas

Account

$_type
string
Default: "Account"
Value: "Account"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

name
string

The name of the account. Maximum length of 250 characters and can not be empty.

string or Address (object)
expand-query-key: billingAddress
type: ExpandableField

The id to an address which is used for billing, if the contact address should not be used. Should be null, if only contact address should be used.
When creating the Account object, this property can be omitted as there are not addresses for this account anyway. If it is desired to directly define a billing address for the account while creating it, the expand feature should be used.

string or Address (object)
expand-query-key: contactAddress
type: ExpandableField

The id of the contact address for the account. Is also used for billing if no extra billing address is defined.
When creating the Account object, this property can be omitted as there are not addresses for this account anyway. If it is desired to directly define a contact address for the account while creating it, the expand feature should be used.

string or Avatar (object)
expand-query-key: avatar
type: ExpandableField

Avatar of the entity: id that can be expanded.

object
expand-query-key: configuration
type: Map

The entity's configuration properties. Only contains values when the 'expand' query parameter is used with the value 'configuration'.

object
expand-query-key: metadata
type: Map

The entity's metadata properties. Only contains values when the 'expand' query parameter is used with the value 'metadata'.

object
expand-query-key: text
type: Map

The entity's text properties. Only contains values when the 'expand' query parameter is used with the value 'text'.

{
  • "$_type": "Account",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "name": "string",
  • "billingAddress": "string",
  • "contactAddress": "string",
  • "avatar": "string",
  • "configuration": {
    },
  • "metadata": {
    },
  • "text": {
    }
}

AccountData

$_type
string
Default: "AccountData"
Value: "AccountData"
id
string

Unique id of the account.

displayName
string

Display-Name of the account

string or Avatar (object)
expand-query-key: avatar
type: ExpandableField

Avatar of the account: id that can be expanded.

{
  • "$_type": "AccountData",
  • "id": "string",
  • "displayName": "string",
  • "avatar": "string"
}

AccountModificationEvent

$_type
string
Default: "AccountModificationEvent"
Value: "AccountModificationEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

action
string (EntityModificationAction)
Enum: "CREATE" "UPDATE" "DELETE"
enum-descriptions: ["CREATE: Entity was created","UPDATE: Entity was updated","DELETE: Entity was deleted"]

Type of modification of an entity

object (Account)

Model of an account. The contact and the billing address can be directly resolved when using the expand feature.

object (UserInfo)

User information which are normally used together with webhook events.

{
  • "$_type": "AccountModificationEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "action": "CREATE",
  • "entity": {
    },
  • "editingUser": {
    }
}

AccountOrderBy

$_type
string
Default: "AccountOrderBy"
Value: "AccountOrderBy"
field
string (EAccountOrderByField)
Enum: "ID" "NAME" "CREATION_TIMESTAMP" "MODIFICATION_TIMESTAMP"
enum-descriptions: ["ID: Sort by the 'id' attribute","NAME: Sort by the 'name' attribute","CREATION_TIMESTAMP: Sort by the 'creationTimestamp' attribute","MODIFICATION_TIMESTAMP: Sort by the 'modificationTimestamp' attribute"]
order
string (Order)
Enum: "ASCENDING" "DESCENDING"
enum-descriptions: ["ASCENDING: Sort in the ascending order (smallest to largest, 0 to 9, and/or A to Z)","DESCENDING: Sort in the descending order (largest to smallest, 9 to 0, and/or Z to A)"]
{
  • "$_type": "AccountOrderBy",
  • "field": "ID",
  • "order": "ASCENDING"
}

AccountQuery

$_type
string
Default: "AccountQuery"
Value: "AccountQuery"
Array of any (AccountSearchFilter) [ items ]

List of filters to narrow the search of entities

Array of objects (AccountOrderBy) [ items ]

List of criteria to order the search result list

offset
integer <int32>

Offset position in the result set to start pagination

limit
integer <int32>

Maximal amount of items returned

{
  • "$_type": "AccountQuery",
  • "searchFilters": [
    ],
  • "orderBy": [
    ],
  • "offset": 0,
  • "limit": 0
}

AccountResult

$_type
string
Default: "AccountResult"
Value: "AccountResult"
hasMoreItems
boolean

Flag to indicate if there are more items on the server

nextOffset
integer <int32>

If more items are present on the server, this value can be used as offset in the next query

Array of objects (Account) [ items ]

The returned list of entities

{
  • "$_type": "AccountResult",
  • "hasMoreItems": true,
  • "nextOffset": 0,
  • "items": [
    ]
}

AccountSearchFilter

$_type
string
Default: "CreationTimestampAccountSearchFilter"
Value: "CreationTimestampAccountSearchFilter"
field
string (EAccountSearchFilterField)
enum-descriptions: ["NAME: Filter by the 'name' attribute","CREATION_TIMESTAMP: Filter by the 'creationTimestamp' attribute","MODIFICATION_TIMESTAMP: Filter by the 'modificationTimestamp' attribute"]
any (TimestampOperator)
Example
{
  • "$_type": "CreationTimestampAccountSearchFilter",
  • "field": "CREATION_TIMESTAMP",
  • "operator": {
    }
}

AccountSecret

$_type
string
Default: "AccountSecret"
Value: "AccountSecret"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

secretKey
string
{
  • "$_type": "AccountSecret",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "secretKey": "string"
}

AccountUserContainer

$_type
string
Default: "AccountUserContainer"
Value: "AccountUserContainer"
object (Account)

Model of an account. The contact and the billing address can be directly resolved when using the expand feature.

object (User)

Model of a user. A user is normally an agent and/or a person who manages the system

{
  • "$_type": "AccountUserContainer",
  • "account": {
    },
  • "adminUser": {
    }
}

Address

$_type
string
Default: "Address"
Value: "Address"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

organisationName
string

Name of the organisation. Maximum of 250 characters. Can be omitted.

addressLine1
string

First address line. Maximum of 250 characters. Can be omitted.

addressLine2
string

Second address line. Maximum of 250 characters. Can be omitted.

zip
string

Zip code of the city. Maximum of 20 characters. Can not be omitted.

city
string

City name. Maximum of 250 characters. Can not be omitted.

state
string

Country state. Maximum of 250 characters. Can be omitted.

country
string

Country. Maximum of 250 characters. Can not be omitted.

{
  • "$_type": "Address",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "organisationName": "string",
  • "addressLine1": "string",
  • "addressLine2": "string",
  • "zip": "string",
  • "city": "string",
  • "state": "string",
  • "country": "string"
}

AddressOrderBy

$_type
string
Default: "AddressOrderBy"
Value: "AddressOrderBy"
field
string (EAddressOrderByField)
Enum: "ID" "CREATION_TIMESTAMP" "MODIFICATION_TIMESTAMP"
enum-descriptions: ["ID: Sort by the 'id' attribute","CREATION_TIMESTAMP: Sort by the 'creationTimestamp' attribute","MODIFICATION_TIMESTAMP: Sort by the 'modificationTimestamp' attribute"]
order
string (Order)
Enum: "ASCENDING" "DESCENDING"
enum-descriptions: ["ASCENDING: Sort in the ascending order (smallest to largest, 0 to 9, and/or A to Z)","DESCENDING: Sort in the descending order (largest to smallest, 9 to 0, and/or Z to A)"]
{
  • "$_type": "AddressOrderBy",
  • "field": "ID",
  • "order": "ASCENDING"
}

AddressQuery

$_type
string
Default: "AddressQuery"
Value: "AddressQuery"
Array of any (AddressSearchFilter) [ items ]

List of filters to narrow the search of entities

Array of objects (AddressOrderBy) [ items ]

List of criteria to order the search result list

offset
integer <int32>

Offset position in the result set to start pagination

limit
integer <int32>

Maximal amount of items returned

{
  • "$_type": "AddressQuery",
  • "searchFilters": [
    ],
  • "orderBy": [
    ],
  • "offset": 0,
  • "limit": 0
}

AddressResult

$_type
string
Default: "AddressResult"
Value: "AddressResult"
hasMoreItems
boolean

Flag to indicate if there are more items on the server

nextOffset
integer <int32>

If more items are present on the server, this value can be used as offset in the next query

Array of objects (Address) [ items ]

The returned list of entities

{
  • "$_type": "AddressResult",
  • "hasMoreItems": true,
  • "nextOffset": 0,
  • "items": [
    ]
}

AddressSearchFilter

$_type
string
Default: "CreationTimestampAddressSearchFilter"
Value: "CreationTimestampAddressSearchFilter"
field
string (EAddressSearchFilterField)
enum-descriptions: ["CREATION_TIMESTAMP: Filter by the 'creationTimestamp' attribute","MODIFICATION_TIMESTAMP: Filter by the 'modificationTimestamp' attribute"]
any (TimestampOperator)
Example
{
  • "$_type": "CreationTimestampAddressSearchFilter",
  • "field": "CREATION_TIMESTAMP",
  • "operator": {
    }
}

AgentForwardingCreatedEvent

$_type
string
Default: "AgentForwardingCreatedEvent"
Value: "AgentForwardingCreatedEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

invitationId
string

Id of the invitation

conversationId
string

Id of the conversation

token
string

Token (digits for pin or character sequence) requested to redeem or revoke the invitation

dateCreated
integer <int64>

Unix timestamp when the event was created

creatorType
string (EInvitationCreatorType)
Enum: "WEB_API" "SYSTEM" "AGENT" "VISITOR"
enum-descriptions: ["WEB_API: Invitation created with the API","SYSTEM: Invitation created by the system","AGENT: Invitation created by an agent","VISITOR: Invitation created by a visitor"]

The type of the person/system who created an invitation

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

object (ContextPersonInfo)

Information about the context person of a conversation. Normally send together with webhook events.

any (AgentTargetData)

Target of an 'agent forwarding' or an 'agent invitation' event which can be the agent directly (as PersonData) or a team (as TeamData). In this second case multiple agents are targeted by the event.

comment
string

Text provided by the creator for the target

Array of objects (ConversationLink) [ items ]

List of links that can be used to accept the accept forwarding event with the token.
Only one link can be used.

{
  • "$_type": "AgentForwardingCreatedEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "invitationId": "string",
  • "conversationId": "string",
  • "token": "string",
  • "dateCreated": 0,
  • "creatorType": "WEB_API",
  • "creatorPerson": {
    },
  • "contextPersonInfo": {
    },
  • "target": {
    },
  • "comment": "string",
  • "links": [
    ]
}

AgentForwardingRedeemedEvent

$_type
string
Default: "AgentForwardingRedeemedEvent"
Value: "AgentForwardingRedeemedEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

invitationId
string

Id of the invitation

conversationId
string

Id of the conversation

token
string

Token (digits for pin or character sequence) requested to redeem or revoke the invitation

dateCreated
integer <int64>

Unix timestamp when the event was created

creatorType
string (EInvitationCreatorType)
Enum: "WEB_API" "SYSTEM" "AGENT" "VISITOR"
enum-descriptions: ["WEB_API: Invitation created with the API","SYSTEM: Invitation created by the system","AGENT: Invitation created by an agent","VISITOR: Invitation created by a visitor"]

The type of the person/system who created an invitation

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

object (ContextPersonInfo)

Information about the context person of a conversation. Normally send together with webhook events.

any (AgentTargetData)

Target of an 'agent forwarding' or an 'agent invitation' event which can be the agent directly (as PersonData) or a team (as TeamData). In this second case multiple agents are targeted by the event.

comment
string

Text provided by the creator for the target

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

{
  • "$_type": "AgentForwardingRedeemedEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "invitationId": "string",
  • "conversationId": "string",
  • "token": "string",
  • "dateCreated": 0,
  • "creatorType": "WEB_API",
  • "creatorPerson": {
    },
  • "contextPersonInfo": {
    },
  • "target": {
    },
  • "comment": "string",
  • "redeemingPerson": {
    }
}

AgentForwardingRevokedEvent

$_type
string
Default: "AgentForwardingRevokedEvent"
Value: "AgentForwardingRevokedEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

invitationId
string

Id of the invitation

conversationId
string

Id of the conversation

token
string

Token (digits for pin or character sequence) requested to redeem or revoke the invitation

dateCreated
integer <int64>

Unix timestamp when the event was created

creatorType
string (EInvitationCreatorType)
Enum: "WEB_API" "SYSTEM" "AGENT" "VISITOR"
enum-descriptions: ["WEB_API: Invitation created with the API","SYSTEM: Invitation created by the system","AGENT: Invitation created by an agent","VISITOR: Invitation created by a visitor"]

The type of the person/system who created an invitation

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

object (ContextPersonInfo)

Information about the context person of a conversation. Normally send together with webhook events.

any (AgentTargetData)

Target of an 'agent forwarding' or an 'agent invitation' event which can be the agent directly (as PersonData) or a team (as TeamData). In this second case multiple agents are targeted by the event.

comment
string

Text provided by the creator for the target

{
  • "$_type": "AgentForwardingRevokedEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "invitationId": "string",
  • "conversationId": "string",
  • "token": "string",
  • "dateCreated": 0,
  • "creatorType": "WEB_API",
  • "creatorPerson": {
    },
  • "contextPersonInfo": {
    },
  • "target": {
    },
  • "comment": "string"
}

AgentInvitationCreatedEvent

$_type
string
Default: "AgentInvitationCreatedEvent"
Value: "AgentInvitationCreatedEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

invitationId
string

Id of the invitation

conversationId
string

Id of the conversation

token
string

Token (digits for pin or character sequence) requested to redeem or revoke the invitation

dateCreated
integer <int64>

Unix timestamp when the event was created

creatorType
string (EInvitationCreatorType)
Enum: "WEB_API" "SYSTEM" "AGENT" "VISITOR"
enum-descriptions: ["WEB_API: Invitation created with the API","SYSTEM: Invitation created by the system","AGENT: Invitation created by an agent","VISITOR: Invitation created by a visitor"]

The type of the person/system who created an invitation

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

object (ContextPersonInfo)

Information about the context person of a conversation. Normally send together with webhook events.

any (AgentTargetData)

Target of an 'agent forwarding' or an 'agent invitation' event which can be the agent directly (as PersonData) or a team (as TeamData). In this second case multiple agents are targeted by the event.

comment
string

Text provided by the creator for the target

Array of objects (ConversationLink) [ items ]

List of links that can be used to accept the agent invitation event with the token.
Only one link can be used.

{
  • "$_type": "AgentInvitationCreatedEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "invitationId": "string",
  • "conversationId": "string",
  • "token": "string",
  • "dateCreated": 0,
  • "creatorType": "WEB_API",
  • "creatorPerson": {
    },
  • "contextPersonInfo": {
    },
  • "target": {
    },
  • "comment": "string",
  • "links": [
    ]
}

AgentInvitationRedeemedEvent

$_type
string
Default: "AgentInvitationRedeemedEvent"
Value: "AgentInvitationRedeemedEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

invitationId
string

Id of the invitation

conversationId
string

Id of the conversation

token
string

Token (digits for pin or character sequence) requested to redeem or revoke the invitation

dateCreated
integer <int64>

Unix timestamp when the event was created

creatorType
string (EInvitationCreatorType)
Enum: "WEB_API" "SYSTEM" "AGENT" "VISITOR"
enum-descriptions: ["WEB_API: Invitation created with the API","SYSTEM: Invitation created by the system","AGENT: Invitation created by an agent","VISITOR: Invitation created by a visitor"]

The type of the person/system who created an invitation

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

object (ContextPersonInfo)

Information about the context person of a conversation. Normally send together with webhook events.

any (AgentTargetData)

Target of an 'agent forwarding' or an 'agent invitation' event which can be the agent directly (as PersonData) or a team (as TeamData). In this second case multiple agents are targeted by the event.

comment
string

Text provided by the creator for the target

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

{
  • "$_type": "AgentInvitationRedeemedEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "invitationId": "string",
  • "conversationId": "string",
  • "token": "string",
  • "dateCreated": 0,
  • "creatorType": "WEB_API",
  • "creatorPerson": {
    },
  • "contextPersonInfo": {
    },
  • "target": {
    },
  • "comment": "string",
  • "redeemingPerson": {
    }
}

AgentInvitationRevokedEvent

$_type
string
Default: "AgentInvitationRevokedEvent"
Value: "AgentInvitationRevokedEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

invitationId
string

Id of the invitation

conversationId
string

Id of the conversation

token
string

Token (digits for pin or character sequence) requested to redeem or revoke the invitation

dateCreated
integer <int64>

Unix timestamp when the event was created

creatorType
string (EInvitationCreatorType)
Enum: "WEB_API" "SYSTEM" "AGENT" "VISITOR"
enum-descriptions: ["WEB_API: Invitation created with the API","SYSTEM: Invitation created by the system","AGENT: Invitation created by an agent","VISITOR: Invitation created by a visitor"]

The type of the person/system who created an invitation

object (PersonData)

Representation of a Person (Agent or Visitor).
If a message is send to unblu, only a small set of fields like the ID need to be defined.

object (ContextPersonInfo)

Information about the context person of a conversation. Normally send together with webhook events.

any (AgentTargetData)

Target of an 'agent forwarding' or an 'agent invitation' event which can be the agent directly (as PersonData) or a team (as TeamData). In this second case multiple agents are targeted by the event.

comment
string

Text provided by the creator for the target

{
  • "$_type": "AgentInvitationRevokedEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "invitationId": "string",
  • "conversationId": "string",
  • "token": "string",
  • "dateCreated": 0,
  • "creatorType": "WEB_API",
  • "creatorPerson": {
    },
  • "contextPersonInfo": {
    },
  • "target": {
    },
  • "comment": "string"
}

AgentTargetData

$_type
string
Default: "PersonData"
id
string

Unique id of the person, when creating a person this property can be omitted as it will be generated by the server anyway.

accountId
string

Account id to which a Person belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

personSource
string (EPersonSource)
Enum: "USER_DB" "VIRTUAL"
enum-descriptions: ["USER_DB: Person-Source is on the main_user table","VIRTUAL: Person-Source is only virtual (no seperate storage)"]

The source type of a person (participant of a conversation)

sourceId
string

Identifier of the person in its source (defined by personSource). For EPersonSource.USER_DB this is the userId, forEPersonSource.VIRTUAL the propagated user id. Maximum length of 250 characters. Mandatory for virtual persons.

sourceData
string

Vendor specific data.

firstName
string

The first name of the person. Maximum length of 250 characters. Can be omitted.

lastName
string

the last name of the person. Maximum length of 250 characters. Can be omitted.

username
string

The username of the person. When firstName and lastName are unknown, it is recommended to use this value to change the displayName. Depending on the configuration, this is may also be the email of the corresponding user. Maximum length of 250 characters. Can be omitted.

nickname
string

A name that an anonymous person has given itself. Maximum length of 250 characters. Can be omitted.

displayName
string

Display name of the person. This is read only information, it will be set by the server anyway.

personType
string (EPersonType)
Enum: "AGENT" "VISITOR" "SYSTEM" "BOT"
enum-descriptions: ["AGENT: Agent participant","VISITOR: Visitor participant","SYSTEM: System participant","BOT: Bot participant"]

The type of a person (participant of a session)

authorizationRole
string (EAuthorizationRole)
Enum: "SUPER_ADMIN" "PARTNER" "TECHNICAL_ADMIN" "ADMIN" "SUPERVISOR" "REGISTERED_USER" "WEBUSER" "ANONYMOUS_USER"
enum-descriptions: ["SUPER_ADMIN: Super admin role. Only for unblu or system admins","PARTNER: Partner role. (no longer used)","TECHNICAL_ADMIN: Technical admin role.","ADMIN: Admin role. For Admins of the system","SUPERVISOR: Supervisor role. For users which manage teams","REGISTERED_USER: User role. For normal users (agents)","WEBUSER: Webuser role. For internal representation of users from the outside","ANONYMOUS_USER: Anonymous role. For internal representation of unknown users"]

The authorization role is mainly used for access definition of a service

email
string

The email of the person. Optional.

phone
string

The phone of the person. Optional.

teamId
string

Team id of the person. Optional.

teamName
string

Team name of the person, only present when the team id is set. When creating or updating a person this property can be omitted as it will be set by the server anyway.

string or Avatar (object)
expand-query-key: avatar
type: ExpandableField

Avatar of the entity: id that can be expanded.

object
expand-query-key: metadata
type: Map

The entity's metadata properties. Only contains values when the 'expand' query parameter is used with the value 'metadata'.

Example
{
  • "$_type": "PersonData",
  • "id": "string",
  • "accountId": "string",
  • "personSource": "USER_DB",
  • "sourceId": "string",
  • "sourceData": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "username": "string",
  • "nickname": "string",
  • "displayName": "string",
  • "personType": "AGENT",
  • "authorizationRole": "SUPER_ADMIN",
  • "email": "string",
  • "phone": "string",
  • "teamId": "string",
  • "teamName": "string",
  • "avatar": "string",
  • "metadata": {
    }
}

AllEqualIdListOperator

$_type
string
Default: "AllEqualIdListOperator"
Value: "AllEqualIdListOperator"
type
string (EIdListOperatorType)
Enum: "ALL_OF" "ANY_OF" "ALL_EQUAL"
enum-descriptions: ["ALL_OF: Checks if all of the values are present in the value list provided by the operator.","ANY_OF: Checks if any of the values is equal to any of the values in the list provided by the operator.","ALL_EQUAL: Check if the lists are of the same length and contain same values."]

Operator types corresponding to operators defined by IdListOperator

values
Array of strings
{
  • "$_type": "AllEqualIdListOperator",
  • "type": "ALL_OF",
  • "values": [
    ]
}

AllOfIdListOperator

$_type
string
Default: "AllOfIdListOperator"
Value: "AllOfIdListOperator"
type
string (EIdListOperatorType)
Enum: "ALL_OF" "ANY_OF" "ALL_EQUAL"
enum-descriptions: ["ALL_OF: Checks if all of the values are present in the value list provided by the operator.","ANY_OF: Checks if any of the values is equal to any of the values in the list provided by the operator.","ALL_EQUAL: Check if the lists are of the same length and contain same values."]

Operator types corresponding to operators defined by IdListOperator

values
Array of strings
{
  • "$_type": "AllOfIdListOperator",
  • "type": "ALL_OF",
  • "values": [
    ]
}

AnyOfIdListOperator

$_type
string
Default: "AnyOfIdListOperator"
Value: "AnyOfIdListOperator"
type
string (EIdListOperatorType)
Enum: "ALL_OF" "ANY_OF" "ALL_EQUAL"
enum-descriptions: ["ALL_OF: Checks if all of the values are present in the value list provided by the operator.","ANY_OF: Checks if any of the values is equal to any of the values in the list provided by the operator.","ALL_EQUAL: Check if the lists are of the same length and contain same values."]

Operator types corresponding to operators defined by IdListOperator

values
Array of strings
{
  • "$_type": "AnyOfIdListOperator",
  • "type": "ALL_OF",
  • "values": [
    ]
}

ApiKey

$_type
string
Default: "ApiKey"
Value: "ApiKey"
id
string

Unique id of the entity. When creating an entity this property can be omitted as it will be generated by the server anyway.

creationTimestamp
integer <int64>

Creation timestamp of the entity. It is defined when the entity is stored the first time in the system. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

modificationTimestamp
integer <int64>

Timestamp of the last modification. This property is always optional and can be omitted, when sending data to the server. It is only of informational character. It is ignored, when sending it to the server and therefore can be omitted. Note: If you set this property it will return the same value but it will not be written to the storage and will not effect the data consistency.

version
integer <int64>

Version of the entity. Will be incremented on each change. New updates must always be based on the newest version, if not updates will be rejected. When creating an object, the version can be omitted.

accountId
string

Account id to which an entity belongs to. When creating an entity, the accountId can be omitted, as it will be filled by the server automatically with the account of the currently logged in user. When editing an entity, the accountId must be send.

apiKey
string

Api key string. When creating the entity it can be set to a specific value or omitted (in the second case a random value will be generated by the server). Can not be updated.

name
string

Name of the api key. Maximum of 250 characters. Can be omitted, but should not.

description
string

Description of the api key. E.g. where or for what it is used. Maximum of 500 characters. Can be omitted.

object
expand-query-key: configuration
type: Map

The entity's configuration properties. Only contains values when the 'expand' query parameter is used with the value 'configuration'.

object
expand-query-key: text
type: Map

The entity's text properties. Only contains values when the 'expand' query parameter is used with the value 'text'.

object
expand-query-key: metadata
type: Map

The entity's metadata properties. Only contains values when the 'expand' query parameter is used with the value 'metadata'.

{
  • "$_type": "ApiKey",
  • "id": "string",
  • "creationTimestamp": 0,
  • "modificationTimestamp": 0,
  • "version": 0,
  • "accountId": "string",
  • "apiKey": "string",
  • "name": "string",
  • "description": "string",
  • "configuration": {
    },
  • "text": {
    },
  • "metadata": {
    }
}

ApiKeyApiKeySearchFilter

$_type
string
Default: "ApiKeyApiKeySearchFilter"
Value: "ApiKeyApiKeySearchFilter"
field
string (EApiKeySearchFilterField)
Enum: "NAME" "DESCRIPTION" "API_KEY" "CREATION_TIMESTAMP" "MODIFICATION_TIMESTAMP"
enum-descriptions: ["NAME: Filter by the 'name' attribute","DESCRIPTION: Filter by the 'description' attribute","API_KEY: Filter by the 'apiKey' attribute","CREATION_TIMESTAMP: Filter by the 'creationTimestamp' attribute","MODIFICATION_TIMESTAMP: Filter by the 'modificationTimestamp' attribute"]
any (StringOperator)
{
  • "$_type": "ApiKeyApiKeySearchFilter",
  • "field": "NAME",
  • "operator": {
    }
}

ApiKeyModificationEvent

$_type
string
Default: "ApiKeyModificationEvent"
Value: "ApiKeyModificationEvent"
timestamp
integer <int64>

The time (unix time in millies) that the event was generated.

eventType
string

The name of the event

accountId
string

The account ID the event originated from.

action
string (EntityModificationAction)
Enum: "CREATE" "UPDATE" "DELETE"
enum-descriptions: ["CREATE: Entity was created","UPDATE: Entity was updated","DELETE: Entity was deleted"]

Type of modification of an entity

object (ApiKey)

Model of an ApiKey. Api keys identify the usage of unblu to a certain account. There can be multiple api keys per account to define different configurations

object (UserInfo)

User information which are normally used together with webhook events.

{
  • "$_type": "ApiKeyModificationEvent",
  • "timestamp": 0,
  • "eventType": "string",
  • "accountId": "string",
  • "action": "CREATE",
  • "entity": {
    },
  • "editingUser": {
    }
}

ApiKeyOrderBy

$_type
string
Default: "ApiKeyOrderBy"
Value: "ApiKeyOrderBy"
field
string (EApiKeyOrderByField)
Enum: "ID" "NAME" "DESCRIPTION" "API_KEY" "CREATION_TIMESTAMP" "MODIFICATION_TIMESTAMP"
enum-descriptions: ["ID: Sort by the 'id' attribute","NAME: Sort by the 'name' attribute","DESCRIPTION: Sort by the 'description' attribute","API_KEY: Sort by the 'apiKey' attribute","CREATION_TIMESTAMP: Sort by the 'creationTimestamp' attribute","MODIFICATION_TIMESTAMP: Sort by the 'modificationTimestamp' attribute"]
order
string (Order)
Enum: "ASCENDING" "DESCENDING"
enum-descriptions: ["ASCENDING: Sort in the ascending order (smallest to largest, 0 to 9, and/or A to Z)","DESCENDING: Sort in the descending order (largest to smallest, 9 to 0, and/or Z to A)"]
{
  • "$_type": "ApiKeyOrderBy",
  • "field": "ID",
  • "order": "ASCENDING"
}

ApiKeyQuery

$_type
string
Default: "ApiKeyQuery"
Value: "ApiKeyQuery"
Array of any (ApiKeySearchFilter) [ items ]

List of filters to narrow the search of entities

Array of objects (ApiKeyOrderBy) [ items ]

List of criteria to order the search result list

offset
integer <int32>

Offset position in the result set to start pagination

limit
integer <int32>

Maximal amount of items returned

{
  • "$_type": "ApiKeyQuery",
  • "searchFilters": [
    ],
  • "orderBy": [
    ],
  • "offset": 0,
  • "limit": 0
}