Reviewing Discord Permissions and Access

Secured
#1
Hi folks! I’m Kevin Casper, a community manager employed by Factom, Inc. I’ve been around this protocol community for a few months, mostly lurking and absorbing as much information as I possibly can.

I’d like to propose and push a complete review and rework of the Factom Community Discord roles, permissions, and moderation.

What’s the goal?
The Factom Community Discord was originally setup by Factom, Inc before the protocol had things like ANOs, many of its users, and much of the governance standards that have been put into place. As such, it wasn’t exactly designed up to spec to the current form, and is starting to see some backend problems relating to expansion and opportunity. I want to fix that, and make it better for the future.

For this thread, we just need to discuss perspectives and ideas. I'll follow-up with a process and project plan after more insights are gathered from all of us.

What made me bring this up?
I’ve been doing community management and enterprise-scale service management for most of my career. Starting out in a technical support role for a PC hardware company, I helped do little things like removing the best-selling product from our offering because I mapped out that it was costing the company more in servicing costs than it was pulling in profit.

That ability to see the bigger picture helped me grow into other roles, including the full design and establishment of a global social customer service system and workflow for 4 offices worldwide, covering more than 6 major market languages for a major tech manufacturer. After that, I helped optimize Microsoft’s global social media operations, including automated crowd-sourced IT alert boards for some Xbox services and multinational customer support escalation paths for many Microsoft brands.

Social scalability, particularly relating to the how and why people communicate and interact with professional intentions, is kind of my jam.

What is this not?
A hard directive on what’s happening, nor is it a forced timed discussion, as there are so many facets to consider here. This should be as community-supported and understood as is reasonable.

Understanding Discord Permissions
Discord’s own documentation is a good starter guide to these: https://support.discordapp.com/hc/en-us/articles/206029707

If you want to get more hands on with the Permissions yourself, you can freely make your own server by hitting the circled + icon your Discord server list, creating your own server, and poking around in the server settings > Roles section. Each permission is described by name or additional text within there.

Roles
Here are the current list of Roles on the Discord server


That’s…. A lot. Some of them aren’t clear on what they are, others are vestiges of a past necessity. Overall, we need to update them.

Barring channel (group) specific permissions edits, each of these roles have the base ability to do things across the server, based on their Permissions settings. Let’s review what’s what for these roles:
  • Gods - A cheeky name for server admins. In Discord, admins have full rights to see, edit, speak, modify channels, delete messages, and more across the server. If someone has Administrator permissions, channel (group) specific settings do not apply to them. I have a whole section dedicated to the Administrator discussion below.
  • Factom Inc - Not quite Admins, but a high-level of control that was originally set up so certain people at Factom, Inc could help moderate and facilitate things for the server in the earlier stages of the protocol. I’d propose for this grouping to be adjusted to be like any other ANO, which I’ll touch on later.
  • Guides - You hopefully know who these people are. No real unique permissions, save for access to Guide-only channels.
  • Moderators - When spam comes, moderators wipe clean. Moderators keep the channels clear, deal with troublemakers, and generally ensure people aren’t being jerks. They can access the server’s Audit Logs, which is an event log of server changes, can manually manage roles, channels, kicks, bans, display names, and messages across the server.
  • M3 Applicants - The OG ANO requestors. This group is deprecated and can be deleted.
  • WG *** - Working Group groups, primarily in place to manage access to their respective Working Group channels. No Longer Applicable, to be removed.
  • Testnet Gnomes - Identifier for those running nodes on the testnet, separate identification of Operators/ANOs.
  • Operators - Catch-all permission settings and grouping for all of the ANOs and their employees. I’d like to change this to ANO, as that’s more colloquially used.
  • OP-*** - Each individual ANO organization, primarily to manage access to their respective setup channels. May be applicable, can help with protocol organizational logistics, such as @mentioning specific ANOs for positives, negatives, and promotion. Would keep this, but only for organizational grouping.
  • ***Bot - There are so many! Basically, the automatic helpers for various helpful things. They have specific permissions based on their functional needs. There are some questions relating to management and access, though. They have their own section below. Includes “brm-fct-monitor” from the list.
  • 528 - This signals people who were on the Discord on or before May 28, 2018, as a protection against sybil attacks for some earlier elections and voting efforts. This is largely resolved thanks to newer voting systems.
  • ex_bt and ex_ub - These are old groups related to technical support for a couple of exchanges, and are effectively depreciated.

Now that we summarized over those, I want to better organize things:
  • Permission Groups - These will set the nature of the server-wide permissions for server participants
    • Administrators - The ones with the keys to the universe
    • Moderators - The ones keeping the server in working order
    • Governance Participants - Guides, ANOs, committee members
      • Personally, I don’t feel there should be any difference in what each of these groups can do on the server, generally.
    • Bots - Unlikely to be one catch-all group for this, but each bot will need a permission setup depending on the functionality of that bot.
    • Everybody - Just the basic chat and read permissions for most places.

  • Functional Groups - This is meant for things like @mentions, channel permissions, and more “regular” server logistic
    • ANOs as a whole - Same idea as the “Operators” role so the right people can bother all the ANOs as necessary, and otherwise manage access to things like ANO chat channels.
    • Each individual ANO organization - Sometimes, you don’t need every ANO, you just need the one, so each one should have their own taggable group. Additionally, there are private chat channels for each ANO, which I think is a good thing.
    • Currency traders and market watch - For access to market channels
    • Guides - For access to Guide channels and @Guides mentions
    • Moderators - Access to mod channels and @Mods mentions
    • Committees (Individual and/or whole) - At this time, there aren’t any committee specific channels, but this is a functional opportunity to be prepared for that, as well as having a grouping representation for people who might not be an ANO or Guide, but are part of governance efforts.
    • Everybody - Not everyone wants to be a part of the working aspects of the community, so this is the catch-all for everyone else who want to hang out and chat all things Factom.

Bots
Bots offer various functionality to the server, whether it’s automated alert systems, material reference pulls, high-speed moderation capability, or even role management systems.

I’d like to propose use of at least one of the general purpose Discord bots that provide solid services for many different channels. Specifically, I’d like this general purpose bot to be able to support two major functions:

  • Automod
    • Automod effectively watches the text channels for specific keywords, broadcast types, or general spam in order to flag it and perform moderation actions at the speed of machines. While our community generally doesn’t have this problem, it can catch things like racist commentary or known spam domains and quickly remove them, then kick/ban users directly or alert human moderators to do so.

  • Self-assigned Roles
    • Currently, people who join the server come right in and have access to everything, can ask the same basic questions, or possibly have negative intentions to blast. I’d like to propose a sort of new-user entryway to the server, where new members join and are only able to access #welcome, which will be updated to include existing rules and additional summaries of the basics of Factom, such as our governance models, how FCT works, and more. Each of these blurbs will then have a reaction icon one can click to acknowledge they’ve read that section. Then, a bot will see that reaction and provide an appropriate role to that person.

Cheeky Example


This can also be a supporting layer against lazy spammers and negative actors, as it forces an extra step before the users can interact. This can also be stacked on a required time period before users are allowed to begin engaging in the channel, if that were warranted. Overall, though, I think it’s more friendly and welcoming to new users than previously discussed phone number requirements.

General purpose bots also provide some additional optimization, including more thorough logging ability, reporting commands for everyone to better log and alert mods, and moderation enforcement commands instead of click interfaces.

I recommend YAGPDB for the job. https://yagpdb.xyz/

Additionally, there are some other bots currently on the server. Some of my bot information may be bad or incorrect, but here’s a summary of the existing bots on the server.

  • RSS Bot - Used to link Reddit posts, but hasn’t posted since May 24, 2018.
  • Cryptowhalebot - Primarily used in market channels to pull pricing data
  • The following bots exist in the server, but have no post history, so I don’t know what they’re exactly doing, though I know some are alert systems. I’m flagging them since there are rights and permissions management to consider.
    • TFA Bot
    • FactomAlertBot
    • BuildingIM-Bot
    • Guide-alert-bot
    • [Cube3] WatchBot
    • Bedrock-solutions-tfa-bot
    • Brm-fct-monitor
    • CryptoLogicBot
    • Gol Monitoring
    • Stamp-IT Bot

Moderation
Moderators keeps the regular, regular. They’re at the forefront of the good and bad of keeping things in order, whatever that order may look like. There is some opportunity to craft some clear-cut moderation guidelines to include alongside server rules, as well as a massive opportunity to come up with a way to select and audit moderators.

Generally, moderators manage the people and content on the server. This means they can kick/ban, delete messages from most channels, and help manage the display names and roles of some users. Additionally, they have access to the public #mod-log in order to provide updates on their activity, as well as can see the server’s Audit Log on Discord in order to give some additional transparency to changes happening. These controls should continue forward, and Moderators should be the primary users of any Bot-driven automod commands, if that becomes a thing.

Currently, the moderation team is fairly well-rounded across different time zones and people, so I wouldn’t be worried about who is or is not a mod right now. There should be some kind of formalized selection process in order to cover any future gaps, whether it’s community growth or mod dropoff.

Mods can’t do everything, though. That’s where admins come in.

Administrators
As previously explained, Discord’s Administrator function has full rights to everything about the server. Admins can changes roles, delete other people’s messages, see every single chat channel, and ban people, regardless of whatever other roles they are given for the server.

Currently, the Discord community is administered by Factom Inc, since that’s who created the server in the first place. The server owner account is set to Paul Snow. Currently, administrative controls and changes are primarily being facilitated by me, which includes things in the recent Channels redesign, adding the ability to tag @Moderators for reporting, and updating logo graphics for the Marketing Committee. While I don’t mind helping facilitate these needs, the fact that administrative controls are so centralized to a single party is both a blessing and a curse that needs to be looked considered.

In my opinion, not all moderators should have administrative access, and not all admins should have moderation expectations. I think it shouldn’t be much different from a typical IT support tier system, where moderators are more on the front lines of requests, and admins are there to facilitate other things.

While I understand the decentralization goals, Administrative rights should still be fairly small, as no one Admin is higher than the other, except the server Owner, but that’s only in the scope of “only the owner can delete the server entirely”, while Admins can only change everything else completely.

Please note that whatever account is marked as the Owner will always have Administrator rights, and there’s no way to remove that, only change what account is the Owner. It’s by design of the Discord service.

Options to consider regarding the Owner account
  • Owner is a general account that has its access rights shared to multiple people. This will sort of circumvent the centralization design of Discord, but will require an appropriate access management solution for this account.
  • Owner is still a central account, trusted to one of the agreed upon administrators.
  • Owner is somehow given to a dead account that nobody gets access to, somehow. Would require trusting a false account being made and credentials lost. Not sure how viable this is.

Great, so what’s the end result?
  • A step-by-step Welcome guide to the Factom Community for new members to get their basic questions answered.
  • Better organized roles with consistent, understood names, and better membership organization within them.
  • A review of all the per-channel permissions on every single one of the chat channels, as there are some likely some surprising visibility (or lack thereof) on certain channels that should be addressed appropriately.
  • Improved administrative and moderation workflow, reporting, and transparency.

What’s next?
Your thoughts, opinions, and discussions! There is a lot to consider here, and many specific groups need to consider their own channels and communication processes to make sure their needs are being met.

If you’re a Guide and there’s something you think Guides should or shouldn’t be able to do in the Discord, this is a good time and place to raise that thought. If you have strong thoughts about who should be moderating our Discord community, let’s discuss why and what methods should be put into place.
 
Secured
#2
Thank you Kevin for putting the time and energy into this! I love to see the creative approach you proposed for new users to the discord community that bypasses such high barriers to entry as a phone number, but still requires minimal effort to interact with the community. I think the recent coin raffle sponsored by TFA is a great example of ways to bring new people in and why its important to make the barrier to entry low (ie: no phone number).
It would be nice to have a moderators nomination or selection process that involved more of the standing parties and general community and some further guidelines on how and what to moderate. We want to keep it positive and professional…but also allow freedom of speech and the ability to criticize or applaud the efforts of ANO’s or the community at large. Not all criticisms are FUD…
some further suggestions:
1. further develop the welcome section to include: #Welcome-Factom-Rules. I’ve sent you a DM on discord to elaborate further on the topic.
2. create a #Report violations thread that can be utilized to report unwarranted fudsters, spammers, etc...
3. create a #mindset or #venting chat….or something similar to direct people to when they are at a time of need and despair and instead of filling the market chats or general chat with negative comments or emotions…give them an outlet
4. create a #grant threads where all grants in process can be discussed or redirected to the relevant chats that hopefully will get created here on factomize in the coming days
5. create a #projects category. This area can have sub threads to all the great projects that ANO’s and outside companies that are working with the Factom Protocol. This has the potential to be a great way of displaying what is going on in the community to new members/casual members
6. create a #events category that displays information of all the events that Factom is being represented at
7. we have a protocol support thread. But I would suggest creating a general support category that could include the following threads:
a. general protocol support
b. discord feedback
c. discord support
 
Secured
#4
I would love to see more automatic role management by bots. I thought about it in the past trying to manage all the groups.

Most of the bots are alert related bots. When adding bots to the server, I noticed the server created a role for them that I was unable to assign anyone else too. I think when you add bots if you give them NO permission, then they enter without a role, and you can then assign them a generic "Alert-Bot" role. These bots also never post, they just monitor a specific channel for keywords to trigger their alerting system.

I think it's a great idea to also get a system in place for how the moderator/admin roles work and are managed. I've been approached before of people offering to moderate, but we don't have a system in place. This also is a thing on reddit, as reddit mods are mostly Inc members.
 
Secured
#5
@KevInc, this is a fantastic initiative and I appreciate the thought and effort you've put into it. I'm going to digest your thoughts a bit but generally agree with most of your ideas. I particularly like the idea of a emoji react + bot as a barrier to entry for new users that doesn't require a phone number.

Thank you Kevin for putting the time and energy into this! I love to see the creative approach you proposed for new users to the discord community that bypasses such high barriers to entry as a phone number, but still requires minimal effort to interact with the community. I think the recent coin raffle sponsored by TFA is a great example of ways to bring new people in and why its important to make the barrier to entry low (ie: no phone number).
It would be nice to have a moderators nomination or selection process that involved more of the standing parties and general community and some further guidelines on how and what to moderate. We want to keep it positive and professional…but also allow freedom of speech and the ability to criticize or applaud the efforts of ANO’s or the community at large. Not all criticisms are FUD…
some further suggestions:
1. further develop the welcome section to include: #Welcome-Factom-Rules. I’ve sent you a DM on discord to elaborate further on the topic.
2. create a #Report violations thread that can be utilized to report unwarranted fudsters, spammers, etc...
3. create a #mindset or #venting chat….or something similar to direct people to when they are at a time of need and despair and instead of filling the market chats or general chat with negative comments or emotions…give them an outlet
4. create a #grant threads where all grants in process can be discussed or redirected to the relevant chats that hopefully will get created here on factomize in the coming days
5. create a #projects category. This area can have sub threads to all the great projects that ANO’s and outside companies that are working with the Factom Protocol. This has the potential to be a great way of displaying what is going on in the community to new members/casual members
6. create a #events category that displays information of all the events that Factom is being represented at
7. we have a protocol support thread. But I would suggest creating a general support category that could include the following threads:
a. general protocol support
b. discord feedback
c. discord support
I love the thoughts here but am a bit wary about adding a bunch of new channels when we just recently paired down redundant and unused ones. Some of these may be useful to add but some of them seem a bit redundant. For example, we have an #offtopic channel that we had to fight David to get and which is I think suits the purpose you describe for #mindset or #venting. It's rarely used so I doubt that creating a new channel would change that much.
 
Secured
#6
Most of the bots are alert related bots. When adding bots to the server, I noticed the server created a role for them that I was unable to assign anyone else too. I think when you add bots if you give them NO permission, then they enter without a role, and you can then assign them a generic "Alert-Bot" role. These bots also never post, they just monitor a specific channel for keywords to trigger their alerting system.
Pretty much, there's also some consideration on how the rights of the bots are managed, and whether or not they can have influence on other parts of the server, or even to other groups, based on their sorting in the Roles list.

Additionally, knowing what the bots are for and who manages them can help for moderation practice, since all a mod has to do to remove a bot from a server is just simply kick it, which may not be an ideal action in future pruning or hiccups.

This also is a thing on reddit, as reddit mods are mostly Inc members.

It's on my radar, but Reddit's also super low-volume compared to our other platforms, and I only have so much time. Happy to help facilitate others on it, though.
 
Secured
#7
Nice job on this Kevin, thank you.

I personally have no problem with Paul keeping the server owner role if he has no objections.

I realize your post is limited in scope to Discord, but I'd suggest all Discord mods also be made moderators of Reddit and the community forum as well. Have it be a broader role.

I think some means of determining addition or removal of channels should also be established or we'll end up with channel creep once again.

In general I like the automod idea about allowing additional access but I have concerns about non-native english speakers running into trouble. I'm not sure how serious an issue that is or what the solution is, if there needs to be one.
 
Last edited:
Secured
#8
In general I like the automod idea about allowing additional access but I have concerns about non-native english speakers running into trouble. I'm not sure how serious an issue that is or what the solution is, if there needs to be one.
This is a core marketing opportunity for much of the protocol, including the regular content on the Discord itself. I think any static content, such as the proposed Discord welcome and the protocol website will need to address this all together, when relevant and able.
 
Secured
#9
I love the thoughts here but am a bit wary about adding a bunch of new channels when we just recently paired down redundant and unused ones. Some of these may be useful to add but some of them seem a bit redundant. For example, we have an #offtopic channel that we had to fight David to get and which is I think suits the purpose you describe for #mindset or #venting. It's rarely used so I doubt that creating a new channel would change that much.
I agree Sam that point #2 and #3 I made may be a bit redundant…maybe more about relabeling. I was one of the biggest supporters of thining out the discord channels. But, as we grow….relevant areas with more pertinent information may seem important….
 
Secured
#13
Hey @KevInc, my main thoughts here are in regards to the point below.

  • Self-assigned Roles
    • Currently, people who join the server come right in and have access to everything, can ask the same basic questions, or possibly have negative intentions to blast. I’d like to propose a sort of new-user entryway to the server, where new members join and are only able to access #welcome, which will be updated to include existing rules and additional summaries of the basics of Factom, such as our governance models, how FCT works, and more. Each of these blurbs will then have a reaction icon one can click to acknowledge they’ve read that section. Then, a bot will see that reaction and provide an appropriate role to that person.
I recommend joining Vertcoin Discord and seeing how they do it. It's similar somewhat to what you proposed.

1. Users get sent to a “new-member” channel with a welcome and the rules. It's a 1 pager with all of the information right there in front of them. Currently in ours, you don't read anything directly. They can't do anything else other than read the rules and welcome.
2. After 5 minutes, this channel is gone and the rest of the channels shows.

I think what we should do is exactly that where we give the rules & welcome in "new-member" and they can't do anything for 5 minutes. After that, we show our regular channels and what we should do is have our top channel be "Introduction". This one will contain all the main Education content about Factom and it's always there. No more "welcome "channel anymore.

I'm in disagreement with the self-assigned roles, at least at this point. It's uncharted territory and very speculative and subjective to do this right now. What we should be doing is the personal 1-1 approach with new joiners that will get us all the insights we need to understand how to "automate" this if you will. Maybe we find we want to keep it personal though depending on how successful it is.

Will be sharing a small strategy with you tomorrow about this.