| Sintesi | Il plugin Solved Reminders estende le funzionalità del plugin Solved offrendo capacità aggiuntive di promemoria per gli argomenti risolti. | |
| Link al repository | https://github.com/discourse/discourse-solved-reminders-plugin | |
| Guida all’installazione | Come installare i plugin in Discourse |
Tieni presente che questo plugin è in fase di sviluppo attivo e non è ancora completamente completo.
Il plugin Solved Reminders estende le funzionalità del plugin Discourse Solved aggiungendo capacità 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 segnare gli argomenti come risolti, ma coinvolge anche gli utenti tramite messaggi di congratulazioni.
Funzionalità
- Promemoria automatizzati: Invia notifiche agli utenti, invitandoli a rivedere e segnare i loro argomenti come risolti.
- Messaggi di coinvolgimento: Congratula gli utenti che hanno risolto con successo gli argomenti e suggerisce ulteriori argomenti che potrebbero aiutare a risolvere.
- Integrazione perfetta: Funziona in combinazione con il plugin Discourse Solved per garantire un’esperienza utente fluida.
Installazione
Per installare il plugin Solved Reminders, segui il processo generale di installazione del plugin descritto nella guida di Discourse Meta:
- Modifica la configurazione del contenitore: Aggiungi il link del repository del plugin al tuo file
app.ymlnella sezionehooks.
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/discourse-solved-reminders-plugin.git
- Ricostruisci il contenitore Discourse: Applica il plugin ricostruendo la tua applicazione.
./launcher rebuild app
Configurazione
Dopo l’installazione, puoi affinare 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 a garantire che gli argomenti raggiungano la risoluzione invitando gli utenti pertinenti con promemoria e messaggi.
PM inviato all’utente per ricordargli di segnare un post come soluzione:
PM inviato all’utente che ha segnato il post come soluzione:
Gli utenti possono disabilitare il PM per raccomandare argomenti simili da segnare come soluzione dalle loro preferenze:
Gli amministratori possono regolare le configurazioni come necessario per soddisfare le esigenze della comunità.
Personalizzazione del testo del messaggio
Il messaggio di promemoria inviato agli utenti può essere trovato nella pagina Aspetto → Testo del sito del tuo sito sotto mark_as_solution.message.
Report 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 tracciare e analizzare l’efficacia dei tuoi messaggi di promemoria.
Di seguito sono riportati due esempi di query SQL di Data Explorer che puoi utilizzare con questo plugin.
Conteggi dei messaggi di promemoria Solved
Questa query fornisce statistiche aggregate mensili sui messaggi di promemoria Solved. 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 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 = %C'è stata una risposta all'argomento che hai pubblicato%
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 Solved
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 trascorso a visualizzarlo
- I risultati sono ordinati per data di invio e nome utente, mostrando esattamente chi ha ricevuto e letto ogni messaggio
Dettagli SQL
-- [params]
-- date :start_date = 2024-01-01
-- date :end_date = 2025-12-31
-- text :reminder_text = %C'è stata una risposta all'argomento che hai pubblicato%
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 l'hanno fatto)
CASE
WHEN tu.last_read_post_number > 0 THEN tu.last_visited_at
ELSE NULL
END AS read_at,
-- Tempo trascorso visualizzando (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
-- Escludi il mittente (sistema/bot) dalla lista dei destinatari
tu.user_id != r.sender_id
ORDER BY
r.sent_at DESC,
u.username





