Модель, описывающая сообщение чата
| Название | Тип данных | Описание |
|---|---|---|
| id | String | UUID сообщения |
| chat_id | String | UUID чата |
| reply_id | String | UUID сообщения, на которое отправлен ответ |
| replay_text | String | Текст сообщения, на которое отправлен ответ |
| author_entity_type | Enum | Тип автора сообщения |
| author_entity_id | Int64 | ID автора сообщения |
| author_role | Enum | Роль автора в чате: Staff, Member или Bot (если автор является участником чата) |
| author_entity_name | String | Имя автора сообщения |
| author_entity_photo | String | Фото автора сообщения |
| message_type | Enum | Тип сообщения: Regular, System, Private |
| text | String | Текст сообщения |
| file_ids | Array of Int64 | Идентификаторы чатовых файлов (CommonFile) в папке текущего чата |
| action_code | String | Код системного действия |
| action_payload | String | Данные системного действия (JSON-строка) |
| event_id | String | Идентификатор события идемпотентности |
| external_message_id | String | Внешний ID сообщения |
| edited | Boolean | Признак, что сообщение редактировалось |
| read | Boolean | Признак прочтения сообщения текущим пользователем |
| created_date | Int64 | Дата создания (Unix time, сек.) |
| last_update | Int64 | Дата последнего изменения (Unix time, сек.) |
Для чатов, связанных с Lead/Deal/Ticket/Task, права на ChatMessage/* наследуются от связанной сущности:
Select у сущности заменяет chat_message_select, Edit у сущности дает полный доступ к сообщениям.
| Значение | Описание |
|---|---|
Regular |
Обычное сообщение |
System |
Системное сообщение |
Private |
Приватное сообщение для Staff |
action_code и action_payload заполняются только для message_type = System.
Для пользовательских сообщений (Regular/Private) эти поля равны null.
| action_code | Когда формируется | Формат action_payload (JSON) |
|---|---|---|
ParticipantJoined |
В чат добавлен участник | { "entity_type": "...", "entity_id": long, "entity_name": string, "entity_photo_url": string?, "role": "...", "role_name": string } |
ParticipantRemoved |
Участник удален из чата | { "entity_type": "...", "entity_id": long, "entity_name": string, "entity_photo_url": string?, "role": "...", "role_name": string } |
StaffNoticeAdded |
Добавлено staff-ограниченное системное сообщение через ChatMessage/Add |
{ "author_entity_type": "User/ChatBot", "author_entity_id": long, "author_name": string, "author_photo_url": string?, "text": string } |
TaskCreated |
Создана задача (task-chat) | { "task_id": long, "task_name": string, "project_id": long, "project_name": string, "responsible_user_id": long, "responsible_user_name": string, "created_by_user_id": long, "created_by_user_name": string } |
TaskEdited |
Отредактирована задача | { "task_id": long, "task_name": string, "project_id": long, "project_name": string, "updated_main_fields": bool, "updated_files": bool, "updated_extra_fields": bool } |
TaskDeleted |
Удалена задача | { "task_id": long, "task_name": string, "project_id": long, "project_name": string, "deleted_by_user_id": long, "deleted_by_user_name": string } |
TaskStatusSet |
Изменен статус задачи | { "task_id": long, "task_name": string, "project_id": long, "project_name": string, "old_status": string, "old_status_name": string, "new_status": string, "new_status_name": string } |
TaskResponsibleSet |
Изменен ответственный задачи | { "task_id": long, "task_name": string, "project_id": long, "project_name": string, "old_responsible_user_id": long, "old_responsible_user_name": string, "new_responsible_user_id": long, "new_responsible_user_name": string } |
TaskObserversSet |
Изменены наблюдатели задачи | { "task_id": long, "task_name": string, "project_id": long, "project_name": string, "replace_mode": bool, "old_observer_user_ids": long[], "old_observers": [{ "user_id": long, "user_name": string }], "new_observer_user_ids": long[], "new_observers": [{ "user_id": long, "user_name": string }] } |
LeadCreated |
Создан лид | { "id": long, "title": string, "pipeline_id": long, "pipeline_name": string, "stage_id": long, "stage_name": string, "responsible_user_id": long?, "responsible_user_name": string? } |
LeadEdited |
Изменен лид | { "id": long, "title": string, "pipeline_id": long, "pipeline_name": string, "stage_id": long, "stage_name": string, "status": string, "old_stage_id": long?, "old_stage_name": string?, "stage_changed": bool } |
LeadStageSet |
Изменена стадия лида | { "id": long, "title": string, "pipeline_id": long, "pipeline_name": string, "old_stage_id": long, "old_stage_name": string, "stage_id": long, "stage_name": string, "status": string, "status_name": string } |
LeadResponsibleSet |
Изменен ответственный лида | { "id": long, "title": string, "old_responsible_user_id": long?, "old_responsible_user_name": string?, "responsible_user_id": long, "responsible_user_name": string } |
LeadParticipantsSet |
Изменены участники лида | { "id": long, "title": string, "replace_mode": bool, "old_participant_user_ids": long[], "old_participants": [{ "user_id": long, "user_name": string }], "participant_user_ids": long[], "participants": [{ "user_id": long, "user_name": string }] } |
LeadClosed |
Лид закрыт | { "id": long, "title": string, "old_stage_id": long, "old_stage_name": string, "stage_id": long, "stage_name": string, "status": "Closed", "status_name": "Closed", "closed_by_user_id": long, "closed_by_user_name": string } |
LeadConverted |
Лид конвертирован в сделку | { "id": long, "title": string, "old_stage_id": long, "old_stage_name": string, "stage_id": long, "stage_name": string, "deal_id": long, "deal_title": string, "converted_by_user_id": long, "converted_by_user_name": string } |
DealCreated |
Создана сделка | { "id": long, "title": string, "pipeline_id": long, "pipeline_name": string, "stage_id": long, "stage_name": string, "responsible_user_id": long?, "responsible_user_name": string? } |
DealEdited |
Изменена сделка | { "id": long, "title": string, "pipeline_id": long, "pipeline_name": string, "stage_id": long, "stage_name": string, "status": string, "old_stage_id": long?, "old_stage_name": string?, "stage_changed": bool } |
DealStageSet |
Изменена стадия сделки | { "id": long, "title": string, "pipeline_id": long, "pipeline_name": string, "old_stage_id": long, "old_stage_name": string, "stage_id": long, "stage_name": string, "status": "Open/Won/Lost", "status_name": "Open/Won/Lost" } |
DealResponsibleSet |
Изменен ответственный сделки | { "id": long, "title": string, "old_responsible_user_id": long?, "old_responsible_user_name": string?, "responsible_user_id": long, "responsible_user_name": string } |
DealParticipantsSet |
Изменены участники сделки | { "id": long, "title": string, "replace_mode": bool, "old_participant_user_ids": long[], "old_participants": [{ "user_id": long, "user_name": string }], "participant_user_ids": long[], "participants": [{ "user_id": long, "user_name": string }] } |
DealClosed |
Сделка закрыта | { "id": long, "title": string, "old_stage_id": long, "old_stage_name": string, "stage_id": long, "stage_name": string, "status": "Open/Won/Lost", "status_name": "Open/Won/Lost", "closed_by_user_id": long, "closed_by_user_name": string } |
TicketCreated |
Создан тикет | { "id": long, "client_id": long, "channel_id": long, "direction": "Inbound/Outbound", "subject": string?, "status": "Open" } |
TicketEdited |
Изменен тикет | { "id": long, "direction": "Inbound/Outbound", "subject": string?, "description": string? } |
TicketResponsibleSet |
Изменен ответственный тикета | { "id": long, "old_responsible_user_id": long?, "responsible_user_id": long } |
TicketParticipantsSet |
Изменены участники тикета | { "id": long, "subject": string?, "replace_mode": bool, "old_participant_user_ids": long[], "old_participants": [{ "user_id": long, "user_name": string }], "participant_user_ids": long[], "participants": [{ "user_id": long, "user_name": string }] } |
TicketClosed |
Тикет закрыт | { "id": long, "old_status": "Open/Closed", "status": "Closed", "resolved_date": long } |