|||
-|-|-
| Riepilogo | Il Solved Reminders Plugin estende la funzionalità del Solved plugin offrendo funzionalità di promemoria aggiuntive per gli argomenti risolti.
| Link al Repository | \u003chttps://github.com/discourse/discourse-solved-reminders-plugin\u003e
| Guida all’Installazione | Come installare plugin in Discourse
\u003e
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:
- Modifica la configurazione del tuo container: Aggiungi il link al repository del plugin nel tuo file
app.ymlsotto la sezionehooks.
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/discourse-solved-reminders-plugin.git
- 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





