Making WordPress.org

Opened 8 years ago

Last modified 5 months ago

#2214 new enhancement

Forums: Automate Support badges

Reported by: sergeybiryukov's profile SergeyBiryukov Owned by:
Milestone: Q1 Priority: normal
Component: Support Forums Keywords:
Cc:

Description (last modified by carike)

[Update: Reverted to original proposal. Coffee2Code has started on a patch.
See https://meta.trac.wordpress.org/ticket/2214#comment:31]

From August 18th Support Team Meeting Summary:

New Automated Badge Requirements

As we discussed last week, the Support Contributor and Support Team badges will be automated based on the following criteria:

Support Contributor = [x] replies. (tentatively 400 for the English forums)

Support Team = Moderator.

Today, this was approved by unanimous vote. The automation will begin once the bbPress 2 forum launches, and the tentative number of required replies will likely be adjusted per language forum as necessary. The Support Contributor badge will be permanent, like all other Contributor badges, while the Support Team badge can be removed by being demoted back to a standard forum member.

The forums are now on bbPress 2.x, so I guess it's time to look into this task.

Change History (65)

This ticket was mentioned in Slack in #forums by sergey. View the logs.


8 years ago

#2 @macmanx
8 years ago

Just clarifying that we later settled on 400 replies for the English forums, so that's no longer tentative: https://make.wordpress.org/support/handbook/contributing-to-the-wordpress-forums/volunteering-in-the-forums/

This ticket was mentioned in Slack in #forums by sergey. View the logs.


7 years ago

#4 follow-up: @danieltj
7 years ago

Is the source code for this open or closed source? Can a non-committer take a look at this (i.e. me)?

#5 in reply to: ↑ 4 @SergeyBiryukov
7 years ago

Replying to danieltj:

Is the source code for this open or closed source? Can a non-committer take a look at this (i.e. me)?

The two key components are both open-sourced:

However, neither of them is present in the Meta Environment yet, so it might be tricky to set up a local install. I'll document my experience of creating a local Support Forums install here:

  • Prerequisites:
  • Setup:
    • Add the following constants to wp-config.php:
      define('WPORGPATH', dirname(__FILE__) . '/wp-content/wporg/' );
      
      define('WPORG_SUPPORT_FORUMS_BLOGID', 1);
      define('WPORG_PLUGIN_DIRECTORY_BLOGID', 1);
      define('WPORG_THEME_DIRECTORY_BLOGID', 1);
      
    • Copy the downloaded header.php and footer.php files to WPORGPATH directory.
    • Install WP with http://wporg.dev/support as the home URL.
    • Activate bbPress.
    • Activate the support-forums plugin and other wporg-bbp-* plugins, if needed.
    • Switch to the wporg-support theme.
    • In Reading Settings, select a static page as a front page
    • Open the front page for editing and set bbPress - Support (Index) as page template.
    • Create a few test forums, topics, and replies.

That should be it for getting the Support Forums up and running locally.

I think a solution for this ticket would look like this:

  • In wporg-profiles-association-handler, create a handler for the forums. There are two existing handlers that could be used as an example: handle_wordcamp_association() and handle_polyglots_association().
  • When creating a new reply (on bbp_new_reply action), check if the user has more than 400 replies in total, and submit a request to the association handler created on the previous step.
  • Store the result in user meta to avoid further requests to the handler.

I haven't worked with the wporg-profiles-association-handler plugin yet, but feel free to ask any questions, and we'll figure it out together :)

Version 4, edited 7 years ago by SergeyBiryukov (previous) (next) (diff)

This ticket was mentioned in Slack in #forums by macmanx. View the logs.


7 years ago

#7 @obenland
7 years ago

  • Type changed from task to enhancement

@coffee2code Do you have an idea what it would take to get this working?

This ticket was mentioned in Slack in #forums by clorith. View the logs.


7 years ago

This ticket was mentioned in Slack in #meta by sergey. View the logs.


7 years ago

#10 @jobthomas
6 years ago

We were just discussing this very topic in the WP South Africa community and noticing that it's odd that you get a badge after translating some strings, but not after quite a bit of support threads replied to. Would indeed be great to get this sorted.

#11 @tellyworth
6 years ago

  • Milestone set to Q1

#12 @dd32
6 years ago

#2873 was marked as a duplicate.

This ticket was mentioned in Slack in #forums by sergey. View the logs.


4 years ago

#14 @carike
4 years ago

Automation of forum badges have recently been discussed on Slack here:
https://wordpress.slack.com/archives/C02RQC6RW/p1595418743480300
and here:
https://wordpress.slack.com/archives/C02RQC6RW/p1595524007083800

The Forums Team currently awards two badges:

  1. Support Contributor badge;
  2. Support Team badge.

There is consensus that the Support Team badge should be awarded automatically when moderator status is awarded, either on the international forums, or on a Rosetta site.

It seems that the easiest way to do this, would be to hook on to a change in the forum role in bbPress.
This is just a concept, I still need to check the available hooks for bbPress.

add_action ( 'change_forum_role', 'consider_support_team_badge', 10, 2);

Array of eligible roles:

$eligible_support_team_badge = ("moderator", "keymaster");
$ineligible_support_team_badge = ("blocked");

by adding the following checks to the award_support_team_badge callback function:

if ( in_array ($new_role, $eligible_support_team_badge) ) {
   /* 
   *  Does a Support Team badge exist for this user?
   *  No?
   *  Award a Support Team badge. Yay!
   */
}
else if ( in_array ($new_role, $ineligible_support_team_badge) ) {
   /*
   *  Does a Support Team badge exist for this user?
   *  Yes?
   *  Remove Support Team badge.
   * /
}
else { 
   /*
   *  Does a Support Team badge exist for this user?
   *  Yes?
   *  Remove Support Team badge.
   *  Award a past-team member badge (call it something better).
   */
}

Updated per feedback on Slack:
https://wordpress.slack.com/archives/C02RQC6RW/p1595582364198300

A Support Team badge would thus be changed to a past-team badge by changing the user's role.
If the role is not changed, but the person is removed from the site instead, then their badge would remain intact.

A possible alternative would be to use the same method as for Polyglots to check if a person still has editor rights for other locales: [8385]

In terms of Support Contributor badges:

The team favours a semi-automated system.

Therefore I am proposing the following for your input:

  1. Create a new forum (closed to replies, only visible to logged-in users) under each locale, whether international or Rosetta;
  2. Each time a new post is created in bbPress, check if the user has a cumulative total of 400 or more posts for that locale;
  3. If the person has made 400 or more posts and a new topic does not exist for them yet, create a a new topic to the effect of "Congratulations! Username has replied 400 times!" Tag them in the post;
  4. During the weekly Support Team meeting on Slack, new threads can be discussed, whether on the international or Rosetta forums. This should also help to boost Rosetta attendance at these meetings;
  5. If the moderators agree that there is a compelling reason not to award a badge at that stage (such as that a user mainly replied to their own topics), or that their replies are of a low quality, the topic would remain - and they should be placed on mod-watch, or some other onboarding process to help them improve. The topic would remain open and visible to anyone who is logged in to facilitate transparency and accountability;
  6. Automatically upon archiving a topic in that forum, the system should check if the user already has a Support Contributor badge. If they do not, a badge would be automatically awarded.

This proposal would require 400 posts (this should be an aspirational, but achievable number) for a specific locale (any locale).
I believe that calculating a contribution per locale should help to reduce complexity and make it possible to implement the proposal faster.

Ideally, the code would be contained in a small MU-plugin.

Last edited 4 years ago by SergeyBiryukov (previous) (diff)

This ticket was mentioned in Slack in #forums by carike. View the logs.


4 years ago

#16 @carike
4 years ago

  • Description modified (diff)

This ticket was mentioned in Slack in #forums by carike. View the logs.


4 years ago

This ticket was mentioned in Slack in #community-team by carike. View the logs.


4 years ago

This ticket was mentioned in Slack in #forums by carike. View the logs.


4 years ago

#20 @sterndata
4 years ago

Create a new forum (closed to replies, only visible to logged-in users) under each locale, whether international or Rosetta; <<

I don't understand. Why? What does it to? I'm not in favor of creating more fora.

If the moderators agree that there is a compelling reason not to award a badge <<

That discussion should probably not be in the #forums channel as it's a public place.

#21 @macmanx
4 years ago

This is getting pretty complicated, and I'm not convinced we aren't creating more problems just to solve 1 problem, which again was simply automating the Support badges.

Additionally, the purpose of automation should be to create less manual processes, not more.

The initial proposal was very straight forward:

400 replies = Support Contributor

Moderator = Support Team

Upon reaching the 400 reply goal, the Support Contributor badge would be applied to the profile.

Upon being promoted to Moderator, the Support Team Badge would be applied to the profile.

This ticket was mentioned in Slack in #meta by carike. View the logs.


4 years ago

#23 @carike
4 years ago

This ticket was discussed during a #meta channel meeting on Slack on 29 July 2020 here:
https://wordpress.slack.com/archives/C02QB8GMM/p1596056793142700 (a Slack account is needed to view the logs).

It is recommended to start out with the initial proposal (automatically awarding a support contributor badge for 400 forum replies and automatically awarding a support team badge for moderator status) and iterate from there.

#24 @carike
4 years ago

  • Description modified (diff)

This ticket was mentioned in Slack in #forums by carike. View the logs.


4 years ago

#26 follow-up: @sterndata
4 years ago

As giving someone moderator status is a considered decision and not something overly frequent, that does not have to be automated.

This ticket was mentioned in Slack in #meta by carike. View the logs.


4 years ago

#28 in reply to: ↑ 26 @carike
4 years ago

Replying to sterndata:

As giving someone moderator status is a considered decision and not something overly frequent, that does not have to be automated.

Forum moderators for Rosetta forums are not consistently receiving their badges.
The concern here does not relate to the international forums. :coffee:

#29 @macmanx
4 years ago

Solid point! If Moderator -> Then Badge makes plenty of sense.

#30 follow-up: @sterndata
4 years ago

How many people have more than 400 replies where the last reply is less than two months ago? (There needs to be some cutoff; no point in badging someone who is not currently active in the forums.)

Let's get some idea of the scope of this.

#31 in reply to: ↑ 30 @coffee2code
4 years ago

Replying to sterndata:

How many people have more than 400 replies where...

Currently there are 1,862 users with more than 400 replies. I don't agree with the "last reply is less than two months ago" stipulation. Regardless of when they replied, if they meet the criteria for the badge then they meet it. It doesn't save us any effort to try to winnow down the complete list.

Replying to macmanx:

Upon reaching the 400 reply goal, the Support Contributor badge would be applied to the profile.
Upon being promoted to Moderator, the Support Team Badge would be applied to the profile.

I concur with this straightforward criteria. It's easier to understand and easier to implement.

As far as implementation goes, I've already written (though uncommitted) the wporg-profiles-association-handler plugin portion of the changes (which is half of what's needed as Sergey noted earlier).

The support plugin just needs to have functionality added to contact the Profiles association handler when a badge should be awarded. Roughly speaking, that means:

  • Upon publish/approval of a reply, check if it is the user's 400th reply and is so send request to Profiles association handler to assign badge.

For the team badge:

  • Upon change of role to moderator (or higher), send request to Profiles association handler to assign badge.
  • Upon change of role from moderator to something lower, send request to Profiles association handler to remove badge.

Pre-existing users who warrant either or both badges would be assigned the badges just prior to the above coming online.

All in all, not a lot to it. I'll see about coding up the support side of things and testing it out soon.

#32 @macmanx
4 years ago

Thanks!

#33 @dd32
4 years ago

  • Milestone changed from Q1 to 2020 Q1

Milestone renamed

#34 @dd32
4 years ago

  • Milestone changed from 2020 Q1 to Q1

Milestone renamed

#35 @sterndata
4 years ago

I'm looking at folks like https://wordpress.org/support/users/nm1com/ and it's convinced me that a grant of an auto-support badge (especially if the grant includes an emailed announcement of that) would encourage such folks. I'd give them props on the #forums if they had a slack account.

So, suggestion: When the badge is granted, send an email with a "Congratulations" message and an invite to the #forums channel on slack.

This ticket was mentioned in Slack in #meta by carike. View the logs.


4 years ago

This ticket was mentioned in Slack in #meta by carike. View the logs.


4 years ago

This ticket was mentioned in Slack in #polyglots by carike. View the logs.


4 years ago

This ticket was mentioned in Slack in #forums by macmanx. View the logs.


4 years ago

#40 @carike
4 years ago

:wave: @coffee2code

Is there any chance for an ETA on this? :)

#41 @carike
4 years ago

  • Description modified (diff)

This ticket was mentioned in Slack in #forums by tobifjellner. View the logs.


4 years ago

This ticket was mentioned in Slack in #meta by carike. View the logs.


4 years ago

This ticket was mentioned in Slack in #forums by vladytimy. View the logs.


4 years ago

This ticket was mentioned in Slack in #forums by yui. View the logs.


2 years ago

This ticket was mentioned in Slack in #forums by sterndata. View the logs.


2 years ago

This ticket was mentioned in Slack in #forums by vladytimy. View the logs.


21 months ago

This ticket was mentioned in Slack in #forums by mrfoxtalbot. View the logs.


21 months ago

#49 @mrfoxtalbot
21 months ago

This ticket came up during |this week's Support ticket triage session.

There seems to be quite a lot of interest (17 stars) and alignment about this proposal and it would be consistent with the way other team grant badges. For instance, it only takes to translate a single string to get the "Translation Contributor " badge.

In that sense, setting a threshold of 400 feels like a very high number. I would suggest lowering to 100 or even fewer replies.

The idea below will likely merit a different ticket but I concur with @sterndata that it would be great to send users emails to acknowledge their work and to share information with them.

Additionally, if technically viable, it would be nice to have an automated message displayed in the #forums channel when a user is granted the badge.

Last edited 20 months ago by mrfoxtalbot (previous) (diff)

This ticket was mentioned in Slack in #forums by mrfoxtalbot. View the logs.


21 months ago

This ticket was mentioned in Slack in #forums by macmanx. View the logs.


9 months ago

#52 @jordesign
9 months ago

Coming to this with fresh(ish) eyes - as this would be something really great to get nudged through.

Everything mentioned above seems pretty good. I'd summarise the proposal (post discussion to be).

  • Automate the addition of the Support Contributor badge at after 400 replies.
  • Support Team badge:
    • Upon change of role to moderator (or higher), send request to Profiles association handler to assign badge.
    • Upon change of role from moderator to something lower, send request to Profiles association handler to remove badge.

The consideration of some 'stretch' functionality:

  • An email when a user is awarded the Support Contributor badge to congratulate them, and recommend they join the #forums in Slack.
  • Emails at different milestones (first reply, 100th reply) to encourage users
  • Notifications in Slack when a user is awarded a badge.

If needed - these could be added as separate Trac tickets.

This ticket was mentioned in Slack in #forums by macmanx. View the logs.


8 months ago

#54 @sebastienserre
8 months ago

Is this Trac ticket won't be a great contribution for this year WCEU Contributors days in Torino ?
It would be a great goal to work on this !

This ticket was mentioned in Slack in #forums by macmanx. View the logs.


8 months ago

This ticket was mentioned in Slack in #forums by jordesign. View the logs.


7 months ago

#57 follow-up: @jordesign
7 months ago

In the most recent Support Team meeting(https://make.wordpress.org/support/2024/05/16th-may-support-team-meeting/) we discussed this and resolved the following guidelines for those that should be automatically awarded a Support Contributor badge:

  • User to have 200 replies on threads other than their own.
  • At least 50 of those to have been in the public, general forums
  • To include replies across main, general forums, and Rosetta Forums
  • User to have been active with replies in the last 6 months

To have badges automated based on this criteria would be a GREAT first step. @sebastienserre if you're still considering this for WCEU contributor day that would be great.

As a stretch - the following would also be useful:

  • Ability for Mods/Keymasters to exclude certain forums from being included in calculations.
  • Congratulation email and Slack message when badge is awarded.

#58 @sebastienserre
7 months ago

oops, I think I will have to setup a meta/support dev environement

This ticket was mentioned in Slack in #forums by macmanx. View the logs.


7 months ago

#60 in reply to: ↑ 57 @dd32
7 months ago

Replying to jordesign:

In the most recent Support Team meeting(https://make.wordpress.org/support/2024/05/16th-may-support-team-meeting/) we discussed this and resolved the following guidelines for those that should be automatically awarded a Support Contributor badge

Thanks!

  • At least 50 of those to have been in the public, general forums

To clarify, does this mean not-plugin/theme/reviews? OR does this mean must be in wordpress.org/support vs localised forums?

  • To include replies across main, general forums, and Rosetta Forums

This isn't super straight forward for the forums, but can be done.

Ultimately this means that we're going to have to create our own counters of replies for the purposes of this, rather than re-using the existing bbPress counters. Slightly complicating it, but not out of the question.

Ability for Mods/Keymasters to exclude certain forums from being included in calculations.

If plugins/themes/reviews are to be excluded, then just adding a checkbox for not included in badge count process makes this easy enough; with the caveat that it would only affect future replies once the feature is added.

Congratulation email and Slack message when badge is awarded.

Do you have some suggested text for this? We don't currently have any automated messages for badges. Perhaps we should consider adding that, rather than a support-specific one.

This ticket was mentioned in Slack in #forums by dd32. View the logs.


7 months ago

#62 @jordesign
6 months ago

To clarify, does this mean not-plugin/theme/reviews? OR does this mean must be in wordpress.org/support vs localised forums?

Thanks for double checking. This was to mean not the plugin/theme/reviews forums.

This isn't super straight forward for the forums, but can be done.
Ultimately this means that we're going to have to create our own counters of replies for the purposes of this, rather than re-using the existing bbPress counters. Slightly complicating it, but not out of the question.

That seems understandable. For what it is worth - a simple first pass would even be great - if extending to something like the separate counters is possible in the future. But would also understand if it makes sense to do it once 'properly' instead of in stages.

If plugins/themes/reviews are to be excluded, then just adding a checkbox for not included in badge count process makes this easy enough; with the caveat that it would only affect future replies once the feature is added.

Limiting to future replies would be totally ok :)

Do you have some suggested text for this?

I do now!

"Congratulations @username on receiving the Support Contributor badge!"

We don't currently have any automated messages for badges. Perhaps we should consider adding that, rather than a support-specific one.

That's an incredibly good point. I've just opened a separate Trac ticket for that.
https://meta.trac.wordpress.org/ticket/7651#ticket

Last edited 6 months ago by dd32 (previous) (diff)

#63 @jordesign
6 months ago

@sebastienserre - just checking in to see if you had a chance to work on this at the WCEU contributor day?

#64 @sebastienserre
6 months ago

Unfortunately not.

This ticket was mentioned in Slack in #forums by macmanx. View the logs.


5 months ago

Note: See TracTickets for help on using tickets.