dblock / slack-sup

Slack bot that generates fresh triads of team members to meet every week in an informal standup, or S'Up.
https://sup.playplay.io/
Other
19 stars 10 forks source link

Opt-in via channel #30

Closed dblock closed 11 months ago

dblock commented 7 years ago

This is something donut.ai does, instead of global opt-in, you join a channel and people are picked from that channel.

iozz commented 2 years ago

That's super useful on Donut.ai, it helps automatically opt in new hires for example (they join our Slack, they automatically join the channel, they are opt in for pairing).

dblock commented 2 years ago

Here's how I think it can work.

Poor Man's Version

  1. Admins DM the bot set opt #channel (currently we have set opt in (default) and set opt out), which says "use #channel to opt-in/out users.
  2. In https://github.com/dblock/slack-sup/blob/master/slack-sup/models/team.rb#L324, called from https://github.com/dblock/slack-sup/blob/master/slack-sup/models/team.rb#L219, check whether the user is a member of #channel and opt them in accordingly.

Per Channel S'Up

  1. Create a new Channel model that holds a channel ID/name and all S'Up fields currently on Team, including sup_wday or sup_size.
  2. Use #general or auto-create a #sup channel upon bot installation. Migrate all existing team-wide S'Ups into that channel.
  3. Re-wire all commands to be channel-aware.
  4. When creating/managing S'Ups, iterate through team.channels.
dblock commented 2 years ago

@iozz maybe you want to take this up? I'd be happy to help

dblock commented 1 year ago

Active rewrite that assumes 1 channel = 1 sup in https://github.com/dblock/slack-sup/tree/channel-sups that passes all specs.

dblock commented 1 year ago

@iozz Any interest in testing a new version? It would be a separate installation from the current one and can co-exist with the existing S'Up. Drop me a note to dblock at dblock dot org if you are.

dblock commented 11 months ago

This is now the default version of S'Up on https://sup2.playplay.io/