Plugin Promemoria Risolto

|||
-|-|-
:discourse2: | Riepilogo | Il Solved Reminders Plugin estende la funzionalità del Solved plugin offrendo funzionalità di promemoria aggiuntive per gli argomenti risolti.
:hammer_and_wrench: | Link al Repository | \u003chttps://github.com/discourse/discourse-solved-reminders-plugin\u003e
:open_book: | Guida all’Installazione | Come installare plugin in Discourse

\u003e :warning: Si noti che questo plugin è in fase di sviluppo attivo e non è ancora completamente completato.
Il Solved Reminders Plugin estende la funzionalità del Discourse Solved Plugin aggiungendo funzionalità di promemoria e notifica per gli argomenti che richiedono la chiusura. Questo plugin non solo aiuta a mantenere una gestione efficiente degli argomenti incoraggiando gli utenti a contrassegnare gli argomenti come risolti, ma coinvolge anche gli utenti attraverso messaggi di congratulazioni.

Funzionalità

  • Promemoria Automatici: Invia notifiche agli utenti, invitandoli a rivedere e contrassegnare i propri argomenti come risolti.
  • Messaggi di Coinvolgimento: Congratula gli utenti che hanno risolto con successo gli argomenti e suggerisce argomenti aggiuntivi che potrebbero aiutare a risolvere.
  • Integrazione Senza Interruzioni: Funziona in combinazione con il Discourse Solved plugin per garantire un’esperienza utente fluida.

Installazione

Per installare il Solved Reminders Plugin, segui il processo generale di installazione dei plugin descritto nella guida Discourse Meta:

  1. Modifica la configurazione del tuo container: Aggiungi il link al repository del plugin nel tuo file app.yml sotto la sezione hooks.
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/discourse-solved-reminders-plugin.git
  1. Ricostruisci il Container di Discourse: Applica il plugin ricostruendo la tua applicazione.
./launcher rebuild app

Configurazione

Dopo l’installazione, puoi perfezionare le impostazioni del plugin tramite il pannello di amministrazione di Discourse. Considera di regolare:

Utilizzo

Una volta configurato, il plugin funzionerà automaticamente in base alle impostazioni configurate dall’amministratore. Partecipa attivamente per garantire che gli argomenti raggiungano la risoluzione sollecitando gli utenti pertinenti con promemoria e messaggi.

PM inviato all’utente per ricordargli di contrassegnare un post come soluzione:

PM inviato all’utente che ha contrassegnato il post come soluzione:

Gli utenti possono disabilitare i PM per consigliare argomenti simili da contrassegnare come soluzione dalle loro preferenze:

Gli amministratori possono regolare le configurazioni secondo necessità per soddisfare le esigenze della community.

Personalizzazione del Testo del Messaggio

Il messaggio di promemoria che viene inviato agli utenti si trova nella pagina Aspetto → Testo del Sito del tuo sito sotto mark_as_solution.message.

Reporting e Analisi dei Dati

Questo plugin non aggiunge tabelle di database specifiche a Discourse, tuttavia, puoi utilizzare questo plugin in combinazione con il plugin Data Explorer per monitorare e analizzare l’efficacia dei tuoi messaggi di promemoria.

Di seguito sono riportate due query SQL di esempio di Data Explorer che potresti utilizzare con questo plugin.

Conteggio Messaggi di Promemoria Risolti

Questa query fornisce statistiche aggregate mensili sui messaggi di Solved Reminder. Essa:

  • Identifica i messaggi privati contenenti il testo “C’è stata una risposta all’argomento che hai pubblicato”
  • Raggruppa i dati per mese e calcola:
    • Numero di messaggi di promemoria inviati
    • Numero totale di utenti che hanno ricevuto questi promemoria
    • Numero di utenti che hanno letto questi promemoria
    • Percentuale di tasso di lettura (lettori/destinatari)
  • I risultati mostrano le tendenze mensili nell’attività e nell’efficacia dei messaggi di promemoria
Dettagli SQL
-- [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

Messaggi Individuali di Promemoria Risolti

Questa query fornisce dati dettagliati a livello individuale per ogni utente che ha ricevuto un messaggio di promemoria. Essa:

  • Identifica i messaggi privati contenenti il testo “C’è stata una risposta all’argomento che hai pubblicato”
  • Elenca ogni singolo destinatario con:
    • Informazioni sull’utente (ID, nome utente, nome, email)
    • Dettagli del messaggio (titolo, link)
    • Se hanno letto il messaggio (VERO/FALSO)
    • Quando lo hanno letto (se applicabile)
    • Quanti secondi hanno impiegato a visualizzarlo
  • I risultati sono ordinati per data di invio e nome utente, mostrando esattamente chi ha ricevuto e letto ciascun messaggio
Dettagli SQL
-- [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,  -- Viene visualizzato come link all'utente
  u.username,
  u.name,
  ue.email,
  r.topic_id,       -- Viene visualizzato come link all'argomento
  r.message_title,
  -- Link al messaggio (costruito manualmente per riferimento)
  '/t/' || r.message_slug || '/' || r.topic_id AS message_link,
  r.sent_at,
  -- Verifica se l'utente ha letto il messaggio
  CASE
    WHEN tu.last_read_post_number > 0 THEN TRUE
    ELSE FALSE
  END AS message_read,
  -- Quando lo hanno letto (se lo hanno fatto)
  CASE
    WHEN tu.last_read_post_number > 0 THEN tu.last_visited_at
    ELSE NULL
  END AS read_at,
  -- Tempo trascorso nella visualizzazione (in secondi)
  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
  -- Esclude il mittente (sistema/bot) dall'elenco dei destinatari
  tu.user_id != r.sender_id
ORDER BY
  r.sent_at DESC,
  u.username
15 Mi Piace

Potrebbe il PM congratulatorio indicare il titolo dell’argomento nel suo titolo? Se l’utente riceve più Soluzioni contemporaneamente, potrebbe essere fonte di confusione per l’utente se non sa a quale Soluzione si riferisce il PM.
Potrebbe esserci un’impostazione per controllare dopo quanti post verrà inviato il promemoria?

3 Mi Piace

Solo per ricontrollare due cose:

  1. Messaggia solo gli autori degli argomenti che hanno ricevuto almeno 1 risposta?
  2. Funziona insieme all’impostazione del plugin per categoria, il che significa che se vuoi disabilitarlo per alcune categorie, devi disabilitare l’interruttore del plugin per le soluzioni a livello di sito e abilitarlo invece per le categorie in cui desideri utilizzarlo?
3 Mi Piace

Gli argomenti suggeriti sono argomenti casuali irrisolti o conversazioni correlate all’argomento originale risolto? Se sono correlati, come vengono identificati?

1 Mi Piace

2 post sono stati divisi in un nuovo argomento: Come trasformare il codice sorgente in un plugin

Potrei trovare questo estremamente utile, specialmente nel nostro forum dove le persone tendono a dimenticare di contrassegnare una risposta come soluzione dopo averne ricevuta una, e poi il nostro team dovrebbe intervenire per ricordarglielo manualmente :weary:

Altre domande che ho sono:

  • Possiamo configurare chi invia il PM di promemoria, o è sempre predefinito su Discobot?
  • Possiamo anche modificare i testi dei PM se volessimo?

Grazie

1 Mi Piace

Grazie per questo plugin, molto utile!

Per quanto ne so, il notificatore di questo plugin viene eseguito solo ogni 14 giorni. Ciò significa che tutti gli argomenti che ho avviato in 14 giorni (e non contrassegnati come soluzione) genereranno un DM + un’email.

L’ho appena eseguito manualmente, 5 giorni dopo aver installato il plugin e ho ricevuto 7 DM (e email):

Questo sembra un po’ eccessivo. So di essere un po’ un caso anomalo in quanto amministratore che crea attivamente molti argomenti al momento, ma molti dei nostri utenti creano molti argomenti (evvai).

Sarebbe possibile creare un’opzione in cui questa notifica venga combinata in una sola? Quindi “Segna 7 dei tuoi post come soluzione” in 1 messaggio invece di un messaggio per thread?

4 Mi Piace