@botpress/webchat-client
Version:
220 lines (219 loc) • 5.63 kB
text/typescript
export type MessageStatusChanged = {
type: 'message_status_changed'
data: {
/**
* The Message object represents a message in a [Conversation](#schema_conversation) for a specific [User](#schema_user).
*/
message: {
/**
* Id of the [Message](#schema_message)
*/
id: string
/**
* Creation date of the [Message](#schema_message) in ISO 8601 format
*/
createdAt: string
/**
* Payload is the content of the message.
*/
payload:
| {
audioUrl: string
type: 'audio'
[k: string]: any
}
| {
title: string
subtitle?: string
imageUrl?: string
actions: {
action: 'postback' | 'url' | 'say'
label: string
value: string
[k: string]: any
}[]
type: 'card'
[k: string]: any
}
| {
items: {
title: string
subtitle?: string
imageUrl?: string
actions: {
action: 'postback' | 'url' | 'say'
label: string
value: string
[k: string]: any
}[]
[k: string]: any
}[]
type: 'carousel'
[k: string]: any
}
| {
text: string
options: {
label: string
value: string
[k: string]: any
}[]
disableFreeText?: boolean
type: 'choice'
[k: string]: any
}
| {
text: string
options: {
label: string
value: string
[k: string]: any
}[]
disableFreeText?: boolean
type: 'dropdown'
[k: string]: any
}
| {
fileUrl: string
title?: string
type: 'file'
[k: string]: any
}
| {
imageUrl: string
type: 'image'
[k: string]: any
}
| {
latitude: number
longitude: number
address?: string
title?: string
type: 'location'
[k: string]: any
}
| {
text: string
value?: string
type: 'text'
[k: string]: any
}
| {
videoUrl: string
type: 'video'
[k: string]: any
}
| {
items: (
| {
type: 'text'
payload: {
text: string
value?: string
[k: string]: any
}
[k: string]: any
}
| {
type: 'markdown'
payload: {
markdown: string
[k: string]: any
}
[k: string]: any
}
| {
type: 'image'
payload: {
imageUrl: string
[k: string]: any
}
[k: string]: any
}
| {
type: 'audio'
payload: {
audioUrl: string
[k: string]: any
}
[k: string]: any
}
| {
type: 'video'
payload: {
videoUrl: string
[k: string]: any
}
[k: string]: any
}
| {
type: 'file'
payload: {
fileUrl: string
title?: string
[k: string]: any
}
[k: string]: any
}
| {
type: 'location'
payload: {
latitude: number
longitude: number
address?: string
title?: string
[k: string]: any
}
[k: string]: any
}
)[]
type: 'bloc'
[k: string]: any
}
| {
markdown: string
type: 'markdown'
[k: string]: any
}
| {
url: string
name: string
data?: any
type: 'custom'
[k: string]: any
}
/**
* ID of the [User](#schema_user)
*/
userId: string
/**
* ID of the [Conversation](#schema_conversation)
*/
conversationId: string
/**
* Metadata of the message
*/
metadata?: {
[k: string]: any
}
/**
* ID of the message this message is replying to
*/
replyTo?: string
/**
* ID of the user who selected this message. Undefined if not selected.
*/
selectedBy?: string
/**
* Feedback of the message
*/
feedback?: {
value: 'positive' | 'negative'
comment?: string
}
}
oldStatus?: 'scheduled' | 'pending' | 'processing' | 'processed' | 'failed' | 'skipped'
newStatus: 'scheduled' | 'pending' | 'processing' | 'processed' | 'failed' | 'skipped'
failureReason?: string
}
}