定时主题发布不会触发新主题通知

TL;DR: 似乎定时话题在发布时未向关注者触发新话题通知。用例是每天汇总一个每日站会通知话题,并在特定时间发布,同时向站会参与者发送提醒。

复现步骤:

  • 让非管理员用户关注某个特定的私密分类。
  • 确保这些没有活跃会话的用户会收到该分类中手动创建的新话题的电子邮件通知。
  • 手动在指定分类中创建一个新话题,以测试“控制情况”,即用户会收到新话题的电子邮件通知。
  • 接下来,在另一个私密分类(例如“员工”分类)中创建一个新草稿话题。(可选:编辑话题或首帖的所有者。)将话题设置为稍后发布,例如 5 分钟后。
  • 等待直到发布时间…

预期行为:

  • 由于他们关注了该特定(私密)分类,不在网站活跃的非管理员用户应同时收到两种类型话题(“常规”和定时)的电子邮件通知。

实际行为:

  • 用户仅收到在指定分类中手动创建的“常规”(非定时)话题的电子邮件通知。

相关评论:

5 个赞

我刚刚在我的本地开发站点上测试了这个问题。我的用户没有收到关于已排期发布到受保护分类(该分类正在被他们关注)的共享草稿的邮件通知。但是,用户会收到直接在受保护分类中发布的话题的邮件通知。

以测试用户身份登录后,我看到他们收到了关于从草稿分类发布的话题的“已编辑”通知。不过,“已编辑”通知不会生成邮件。

编辑:我还尝试通过点击“发布共享草稿”按钮手动发布共享草稿。这同样不会生成新话题通知或通知邮件。它只是为关注该分类的用户生成一个“已编辑”通知。

4 个赞

感谢澄清;这也与我的经验相符。我已相应更新了该话题的标题。

2 个赞

谢谢。昨天我正好有几位用户问我,帖子被编辑时是否应该收到电子邮件。现在我可以回答他们了。:slightly_smiling_face:

1 个赞

为了澄清一下,我认为在这种情况下,触发的是“编辑通知”而非“新主题通知”,导致了意外行为。

1 个赞

那是因为这确实是一次编辑,而不是一个新话题。

现有话题被编辑了,并且分类也更改了。

1 个赞

但从用户的角度来看,它确实是一个新话题。时间戳的更新也支持这一观点。(将通知视为新话题也符合一致的行为逻辑。)

我推测,用户体验的设计初衷应该是从用户的角度出发,而非开发者的角度。:wink:

只是在它从私有类别变为公共类别的意义上。它仍然不是新的,只是类别发生了变化。

由于话题是在用户视野之外准备的,普通用户对此并无固有认知,且本意是在指定时间作为“新话题”展示。事实上,据我所知,这正是定时话题的主要使用场景。

5 个赞

我们在举办首次 3December 挑战活动时已对此进行了彻底测试。当时完全依赖自动发布的主题,用户确实收到了通知。如果该功能现在不再生效,将对我们造成困扰。

1 个赞

我假设这里讨论的问题是:当草稿话题发布到其目标分类时会发生什么。发布共享草稿所应用的规则与话题重新分类时应用的规则相同,因此这两种情况都可以在这里处理。

在当前的功能下,关注某个分类的用户在共享草稿发布到其目标分类,或话题被重新分类到该关注分类时,会收到一条“编辑”通知。编辑通知不会生成电子邮件,因此用户在草稿发布时不会收到邮件通知。

我认为这是一个回归问题。关于重新分类话题的通知问题此前曾在此讨论过:https://meta.discourse.org/t/notifications-when-a-topic-is-recategorized/63079。

是创建“发布”通知还是“编辑”通知,取决于 NotifyCategoryChange 作业中调用 post_alerter.notify_post_users 时使用的 new_record 参数的值。该参数默认值为 true,但现在在该作业中被显式设置为 false。这是一个最近的变更。我可能不了解其背后是否有合理的理由。

5 个赞

我和 @downey 遇到了同样的问题。

我喜欢将话题作为定时话题加载到私密分类中,然后自动发布到公开分类。

但和你一样——即使我 @提及 一个团队——也没有人收到通知。看来重新发布不会创建通知。就像 @codinghorror 提到的,当分类更改时,它必须像编辑过的话题一样处理。

抛开技术细节不谈,有没有办法定时发布帖子,并让特定的 @提及 组(例如 @members)收到通知?

2 个赞

这似乎就是导致问题的变更,但我无法确定是什么促使了该变更:


更新:

对于急需临时解决方案的用户,我可以使用 Zapier 中的“新帖子”Discourse 操作来触发通知到团队的聊天系统,以此替代 Discourse 聊天插件。

我最终完全绕过了这个关于定时主题的 bug,改为根据一天中的时间触发“Zap”,并直接发布到目标分类。这样,API 会触发“新”事件,我就可以使用 Discourse Chat Integration 插件发送相应的通知。

也可以监视主题,然后过滤掉出现在目标分类中的“新主题”(Zapier 仍将其视为新主题)。起初我采用了这种方法,但后来选择了上述更简单的方案,以便自动化创建每日消息,从而启动我们的每日站会。

1 个赞

首先,感谢您报告此问题。

我认为我已在此提交中修复了该问题:FIX: correct notification when tag or category is added (#8801) · discourse/discourse@20e7fb1 · GitHub

基本上,我稍微改进了通知相关的逻辑。

如果用户已经查看过该帖子,则通知类型应为 edited。例如,当原作者(OP)添加了其他用户正在关注的分类或标签时,就会出现这种情况。

然而,如果用户尚未查看过该帖子,则通知类型应为“新回复”。例如,当主题位于私密分类中并设置为稍后发布时,就会出现这种情况。在这种情况下,我们修改了现有主题,但从用户的角度来看,这就像是一篇新帖子。

您能否确认这是否解决了所述问题?

8 个赞

太棒了,谢谢!我们将在未来一两天内测试并反馈结果。

3 个赞

您是否知道该通知是否应针对 仅关注首帖 的用户触发,还是针对聊天集成过滤器设置中的 仅首帖 触发?

3 个赞

我的理解是,当类别被添加时(例如将话题从私人类别移动到公共类别时触发的操作),两类用户都会收到通知。

首先,关注该特定类别的用户会收到通知,系统会根据他们是否已查看过该话题,决定将其标记为“已编辑”还是“新回复”。

接着,首帖关注者也会收到通知,但对于他们,我们使用一种不同的通知类型,称为“关注首帖”。

是否仍有问题未解决?

3 个赞