|||
-|-|-|
| Resumo | O Solved Reminders Plugin estende a funcionalidade do Solved plugin oferecendo recursos adicionais de lembrete para tópicos resolvidos.
| Link do Repositório | \u003chttps://github.com/discourse/discourse-solved-reminders-plugin\u003e
| Guia de Instalação | Como instalar plugins no Discourse
\u003e
Observe que este plugin está em desenvolvimento ativo e ainda não está totalmente completo.
O Solved Reminders Plugin estende a funcionalidade do Discourse Solved Plugin adicionando recursos de lembrete e notificação para tópicos que exigem encerramento. Este plugin não apenas ajuda a manter o gerenciamento eficiente de tópicos, incentivando os usuários a marcarem os tópicos como resolvidos, mas também engaja os usuários por meio de mensagens de parabéns.
Funcionalidades
- Lembretes Automáticos: Envia notificações aos usuários, solicitando que revisitem e marquem seus tópicos como resolvidos.
- Mensagens de Engajamento: Parabeniza os usuários que resolveram tópicos com sucesso e sugere tópicos adicionais nos quais eles podem ajudar a resolver.
- Integração Perfeita: Funciona em conjunto com o Discourse Solved plugin para garantir uma experiência de usuário tranquila.
Instalação
Para instalar o Solved Reminders Plugin, siga o processo geral de instalação de plugins descrito no guia Discourse Meta:
- Edite a configuração do seu container: Adicione o link do repositório do plugin ao seu arquivo
app.ymlna seçãohooks.
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/discourse-solved-reminders-plugin.git
- Reconstrua o Container do Discourse: Aplique o plugin reconstruindo sua aplicação.
./launcher rebuild app
Configuração
Após a instalação, você pode ajustar as configurações do plugin através do painel de administração do Discourse. Considere ajustar:
Uso
Uma vez configurado, o plugin funcionará automaticamente com base nas configurações definidas pelo administrador. Ele participa ativamente para garantir que os tópicos cheguem à resolução, solicitando aos usuários relevantes lembretes e mensagens.
PM enviado ao usuário para lembrá-lo de marcar uma postagem como solução:
PM enviado ao usuário que marcou a postagem como solução:
Os usuários podem desativar o PM para recomendar tópicos semelhantes para marcar como solução em suas preferências:
Os administradores podem ajustar as configurações conforme necessário para atender às necessidades da comunidade.
Personalizando o Texto da Mensagem
A mensagem de lembrete que é enviada aos usuários pode ser encontrada na página Aparência → Texto do Site do seu site em mark_as_solution.message.
Relatórios e Análise de Dados
Este plugin não adiciona nenhuma tabela de banco de dados específica ao Discourse, no entanto, você pode usar este plugin em combinação com o plugin Data Explorer para rastrear e analisar a eficácia de suas mensagens de lembrete.
Abaixo estão duas consultas SQL de exemplo do Data Explorer que você poderia usar com este plugin.
Contagem de Mensagens de Lembrete de Solução
Esta consulta fornece estatísticas agregadas mensais sobre as mensagens de Lembrete de Solução. Ela:
- Identifica mensagens privadas contendo o texto “Houve uma resposta em um tópico que você postou”
- Agrupa dados por mês e calcula:
- Número de mensagens de lembrete enviadas
- Número total de usuários que receberam esses lembretes
- Número de usuários que leram esses lembretes
- Porcentagem de taxa de leitura (leitores/destinatários)
- Os resultados mostram tendências mensais na atividade e eficácia das mensagens de lembrete
Detalhes SQL
-- [params]
-- date :start_date = 2024-01-01
-- date :end_date = 2025-12-31
-- text :reminder_text = %Houve uma resposta em um tópico que você postou%
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
Mensagens Individuais de Lembrete de Solução
Esta consulta fornece dados detalhados em nível individual para cada usuário que recebeu uma mensagem de lembrete. Ela:
- Identifica mensagens privadas contendo o texto “Houve uma resposta em um tópico que você postou”
- Lista cada destinatário individual com:
- Informações do usuário (ID, nome de usuário, nome, e-mail)
- Detalhes da mensagem (título, link)
- Se eles leram a mensagem (VERDADEIRO/FALSO)
- Quando eles a leram (se aplicável)
- Quantos segundos eles passaram visualizando-a
- Os resultados são ordenados por data de envio e nome de usuário, mostrando exatamente quem recebeu e leu cada mensagem
Detalhes SQL
-- [params]
-- date :start_date = 2024-01-01
-- date :end_date = 2025-12-31
-- text :reminder_text = %Houve uma resposta em um tópico que você postou%
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, -- Renderiza como link para o usuário
u.username,
u.name,
ue.email,
r.topic_id, -- Renderiza como link para o tópico
r.message_title,
-- Link para a mensagem (construído manualmente para referência)
'/t/' || r.message_slug || '/' || r.topic_id AS message_link,
r.sent_at,
-- Verifica se o usuário leu a mensagem
CASE
WHEN tu.last_read_post_number > 0 THEN TRUE
ELSE FALSE
END AS message_read,
-- Quando eles leram (se leram)
CASE
WHEN tu.last_read_post_number > 0 THEN tu.last_visited_at
ELSE NULL
END AS read_at,
-- Tempo gasto visualizando (em segundos)
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
-- Exclui o remetente (sistema/bot) da lista de destinatários
tu.user_id != r.sender_id
ORDER BY
r.sent_at DESC,
u.username





