Membros não recebem emails da categoria Observada

Olá. Existe uma maneira de substituir a escolha deliberada dos usuários existentes?

Tentei UserOption.update_all(default_categories_watching: <id>) e UserOption.update_all(watched_categories: <id>), mas estas não são opções de usuário…

EDIT e solução: User.all.each do |user| CategoryUser.batch_set(user, :watching, [<id>]) end

1 curtida

É possível fazer isso através do console do Rails (e também da API), mas eu consideraria cuidadosamente se você deveria ou não. Se um usuário fez deliberadamente uma escolha de Assistir ou Silenciar uma categoria (ou tag ou tópico), então ignorar essa escolha provavelmente será indesejado. Eles também podem simplesmente reverter para o que era, então você pode não ganhar nada.

3 curtidas

Obrigado pela resposta. Concordo plenamente. Embora no nosso caso, seja para resolver um problema atual que descrevi aqui: Favor activity summary posts from certain category.

A ideia é reverter a nova configuração padrão (assistir a uma determinada categoria) e, em seguida, deixar as pessoas alterá-la como desejarem.

Notei agora que o comando acima User.all.each do |user| CategoryUser.batch_set(user, :watching, [<id>]) end de alguma forma não funcionou para alterar as preferências de todos os usuários. Alguma ideia do porquê? Seria ainda melhor anexar a nova preferência de rastreamento às preferências de rastreamento de usuário existentes…

P.S. somos uma comunidade pequena e sei que apenas uma fração ainda menor teve tempo de ajustar suas preferências (;

1 curtida

Para quem não definiu especificamente uma categoria em um nível de notificação, redefinir a categoria padrão de observação e aplicá-la historicamente deve redefini-las para níveis normais.

Se os números forem pequenos, usar a interface do usuário ou a API pode ser uma aposta mais segura do que o console do Rails. De quantas pessoas estamos falando?

1 curtida

Para fins de compreensão, a categoria em questão chama-se Announcements e o seu ID é 22.

Fiz exatamente isso antes de também tentar o comando. Mas ainda assim, após ambos, em uma nova postagem em Announcements, apenas alguns usuários recebem um e-mail.
O que pode ter acontecido é que os usuários se desinscreveram das notificações por e-mail porque o e-mail digest continha apenas atividade “menor” (ou seja, nenhuma postagem de Announcements, conforme descrito no problema relacionado vinculado anteriormente).

60

1 curtida

Você tem o explorador de dados instalado? Se sim, você tem alguma consulta para ver quantos de seus usuários não têm o rastreamento e/ou a preferência de e-mail corretos?

2 curtidas

Boa ideia. Farei isso quando tiver um pouco mais de tempo!

Menos esforço imediato, um script rails para redefinir os parâmetros necessários para todos os usuários também me deixaria feliz.

1 curtida

Acho que precisamos de mais alguns detalhes antes de elaborar uma solução. A tabela category_users apenas mantém um registro dos níveis de notificação de categoria ativos, portanto, se alguém não tiver um, os dados não estarão na tabela para serem alterados através do console do Rails. (por exemplo, se eu adicionar #site-feedback à configuração de administrador default categories watching, ele adicionará um registro em category_users para cada usuário, e quando eu redefinir a configuração, ele excluirá esses registros novamente).

2 curtidas

Posso confirmar que User.all.each do |user| CategoryUser.batch_set(user, :watching, [22]) alterou as preferências de rastreamento de todos os usuários para assistir à categoria desejada (22 | Anúncios); pois esta consulta lista todos os usuários:

SELECT *
FROM category_users
WHERE category_id = '22' AND notification_level = '3'

E esta consulta lista apenas 1 usuário:

SELECT *
FROM user_options uo
WHERE uo.email_level = '2'

A pergunta agora é, por que tantos usuários não recebem um e-mail quando há uma nova postagem na categoria 22 “Anúncios” :thinking:
P.S. Eu mexo nas consultas SQL e não sei como uni-las.

Olá. Ainda não encontrei uma solução. Não consigo entender as preferências de usuário necessárias para receber e-mails de notificação de postagens para tópicos que estou observando. Alguma ideia? Obrigado!

Olá @JammyDodger

Só para constar, ainda estou investigando e tentando resolver este problema. Isolei as configurações de um de nossos usuários que tem as configurações padrão de seguir uma determinada categoria (‘Announcements’), mas que não recebe notificações por e-mail para novas postagens:

user mailing_list_mode email_digests external_links_in_new_tab enable_quoting dynamic_favicon automatically_unpin_topics digest_after_minutes auto_track_topics_after_msecs new_topic_duration_minutes last_redirected_to_top_at email_previous_replies email_in_reply_to like_notification_frequency mailing_list_mode_frequency include_tl0_in_digests notification_level_when_replying theme_key_seq allow_private_messages homepage theme_ids hide_profile_and_presence text_size_key text_size_seq email_level email_messages_level title_count_mode_key enable_defer timezone enable_allowed_pm_users dark_scheme skip_new_user_tips color_scheme default_calendar oldest_search_log_date chat_enabled only_chat_push_notifications chat_sound dismissed_channel_retention_reminder dismissed_dm_retention_reminder bookmark_auto_delete_preference ignore_channel_wide_mention chat_email_frequency enable_experimental_sidebar seen_popups chat_header_indicator_preference sidebar_link_to_filtered_list sidebar_show_count_of_new_items watched_precedence_over_muted chat_separate_sidebar_mode topics_unread_when_closed show_thread_title_prompts
JohnDoe false true true true false true 10080 240000 2880 2023-06-13T08:25:13.000Z 1 false 1 1 true 2 0 true NULL {} false 0 0 1 1 0 false Europe/Somewhere false NULL false NULL 0 NULL true NULL NULL NULL NULL 3 NULL 1 false {1,2,3,4,5} 0 false false NULL 0 true true

Eu realmente não consigo ver por que esse problema surge, porque esta é a linha do usuário quando consulto os usuários que seguem a categoria ‘Announcements’:

id category user notification_level last_seen_at
123 Announcements JohnDoe 3 NULL

Há alguma outra configuração que estou perdendo? Poderia ser que o usuário clicou em cancelar inscrição em um dos e-mails de notificação e isso alterou suas configurações de e-mail?

Obrigado!

Clicar no link “cancelar inscrição” de um e-mail de notificação leva o usuário a uma página onde ele pode alterar suas preferências de notificação. Por exemplo:

Se um usuário selecionou uma das opções “parar de seguir todos os tópicos na categoria <category_name>” ou “Não me envie nenhum e-mail do Discourse”, você verá as alterações na página de preferências dele. Ou a categoria terá sido removida da lista de categorias que ele está seguindo, ou as preferências de e-mail dele serão alteradas para que todas as configurações em sua página de e-mail sejam definidas como “nunca”.

É mais difícil ver a alteração se o usuário selecionou a opção “parar de seguir este tópico”. Nesse caso, você pode se passar pelo usuário em sua página de administrador e, em seguida, visitar o tópico para ver se o nível de notificação dele para o tópico mudou de “seguir” para “acompanhar”. Você também pode obter informações sobre o nível de notificação dele para o tópico no console Rails:

Antes de se aprofundar muito nisso, acesse a página de Logs de E-mails Ignorados do site. Você pode acessá-la na barra lateral de administração. Insira o e-mail do usuário no campo “Endereço para” na parte superior da página. Isso pode mostrar detalhes sobre o motivo pelo qual o e-mail específico não foi enviado ao usuário.

3 curtidas

Obrigado pela resposta.

Verifiquei a seção de e-mails ignorados. Existem apenas os casos “Usuário foi visto recentemente”, “Notificações da lista de e-mails desativadas para as postagens do próprio usuário” e “Excedeu bounce_score_threshold”.

Eu estava me perguntando se há alguma possibilidade de alterar as configurações para todos os usuários de uma das seguintes maneiras:

  • Alterar a configuração de todos os usuários “como se” eles tivessem acabado de se inscrever.
  • ou: Eu crio um novo usuário de teste e uso essas configurações para colá-las em todos os outros usuários existentes.

Existe a configuração do site “categorias padrão assistindo”. Se você a alterar, receberá a opção de aplicar as alterações historicamente. Selecionar essa opção atualizará as preferências de todos os usuários exceto para os usuários que configuraram explicitamente sua preferência para essa categoria em sua página de preferências. Acho que esse é o problema que você está tentando contornar. Você provavelmente poderia lidar com isso a partir do console Rails, mas eu provavelmente evitaria essa abordagem.

Você poderia simplesmente criar uma nova categoria para anúncios e adicionar essa categoria à configuração do site “categorias padrão assistindo” do seu site. Você poderia então organizar o site movendo tópicos da antiga categoria de anúncios para a nova. Se você quiser manter o nome da categoria “anúncios”, comece renomeando a categoria original “anúncios” para outra coisa. Percebo que isso é um pouco de um hack, mas é uma maneira de resolver o problema sem tocar no console Rails.

1 curtida

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.