Nachrichten
Direkte Kommunikation zwischen Objektbenutzern mit Dateien und Antworten.
Überblick
Das Nachrichtenmodul bietet ein sicheres Nachrichtensystem zwischen Objektbenutzern (Eigentümern, Mietern und ihren Vertretern). Benutzer können Direktnachrichten senden, Dateien anhängen und auf frühere Nachrichten im Telegram-Stil antworten.
Direktnachrichten
Senden Sie private Eins-zu-Eins-Nachrichten zwischen Objektbenutzern. Nachrichten sind nur für Absender und Empfänger sichtbar.
Dateianhänge
Hängen Sie bis zu 10 Dateien pro Nachricht an (Bilder, Dokumente, Archive). Maximal 10 MB pro Datei.
Antworten auf Nachrichten
Antworten Sie auf bestimmte Nachrichten mit visueller Verknüpfung zum Original, wie bei Telegram.
Einfügen aus Zwischenablage
Fügen Sie Bilder direkt aus der Zwischenablage ein (Strg+V) für schnelles Anhängen von Screenshots.
Benachrichtigungen
Globales Badge zeigt die Anzahl ungelesener Nachrichten. Dropdown-Menü zeigt die neuesten Nachrichten.
E-Mail-Benachrichtigungen
Erhalten Sie E-Mail-Benachrichtigungen über neue Nachrichten, wenn Sie nicht auf der Website sind.
Dateitypen
Folgende Dateiformate werden unterstützt:
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
- Maximale Dateigröße: 10 MB
- Maximale Dateien pro Nachricht: 10
- Maximale Nachrichtenlänge: 1000 Zeichen
Dateispeicherung
Dateien werden auf sicherem S3-Cloud-Speicher unter folgendem Pfad gespeichert:
messages_chat/{message_id}/{file_hash}.{extension}
Dateien sind nur für Chat-Teilnehmer über sichere Links verfügbar.
Wie es funktioniert
Der Nachrichtenaustauschprozess besteht aus folgenden Schritten:
Empfänger auswählen
Wählen Sie einen Objektbenutzer aus der Kontaktliste, um einen Chat zu beginnen.
Nachricht schreiben
Geben Sie den Nachrichtentext ein und hängen Sie bei Bedarf Dateien an oder fügen Sie Bilder aus der Zwischenablage ein.
Senden
Klicken Sie auf Senden. Die Nachricht wird sofort zugestellt und der Empfänger erhält eine E-Mail-Benachrichtigung.
Antwort erhalten
Empfangen Sie Antworten in Echtzeit. Die Seite aktualisiert sich automatisch alle 30 Sekunden.
Zugriffsrechte
Der Zugriff auf Nachrichten wird durch folgende Regeln geregelt:
| Aktion | Wer kann |
|---|---|
| Nachricht senden | Jeder Objektbenutzer |
| Nachrichten anzeigen | Nur Absender und Empfänger |
| Dateien anhängen | Jeder Objektbenutzer |
| Bearbeiten / Löschen | Für alle Benutzer verboten |
REST API
REST API ermöglicht die Integration des Nachrichtensystems mit Ihren Anwendungen. Verwenden Sie die untenstehenden Endpunkte zum Abrufen und Senden von Nachrichten.
Service-Layer-Hinweis
GET /api/v1/messages/unread-count - Anzahl ungelesener Nachrichten abrufen
GET /api/v1/messages/recent - Neueste Nachrichten abrufen
GET /api/v1/properties/{id}/messages - Nachrichtenliste
POST /api/v1/properties/{id}/messages - Nachricht erstellen
GET /api/v1/properties/{id}/messages/{mid} - Nachrichtendetails abrufen
POST /api/v1/properties/{id}/messages/{mid}/read - Nachricht als gelesen markieren
GET /api/v1/properties/{id}/messages/unread-count - Ungelesene Nachrichten für Objekt abrufen
Beispiel zum Erstellen einer Nachricht
Um eine Nachricht zu erstellen, senden Sie eine POST-Anfrage mit einem JSON-Body, der die Empfänger-ID und den Nachrichtentext enthält.
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
Beispielantwort
{
"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
Vollständige API-Dokumentation ist in Swagger verfügbar /api/v1/doc