...
- chatSessionStarted - Оператору пришла новая сессия чата (при этом не факт, что оператору, может быть просто в помощь)
- operatorNotFound - Сессия не нашла оператора и упала в помощь
- chatSessionAdded - Сессия пришла оператору
- chatMessageCreated - Оператору пришло новое сообщение в чате
- chatMessageEdited - Кто-то из операторов изменил сообщение в чате
- chatMessageRead - Оператору пришло сообщение, что клиент прочитал сообщение в чате
- chatSessionDeleted - Есть кейсы, когда сессия после отправки определенного сообщения уходит на бота - и тогда пропадает у оператора
- chatSessionSwitchedFromBotToOperator - Сессия была переключена с бота на оператора
- sessionClosedByClient - Клиент закрыл сессию
- operatorBlocked - Оператора заблокировали на платформе — требуется выкинуть оператора из кабинета
- chatUserExists - Кто-то зашел в текущего оператора. Текущий сеанс оператора нужно закрыть
- typing - пользователь печатает сообщение в чате
- operatorLoggedOut - сделать оператора офлайн
- clientOnline - клиент стал онлайн
- clientOffline - клиент стал офлайн
| Блок кода |
|---|
| language | javascript |
|---|
| title | chatSessionStarted |
|---|
| collapse | true |
|---|
|
chatSessionStarted: {
event: 'chatSessionStarted',
data: {
id: string;
chatId: string;
clientId: string | null;
name: string;
markedAsSpam: boolean;
operatorId: string | number | null;
operatorType?: string;
channel: string;
botStatus?: string | null;
status: string;
startedAt: string;
clientOnlineAt?: string | null;
clientOfflineAt?: string | null;
lastMessageCreatedAt: string | null;
lastMessage?: Unknown | null;
clientExternalId?: string | null;
clientBanned?: boolean | null;
referer?: string;
clientIp?: string | null;
coordinates?: {
city?: string | null;
latitude?: number | null;
zip_code?: string | null;
longitude?: number | null;
time_zone?: string | null;
region_name?: string | null;
country_code?: string | null;
country_name?: string | null;
} | null;
unreadClientMessageCount?: number | null;
unreadClientMessageExists?: boolean | null;
messengerType?: string | null;
whatsappPhone?: string | null;
timerFirstAnswer?: number;
timerNextAnswers?: number;
lastOperatorMessage?: Unknown | null;
firstClientMessageAfterLastOperatorMessage?: Unknown | null;
operatorAssignedAt: string | null;
previousOperator?: {
id?: string | null;
name?: string | null;
} | null;
}
} |
- operatorNotFound - Сессия не нашла оператора и упала в помощь
- chatSessionAdded - Сессия пришла оператору
- chatMessageCreated - Оператору пришло новое сообщение в чате
- chatMessageEdited - Кто-то из операторов изменил сообщение в чате
- chatMessageRead - Оператору пришло сообщение, что клиент прочитал сообщение в чате
- chatSessionDeleted - Есть кейсы, когда сессия после отправки определенного сообщения уходит на бота - и тогда пропадает у оператора
- chatSessionSwitchedFromBotToOperator - Сессия была переключена с бота на оператора
- sessionClosedByClient - Клиент закрыл сессию
- operatorBlocked - Оператора заблокировали на платформе — требуется выкинуть оператора из кабинета
- chatUserExists - Кто-то зашел в текущего оператора. Текущий сеанс оператора нужно закрыть
- typing - пользователь печатает сообщение в чате
- operatorLoggedOut - сделать оператора офлайн
- clientOnline - клиент стал онлайн
- clientOffline - клиент стал офлайн
Подробное описание данных в событиях
| Блок кода |
|---|
| language | javascript |
|---|
| title | operatorNotFound |
|---|
| collapse | true |
|---|
|
operatorNotFound: { |
...
action: 'operatorNotFound'; |
...
...
botStatus: string; // например, 'HELP' |
...
...
...
...
...
...
| Блок кода |
|---|
| language | javascript |
|---|
| title | chatSessionAdded |
|---|
| collapse | true |
|---|
|
chatSessionAdded: { |
...
action: 'chatSessionAdded'; |
...
...
...
...
...
...
...
operatorId: string | number | null; |
...
...
...
botStatus?: string | null; |
...
...
...
clientOnlineAt?: string | null; |
...
clientOfflineAt?: string | null; |
...
lastMessageCreatedAt: string | null; |
...
lastMessage?: Unknown | null; |
...
clientExternalId?: string | null; |
...
clientBanned?: boolean | null; |
...
...
clientIp?: string | null; |
...
...
...
latitude?: number | null; |
...
zip_code?: string | null; |
...
longitude?: number | null; |
...
time_zone?: string | null; |
...
region_name?: string | null; |
...
country_code?: string | null; |
...
country_name?: string | null; |
...
...
unreadClientMessageCount?: number | null; |
...
unreadClientMessageExists?: boolean | null; |
...
messengerType?: string | null; |
...
whatsappPhone?: string | null; |
...
timerFirstAnswer?: number; |
...
timerNextAnswers?: number; |
...
lastOperatorMessage?: Unknown | null; |
...
firstClientMessageAfterLastOperatorMessage?: Unknown | null; |
...
operatorAssignedAt: string | null; |
...
...
...
...
...
...
| Блок кода |
|---|
| language | javascript |
|---|
| title | chatMessageCreated |
|---|
| collapse | true |
|---|
|
chatMessageCreated: { |
...
action: 'chatMessageCreated'; |
...
...
...
...
...
...
...
authorName: string | null; |
...
type: 'REGULAR' | 'TERMINAL'; |
...
...
...
...
updatedAt?: string | null; |
...
...
deletedAt?: string | null; |
...
...
...
...
...
...
...
authorName: string | null; |
...
...
...
editedAt?: string | null; |
...
...
...
...
...
...
...
...
authorName: string | null; |
...
...
| Блок кода |
|---|
| language | javascript |
|---|
| title | chatMessageEdited |
|---|
| collapse | true |
|---|
|
chatMessageEdited: { |
...
action: 'chatMessageEdited'; |
...
...
...
...
...
...
| Блок кода |
|---|
| language | javascript |
|---|
| title | chatMessageRead |
|---|
| collapse | true |
|---|
|
chatMessageRead: { |
...
action: 'chatMessageRead'; |
...
...
...
...
| Блок кода |
|---|
| language | javascript |
|---|
| title | chatSessionDeleted |
|---|
| collapse | true |
|---|
|
chatSessionDeleted: { |
...
action: 'chatSessionDeleted'; |
...
...
...
...
| Блок кода |
|---|
| language | javascript |
|---|
| title | chatSessionSwitchedFromBotToOperator |
|---|
| collapse | true |
|---|
|
chatSessionSwitchedFromBotToOperator: { |
...
action: 'chatSessionSwitchedFromBotToOperator'; |
...
...
...
...
...
...
| Блок кода |
|---|
| language | javascript |
|---|
| title | sessionClosedByClient |
|---|
| collapse | true |
|---|
|
sessionClosedByClient: { |
...
action: 'sessionClosedByClient'; |
...
...
...
...
...
| Блок кода |
|---|
| language | javascript |
|---|
| title | operatorBlocked |
|---|
| collapse | true |
|---|
|
operatorBlocked: { |
...
action: 'operatorBlocked', |
...
...
| Блок кода |
|---|
| language | javascript |
|---|
| title | chatUserExists |
|---|
| collapse | true |
|---|
|
chatUserExists: { |
...
action: 'chatUserExists'; |
...
...
typing: {
action: 'typing',
data: Unknown,
}
...