CommonsBuild / coordination

The Coordination repo issues serve to coordinate all the work across the Token Engineering Commons (TEC)
11 stars 4 forks source link

Discord onboarding has really bad metrics :-( need to improve the process #499

Closed GriffGreen closed 3 years ago

GriffGreen commented 3 years ago

πŸ“‹ Anything to add?

I think ~25 people out of 80 people who are in the hello world channel made got stuck right there. That is over 30% failure rate!!!

⏰ Urgency/Due Date/Blockers?

This is pretty critical...

❓ Why is it important?

First impressions are very very important

πŸŽ‰ Subtasks

πŸ€Όβ€ Reviewer

@

πŸ”— Work doc - inspirational links

Vyvy-vi commented 3 years ago

:/ Yes, very bad onboarding metrics The current process- -> Captcha bot -> Emoji reaction in #rules

The following problems seem to arrise- 1- People don't go to the #rules channel: Possible fix: Make the process more clear. Set up a bot that welcomes the user and pings them/dms them in #hello-world with instructions on how-to-get-access. 2- Reaction Role failure- There have been around 5 cases where people had reacted and got the role but seemed to not have access. (*More investigation needed) 3- Captcha-bot may be annoying and the dm feature may be blocking at times when people have closed dms- Possible fix: As griff suggests, a math bot. We could set this up and make it send verification in #hello-world itself, rather than dms

Vyvy-vi commented 3 years ago
Some data from the server- Joined server Completed Captcha Acknowledge CC Interacted in Server
95* 80 56 25

*6 of these are bots

Vyvy-vi commented 3 years ago

Some suggestions from @markoprljic on improving the process: https://discord.com/channels/810180621930070088/810180622165213218/818003788438568991

markoprljic commented 3 years ago

@Vyvy-vi

Discord onboarding ideas from weekly comms call:

@krisjpi offered his help

Vyvy-vi commented 3 years ago

I suppose we could set up a custom discord bot for the walkthrough of the server. What do y'all prefer to work with: js, python or ruby?

(Afaik, there aren't any bots currently out there that provide something similar to a custom walkthrough, but Ig making an onboarding bot should not be very complex)

markoprljic commented 3 years ago

@Vyvy-vi Checking in to see where we're at with improving Discord onboarding. Has there been any updates since?

GriffGreen commented 3 years ago

@markoprljic! Update

@Vyvy-vi and I had a chat this morning

Notes:

A bot made it thru already, named "Tesla"

A great way to avoid this is to make a TECommons invite website that will automagically create an invite for people that do the captcha.

We would need to remove the ability to make invites on the server... ideally we could restrict the discord server invites to be only 1 time use invite links

There might just be a hacky way to do this by having a bot that removes multiple use invite links periodically

GriffGreen commented 3 years ago

@Vyvy-vi is not a web dev... we might need @mendesfabio or some other dev to jump in and work with him... also @krisjpi will have to give us a subdomain

GriffGreen commented 3 years ago

@markoprljic you might want to do some design as well.... but don't spend more than 5 minutes on it... or maybe skip it for MVP!

In fact, if we just do a quick and dirty MVP... maybe we can just use heroku or something and not even worry about coordinating the sub-domain.

Vyvy-vi commented 3 years ago

1)- Regarding the captcha site: We could use a 3rd party captcha service, like reCaptcha Or make our own. Whatever works 2) Regarding how the site invites people: An integration or bot in discord can use there API to make a server invite. We could then redirect the user to a one-time usage link, after they complete the captcha. 3) We would need a bot application to monitor the discord invite links. Particularly links that are multiple use. 4) We would have to update all the sources, to link to the new invite site, that has captcha on it.

markoprljic commented 3 years ago

@Vyvy-vi @GriffGreen Thanks a lot for brainstorming and proposed solution. I'd love to get some feedback from devs on effort estimate and a bit more details what need to be done to make this work.

@Vyvy-vi Would you be creating the Discord bots? Do you need help from someone?

@kristoferlund Maybe you'd be able to set up a new page in WP and integrate Captcha bot. Also, we need to look into Discord / WP integration, probably would need to be custom, just guessing. I'll do the design part for that page, I can do it directly in WP as well, I think :)

Let's get a detailed work spec lined out and people who will take each part.

GriffGreen commented 3 years ago

The onboard flow proposal change...

Before it was:

  1. Create an invite link in discord, needing to choose expiration date and number of uses... then send that to someone

  2. Get to our discord and look for a DM and do the Captcha... if you don't have DMs open beg for help in our support channel

  3. Click the βœ… emoji for our community code

The problem with this flow is step 2... especially since it doesn't actually stop bots... since they can just DM the people in that channel.

New onboarding flow:

  1. Invite link is the same for everyone every time: join.tecommons.org or something like that

2.; On that website they do a Captcha and then get redirected you our discord to join

  1. They click the βœ… emoji for acknowledging our community covenant
markoprljic commented 3 years ago

Sounds good!

Vyvy-vi commented 3 years ago

The discord oauth API might be useful here: -> User logs into the site using discord -> fills captcha -> gets access to server This would remove the need to set up a different bot application for generating invite links: https://discord.com/developers/docs/topics/oauth2 https://discord.com/developers/docs/resources/guild#add-guild-member

I think we could set up a site with Nodejs/Flask and use the API directly or maybe even WP. (I'm not sure if WP supports custom API calls πŸ˜… )

markoprljic commented 3 years ago

Not to self: onboarding checklist, ask people if they have giuthub account. Needed for submitting requests and ideas directly through our github board.

Vyvy-vi commented 3 years ago

Screenshot 2021-03-24 at 6 29 24 PM update on the integration: I've been playing with Discord OAuth API and the server addition logic works. The only thing needed here is captcha. (also, added a basic UI, for the looks :joy: )

Would hcaptcha be fine for TEC, or do we need to implement our own captcha? Also, btw reCaptcha would be quick to put in here, but I think the privacy concerns make it unpreferable and a no-no

Vyvy-vi commented 3 years ago

A bot made it thru already, named "Tesla"

More info on the bots that got through: Here's a screenshot of the message sent- Screenshot 2021-03-24 at 8 36 51 PM

There were multiple bots like this, with the same name Screenshot 2021-03-24 at 8 43 37 PM

markoprljic commented 3 years ago

This is a good case for @krisjpi ☝️

Vyvy-vi commented 3 years ago

Update on the site:

Basic Auth functionality of the Site is up. A development version of it is deployed at https://tec-discord-oauth2.vyvyvi.repl.co/

This uses hCaptcha and requires two things from user-

  1. Login via discord on the site
  2. Submitting captcha -> click 'Join' and be added to the server.

Screenshot of Server Join page-

Account Login Page Screenshot of the server join page, with the Captcha widget

(the profile picture, username would be according to the user's account)

The captcha is set as Moderately hard. If needed, I think it could be made harder/easier

Captcha difficulty settings

Q) What's remaining?:

markoprljic commented 3 years ago

@Vyvy-vi Great job! Thanks man.

For the deployment, we discussed to create a new page (Join the Community) on TEC Website and have the Discord option and link there. So I assume we're going to deploy it there, and maybe @kristoferlund can jump in here as he's going to implement it.

I'm still waiting for the content for that Join page, or I'm gonna draft something next week and we take it from there. For bots I think we should get more help from @krisjpi if he has some time, but we should have a specific goal and outcome we want to achieve with that bot.

Setting up bot app for monitoring, is this something you can do @Vyvy-vi or you need help?

Once we set up the new page with all this we will pass this on to @iviangita @liviade1 and others to update the links across other channels.

Let me know if anything else needed.

Thanks again, great job!

Vyvy-vi commented 3 years ago

I can set up the bot application, for monitoring the invite links(as discussed in the call with griff). However, I need some info on how to move forward with the bot: Should it delete any invite link, that has a use limit of more than 1 or do we need to give some space for like 5 uses?

Setting up this site on netlify(along with the main site) might need to change the current version up a bit, I think. But most of the API calls should remain the same, I guess. (This would have to be re-written in Javascript though) I guess this one can be used as a Proof of concept to model the page on the main site- ref: https://github.com/Vyvy-vi/TEC-Discord-Oauth2/

If anyone needs any help with the discord part while setting the invite page up, feel free to contact me :)

kristoferlund commented 3 years ago

@markoprljic, would the discord bot stopper/onboarder have to live on the actual /join page?

It could also live as a standalone landing page on a separate subdomain, for instance: discord.tecommons.org. Then we wouldn't have to migrate your code to React @Vyvy-vi. Maybe just add a bit more TEC styling and a header / message to give some context.

markoprljic commented 3 years ago

Nope, doesn't have to be on tec site @kristoferlund we can just style @Vyvy-vi page.

Vyvy-vi commented 3 years ago

Should the styling match https://tecommons.org/ ?

markoprljic commented 3 years ago

Should the styling match https://tecommons.org/ ?

Yes.

markoprljic commented 3 years ago

@Vyvy-vi Maybe we can use the section How to contribute from this post and pin in the welcome message on Discord for new joiners https://forum.tecommons.org/t/5-how-to-join-contribute/98

Vyvy-vi commented 3 years ago

I'll add it to the bot's message :+1:

markoprljic commented 3 years ago

@Vyvy-vi Proposal on Discord Captcha Landing page

Image 2021-04-12 at 8 35 43 pm

Figma source here https://www.figma.com/file/SKZCNjAWvoPqZA7xeS8HGb/TEC-Website?node-id=808%3A514

Vyvy-vi commented 3 years ago

Thanks for the mockup :+1: I'll put this in today

tamarandom commented 3 years ago

Can you please drop the link to the website when it's all live and we can close this issue!

Vyvy-vi commented 3 years ago

@tamarandom You can view the Development Version here - https://tec-discord-oauth2.herokuapp.com/

It's still a Work In Progress, esp. with the data written on the site, and the design(mainly responsiveness, compatibility with different devices like phones, tablets, etc). I would love some feedback. (I suggest trying to log in with a different discord account that isn't in the server)

It would be great if anyone gives feedback based on these-

markoprljic commented 3 years ago

On mobile the yellow button should be bigger. On Desktop I'd move the subtext and button a bit higher.

Other than that it's good.

markoprljic commented 3 years ago

@Vyvy-vi Did we get someone to set up the subdomain?

markoprljic commented 3 years ago

To summarise what we did to improve the onboarding:

Additionally, we're sharing how to get started and other resources in the Incubator channel for all new members.

Anything else to add @Vyvy-vi ?

Vyvy-vi commented 3 years ago
markoprljic commented 3 years ago
  • We could also make a Google doc or something(maybe just a message we can copy-paste) with a step-to-step on how to get onboarded.

@danelsuga is already doing that on Discord :)

danelsuga commented 3 years ago

Hi!

Thanks for the shout-out, Marko. Vyvy-vi, here is the onboarding doc that includes the "how to get onboarded" message within it:

https://docs.google.com/document/d/1EiQTPNKANGwPiofEfHe-BVTzecA9vrNYPjrOt7umCXE/edit?ts=6074165a

Here is that message:

Welcome to the TEC! 🎍

🌈✨ We’re happy you’re here! 🌈✨

πŸ™‹πŸ½β€β™€οΈ Got questions? Join our weekly Onboarding AMA on Wednesdays at 4pm CET on our #community-hall channel on TEC Discord. πŸ‘©πŸ½β€πŸ« 🌐 Join the community call on Discord on Thursdays at 7pm CET. ☎️ We also have an Incubator channel in DIscord where we encourage all new people come since that’s where we often give updates!


Here are some links to get you started. πŸ—“οΈ TEC Calendar ⏰ Our meetings are open to all. Find one in our cal; looking forward to seeing you there! https://calendar.google.com/calendar/u/0/embed?src=5mkep1ad1j860k6g7i7fr8plq0@group.calendar.google.com&ctz=Europe/Berlin

πŸ“½οΈ TEC YouTube 🎞️ The TEC is proactive to transparency, and so our Working Group sessions are all available on Youtube. https://www.youtube.com/channel/UCagCOhMqMNU29rWx259-tcg

For a great introduction on our design and values, watch LΓ­via’s talk at ETH Dev β€œDeploying a self-governing community”: https://www.youtube.com/channel/UCagCOhMqMNU29rWx259-tcg

πŸ“œ TEC Blog πŸ“‹ And read the latest posts on our blog: https://medium.com/token-engineering-commons/

Please feel free to look around, and reach out on Discord to @suga the Onboarding Coordinator if you have any questions.

πŸ’« Enjoy your stay! See you soon. πŸ‘‹πŸΎ

That message is also pinned in the Discord Incubator. I'm going to update it to include the rad landing page https://tecommons.org/join!!

Katy

Vyvy-vi commented 3 years ago

@Vyvy-vi Did we get someone to set up the subdomain?

I dm'ed Kris a while ago but didn't get a response.

Vyvy-vi commented 3 years ago

Update- Kris set up the DNS

markoprljic commented 3 years ago

All set up, @Vyvy-vi wanna close it?

tamarandom commented 3 years ago

Closing. New issue to monitor new joiners over the coming Sprints.