Повідомлення
Пряме спілкування між користувачами об'єкта з файлами та відповідями.
Огляд
Модуль повідомлень забезпечує захищену систему обміну повідомленнями між користувачами об'єкта (власниками, орендарями та їх агентами). Користувачі можуть надсилати прямі повідомлення, прикріплювати файли та відповідати на попередні повідомлення в стилі Telegram.
Прямі повідомлення
Надсилайте приватні повідомлення один на один між користувачами об'єкта. Повідомлення видно тільки відправнику та отримувачу.
Прикріплення файлів
Прикріплюйте до 10 файлів на повідомлення (зображення, документи, архіви). Максимум 10 МБ на файл.
Відповіді на повідомлення
Відповідайте на конкретні повідомлення з візуальним посиланням на оригінал, як у Telegram.
Вставка з буфера
Вставляйте зображення прямо з буфера обміну (Ctrl+V) для швидкого прикріплення скріншотів.
Сповіщення
Глобальний бейдж показує кількість непрочитаних. Випадаюче меню відображає останні повідомлення.
Email-сповіщення
Отримуйте email-сповіщення про нові повідомлення, коли ви не на сайті.
Типи файлів
Підтримуються наступні формати файлів:
JPG, JPEG, PNG, GIF, WebP, BMP, SVG
PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, ODT, ODS, ODP, TXT, RTF, CSV
ZIP, RAR, 7Z, TAR, GZ
- Максимальний розмір файлу: 10 МБ
- Максимум файлів на повідомлення: 10
- Максимальна довжина повідомлення: 1000 символів
Зберігання файлів
Файли зберігаються на захищеному хмарному сховищі S3 за наступним шляхом:
messages_chat/{message_id}/{file_hash}.{extension}
Файли доступні тільки учасникам переписки через захищені посилання.
Як це працює
Процес обміну повідомленнями складається з наступних кроків:
Вибір отримувача
Виберіть користувача об'єкта зі списку контактів для початку переписки.
Написання повідомлення
Введіть текст повідомлення та за потреби прикріпіть файли або вставте зображення з буфера обміну.
Відправка
Натисніть кнопку відправки. Повідомлення буде доставлено миттєво, а отримувач отримає email-сповіщення.
Отримання відповіді
Отримуйте відповіді в реальному часі. Сторінка оновлюється автоматично кожні 30 секунд.
Права доступу
Доступ до повідомлень регулюється наступними правилами:
| Дія | Хто може |
|---|---|
| Відправити повідомлення | Будь-який користувач об'єкта |
| Переглядати повідомлення | Тільки відправник та отримувач |
| Прикріплювати файли | Будь-який користувач об'єкта |
| Редагувати / Видаляти | Заборонено для всіх користувачів |
REST API
REST API дозволяє інтегрувати систему повідомлень з вашими додатками. Використовуйте ендпоінти нижче для отримання та відправки повідомлень.
Примітка рівня обслуговування
GET /api/v1/messages/unread-count - Отримати кількість непрочитаних
GET /api/v1/messages/recent - Отримати останні повідомлення
GET /api/v1/properties/{id}/messages - Список повідомлень
POST /api/v1/properties/{id}/messages - Створити повідомлення
GET /api/v1/properties/{id}/messages/{mid} - Отримати деталі повідомлення
POST /api/v1/properties/{id}/messages/{mid}/read - Позначити повідомлення як прочитане
GET /api/v1/properties/{id}/messages/unread-count - Отримати непрочитані повідомлення для об'єкта
Приклад створення повідомлення
Для створення повідомлення відправте POST-запит з JSON-тілом, що містить ID отримувача та текст повідомлення.
POST /api/v1/properties/019fe131-6b2a-7c41-9d8e-3f5a2c7b1e04/messages Content-Type: multipart/form-data recipient_id: 019fe131-7a3d-7e52-8c19-4b6d3e9f2a15 message: Hello, please find the attached documents. reply_to_id: 019fe131-8b4c-7f63-9a2d-5c7e4f1a3b26 (optional) files[]: document.pdf files[]: photo.jpg
Приклад відповіді
{
"id": 456,
"message": "Hello, please find the attached documents.",
"createdAt": "2026-01-19T14:30:00+00:00",
"readAt": null,
"sender": {
"id": 8,
"name": "Owner Name",
"email": "[email protected]"
},
"recipient": {
"id": 15,
"name": "Tenant Name",
"email": "[email protected]"
},
"property": {
"id": 5,
"name": "Apartment #12"
},
"replyTo": {
"id": 123,
"publicId": "019fe131-8b4c-7f63-9a2d-5c7e4f1a3b26",
"message": "Previous message text...",
"sender": {"id": 15, "name": "Tenant Name"}
},
"hasFiles": true,
"filesCount": 2,
"files": [
{
"id": 1,
"originalName": "document.pdf",
"mimeType": "application/pdf",
"fileSize": 102400,
"fileSizeFormatted": "100 KB",
"isImage": false,
"isDocument": true,
"isArchive": false,
"url": "https://s3.example.com/messages_chat/456/abc123.pdf",
"createdAt": "2026-01-19T14:30:00+00:00"
},
{
"id": 2,
"originalName": "photo.jpg",
"mimeType": "image/jpeg",
"fileSize": 256000,
"fileSizeFormatted": "250 KB",
"isImage": true,
"isDocument": false,
"isArchive": false,
"url": "https://s3.example.com/messages_chat/456/def456.jpg",
"createdAt": "2026-01-19T14:30:00+00:00"
}
]
}
reply_to_id of a following message is filled with replyTo.publicId above — the numeric id in the response is kept only for polling (client-side last_id comparison), not for addressing.
Swagger / OpenAPI
Повна документація API доступна в Swagger /api/v1/doc