Dixa Messages API
The Messages API from Dixa — 2 operation(s) for messages.
The Messages API from Dixa — 2 operation(s) for messages.
openapi: 3.0.3
info:
title: Dixa Agents Messages API
version: beta
servers:
- url: https://dev.dixa.io
security:
- ApiKeyAuth: []
tags:
- name: Messages
paths:
/beta/conversations/{conversationId}/messages/{messageId}/anonymize:
patch:
tags:
- Messages
summary: Anonymize message
description: Request the anonymization of a single message in a conversation.
operationId: patchConversationsConversationidMessagesMessageidAnonymize
parameters:
- name: conversationId
in: path
description: the id of the conversation in which the message belongs
required: true
schema:
type: integer
format: int64
- name: messageId
in: path
description: the id of the message to anonymize
required: true
schema:
type: string
format: uuid
responses:
'202':
description: The message's anonymization request status
content:
application/json:
schema:
$ref: '#/components/schemas/AnonymizeEntityOutput'
example:
data:
id: b165fdaa-51d6-44b0-bfcd-5f431d623fa7
entityType: MessageAnonymizationType
_type: Message
initiatedAt: 2021-12-01T12:46:36.581Z[GMT]
targetEntityId: 10749_1b9adc49-62f7-4056-a9c0-c18c1f25afdb
requestedBy: 4c7af391-b7fd-4560-9d82-b3464eef8776
'400':
description: 'Invalid value for: path parameter conversationId, Invalid value for: path parameter messageId, Invalid value extracted from request context'
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
example:
message: Invalid value in request
'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/conversations/{conversationId}/messages:
get:
tags:
- Messages
summary: List messages
description: 'Get all messages for a particular conversation by providing the conversation id. Note that messages in `ContactForm` conversations can have attributes of `"_type": "EmailAttributes"` if they are created through a webform, or `"_type": "ContactFormAttributes"` when created through a chat widget.'
operationId: getConversationsConversationidMessages
parameters:
- name: conversationId
in: path
required: true
schema:
type: integer
format: int64
responses:
'200':
description: List of messages for a conversation sorted from oldest to newest
content:
application/json:
schema:
$ref: '#/components/schemas/ListMessagesOutput'
examples:
Email messages example (Regular and TooLarge content):
value:
data:
- id: 11b95893-0514-4606-a5d8-1880172b3a55
authorId: 41646d42-edc0-493e-ac7b-814d9ff40a2e
externalId: '13244'
createdAt: 2021-12-01T12:46:36.581Z[GMT]
attributes:
emailContent:
content:
value: Hello, this is a regular email content
_type: Text
_type: Regular
from:
email: some-help@email.dixa.io
name: Help
to:
- email: someone@somecompany.com
name: Some One
cc: []
bcc: []
isAutoReply: false
inlineImages: []
attachments:
- url: https://files.dixa.io/private/something/attachment/attachment-1
prettyName: Picture
direction: Outbound
originalContentUrl:
url: https://files.dixa.io/private/something/email_original_data/a1b2c3d4
_type: EmailAttributes
- id: 12c95893-0514-4606-a5d8-1880172b3a56
authorId: 41646d42-edc0-493e-ac7b-814d9ff40a2e
externalId: '13245'
createdAt: 2021-12-01T12:47:36.581Z[GMT]
attributes:
emailContent:
file:
url: https://files.dixa.io/private/something/email_stripped_content/large-email-content
prettyName: Large Email Content
_type: TooLarge
from:
email: some-help@email.dixa.io
name: Help
to:
- email: someone@somecompany.com
name: Some One
cc:
- email: manager@somecompany.com
name: Manager
bcc:
- email: archive@somecompany.com
isAutoReply: false
inlineImages: []
attachments:
- url: https://files.dixa.io/private/something/attachment/attachment-2
prettyName: Large Document
- url: https://files.dixa.io/private/something/attachment/attachment-3
prettyName: Spreadsheet
direction: Inbound
originalContentUrl:
url: https://files.dixa.io/private/something/email_original_data/b2c3d4e5
_type: EmailAttributes
Chat message example:
value:
data:
- id: 22b95893-0514-4606-a5d8-1880172b3a56
authorId: 41646d42-edc0-493e-ac7b-814d9ff40a2e
externalId: '13245'
createdAt: 2021-12-01T12:47:36.581Z[GMT]
attributes:
content:
value: How can I help you?
_type: Text
direction: Outbound
attachments: []
isAutomated: false
_type: ChatAttributes
Contact form message example:
value:
data:
- id: 33b95893-0514-4606-a5d8-1880172b3a57
authorId: 41646d42-edc0-493e-ac7b-814d9ff40a2e
externalId: '13246'
createdAt: 2021-12-01T12:48:36.581Z[GMT]
attributes:
emailContent:
content:
value: Contact form submission
_type: Text
_type: Regular
from:
email: contact@example.com
name: Contact Form
replyDefaultToEmails:
- email: support@company.com
name: Support
to:
- email: support@company.com
name: Support
cc: []
bcc: []
isAutoReply: false
inlineImages: []
attachments: []
direction: Inbound
_type: ContactFormAttributes
Messenger form message example:
value:
data:
- id: 44b95893-0514-4606-a5d8-1880172b3a58
authorId: 41646d42-edc0-493e-ac7b-814d9ff40a2e
externalId: '13247'
createdAt: 2021-12-01T12:49:36.581Z[GMT]
attributes:
formSubmission:
values:
Interests:
- Product A
Name: John Doe
Subject: Product Inquiry
Email: john.doe@example.com
Message: I would like to know more about your services.
Preferred Contact:
- Email
direction: Inbound
content:
value: <form class=\"dixa-custom-form-submission\"><fieldset><legend class=\"dixa-custom-form-title\">Zarina's form</legend> <div class=\"dixa-custom-form-field\"><label class=\"dixa-custom-form-field-label\">Name<br/></label>\n<div class=\"dixa-custom-form-field-value\">John Doe</div></div><div class=\"dixa-custom-form-spacing\"><br/></div><div class=\"dixa-custom-form-field\"><label class=\"dixa-custom-form-field-label\">Email<br/></label>\n<div class=\"dixa-custom-form-field-value\">john.doe@example.com</div></div><div class=\"dixa-custom-form-spacing\"><br/></div><div class=\"dixa-custom-form-field\"><label class=\"dixa-custom-form-field-label\">Subject<br/></label>\n<div class=\"dixa-custom-form-field-value\">Product Inquiry</div></div><div class=\"dixa-custom-form-spacing\"><br/></div><div class=\"dixa-custom-form-field\"><label class=\"dixa-custom-form-field-label\">Interests<br/></label>\n<div class=\"dixa-custom-form-field-value\">Product B</div></div><div class=\"dixa-custom-form-spacing\"><br/></div><div class=\"dixa-custom-form-field\"><label class=\"dixa-custom-form-field-label\">Message<br/></label>\n<div class=\"dixa-custom-form-field-value\">I would like to know more about your services.</div></div><div class=\"dixa-custom-form-spacing\"><br/></div><div class=\"dixa-custom-form-field\"><label class=\"dixa-custom-form-field-label\">Preferred Contact<br/></label>\n<div class=\"dixa-custom-form-field-value\">email</div></div></fieldset></form>
_type: Html
_type: MessengerFormAttributes
Phone message example:
value:
data:
- id: 55b95893-0514-4606-a5d8-1880172b3a59
authorId: 41646d42-edc0-493e-ac7b-814d9ff40a2e
externalId: '13248'
createdAt: 2021-12-01T12:50:36.581Z[GMT]
attributes:
from: '+1234567890'
to: 987654321
direction: Outbound
duration: 120
_type: PhoneAttributes
Call recording message example:
value:
data:
- id: 66b95893-0514-4606-a5d8-1880172b3a60
authorId: 41646d42-edc0-493e-ac7b-814d9ff40a2e
externalId: '13249'
createdAt: 2021-12-01T12:51:36.581Z[GMT]
attributes:
duration: 180
recording: https://files.dixa.io/private/something/recording/call-1
_type: CallRecordingAttributes
SMS message example:
value:
data:
- id: 77b95893-0514-4606-a5d8-1880172b3a61
authorId: 41646d42-edc0-493e-ac7b-814d9ff40a2e
externalId: '13250'
createdAt: 2021-12-01T12:52:36.581Z[GMT]
attributes:
content:
value: SMS message content
_type: Text
direction: Inbound
attachments: []
_type: SmsAttributes
Facebook Messenger message example:
value:
data:
- id: 88b95893-0514-4606-a5d8-1880172b3a62
authorId: 41646d42-edc0-493e-ac7b-814d9ff40a2e
externalId: '13251'
createdAt: 2021-12-01T12:53:36.581Z[GMT]
attributes:
content:
value: Facebook Messenger message
_type: Text
direction: Inbound
attachments: []
_type: FacebookMessengerAttributes
WhatsApp message example:
value:
data:
- id: 99b95893-0514-4606-a5d8-1880172b3a63
authorId: 41646d42-edc0-493e-ac7b-814d9ff40a2e
externalId: '13252'
createdAt: 2021-12-01T12:54:36.581Z[GMT]
attributes:
content:
value: WhatsApp message
_type: Text
direction: Inbound
attachments: []
_type: WhatsAppAttributes
Generic message example:
value:
data:
- id: bbb95893-0514-4606-a5d8-1880172b3a65
authorId: 41646d42-edc0-493e-ac7b-814d9ff40a2e
externalId: '13254'
createdAt: 2021-12-01T12:56:36.581Z[GMT]
attributes:
content:
value: Generic message
_type: Text
direction: Inbound
attachments: []
_type: GenericAttributes
'400':
description: 'Invalid value for: path parameter conversationId, 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
post:
tags:
- Messages
summary: Add message
description: 'Add a message to a conversation. For inbound messages the author is assumed to be the requester of the conversation (end user). For outbound messages the author is specified using the agentId field. <br>If attachments are added to the message, they will be copied and stored in Dixa. <br> Content in outbound message is required except for Whatsapp messages. <br> Supported channels are Chat, Messenger, Contact Form, Email, Sms (outbound only), Whatsapp (outbound and Markdown only). <br><br> Supported Markdown syntax for Markdown content: bold <code>\*\*text\*\*</code>, italic <code>\*text\*</code>, bold & italic <code>\*\*\*text\*\*\*</code>, strikethrough <code>\~text\~</code>, blockquote <code> \> Quoted text. \n Message about quoted text</code>, ordered list <code>List:\n1. Item\n2. Item\n3. Item</code>, unordered list <code>List:\n\* Item\n\* Item\n\* Item</code>, inline code <code>This is \`code\`</code>. <br><br> Whatsapp channel: <br> Only one attachment is allowed per WhatsApp message. <br> Supports adding a message with attachment only (no content). <br> Supports the following file types for attachments: .jpg, .jpeg, .png, .pdf, .doc, .docx, .pptx, .xlsx'
operationId: postConversationsConversationidMessages
parameters:
- name: conversationId
in: path
required: true
schema:
type: integer
format: int64
requestBody:
description: The message to be added to a conversation
content:
application/json:
schema:
$ref: '#/components/schemas/CreateMessageInput'
examples:
General inbound example:
summary: General inbound example
value:
content:
value: I need some help!
_type: Html
attachments:
- url: http://attachment.url
prettyName: Filename
_type: Inbound
General outbound example:
summary: General outbound example
value:
content:
value: Ok, I can help you!
_type: Text
agentId: bac5a02c-15b3-44da-ae1e-ab7b9db4aa89
attachments:
- url: http://attachment.url
prettyName: Filename
cc: []
bcc: []
_type: Outbound
Whatsapp outbound:
summary: Whatsapp outbound
value:
content:
value: Hello dear **customer**! Here are *your* options:\n* New item\n* Refund\n* Restock
_type: Markdown
agentId: 359ef707-d77f-4298-a101-43da2d0c5770
attachments: []
cc: []
bcc: []
_type: Outbound
Whatsapp outbound with attachments:
summary: Whatsapp outbound with attachments
value:
content:
value: Hello dear **customer**! Here are *your* options:\n* New item\n* Refund\n* Restock
_type: Markdown
agentId: 359ef707-d77f-4298-a101-43da2d0c5770
attachments:
- url: https://file.hosting.service/file1234.jpg
cc: []
bcc: []
_type: Outbound
required: true
responses:
'200':
description: The added message
content:
application/json:
schema:
$ref: '#/components/schemas/CreateMessageOutput'
example:
data:
content:
value: An amazing message
_type: Html
direction: Outbound
authorId: bac5a02c-15b3-44da-ae1e-ab7b9db4aa89
messageId: 87bac308-e49f-4134-84cc-96b868f1e1e4
createdAt: '2021-06-09T08:18:37.284Z'
'400':
description: 'Invalid value for: path parameter conversationId, Invalid value extracted from request context, Invalid value for: body, Invalid input for Message, Failure to download attachment, Duplicate externalId, Unsupported ConversationChannel'
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
components:
schemas:
MimeType:
title: MimeType
oneOf:
- $ref: '#/components/schemas/MimeTypeImpl'
FormAttributeValue:
title: FormAttributeValue
oneOf:
- $ref: '#/components/schemas/Attachments'
- $ref: '#/components/schemas/Select'
- $ref: '#/components/schemas/Text1'
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'
WhatsAppAttributes:
title: WhatsAppAttributes
type: object
properties:
content:
$ref: '#/components/schemas/Content'
direction:
description: 'values: [Inbound, Internal, Outbound]'
type: string
attachments:
type: array
items:
$ref: '#/components/schemas/File'
GenericAttributes:
title: GenericAttributes
type: object
properties:
content:
$ref: '#/components/schemas/Content'
direction:
description: 'values: [Inbound, Internal, Outbound]'
type: string
attachments:
type: array
items:
$ref: '#/components/schemas/File'
EmailContent:
title: EmailContent
oneOf:
- $ref: '#/components/schemas/Regular'
- $ref: '#/components/schemas/TooLarge'
ChatAttributes:
title: ChatAttributes
type: object
required:
- isAutomated
properties:
content:
$ref: '#/components/schemas/Content'
direction:
description: 'values: [Inbound, Internal, Outbound]'
type: string
attachments:
type: array
items:
$ref: '#/components/schemas/File'
isAutomated:
type: boolean
ContactFormAttributes:
title: ContactFormAttributes
type: object
required:
- isAutoReply
properties:
emailContent:
$ref: '#/components/schemas/EmailContent'
from:
$ref: '#/components/schemas/EmailContact'
replyDefaultToEmails:
type: array
items:
$ref: '#/components/schemas/EmailContact'
to:
type: array
items:
$ref: '#/components/schemas/EmailContact'
cc:
type: array
items:
$ref: '#/components/schemas/EmailContact'
bcc:
type: array
items:
$ref: '#/components/schemas/EmailContact'
isAutoReply:
type: boolean
inlineImages:
type: array
items:
$ref: '#/components/schemas/File'
attachments:
type: array
items:
$ref: '#/components/schemas/File'
deliveryFailureReason:
type: string
direction:
description: 'values: [Inbound, Internal, Outbound]'
type: string
originalContentUrl:
$ref: '#/components/schemas/File'
NotFound:
title: NotFound
type: object
required:
- message
properties:
message:
type: string
Inbound:
title: Inbound
type: object
required:
- content
properties:
content:
$ref: '#/components/schemas/Content'
attachments:
type: array
items:
$ref: '#/components/schemas/File'
integrationEmail:
description: 'Internal email address registered for the integration with format: \<email-address\>@email.dixa.io'
type: string
externalId:
description: Client generated identifier for external reference
type: string
EmailAttributes:
title: EmailAttributes
type: object
required:
- from
- isAutoReply
properties:
emailContent:
$ref: '#/components/schemas/EmailContent'
from:
$ref: '#/components/schemas/EmailContact'
to:
type: array
items:
$ref: '#/components/schemas/EmailContact'
cc:
type: array
items:
$ref: '#/components/schemas/EmailContact'
bcc:
type: array
items:
$ref: '#/components/schemas/EmailContact'
isAutoReply:
type: boolean
inlineImages:
type: array
items:
$ref: '#/components/schemas/File'
attachments:
type: array
items:
$ref: '#/components/schemas/File'
deliveryFailureReason:
type: string
direction:
description: 'values: [Inbound, Internal, Outbound]'
type: string
originalContentUrl:
$ref: '#/components/schemas/File'
Outbound:
title: Outbound
type: object
required:
- agentId
properties:
content:
$ref: '#/components/schemas/Content'
agentId:
type: string
format: uuid
attachments:
type: array
items:
$ref: '#/components/schemas/File'
integrationEmail:
type: string
externalId:
type: string
cc:
type: array
items:
type: string
format: uuid
bcc:
type: array
items:
type: string
format: uuid
CreateMessageOutputData:
title: CreateMessageOutputData
type: object
required:
- direction
- authorId
properties:
content:
$ref: '#/components/schemas/Content'
direction:
description: 'values: [Inbound, Internal, Outbound]'
type: string
authorId:
type: string
format: uuid
externalId:
type: string
messageId:
type: string
format: uuid
createdAt:
type: string
Text:
title: Text
type: object
required:
- value
properties:
value:
type: string
AnonymizeEntityOutput:
title: AnonymizeEntityOutput
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/AnonymizationRequestStatus'
UserAnonymizationType:
title: UserAnonymizationType
type: object
CreateMessageInput:
title: CreateMessageInput
description: Only Outbound messages are supported for Sms and Whatsapp.
oneOf:
- $ref: '#/components/schemas/Inbound'
- $ref: '#/components/schemas/Outbound'
Select:
title: Select
type: object
properties:
value:
type: array
items:
type: string
ServerError:
title: ServerError
type: object
required:
- message
properties:
message:
type: string
CallRecordingAttributes:
title: CallRecordingAttributes
type: object
required:
- recording
properties:
duration:
type: integer
format: int32
recording:
type: string
BadRequest:
title: BadRequest
type: object
required:
- message
properties:
message:
type: string
FacebookMessengerAttributes:
title: FacebookMessengerAttributes
type: object
properties:
content:
$ref: '#/components/schemas/Content'
direction:
description: 'values: [Inbound, Internal, Outbound]'
type: string
attachments:
type: array
items:
$ref: '#/components/schemas/File'
CreateMessageOutput:
title: CreateMessageOutput
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/CreateMessageOutputData'
ConversationAnonymizationType:
title: ConversationAnonymizationType
type: object
Message:
title: Message
type: object
required:
- id
- authorId
- createdAt
- attributes
properties:
id:
type: string
format: uuid
authorId:
type: string
format: uuid
externalId:
type: string
createdAt:
type: string
format: date-time
attributes:
$ref: '#/components/schemas/Attributes'
ListMessagesOutput:
title: ListMessagesOutput
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Message'
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
Conflict:
title: Conflict
type: object
required:
- message
properties:
message:
type: string
TwitterAttributes:
title: TwitterAttributes
type: object
properties:
content:
$ref: '#/components/schemas/Content'
direction:
description: 'values: [Inbound, Internal, Outbound]'
type: string
attachments:
type: array
items:
$ref: '#/components/schemas/File'
File:
title: File
type: object
required:
- url
properties:
url:
description: url
type: string
prettyName:
type: string
Map_FormAttributeValue:
title: Map_FormAttributeValue
type: object
additionalProperties:
$ref: '#/components/schemas/FormAttributeValue'
Attachments:
title: Attachments
type: object
properties:
value:
type: array
items:
$ref: '#/components/schemas/FileMeta'
MessengerFormAttributes:
title: MessengerFormAttributes
type: object
required:
- formSubmission
properties:
formSubmission:
$ref: '#/components/schemas/FormSubmission'
direction:
description: 'values: [Inbound, Internal, Outbound]'
type: string
content:
$ref: '#/components/schemas/Content'
Regular:
title: Regular
type: object
required:
- content
properties:
content:
$ref: '#/components/schemas/Content'
FormSubmission:
title: FormSubmission
type: object
required:
- values
properties:
values:
$ref: '#/components/schemas/Map_FormAttributeValue'
EmailContact:
title: EmailContact
type: object
required:
- email
properties:
email:
type: string
name:
type: string
UnknownAnonymizationType:
title: UnknownAnonymizationType
type: object
PhoneAttributes:
title: PhoneAttributes
type: object
required:
- from
- to
properties:
from:
type: string
to:
type: string
direction:
description: 'values: [Inbound, Internal, Outbound]'
type: string
duration:
type: integer
format: int32
SmsAttributes:
title: SmsAttributes
type: object
properties:
content:
$ref: '#/components/schemas/Content'
direction:
description: 'values: [Inbound, Internal, Outbound]'
type: string
attachments:
type: array
item
# --- truncated at 32 KB (34 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/dixa/refs/heads/main/openapi/dixa-messages-api-openapi.yml