Configure time of the Daily Summary

Does anyone know if it is possible, in v1.6.0.beta11 +89, to configure a time the Daily Summary is sent out?

I’ve read some replies from @jomaxro and @codinghorror considering setting a default time for the Daily Summary, but see that discussion closed on May 31st. I haven’t seen any more thought about this, but think this feature would be very useful to admins wishing to transition a Mailman news-list style service to Discourse.

I’ve spent a few weeks modifying Discourse to make it more like our current Mailman service. It comes pretty close - but knowing when the Daily Summary goes out (giving the end-user a deadline for new topics to be submitted) would enhance our ability to use it as a news-list.

4 Likes

Sure I support adding this but it would need to be a community PR.

1 Like

Thanks for the mention @pelcami! Like @codinghorror I support this addition, but unfortunately don’t have the coding skills in Ruby to make this happen. Hopefully someone else in the community can.

1 Like

Couldn’t find any recent threads with updates on this. Should I assume this is still on the “nice to have but not a current priority” list?

Thank you all for considering this for a community PR. In the meantime, we hired @mbcahyono to write a plugin with some scripting that allows us to send our digest at a specific time each day. His software resides on our git server, and we pull it into the build by adding some lines to our app.yml file. We implemented this at v1.7, but his work has not required any updates. All our servers are currently running the latest v2.0.0.beta4 +61. [Thank you @mbcahyono - you are a rock star!]

4 Likes

Would you be willing to release this code as open source so @mbcahyono can submit a PR for this feature?

Actually, it’s just a rake task + cron. I personally don’t think it’s suitable for a PR.

I wonder why you opted against using scheduled tasks here? Perhaps we need to extend it so you can opt for a “preferred start time” for daily/monthly tasks.

The only thing they cared about was they receive the digest email at their inbox at specific time (09:00AM). With that approach (rake task + cron), their email provider is the only thing I can imagine will fail them.

I follow, but:

What I wonder API wise is if core could:

https://github.com/discourse/discourse/blob/master/app/jobs/scheduled/enqueue_digest_emails.rb

class EnqueueDigestEmails < Jobs::Scheduled
   every 1.day, at: 600
   ... 
end

That feels like a far more natural way of solving this problem.

Ofcourse the tricky thing is that we schedule digest emails throughout the day now. So this all has to be very optional.

3 Likes

??? Isn’t that just… the answer to this problem?

Look up the desired digest time of day from the user record (after storing their timezone somehow) and only send if the job is in that timeslot.

Preferred Email Digest Time:
[X] No Preference
[ ] Low Forum Activity
    Digests will be sent during the night, based on past frequency throughout the day.
[ ] Time of Day
  Timezone: [ Europe/France ]
  Local time: [ 09:00 AM ]
1 Like

My understanding is that currently, every 30 minutes, we check if the user completed 7 days of inactivity and if true, we send a digest. So if I browse from 9h~5h, and take a week off, my digest will be sent after 5PM from the 7th day.

So I think the setting we really need is delay_digests_until, which will delay the digests for all users until, in my example, 9AM from the next day they became eligible for a digest.

7 Likes

We upgraded our test environment to v2.4.0.beta4 and found it broke the custom email plugin written by @mbcahyono in March 2018. We hired him to re-write it, and it is now working in v2.4.0.beta5.

1 Like