Fügen Sie Kommentare zu Datensätzen (To-Dos) in Blue mit reichhaltigem Textinhalt, Dateianhängen und @Erwähnungen hinzu.


Kommentar hinzufügen

Die createComment-Mutation ermöglicht es Ihnen, Kommentare zu Datensätzen in Blue hinzuzufügen. Kommentare unterstützen reichhaltigen HTML-Inhalt, Dateianhänge, @Erwähnungen und sind automatisch in den Aktivitätsfeed und das Benachrichtigungssystem integriert.

Einfaches Beispiel

Fügen Sie einen einfachen Textkommentar zu einem Datensatz hinzu:

mutation AddComment {
  createComment(
    input: {
      html: "<p>This task is progressing well!</p>"
      text: "This task is progressing well!"
      category: TODO
      categoryId: "clm4n8qwx000008l0g4oxdqn7"
    }
  ) {
    id
    html
    text
    createdAt
    user {
      id
      name
    }
  }
}

Fortgeschrittenes Beispiel

Fügen Sie einen Kommentar mit reichhaltiger Formatierung, Bildern und TipTap-Editorverarbeitung hinzu:

mutation AddCommentAdvanced {
  createComment(
    input: {
      html: "<p>Here's my <strong>feedback</strong> on this task:</p><ul><li>Great progress on the design</li><li>Need to review the API integration</li></ul><p>Attaching screenshot:</p><img src='data:image/png;base64,iVBOR...' />"
      text: "Here's my feedback on this task: - Great progress on the design - Need to review the API integration Attaching screenshot:"
      category: TODO
      categoryId: "clm4n8qwx000008l0g4oxdqn7"
      tiptap: true
    }
  ) {
    id
    html
    text
    createdAt
    user {
      id
      name
      avatar
    }
    activity {
      id
    }
    isRead
    isSeen
  }
}

Eingabeparameter

CreateCommentInput

Parameter Typ Erforderlich Beschreibung
html String! ✅ Ja HTML-Inhalt des Kommentars (wird zur Sicherheit bereinigt)
text String! ✅ Ja Klartextversion des Kommentarinhalts
category CommentCategory! ✅ Ja Art der Entität, auf die kommentiert wird (verwenden Sie TODO für Datensätze)
categoryId String! ✅ Ja ID der Entität (Datensatz), auf die kommentiert wird
tiptap Boolean Nein Aktivieren Sie die spezifische HTML-Bereinigung und Verarbeitung für den TipTap-Editor

CommentCategory-Werte

Wert Beschreibung
TODO Kommentar zu einem Datensatz/To-Do-Element
DISCUSSION Kommentar zu einem Diskussionsstrang
STATUS_UPDATE Kommentar zu einem Statusupdate

Antwortfelder

Die Mutation gibt ein Kommentarobjekt mit umfassenden Details zurück:

Feld Typ Beschreibung
id ID! Eindeutige Kennung für den Kommentar
uid String! Alternative eindeutige Kennung
html String! HTML-Inhalt des Kommentars
text String! Klartextversion des Kommentars
category CommentCategory! Art der kommentierten Entität
createdAt DateTime! Wann der Kommentar erstellt wurde
updatedAt DateTime! Wann der Kommentar zuletzt aktualisiert wurde
deletedAt DateTime Wann der Kommentar gelöscht wurde (null, wenn aktiv)
deletedBy User Benutzer, der den Kommentar gelöscht hat
user User! Benutzer, der den Kommentar erstellt hat
activity Activity Zugehöriger Aktivitätsdatensatz
discussion Discussion Zugehörige Diskussion (wenn Kategorie DISCUSSION)
statusUpdate StatusUpdate Zugehöriges Statusupdate (wenn Kategorie STATUS_UPDATE)
todo Todo Zugehöriger Datensatz (wenn Kategorie TODO)
isRead Boolean Ob der aktuelle Benutzer diesen Kommentar gelesen hat
isSeen Boolean Ob der aktuelle Benutzer diesen Kommentar gesehen hat
aiSummary Boolean Ob dieser Kommentar von KI generiert wurde

Erforderliche Berechtigungen

Benutzer müssen über den entsprechenden Projektzugang verfügen, um Kommentare zu Datensätzen hinzuzufügen:

Zugriffslevel Kann Kommentare hinzufügen
OWNER ✅ Ja
ADMIN ✅ Ja
MEMBER ✅ Ja
CLIENT ✅ Ja
COMMENT_ONLY ✅ Ja
VIEW_ONLY ❌ Nein

Wichtig: Der Benutzer muss Mitglied des Projekts sein, das den Datensatz enthält, und darf NICHT über VIEW_ONLY Zugriffslevel verfügen.

Fehlermeldungen

UnauthorizedError

{
  "errors": [{
    "message": "You don't have permission to comment on this record",
    "extensions": {
      "code": "FORBIDDEN"
    }
  }]
}

Wann: Der Benutzer hat keine Berechtigung, um auf den angegebenen Datensatz/die Entität zu kommentieren.

ValidationError

{
  "errors": [{
    "message": "Invalid input parameters",
    "extensions": {
      "code": "BAD_USER_INPUT"
    }
  }]
}

Wann: Erforderliche Felder fehlen oder enthalten ungültige Daten.

CommentNotFoundError

{
  "errors": [{
    "message": "Record not found",
    "extensions": {
      "code": "COMMENT_NOT_FOUND"
    }
  }]
}

Wann: Der angegebene categoryId entspricht keinem vorhandenen Datensatz.

UserInputError

{
  "errors": [{
    "message": "Content validation failed",
    "extensions": {
      "code": "BAD_USER_INPUT"
    }
  }]
}

Wann: HTML-Inhalt kann nicht bereinigt werden oder enthält schädlichen Code.

Wichtige Hinweise

Inhaltsverarbeitung

  • HTML-Bereinigung: Alle HTML-Inhalte werden automatisch bereinigt, um XSS-Angriffe zu verhindern
  • Dateiextraktion: Bilder und Anhänge, die in HTML eingebettet sind, werden extrahiert und in S3 gespeichert
  • TipTap-Modus: Wenn tiptap: true, wird eine spezialisierte Bereinigung für den Inhalt des TipTap-Editors verwendet
  • @Erwähnungen: Benutzererwähnungen in Kommentaren werden automatisch verarbeitet und lösen Benachrichtigungen aus

Leistungsüberlegungen

  • Kommentare werden automatisch für die Suche indiziert
  • Große Bildanhänge werden asynchron verarbeitet
  • Jeder Kommentar erstellt einen Aktivitätsdatensatz für die Projektzeitleiste

Nebenwirkungen

Das Hinzufügen eines Kommentars löst mehrere automatisierte Prozesse aus:

  • Aktivitätscreation: Erstellt einen Aktivitätsdatensatz, der in der Projektzeitleiste sichtbar ist
  • Suchindizierung: Kommentarinhalt wird zum Projekt-Suchindex hinzugefügt
  • Benachrichtigungen: Sendet E-Mail-, Push- und In-App-Benachrichtigungen an relevante Benutzer
  • Echtzeit-Updates: Veröffentlicht den Kommentar in GraphQL-Abonnements für Live-Updates
  • Webhooks: Löst einen externen Webhook aus, wenn er für das Projekt konfiguriert ist
  • @Erwähnungsbearbeitung: Verarbeitet Benutzererwähnungen und sendet gezielte Benachrichtigungen
  • Dateiverarbeitung: Extrahiert und verarbeitet alle eingebetteten Bilder oder Dateien aus HTML-Inhalten

Inhaltssicherheit

  • Alle HTML-Inhalte werden mit branchenüblichen Bibliotheken bereinigt
  • Datei-Uploads werden auf Typ und Größe validiert
  • Schadhafter Inhalt wird automatisch entfernt
  • Benutzererstellte Inhalte werden in allen Kontexten ordnungsgemäß escaped

Integrationsfunktionen

  • Aktivitätsfeed: Kommentare erscheinen in der Projektaktivitätszeitleiste
  • Suche: Kommentarinhalt ist innerhalb des Projekts durchsuchbar
  • Benachrichtigungen: Konfigurierbare Benachrichtigungseinstellungen für verschiedene Kommentararten
  • Echtzeit: Kommentare erscheinen sofort für andere Benutzer, die denselben Datensatz anzeigen
  • Mobile Unterstützung: Kommentare werden in mobilen Anwendungen vollständig unterstützt

Verwandte Endpunkte

  • Kommentare auflisten: Abfragen von Kommentaren, um vorhandene Kommentare zu Datensätzen abzurufen
  • Kommentar aktualisieren: Ändern des Inhalts eines vorhandenen Kommentars
  • Kommentar löschen: Entfernen von Kommentaren mit entsprechender Autorisierung
  • Datensätze auflisten: Abfragen von To-Dos, um Datensätze zu finden, die kommentiert werden können

KI-Assistent

Antworten werden mit KI generiert und können Fehler enthalten.

Wie kann ich Ihnen helfen?

Fragen Sie mich alles über Blue oder diese Dokumentation.

Eingabe zum Senden • Shift+Eingabe für neue Zeile • ⌘I zum Öffnen