Making Random Connections Within a Community

My community is currently on Slack, but I’m very interested in migrating to a new platform. One of the apps I loved most in the Slack ecosystem is Donut, which we used to randomly match people in the community together to build relationships.

Once a month we would post, “Enter the #donut-pals channel to be randomly matched with another member!” People would then enter and Donut would do the rest. The brilliance was greater connection and trust across the community.

If we move to Discourse, I don’t see an easy way to recreate this type of random connections experience. Any ideas? or online team generators that can generate matches automatically and then email the people who’ve been matched together?


Very interesting idea for a plugin, reminds me a bit of the “icebreaker topic” plugin idea @sam


What was the “icebreaker topic” plugin? I tried searching for it and had no luck.

It’s not actually a plugin that exists here on Discourse.


We implemented a similar system (on a different platform) for a slightly more formal purpose; each person in the company had a ‘steward’, which was basically someone who you could meet up with on a regular-ish basis to discuss any troubles you had, someone who would accompany you through any conflict resolution you might need, and generally be a ‘buddy’, so that everyone could feel supported in their work (and personal life, if they needed it). It was slightly different from this use case in that it was uni-directional (ie, I was a steward for someone and someone else was a steward for me, resulting in a ‘circle’ or ‘web’ rather than pairs)

A possible first implementation for this plugin might look like this:

  • Allow the admin to specify the following
    • A target group (such as trust_level_0, or employees)
    • A time interval (something like 1 month might be good)
    • An array of prompts (something like ‘Hey, maybe the two of you should get coffee?’… but more interesting, heh.)
  • Add a job which is scheduled to run once per interval specified
    • Divide the target group into pairs (maybe there’s a triple)
    • Have Discobot send a randomly selected prompt to each pair of people
    • Repeat next week/month/etc

Past-MVP improvements:

  • Weight more heavily potential matches a) between people who have not matched before, and b) between people who have been around longer and people who have been around shorter. Possibly there are other criteria to generate more consistently good matches.
  • Allow users to specify a custom field which would give some brief introduction / icebreaker about themselves to feed to Discobot. So instead of getting “This is Barb, she works at your company!” you get “This is Barb, she speaks Farsi fluently!”
  • Utilize the events plugin, or alternatively some other service like Calendly [or Loomio (>.>)] to kick off the process of scheduling a meeting. You could also maybe tie this in with the policy plugin for a ‘Yep, we did it this week’ kind of check-in.
  • Allow users or admins to create an ‘Undonut’ list; or a list of people a user doesn’t need to be matched with (like, their spouse, or their pair, or their best friend or whatever)

For those following this topic, the ridiculously awesome @gdpelican created the Mingle plug-in to do just this! Continue the conversation here.