openapi: 3.0.3
info:
title: Dixa Agents End Users API
version: beta
servers:
- url: https://dev.dixa.io
security:
- ApiKeyAuth: []
tags:
- name: End Users
paths:
/beta/endusers:
get:
tags:
- End Users
summary: List end users
description: 'Lists all end users in an organization. It is possible to filter by one of the mutually exclusive parameters: email or phone number. In case both are provided, an error is returned.
Note: Custom attributes are not part of the response at this point. If you need to get custom attributes for a user use the [GET /endusers/{userId}](../End-Users/#tag/End-Users/operation/getEndusersUserid) endpoint'
operationId: getEndusers
parameters:
- name: pageLimit
in: query
description: Maximum number of results per page. May be used in combination with pageKey to change the number of results in between page requests.
required: false
schema:
type: integer
format: int32
- name: pageKey
in: query
description: Base64 encoded form of pagination query parameters. Do not try to construct or change programmatically as the internal structure may change without notice.
required: false
schema:
type: string
- name: email
in: query
description: Filter by the contact's email
required: false
schema:
type: string
- name: phone
in: query
description: Filter by the contact's phone number
required: false
schema:
type: string
- name: externalId
in: query
description: Filter by the contact's external id
required: false
schema:
type: string
responses:
'200':
description: The list of end users
content:
application/json:
schema:
$ref: '#/components/schemas/ListEndUsersOutput'
example:
data:
- id: 93b885ad-fe0d-3089-8df6-34904fd59f71
createdAt: '2020-12-16T09:41:43Z'
displayName: Enduser 0
email: enduser.0@example.org
additionalEmails: []
additionalPhoneNumbers: []
middleNames: []
avatarUrl: https://files.dixa.io/public/image_0_id
externalId: '#12345678'
- id: 55a54008-ad1b-3589-aa21-0d2629c1df41
createdAt: '2020-12-16T09:41:43Z'
displayName: Enduser 1
email: enduser.1@example.org
additionalEmails: []
additionalPhoneNumbers: []
middleNames: []
avatarUrl: https://files.dixa.io/public/image_1_id
externalId: '#12345678'
- id: 9e688c58-a548-3b8e-af69-c9e1005ad0bf
createdAt: '2020-12-16T09:41:43Z'
displayName: Enduser 2
email: enduser.2@example.org
additionalEmails: []
additionalPhoneNumbers: []
middleNames: []
avatarUrl: https://files.dixa.io/public/image_2_id
externalId: '#12345678'
- id: 86666835-06aa-3d90-8bbd-5a74ac4edf68
createdAt: '2020-12-16T09:41:43Z'
displayName: Enduser 3
email: enduser.3@example.org
additionalEmails: []
additionalPhoneNumbers: []
middleNames: []
avatarUrl: https://files.dixa.io/public/image_3_id
externalId: '#12345678'
'400':
description: 'Invalid value extracted from request context, Invalid value for: query parameter pageLimit, Invalid value for: query parameter pageKey, Invalid value for: query parameter email, Invalid value for: query parameter phone, Invalid value for: query parameter externalId, Duplicate phone number, Duplicate email address, Invalid filters: Cannot provide more than one filter'
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
example:
message: Decoding failure in request
'404':
description: An entity in this request could not be found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFound'
example:
message: The requested resource could not be found
'500':
description: Internal failure during request processing
content:
application/json:
schema:
$ref: '#/components/schemas/ServerError'
example:
message: There was an internal server error while processing the request
put:
tags:
- End Users
summary: Update end users
description: Bulk update end users.
operationId: putEndusers
requestBody:
description: List of end user update actions
content:
application/json:
schema:
$ref: '#/components/schemas/BulkUpdateEndUsersInput'
example:
data:
- id: d4826125-559f-496f-ad71-a0340f0cae06
displayName: Alice Brown
email: alice@brown.com
phoneNumber: '+551155256325'
additionalEmails:
- alice@secondary.email
additionalPhoneNumbers:
- '+5566778899'
firstName: Alice
lastName: Brown
middleNames:
- J.
avatarUrl: http://avatar.url
externalId: '#12345678'
required: true
responses:
'200':
description: The updated end users
content:
application/json:
schema:
$ref: '#/components/schemas/BulkUpdateEndUsersOutput'
example:
data:
- data:
id: 434ce9f5-14c8-4be1-a0a8-f755010deb9b
createdAt: '2020-12-16T09:41:43Z'
displayName: Alice Brown
email: alice@brown.com
phoneNumber: '+551155256325'
additionalEmails:
- alice@secondary.email
additionalPhoneNumbers:
- '+5566778899'
firstName: Alice
lastName: Brown
middleNames:
- J.
avatarUrl: https://files.dixa.io/public/image_id
externalId: '#12345678'
customAttributes:
- id: 4baa78bc-4815-4122-9c99-f71cd742d37b
name: My Attribute
identifier: my_attribute
value: My Attribute Value
_type: BulkActionSuccess
- error:
id: 8fe8f4c3-7bc6-4767-924a-d9afa7ac7009
message: Updating EndUser [id:8fe8f4c3-7bc6-4767-924a-d9afa7ac7009] failed with [errors:PhoneNumberExists]
_type: Validation
_type: BulkActionFailure
'400':
description: 'Invalid value extracted from request context, Invalid value for: body'
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
example:
message: Invalid value in request
'500':
description: Internal failure during request processing
content:
application/json:
schema:
$ref: '#/components/schemas/ServerError'
example:
message: There was an internal server error while processing the request
post:
tags:
- End Users
summary: Create end user
description: Create an end user.
operationId: postEndusers
requestBody:
description: The end user's details
content:
application/json:
schema:
$ref: '#/components/schemas/CreateEndUserInput'
example:
displayName: Alice Brown
email: alice@brown.com
phoneNumber: '+551155256325'
additionalEmails:
- alice@secondary.email
additionalPhoneNumbers:
- '+5566778899'
firstName: Alice
lastName: Brown
middleNames: []
avatarUrl: http://avatar.url
externalId: '#12345678'
required: true
responses:
'201':
description: The created end user
content:
application/json:
schema:
$ref: '#/components/schemas/CreateEndUserOutput'
example:
data:
id: 434ce9f5-14c8-4be1-a0a8-f755010deb9b
createdAt: '2020-12-16T09:41:43Z'
displayName: Alice Brown
email: alice@brown.com
phoneNumber: '+551155256325'
additionalEmails:
- alice@secondary.email
additionalPhoneNumbers:
- '+5566778899'
firstName: Alice
lastName: Brown
middleNames: []
avatarUrl: https://files.dixa.io/public/image_id
externalId: '#12345678'
customAttributes:
- id: 4baa78bc-4815-4122-9c99-f71cd742d37b
name: My Attribute
identifier: my_attribute
value: My Attribute Value
'400':
description: 'Invalid value extracted from request context, Invalid value for: body, Validation failure during enduser creation'
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
example:
message: Decoding failure in request
'500':
description: Internal failure during request processing
content:
application/json:
schema:
$ref: '#/components/schemas/ServerError'
example:
message: There was an internal server error while processing the request
patch:
tags:
- End Users
summary: Patch end users
description: Bulk patch end users.
operationId: patchEndusers
requestBody:
description: List of end user patch actions
content:
application/json:
schema:
$ref: '#/components/schemas/BulkPatchEndUsersInput'
example:
data:
- id: 43b1fe06-a7c4-4f34-8e48-b0559e6acdb9
displayName: Alice Brown
email: alice@brown.com
phoneNumber: '+551155256325'
additionalEmails:
- alice@secondary.email
additionalPhoneNumbers:
- '+5566778899'
firstName: Alice
lastName: Brown
middleNames: []
avatarUrl: http://avatar.url
externalId: '#12345678'
required: true
responses:
'200':
description: The patched end users
content:
application/json:
schema:
$ref: '#/components/schemas/BulkPatchEndUsersOutput'
example:
data:
- data:
id: 434ce9f5-14c8-4be1-a0a8-f755010deb9b
createdAt: '2020-12-16T09:41:43Z'
displayName: Alice Brown
email: alice@brown.com
phoneNumber: '+551155256325'
additionalEmails:
- alice@secondary.email
additionalPhoneNumbers:
- '+5566778899'
firstName: Alice
lastName: Brown
middleNames: []
avatarUrl: https://files.dixa.io/public/image_id
externalId: '#12345678'
customAttributes:
- id: 4baa78bc-4815-4122-9c99-f71cd742d37b
name: My Attribute
identifier: my_attribute
value: My Attribute Value
_type: BulkActionSuccess
- error:
id: ace11abb-4ed0-42bd-9e3b-4ef6db58e0aa
message: Updating EndUser [id=ace11abb-4ed0-42bd-9e3b-4ef6db58e0aa] in [org=b86a1842-437c-4c55-ac4b-0a9cd2f44dfb] failed with [errors=PhoneNumberExists]
_type: Validation
_type: BulkActionFailure
'400':
description: 'Invalid value extracted from request context, Invalid value for: body'
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
example:
message: Invalid value in request
'500':
description: Internal failure during request processing
content:
application/json:
schema:
$ref: '#/components/schemas/ServerError'
example:
message: There was an internal server error while processing the request
/beta/endusers/bulk:
post:
tags:
- End Users
summary: Create end users
description: Create multiple end users in a single bulk action
operationId: postEndusersBulk
requestBody:
description: The list of end user details
content:
application/json:
schema:
$ref: '#/components/schemas/CreateEndUsersInput'
example:
data:
- displayName: Alice Brown
email: alice@brown.com
phoneNumber: '+551155256325'
additionalEmails: []
additionalPhoneNumbers: []
firstName: Alice
lastName: Brown
middleNames: []
avatarUrl: http://avatar.url
externalId: '#12345678'
required: true
responses:
'201':
description: The created end users
content:
application/json:
schema:
$ref: '#/components/schemas/CreateEndUsersOutput'
example:
data:
- data:
id: 93b885ad-fe0d-3089-8df6-34904fd59f71
createdAt: '2020-12-16T09:41:43Z'
displayName: Enduser 0
email: enduser.0@example.org
additionalEmails: []
additionalPhoneNumbers: []
middleNames: []
avatarUrl: https://files.dixa.io/public/image_0_id
externalId: '#12345678'
_type: BulkActionSuccess
- data:
id: 55a54008-ad1b-3589-aa21-0d2629c1df41
createdAt: '2020-12-16T09:41:43Z'
displayName: Enduser 1
email: enduser.1@example.org
additionalEmails: []
additionalPhoneNumbers: []
middleNames: []
avatarUrl: https://files.dixa.io/public/image_1_id
externalId: '#12345678'
_type: BulkActionSuccess
- data:
id: 9e688c58-a548-3b8e-af69-c9e1005ad0bf
createdAt: '2020-12-16T09:41:43Z'
displayName: Enduser 2
email: enduser.2@example.org
additionalEmails: []
additionalPhoneNumbers: []
middleNames: []
avatarUrl: https://files.dixa.io/public/image_2_id
externalId: '#12345678'
_type: BulkActionSuccess
- data:
id: 86666835-06aa-3d90-8bbd-5a74ac4edf68
createdAt: '2020-12-16T09:41:43Z'
displayName: Enduser 3
email: enduser.3@example.org
additionalEmails: []
additionalPhoneNumbers: []
middleNames: []
avatarUrl: https://files.dixa.io/public/image_3_id
externalId: '#12345678'
_type: BulkActionSuccess
- error:
id: 1b6d1e11-0626-414e-906a-b80a384cfef0
message: Create EndUser [userId=...] in [orgId=...] failed with [errors=...]
_type: Validation
_type: BulkActionFailure
'400':
description: 'Invalid value extracted from request context, Invalid value for: body'
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
example:
message: Invalid value in request
'500':
description: Internal failure during request processing
content:
application/json:
schema:
$ref: '#/components/schemas/ServerError'
example:
message: There was an internal server error while processing the request
/beta/endusers/{userId}:
get:
tags:
- End Users
summary: Get end user
description: Get an end user by id.
operationId: getEndusersUserid
parameters:
- name: userId
in: path
description: The end user id
required: true
schema:
type: string
format: uuid
responses:
'200':
description: The end user
content:
application/json:
schema:
$ref: '#/components/schemas/GetEndUserOutput'
example:
data:
id: 434ce9f5-14c8-4be1-a0a8-f755010deb9b
createdAt: '2020-12-16T09:41:43Z'
displayName: Alice Brown
email: alice@brown.com
phoneNumber: '+551155256325'
additionalEmails:
- alice@secondary.email
additionalPhoneNumbers:
- '+5566778899'
firstName: Alice
lastName: Brown
middleNames: []
avatarUrl: https://files.dixa.io/public/image_id
externalId: '#12345678'
customAttributes:
- id: 4baa78bc-4815-4122-9c99-f71cd742d37b
name: My Attribute
identifier: my_attribute
value: My Attribute Value
'400':
description: 'Invalid value for: path parameter userId, Invalid value extracted from request context'
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
example:
message: Invalid value in request
'404':
description: An entity in this request could not be found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFound'
example:
message: The requested resource could not be found
'500':
description: Internal failure during request processing
content:
application/json:
schema:
$ref: '#/components/schemas/ServerError'
example:
message: There was an internal server error while processing the request
put:
tags:
- End Users
summary: Update end user
description: Update an end user.
operationId: putEndusersUserid
parameters:
- name: userId
in: path
description: The end user id
required: true
schema:
type: string
format: uuid
requestBody:
description: The updated details for an end user
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateEndUserInput'
example:
displayName: Alice Brown
email: alice@brown.com
phoneNumber: '+551155256325'
additionalEmails:
- alice@secondary.email
additionalPhoneNumbers:
- '+5566778899'
firstName: Alice
lastName: Brown
middleNames:
- J.
avatarUrl: http://avatar.url
externalId: '#12345678'
required: true
responses:
'200':
description: The updated end user
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateEndUserOutput'
example:
data:
id: 434ce9f5-14c8-4be1-a0a8-f755010deb9b
createdAt: '2020-12-16T09:41:43Z'
displayName: Alice Brown
email: alice@brown.com
phoneNumber: '+551155256325'
additionalEmails:
- alice@secondary.email
additionalPhoneNumbers:
- '+5566778899'
firstName: Alice
lastName: Brown
middleNames:
- J.
avatarUrl: https://files.dixa.io/public/image_id
externalId: '#12345678'
customAttributes:
- id: 4baa78bc-4815-4122-9c99-f71cd742d37b
name: My Attribute
identifier: my_attribute
value: My Attribute Value
'400':
description: 'Invalid value for: path parameter userId, Invalid value extracted from request context, Invalid value for: body, Validation failure during update'
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
example:
message: Decoding failure in request
'404':
description: An entity in this request could not be found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFound'
example:
message: The requested resource could not be found
'500':
description: Internal failure during request processing
content:
application/json:
schema:
$ref: '#/components/schemas/ServerError'
example:
message: There was an internal server error while processing the request
patch:
tags:
- End Users
summary: Patch end user
description: Patch an end user.
operationId: patchEndusersUserid
parameters:
- name: userId
in: path
description: The end user id to be patched
required: true
schema:
type: string
format: uuid
requestBody:
description: The end user patch
content:
application/json:
schema:
$ref: '#/components/schemas/PatchEndUserInput'
example:
displayName: Alice Brown
email: alice@brown.com
phoneNumber: '+551155256325'
additionalEmails:
- alice@secondary.email
additionalPhoneNumbers:
- '+5566778899'
firstName: Alice
lastName: Brown
middleNames: []
avatarUrl: http://avatar.url
externalId: '#12345678'
required: true
responses:
'200':
description: The patched end user
content:
application/json:
schema:
$ref: '#/components/schemas/PatchEndUserOutput'
example:
data:
id: 434ce9f5-14c8-4be1-a0a8-f755010deb9b
createdAt: '2020-12-16T09:41:43Z'
displayName: Alice Brown
email: alice@brown.com
phoneNumber: '+551155256325'
additionalEmails:
- alice@secondary.email
additionalPhoneNumbers:
- '+5566778899'
firstName: Alice
lastName: Brown
middleNames: []
avatarUrl: https://files.dixa.io/public/image_id
externalId: '#12345678'
customAttributes:
- id: 4baa78bc-4815-4122-9c99-f71cd742d37b
name: My Attribute
identifier: my_attribute
value: My Attribute Value
'400':
description: 'Invalid value for: path parameter userId, Invalid value extracted from request context, Invalid value for: body, Validation failure during update'
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
example:
message: Decoding failure in request
'404':
description: An entity in this request could not be found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFound'
example:
message: The requested resource could not be found
'500':
description: Internal failure during request processing
content:
application/json:
schema:
$ref: '#/components/schemas/ServerError'
example:
message: There was an internal server error while processing the request
/beta/endusers/{userId}/anonymize:
patch:
tags:
- End Users
summary: Anonymize end user
description: Request the anonymization of an end user.
operationId: patchEndusersUseridAnonymize
parameters:
- name: userId
in: path
description: The id of the end user to anonymize
required: true
schema:
type: string
format: uuid
- name: force
in: query
description: Whether to force close all the conversations initiated by the end user, if any are found in a non closed state.
required: false
schema:
default: false
type: boolean
responses:
'202':
description: The end user's anonymization request status
content:
application/json:
schema:
$ref: '#/components/schemas/AnonymizeEntityOutput'
example:
data:
id: 6bf55369-a670-4e6b-9f70-ecdb9913549f
entityType: UserAnonymizationType
_type: User
initiatedAt: 2021-12-01T12:46:36.581Z[GMT]
targetEntityId: f28fafd6-2e42-4441-943c-388a8e0ef433
requestedBy: 2b01e4c9-0c3a-47d4-9462-cd5a1a4687f5
'400':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
'404':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/NotFound'
'409':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/Conflict'
'500':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ServerError'
/beta/endusers/{userId}/custom-attributes:
patch:
tags:
- End Users
summary: Patch end user custom attributes
description: Patch custom attributes of an end user
operationId: patchEndusersUseridCustom-attributes
parameters:
- name: userId
in: path
required: true
schema:
type: string
format: uuid
requestBody:
description: 'The custom attributes of an end user to be patched. This should map the custom attribute id to the desired attribute value. Format: Map[UUID, Option[AttributeValue].'
content:
application/json:
schema:
$ref: '#/components/schemas/Map_UUID_Option_AttributeValue'
example:
274e5a2c-be0d-42c0-b725-3dd533729f68: abcdef
befae0d9-9679-42b9-af76-e76f64e28429:
- example1
- example2
required: true
responses:
'200':
description: The patched end user attributes
content:
application/json:
schema:
$ref: '#/components/schemas/PatchEndUserCustomAttributesOutput'
example:
data:
- id: 274e5a2c-be0d-42c0-b725-3dd533729f68
name: End user attribute
identifier: end_user_attribute
value: abcdef
- id: befae0d9-9679-42b9-af76-e76f64e28429
name: End user attribute 2
identifier: end_user_attribute_2
value:
- example1
- example2
'400':
description: 'Invalid value for: path parameter userId, Invalid value extracted from request context, Invalid value for: body, Invalid input for patching'
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
example:
message: Decoding failure in request
'401':
description: The user who issued the access token used in the request is not authorized to perform the operation
content:
application/json:
schema:
$ref: '#/components/schemas/Unauthorized'
example:
message: User is unauthorized to perform an underlying operation
'404':
description: An entity in this request could not be found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFound'
example:
message: The requested resource could not be found
/beta/endusers/{userId}/conversations:
get:
tags:
- End Users
summary: List end user conversations
description: 'Lists conversations requested by an end user.
Note: Custom attributes are not part of the response at this point. If you need to get custom attributes for a conversation use the [GET /conversations/{conversationId}](../Conversations/#tag/Conversations/operation/getConversationsConversationid) endpoint'
operationId: getEndusersUseridConversations
parameters:
- name: userId
in: path
required: true
schema:
type: string
format: uuid
- name: pageLimit
in: query
description: Maximum number of results per page. May be used in combination with pageKey to change the number of results in between page requests.
required: false
schema:
type: integer
format: int32
- name: pageKey
in: query
description: Base64 encoded form of pagination query parameters. Do not try to construct or change programmatically as the internal structure may change without notice.
required: false
schema:
type: string
responses:
'200':
description: The list of conversations requested by an EndUser
content:
application/json:
schema:
$ref: '#/components/schemas/ListEndUserConversationsOutput'
example:
data:
- id: 1
requesterId: 9deb936b-52e5-4c44-828d-4c8d48fe0c7e
channel: WidgetChat
createdAt: '2020-12-16T09:41:43Z'
direction: Outbound
state: Open
stateUpdatedAt: '2020-12-16T09:41:43Z'
assignment:
agentId: 0e4d0ead-dc69-470a-9b3a-e7eb16a56453
assignedAt: '2020-12-16T11:00:34Z'
queue:
id: cd87b232-64c8-4ad5-b81a-6f9233352d97
queuedAt: '2020-12-16T10:40:40Z'
browserInfo:
name: Chrome 9
version: 91.0.4472.114
ipAddress: 127.0.0.1
originatingUrl: http://localhost:3000/
language: en
link:
parentId: 1234
_type: SideConversation
_type: ChatConversation
'400':
description: 'Invalid value for: path parameter userId, Invalid value extracted from request context, Invalid value for: query parameter pageLimit, Invalid value for: query parameter pageKey'
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
example:
message: Invalid value in request
'404':
description: An entity in this request could not be found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFound'
example:
message: The requested resource could not be found
'500':
description: Internal failure during request processing
content:
application/json:
schema:
$ref: '#/components/schemas/ServerError'
example:
message: There was an internal server error while processing the request
components:
schemas:
FollowUp:
title: FollowUp
type: object
required:
- parentId
properties:
parentId:
type: integer
format: int64
ListEndUserConversationsOutput:
title: ListEndUserConversationsOutput
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Conversation'
meta:
$ref: '#/components/schemas/PaginationLinks'
Queue:
title: Queue
type: object
required:
- id
properties:
id:
type: string
format: uuid
queuedAt:
type: string
format: date-time
MessengerConversation:
title: MessengerConversation
type: object
required:
- id
- requesterId
- channel
- createdAt
properties:
id:
type: integer
format: int64
requesterId:
type: string
format: uuid
channel:
description: 'values: [WhatsApp, Voicemail, WidgetChat, FacebookMessenger, Twitter, Email, ContactForm, Callback, PstnPhone, Sms, Messenger]'
type: string
createdAt:
type: string
format: date-time
direction:
description: 'values: [Inbound, Internal, Outbound]'
type: string
state:
description: 'values: [AwaitingPending, Closed, Open, Pending]'
type: string
stateUpdatedAt:
type: string
format: date-time
assignment:
$ref: '#/components/schemas/Assignment'
queue:
$ref: '#/components/schemas/Queue'
browserInfo:
$ref: '#/components/schemas/BrowserInfo'
language:
type: string
link:
$ref: '#/components/schemas/ConversationLink'
customAttributes:
type: array
items:
$ref: '#/components/schemas/CustomAttribute'
transportExpiresAt:
type: string
format: date-time
DeprecatedAnonymizationType:
title: DeprecatedAnonymizationType
description: Replaced by _type field
deprecated: true
oneOf:
- $ref: '#/components/schemas/ConversationAnonymizationType'
- $ref: '#/components/schemas/MessageAnonymizationType'
- $ref: '#/components/schemas/UnknownAnonymizationType'
- $ref: '#/components/schemas/UserAnonymizationType'
BulkPatchEndUsersInput:
title: BulkPatchEndUsersInput
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/BulkPatchEndUserInput'
Integrity:
title: Integrity
type: object
required:
- id
- message
properties:
id:
type: string
message:
type: string
PatchEndUserInput:
title: PatchEndUserInput
type: object
properties:
displayName:
type: string
email:
type: string
phoneNumber:
type: string
additionalEmails:
type: array
uniqueItems: true
items:
type: string
additionalPhoneNumbers:
type: array
uniqueItems: true
items:
type: string
firstName:
type: string
lastName:
type: string
middleNames:
type: array
items:
type: string
avatarUrl:
type: string
externalId:
type: string
CreateEndUserInput:
title: CreateEndUserInput
type: object
properties:
displayName:
description: The contact's display name
type: string
email:
description: The contact's primary email address
type: string
phoneNumber:
description: The contact's primary phone number
type: string
additionalEmails:
description: Additional email addresses for the contact
type: array
uniqueItems: true
items:
type: string
additionalPhoneNumbers:
description: Additional phone numbers for the contact
type: array
uniqueItems: true
items:
type: string
firstName:
description: The contact's first name
type: string
lastName:
description: The contact's last name
type: string
middleNames:
description: The contact's middle names
type: array
items:
type: string
avatarUrl:
description: The url from which to load the contact's avatar
type: string
externalId:
description: Custom external identifier for the contact
type: string
BulkUpdateEndUsersInput:
title: BulkUpdateEndUsersInput
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/BulkUpdateEndUserInput'
NotFound:
title: NotFound
type: object
required:
- message
properties:
message:
type: string
Validation:
title: Validation
type: object
required:
- message
properties:
id:
type: string
message:
type: string
BrowserInfo:
title: BrowserInfo
type: object
required:
- name
properties:
name:
type: string
version:
type: string
ipAddress:
type: string
originatingUrl:
type: string
BulkActionFailure_BulkError_EndUser:
title: BulkActionFailure_BulkError_EndUser
type: object
required:
- error
properties:
error:
$ref: '#/components/schemas/BulkError'
UserAnonymizationType:
title: UserAnonymizationType
type: object
AnonymizeEntityOutput:
title: AnonymizeEntityOutput
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/AnonymizationRequestStatus'
ListEndUsersOutput:
title: ListEndUsersOutput
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/EndUser'
meta:
$ref: '#/components/schemas/PaginationLinks'
EmailConversation:
title: EmailConversation
type: object
required:
- id
- requesterId
- channel
- createdAt
- toEmail
- fromEmail
- integrationEmail
properties:
id:
type: integer
format: int64
requesterId:
type: string
format: uuid
channel:
description: 'values: [WhatsApp, Voicemail, WidgetChat, FacebookMessenger, Twitter, Email, ContactForm, Callback, PstnPhone, Sms, Messenger]'
type: string
createdAt:
type: string
format: date-time
direction:
description: 'values: [Inbound, Internal, Outbound]'
type: string
state:
description: 'values: [AwaitingPending, Closed, Open, Pending]'
type: string
stateUpdatedAt:
type: string
format: date-time
assignment:
$ref: '#/components/schemas/Assignment'
queue:
$ref: '#/components/schemas/Queue'
toEmail:
type: string
fromEmail:
type: string
integrationEmail:
type: string
language:
type: string
subject:
type: string
link:
$ref: '#/components/schemas/ConversationLink'
customAttributes:
type: array
items:
$ref: '#/components/schemas/CustomAttribute'
transportExpiresAt:
type: string
format: date-time
ErrorResponse:
title: ErrorResponse
type: object
required:
- message
properties:
message:
type: string
ServerError:
title: ServerError
type: object
required:
- message
properties:
message:
type: string
PaginationLinks:
title: PaginationLinks
type: object
properties:
previous:
description: url
type: string
next:
description: url
type: string
BadRequest:
title: BadRequest
type: object
required:
- message
properties:
message:
type: string
Conversation:
title: Conversation
oneOf:
- $ref: '#/components/schemas/AnonymizedConversation'
- $ref: '#/components/schemas/ChatConversation'
- $ref: '#/components/schemas/ContactFormConversation'
- $ref: '#/components/schemas/EmailConversation'
- $ref: '#/components/schemas/FacebookMessengerConversation'
- $ref: '#/components/schemas/GenericConversation'
- $ref: '#/components/schemas/MessengerConversation'
- $ref: '#/components/schemas/PstnPhoneConversation'
- $ref: '#/components/schemas/SmsConversation'
- $ref: '#/components/schemas/TwitterConversation'
- $ref: '#/components/schemas/WhatsAppConversation'
GetEndUserOutput:
title: GetEndUserOutput
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/EndUser'
ChatConversation:
title: ChatConversation
type: object
required:
- id
- requesterId
- channel
- createdAt
properties:
id:
type: integer
format: int64
requesterId:
type: string
format: uuid
channel:
description: 'values: [WhatsApp, Voicemail, WidgetChat, FacebookMessenger, Twitter, Email, ContactForm, Callback, PstnPhone, Sms, Messenger]'
type: string
createdAt:
type: string
format: date-time
direction:
description: 'values: [Inbound, Internal, Outbound]'
type: string
state:
description: 'values: [AwaitingPending, Closed, Open, Pending]'
type: string
stateUpdatedAt:
type: string
format: date-time
assignment:
$ref: '#/components/schemas/Assignment'
queue:
$ref: '#/components/schemas/Queue'
browserInfo:
$ref: '#/components/schemas/BrowserInfo'
language:
type: string
link:
$ref: '#/components/schemas/ConversationLink'
customAttributes:
type: array
items:
$ref: '#/components/schemas/CustomAttribute'
transportExpiresAt:
type: string
format: date-time
SideConversation:
title: SideConversation
type: object
required:
- parentId
properties:
parentId:
type: integer
format: int64
PatchEndUserOutput:
title: PatchEndUserOutput
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/EndUser'
BulkUpdateEndUserInput:
title: BulkUpdateEndUserInput
type: object
required:
- id
- displayName
properties:
id:
type: string
format: uuid
displayName:
type: string
email:
type: string
phoneNumber:
type: string
additionalEmails:
type: array
uniqueItems: true
items:
type: string
additionalPhoneNumbers:
type: array
uniqueItems: true
items:
type: string
firstName:
type: string
lastName:
type: string
middleNames:
type: array
items:
type: string
avatarUrl:
type: string
externalId:
type: string
TwitterConversation:
title: TwitterConversation
type: object
required:
- id
- requesterId
- channel
- createdAt
- conversationType
properties:
id:
type: integer
format: int64
requesterId:
type: string
format: uuid
channel:
description: 'values: [WhatsApp, Voicemail, WidgetChat, FacebookMessenger, Twitter, Email, ContactForm, Callback, PstnPhone, Sms, Messenger]'
type: string
createdAt:
type: string
format: date-time
conversationType:
description: 'values: [DirectMessage, Tweet]'
type: string
contactPointTwitterId:
type: string
endUserTwitterId:
type: string
direction:
description: 'values: [Inbound, Internal, Outbound]'
type: string
state:
description: 'values: [AwaitingPending, Closed, Open, Pending]'
type: string
stateUpdatedAt:
type: string
format: date-time
assignment:
$ref: '#/components/schemas/Assignment'
queue:
$ref: '#/components/schemas/Queue'
link:
$ref: '#/components/schemas/ConversationLink'
customAttributes:
type: array
items:
$ref: '#/components/schemas/CustomAttribute'
transportExpiresAt:
type: string
format: date-time
Infrastructure:
title: Infrastructure
type: object
required:
- id
- message
properties:
id:
type: string
message:
type: string
ConversationAnonymizationType:
title: ConversationAnonymizationType
type: object
SmsConversation:
title: SmsConversation
type: object
required:
- id
- requesterId
- channel
- createdAt
properties:
id:
type: integer
format: int64
requesterId:
type: string
format: uuid
channel:
description: 'values: [WhatsApp, Voicemail, WidgetChat, FacebookMessenger, Twitter, Email, ContactForm, Callback, PstnPhone, Sms, Messenger]'
type: string
createdAt:
type: string
format: date-time
direction:
description: 'values: [Inbound, Internal, Outbound]'
type: string
state:
description: 'values: [AwaitingPending, Closed, Open, Pending]'
type: string
stateUpdatedAt:
type: string
format: date-time
assignment:
$ref: '#/components/schemas/Assignment'
fromNumber:
type: string
toNumber:
type: string
queue:
$ref: '#/components/schemas/Queue'
link:
$ref: '#/components/schemas/ConversationLink'
customAttributes:
type: array
items:
$ref: '#/components/schemas/CustomAttribute'
transportExpiresAt:
type: string
format: date-time
GenericConversation:
title: GenericConversation
type: object
required:
- id
- requesterId
- channel
- createdAt
properties:
id:
type: integer
format: int64
requesterId:
type: string
format: uuid
channel:
description: 'values: [WhatsApp, Voicemail, WidgetChat, FacebookMessenger, Twitter, Email, ContactForm, Callback, PstnPhone, Sms, Messenger]'
type: string
createdAt:
type: string
format: date-time
fromContactPointId:
type: string
toContactPointId:
type: string
direction:
description: 'values: [Inbound, Internal, Outbound]'
type: string
state:
description: 'values: [AwaitingPending, Closed, Open, Pending]'
type: string
stateUpdatedAt:
type: string
format: date-time
assignment:
$ref: '#/components/schemas/Assignment'
queue:
$ref: '#/components/schemas/Queue'
link:
$ref: '#/components/schemas/ConversationLink'
customAttributes:
type: array
items:
$ref: '#/components/schemas/CustomAttribute'
transportExpiresAt:
type: string
format: date-time
CreateEndUsersOutput:
title: CreateEndUsersOutput
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/BulkActionOutcome_BulkError_EndUser'
EmailForward:
title: EmailForward
type: object
required:
- parentId
properties:
parentId:
type: integer
format: int64
PatchEndUserCustomAttributesOutput:
title: PatchEndUserCustomAttributesOutput
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/CustomAttribute'
Conflict:
title: Conflict
type: object
required:
- message
properties:
message:
type: string
AnonymizationRequestStatus:
title: AnonymizationRequestStatus
type: object
required:
- id
- entityType
- _type
- initiatedAt
- targetEntityId
- requestedBy
properties:
id:
type: string
format: uuid
entityType:
$ref: '#/components/schemas/DeprecatedAnonymizationType'
_type:
description: 'values: [Conversation, Message, User]'
type: string
initiatedAt:
type: string
format: date-time
targetEntityId:
type: string
requestedBy:
type: string
format: uuid
processedAt:
type: string
format: date-time
PstnPhoneConversation:
title: PstnPhoneConversation
type: object
required:
- id
- requesterId
- channel
- createdAt
properties:
id:
type: integer
format: int64
requesterId:
type: string
format: uuid
channel:
description: 'values: [WhatsApp, Voicemail, WidgetChat, FacebookMessenger, Twitter, Email, ContactForm, Callback, PstnPhone, Sms, Messenger]'
type: string
createdAt:
type: string
format: date-time
direction:
description: 'values: [Inbound, Internal, Outbound]'
type: string
state:
description: 'values: [AwaitingPending, Closed, Open, Pending]'
type: string
stateUpdatedAt:
type: string
format: date-time
assignment:
$ref: '#/components/schemas/Assignment'
queue:
$ref: '#/components/schemas/Queue'
link:
$ref: '#/components/schemas/ConversationLink'
customAttributes:
type: array
items:
$ref: '#/components/schemas/CustomAttribute'
transportExpiresAt:
type: string
format: date-time
Map_UUID_Option_AttributeValue:
title: Map_UUID_Option_AttributeValue
type: object
additionalProperties:
description: 'AttributeValue values: String[] if the type of the custom attribute is Select or String if the type of the custom attribute is Text'
oneOf:
- type: array
items:
type: string
- type: string
BulkPatchEndUserInput:
title: BulkPatchEndUserInput
type: object
required:
- id
properties:
id:
type: string
format: uuid
displayName:
type: string
email:
type: string
phoneNumber:
type: string
additionalEmails:
type: array
uniqueItems: true
items:
type: string
additionalPhoneNumbers:
type: array
uniqueItems: true
items:
type: string
firstName:
type: string
lastName:
type: string
middleNames:
type: array
items:
type: string
avatarUrl:
type: string
externalId:
type: string
InvalidArgument:
title: InvalidArgument
type: object
required:
- message
properties:
message:
type: string
BulkActionOutcome_BulkError_EndUser:
title: BulkActionOutcome_BulkError_EndUser
oneOf:
- $ref: '#/components/schemas/BulkActionFailure_BulkError_EndUser'
- $ref: '#/components/schemas/BulkActionSuccess_BulkError_EndUser'
WhatsAppConversation:
title: WhatsAppConversation
type: object
required:
- id
- requesterId
- channel
- createdAt
properties:
id:
type: integer
format: int64
requesterId:
type: string
format: uuid
channel:
description: 'values: [WhatsApp, Voicemail, WidgetChat, FacebookMessenger, Twitter, Email, ContactForm, Callback, PstnPhone, Sms, Messenger]'
type: string
createdAt:
type: string
format: date-time
direction:
description: 'values: [Inbound, Internal, Outbound]'
type: string
state:
description: 'values: [AwaitingPending, Closed, Open, Pending]'
type: string
stateUpdatedAt:
type: string
format: date-time
assignment:
$ref: '#/components/schemas/Assignment'
queue:
$ref: '#/components/schemas/Queue'
link:
$ref: '#/components/schemas/ConversationLink'
customAttributes:
type: array
items:
$ref: '#/components/schemas/CustomAttribute'
transportExpiresAt:
type: string
format: date-time
ConversationLink:
title: ConversationLink
oneOf:
- $ref: '#/components/schemas/EmailForward'
- $ref: '#/components/schemas/FollowUp'
- $ref: '#/components/schemas/SideConversation'
FacebookMessengerConversation:
title: FacebookMessengerConversation
type: object
required:
- id
- requesterId
- channel
- createdAt
properties:
id:
type: integer
format: int64
requesterId:
type: string
format: uuid
channel:
description: 'values: [WhatsApp, Voicemail, WidgetChat, FacebookMessenger, Twitter, Email, ContactForm, Callback, PstnPhone, Sms, Messenger]'
type: string
createdAt:
type: string
format: date-time
direction:
description: 'values: [Inbound, Internal, Outbound]'
type: string
state:
description: 'values: [AwaitingPending, Closed, Open, Pending]'
type: string
stateUpdatedAt:
type: string
format: date-time
assignment:
$ref: '#/components/schemas/Assignment'
queue:
$ref: '#/components/schemas/Queue'
link:
$ref: '#/components/schemas/ConversationLink'
customAttributes:
type: array
items:
$ref: '#/components/schemas/CustomAttribute'
transportExpiresAt:
type: string
format: date-time
BulkActionSuccess_BulkError_EndUser:
title: BulkActionSuccess_BulkError_EndUser
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/EndUser'
Unauthorized:
title: Unauthorized
type: object
required:
- message
properties:
message:
type: string
UpdateEndUserInput:
title: UpdateEndUserInput
type: object
required:
- displayName
properties:
displayName:
type: string
email:
type: string
phoneNumber:
type: string
additionalEmails:
type: array
uniqueItems: true
items:
type: string
additionalPhoneNumbers:
type: array
uniqueItems: true
items:
type: string
firstName:
type: string
lastName:
type: string
middleNames:
type: array
items:
type: string
avatarUrl:
type: string
externalId:
type: string
UnknownAnonymizationType:
title: UnknownAnonymizationType
type: object
CustomAttribute:
title: CustomAttribute
type: object
required:
- id
- name
- identifier
- value
properties:
id:
type: string
format: uuid
name:
type: string
identifier:
type: string
value:
description: 'AttributeValue values: String[] if the type of the custom attribute is Select or String if the type of the custom attribute is Text'
oneOf:
- type: array
items:
type: string
- type: string
UpdateEndUserOutput:
title: UpdateEndUserOutput
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/EndUser'
CreateEndUsersInput:
title: CreateEndUsersInput
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/CreateEndUserInput'
BulkUpdateEndUsersOutput:
title: BulkUpdateEndUsersOutput
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/BulkActionOutcome_BulkError_EndUser'
BulkError:
title: BulkError
oneOf:
- $ref: '#/components/schemas/EmptyPatchSet'
- $ref: '#/components/schemas/ErrorResponse'
- $ref: '#/components/schemas/Infrastructure'
- $ref: '#/components/schemas/Integrity'
- $ref: '#/components/schemas/InvalidArgument'
- $ref: '#/components/schemas/NotFound1'
- $ref: '#/components/schemas/Validation'
EndUser:
title: EndUser
type: object
required:
- id
- createdAt
properties:
id:
description: Unique identifier for the contact
type: string
format: uuid
createdAt:
description: Time when the contact was created
type: string
format: date-time
displayName:
description: The contact's display name
type: string
email:
description: The contact's primary email address
type: string
phoneNumber:
description: The contact's primary phone number
type: string
additionalEmails:
description: Additional email addresses for the contact
type: array
uniqueItems: true
items:
type: string
additionalPhoneNumbers:
description: Additional phone numbers for the contact
type: array
uniqueItems: true
items:
type: string
firstName:
description: The contact's first name
type: string
lastName:
description: The contact's last name
type: string
middleNames:
description: The contact's middle names
type: array
items:
type: string
avatarUrl:
description: The url from which to load the contact's avatar
type: string
externalId:
description: Custom external identifier for the contact
type: string
customAttributes:
description: Custom attributes for the contact
type: array
items:
$ref: '#/components/schemas/CustomAttribute'
BulkPatchEndUsersOutput:
title: BulkPatchEndUsersOutput
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/BulkActionOutcome_BulkError_EndUser'
MessageAnonymizationType:
title: MessageAnonymizationType
type: object
ContactFormConversation:
title: ContactFormConversation
type: object
required:
- id
- requesterId
- channel
- createdAt
- fromEmail
properties:
id:
type: integer
format: int64
requesterId:
type: string
format: uuid
channel:
description: 'values: [WhatsApp, Voicemail, WidgetChat, FacebookMessenger, Twitter, Email, ContactForm, Callback, PstnPhone, Sms, Messenger]'
type: string
createdAt:
type: string
format: date-time
direction:
description: 'values: [Inbound, Internal, Outbound]'
type: string
state:
description: 'values: [AwaitingPending, Closed, Open, Pending]'
type: string
stateUpdatedAt:
type: string
format: date-time
assignment:
$ref: '#/components/schemas/Assignment'
queue:
$ref: '#/components/schemas/Queue'
fromEmail:
type: string
toEmail:
type: string
integrationEmail:
type: string
language:
type: string
subject:
type: string
link:
$ref: '#/components/schemas/ConversationLink'
customAttributes:
type: array
items:
$ref: '#/components/schemas/CustomAttribute'
transportExpiresAt:
type: string
format: date-time
NotFound1:
title: NotFound
type: object
required:
- id
- message
properties:
id:
type: string
message:
type: string
Assignment:
title: Assignment
type: object
required:
- agentId
- assignedAt
properties:
agentId:
type: string
format: uuid
assignedAt:
type: string
format: date-time
AnonymizedConversation:
title: AnonymizedConversation
type: object
required:
- id
- requesterId
- channel
- createdAt
- anonymizedAt
properties:
id:
type: integer
format: int64
requesterId:
type: string
format: uuid
channel:
description: 'values: [WhatsApp, Voicemail, WidgetChat, FacebookMessenger, Twitter, Email, ContactForm, Callback, PstnPhone, Sms, Messenger]'
type: string
createdAt:
type: string
format: date-time
direction:
description: 'values: [Inbound, Internal, Outbound]'
type: string
state:
description: 'values: [AwaitingPending, Closed, Open, Pending]'
type: string
stateUpdatedAt:
type: string
format: date-time
anonymizedAt:
type: string
format: date-time
link:
$ref: '#/components/schemas/ConversationLink'
customAttributes:
type: array
items:
$ref: '#/components/schemas/CustomAttribute'
transportExpiresAt:
type: string
format: date-time
CreateEndUserOutput:
title: CreateEndUserOutput
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/EndUser'
EmptyPatchSet:
title: EmptyPatchSet
type: object
required:
- id
- message
properties:
id:
type: string
message:
type: string
securitySchemes:
ApiKeyAuth:
type: apiKey
name: Authorization
in: header