RFC: Digest Discord Bot

What are we doing?

Develop a Discord bot that listens for messages & picks important ones that are shared to a digest channel.

The digests are primarily posted into a read-only Discord channel, but could also be published to additional platforms like this forum.

This can be globally for a whole Discord server, or rather more specifically e.g. per guild in our DAO’s case. I personally would love to see one digest per guild.

Why are we doing it?

To catch-up quickly on the most important things happening in the DAO.

After being away from discord for only a week I feel very overwhelmed to catch up. I was thinking of a way to improve this, as a lot is actually happening in discord and not reflected in the forum.

While the newsletter gives us a macro level summary of what’s happening, this bot is intended to give you a micro level path to catch-up quickly.

How are we doing it?

Each message that is passing a defined threshold will be sent to the target channel. Additionally, a :star: emoji reaction can be used as a signal to the bot, similar to how it’s used by the Starboard bot.

How do we decide which message to pick-up?

I suggest a parametrized threshold of certain indicators for now. These could be number of reactions/reactors, how many replies or length of reply chain, thread creation, starred by min X users etc.

We might look into adding NLP & smart logic like a ML classifier to identify messages to include in the future.

Why real-time and not daily/weekly

Mainly to keep complexity low for now. Also because there’s no particular reason to keep important messages unshared until the next daily/weekly digest drop.

For me, a daily/weekly cadence would make sense when posting digests to this forum or send digest emails.

What do we need to create?

Finally, this is a summary of what I think needs to be created:

configuration / slash-commands:

  1. set-up a new digest by selecting source channels & a target channel
  2. list all digests
  3. edit a digest
  4. remove a digest

service:

  1. setup server & start listening for events like messageCreate, messageReactionAdd, messageUpdate etc.
  2. any message that passes a certain threshold is sent to the target channel
  3. handle the slash commands

Optional

NLP & ML Classifier

Beyond v1, I’d really like to look into adding the smart features I mentioned. Doing NLP on messages and classify them as important even before the reactions come in.

To accrue a dataset, I’d like to add the ability for anyone to vote “Not Important” on each message sent to the target channel, by just adding an :x: emoji as reaction. This is the opposite action of adding a :star: emoji reaction as discussed above.

8 Likes

An update on this: The Starboard bot is active in the Development Guild and will currently copy any messages with 3 or more :star: emoji reactions into the #:star:-starboard channel.

If this doesn’t work too well, we might revisit this bot in the future.

5 Likes

I’ve been working on creating a graphic to depict how to use Starboard and why it’s something we need to build a collective habit for. Trying to build adoption. Would love some feedback!

2 Likes

that’s perfect! Nothing to add there

It’d be cool to have a bot that automatically shares the top 3 most active forum posts to a discord channel each week.

I’m trying to get into the habit of following and participating in more discussions here, but it can be easy to forget or feel like it’s too much work to stay on top of things.

Having a bot that highlights the most active topics can encourage more participation from the community.

1 Like