Gelöst Reminders-Plugin

|||
-|-|-
:discourse2: | Zusammenfassung | Das Solved Reminders Plugin erweitert die Funktionalität des Solved Plugins um zusätzliche Erinnerungsfunktionen für gelöste Themen.
:hammer_and_wrench: | Repository-Link | \u003chttps://github.com/discourse/discourse-solved-reminders-plugin\u003e
:open_book: | Installationsanleitung | So installieren Sie Plugins in Discourse

\u003e :warning: Beachten Sie, dass sich dieses Plugin in aktiver Entwicklung befindet und noch nicht vollständig abgeschlossen ist.
Das Solved Reminders Plugin erweitert die Funktionalität des Discourse Solved Plugins um Erinnerungs- und Benachrichtigungsfunktionen für Themen, die eine Schließung erfordern. Dieses Plugin hilft nicht nur bei der Aufrechterhaltung einer effizienten Themenverwaltung, indem es Benutzer ermutigt, Themen als gelöst zu markieren, sondern bindet Benutzer auch durch Glückwunschbotschaften ein.

Funktionen

  • Automatisierte Erinnerungen: Sendet Benachrichtigungen an Benutzer, die sie auffordern, ihre Themen erneut zu überprüfen und als gelöst zu markieren.
  • Engagement-Nachrichten: Beglückwünscht Benutzer, die Themen erfolgreich gelöst haben, und schlägt ihnen zusätzliche Themen vor, bei denen sie helfen könnten.
  • Nahtlose Integration: Funktioniert in Verbindung mit dem Discourse Solved Plugin, um eine reibungslose Benutzererfahrung zu gewährleisten.

Installation

Um das Solved Reminders Plugin zu installieren, befolgen Sie bitte den allgemeinen Installationsprozess für Plugins, der im Discourse Meta Guide beschrieben wird:

  1. Bearbeiten Sie Ihre Container-Konfiguration: Fügen Sie den Repository-Link des Plugins in Ihre app.yml-Datei unter dem Abschnitt hooks ein.
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/discourse-solved-reminders-plugin.git
  1. Bauen Sie den Discourse-Container neu: Wenden Sie das Plugin an, indem Sie Ihre Anwendung neu erstellen.
./launcher rebuild app

Konfiguration

Nach der Installation können Sie die Plugin-Einstellungen über das Discourse-Admin-Panel feinabstimmen. Erwägen Sie die Anpassung von:

Verwendung

Nach der Konfiguration funktioniert das Plugin automatisch basierend auf den vom Administrator festgelegten Einstellungen. Es beteiligt sich aktiv daran, die Themen zur Lösung zu bringen, indem es relevante Benutzer mit Erinnerungen und Nachrichten auffordert.

PM an den Benutzer gesendet, um ihn an die Markierung eines Beitrags als Lösung zu erinnern:

PM an den Benutzer gesendet, der den Beitrag als Lösung markiert hat:

Benutzer können die PM deaktivieren, um ähnliche Themen zur Markierung als Lösung aus ihren Einstellungen zu empfehlen:

Administratoren können die Konfiguration nach Bedarf anpassen, um den Bedürfnissen der Community gerecht zu werden.

Anpassen des Nachrichtentextes

Die Erinnerungsnachricht, die an Benutzer gesendet wird, finden Sie auf der Seite “Appearance → Site Text” Ihrer Website unter mark_as_solution.message.

Berichterstattung und Datenanalyse

Dieses Plugin fügt keine spezifischen Datenbanktabellen zu Discourse hinzu. Sie können dieses Plugin jedoch in Kombination mit dem Data Explorer Plugin verwenden, um die Effektivität Ihrer Erinnerungsnachrichten zu verfolgen und zu analysieren.

Nachfolgend finden Sie zwei Beispielabfragen für den Data Explorer, die Sie mit diesem Plugin verwenden könnten.

Anzahl der Solved Reminder-Nachrichten

Diese Abfrage liefert monatliche aggregierte Statistiken über die Solved Reminder-Nachrichten. Sie:

  • Identifiziert private Nachrichten, die den Text “There has been a reply on topic you posted” enthalten.
  • Gruppiert Daten nach Monat und berechnet:
    • Anzahl der gesendeten Erinnerungsnachrichten
    • Gesamtzahl der Benutzer, die diese Erinnerungen erhalten haben
    • Anzahl der Benutzer, die diese Erinnerungen gelesen haben
    • Prozentsatz der Leserate (Leser/Empfänger)
  • Die Ergebnisse zeigen monatliche Trends bei der Aktivität und Effektivität von Erinnerungsnachrichten.
SQL Details
-- [params]
-- date :start_date = 2024-01-01
-- date :end_date = 2025-12-31
-- text :reminder_text = %There has been a reply on topic you posted%

WITH reminder_pms AS (
  SELECT
    t.id AS topic_id,
    t.created_at,
    p.id AS post_id,
    p.user_id AS sender_id,
    DATE_TRUNC('month', t.created_at) AS month
  FROM topics t
  JOIN posts p ON p.topic_id = t.id AND p.post_number = 1
  WHERE
    t.archetype = 'private_message'
    AND t.created_at BETWEEN :start_date AND :end_date
    AND p.raw LIKE :reminder_text
),

recipient_stats AS (
  SELECT
    r.topic_id,
    r.month,
    COUNT(DISTINCT tu.user_id) AS total_recipients,
    COUNT(DISTINCT CASE WHEN tu.last_read_post_number > 0 THEN tu.user_id END) AS read_recipients
  FROM reminder_pms r
  JOIN topic_users tu ON tu.topic_id = r.topic_id AND tu.user_id != r.sender_id
  GROUP BY r.topic_id, r.month
)

SELECT
  TO_CHAR(month, 'YYYY-MM') AS month,
  COUNT(DISTINCT topic_id) AS reminder_pms_sent,
  SUM(total_recipients) AS total_users_received,
  SUM(read_recipients) AS users_who_read,
  ROUND(100.0 * SUM(read_recipients) / NULLIF(SUM(total_recipients), 0), 2) AS read_rate_percentage
FROM recipient_stats
GROUP BY month
ORDER BY month

Einzelne Solved Reminder-Nachrichten

Diese Abfrage liefert detaillierte Daten auf individueller Ebene für jeden Benutzer, der eine Erinnerungsnachricht erhalten hat. Sie:

  • Identifiziert private Nachrichten, die den Text “There has been a reply on topic you posted” enthalten.
  • Listet jeden einzelnen Empfänger auf mit:
    • Benutzerinformationen (ID, Benutzername, Name, E-Mail)
    • Nachrichtendetails (Titel, Link)
    • Ob sie die Nachricht gelesen haben (WAHR/FALSCH)
    • Wann sie sie gelesen haben (falls zutreffend)
    • Wie viele Sekunden sie mit der Ansicht verbracht haben
  • Die Ergebnisse sind nach Sendedatum und Benutzername sortiert und zeigen genau an, wer jede Nachricht erhalten und gelesen hat.
SQL Details
-- [params]
-- date :start_date = 2024-01-01
-- date :end_date = 2025-12-31
-- text :reminder_text = %There has been a reply on topic you posted%

WITH reminder_pms AS (
  SELECT
    t.id AS topic_id,
    t.title AS message_title,
    t.slug AS message_slug,
    t.created_at AS sent_at,
    p.id AS post_id,
    p.user_id AS sender_id,
    p.raw AS message_content
  FROM topics t
  JOIN posts p ON p.topic_id = t.id AND p.post_number = 1
  WHERE
    t.archetype = 'private_message'
    AND t.created_at BETWEEN :start_date AND :end_date
    AND p.raw LIKE :reminder_text
)

SELECT
  u.id AS user_id,  -- Wird als Link zum Benutzer gerendert
  u.username,
  u.name,
  ue.email,
  r.topic_id,       -- Wird als Link zum Thema gerendert
  r.message_title,
  -- Link zur Nachricht (manuell erstellt als Referenz)
  '/t/' || r.message_slug || '/' || r.topic_id AS message_link,
  r.sent_at,
  -- Prüfen, ob der Benutzer die Nachricht gelesen hat
  CASE
    WHEN tu.last_read_post_number > 0 THEN TRUE
    ELSE FALSE
  END AS message_read,
  -- Wann sie sie gelesen haben (falls ja)
  CASE
    WHEN tu.last_read_post_number > 0 THEN tu.last_visited_at
    ELSE NULL
  END AS read_at,
  -- Wie viel Zeit mit der Ansicht verbracht wurde (in Sekunden)
  ROUND(tu.total_msecs_viewed / 1000.0, 1) AS time_viewed_seconds
FROM reminder_pms r
JOIN topic_users tu ON tu.topic_id = r.topic_id
JOIN users u ON u.id = tu.user_id
LEFT JOIN user_emails ue ON ue.user_id = u.id AND ue.primary = TRUE
WHERE
  -- Den Absender (System/Bot) von der Empfängerliste ausschließen
  tu.user_id != r.sender_id
ORDER BY
  r.sent_at DESC,
  u.username
15 „Gefällt mir“

Könnte der gratulierende PM den Thema-Titel in seinem Titel nennen? Wenn der Benutzer mehrere Lösungen gleichzeitig erhält, kann dies für den Benutzer verwirrend sein, wenn er nicht weiß, auf welche Lösung sich der PM bezieht.
Könnte es eine Einstellung geben, die steuert, nach wie vielen Beiträgen die Erinnerung gesendet wird?

3 „Gefällt mir“

Nur um zwei Dinge zu überprüfen:

  1. Sendet es nur Nachrichten an die Autoren von Themen, die mindestens eine Antwort erhalten haben?
  2. Funktioniert es zusammen mit der Einstellung des Per-Category-Solutions-Plugins, d. h. wenn Sie es für einige Kategorien deaktivieren möchten, müssen Sie den schaltfläche für das Site-Wide-Solutions-Plugin deaktivieren und stattdessen für die Kategorien aktivieren, in denen Sie es verwenden möchten?
3 „Gefällt mir“

Sind die vorgeschlagenen Themen zufällige ungelöste Themen oder Gespräche, die sich auf das ursprüngliche gelöste Thema beziehen? Wenn sie sich beziehen, wie werden sie identifiziert?

1 „Gefällt mir“

2 Beiträge wurden in ein neues Thema aufgeteilt: How to turn source code into a plugin

Ich kann mir vorstellen, dass dies äußerst hilfreich wäre, insbesondere in unserem Forum, in dem die Leute dazu neigen, zu vergessen, eine Antwort als Lösung zu markieren, nachdem sie eine erhalten haben, und dann müsste unser Team hineingehen und sie manuell daran erinnern :weary:

Einige andere Fragen, die ich habe, sind:

  • Können wir konfigurieren, wer die Erinnerungs-PM sendet, oder ist es immer standardmäßig Discobot?
  • Können wir auch die Texte der PMs anpassen, wenn wir wollten?

Danke

1 „Gefällt mir“

Vielen Dank für dieses Plugin, sehr hilfreich!

Soweit ich das verstanden habe, läuft der Benachrichtiger dafür nur alle 14 Tage. Das bedeutet, dass, egal wie viele Themen ich in 14 Tagen gestartet habe (und nicht als Lösung markiert habe), diese eine DM + E-Mail auslösen werden.

Ich habe es gerade manuell ausgeführt, 5 Tage nach der Installation des Plugins und habe 7 DMs (und E-Mails) erhalten:

Das scheint ein wenig übertrieben zu sein. Ich weiß, dass ich mit meiner aktiven Erstellung vieler Themen im Moment ein Ausreißer bin, aber einige unserer Benutzer erstellen viele Themen (yay).

Wäre es möglich, eine Option zu entwickeln, bei der diese Benachrichtigung zu einer einzigen zusammengefasst wird? Also “Markiere 7 deiner Beiträge als Lösung” in einer Nachricht anstelle einer Nachricht pro Thread?

4 „Gefällt mir“