cesko-digital / app

Komunitní aplikace Česko.Digital
https://app.cesko.digital
BSD 3-Clause "New" or "Revised" License
22 stars 39 forks source link

Změny v onboardingu a přihlašování #956

Closed zoul closed 9 months ago

zoul commented 10 months ago

[!NOTE] Tohle není implementační ticket, spíš shrnutí plánů / analýza / brainstorming. Chceme se zbavit Slacku jako primárního nástroje, protože Slack je příliš komplikovaný a příliš mimo naši kontrolu. Místo do Slacku budeme uživatele směřovat primárně do naší aplikace. Onboarding do Česko.Digital tedy do budoucna úspěšně skončí registrací do aplikace, nebude pokračovat onboardingem do Slacku jako dosud.

Možnost onboardovat se do Slacku kdykoliv později

Počítáme s tím, že pro nás bude Slack dál hrát důležitou roli. Nezahazujeme ho, jen ho necpeme všem automaticky. Takže po registraci do aplikace nabídneme uživateli možnost přidat se do Slacku, například formou nějakého boxíku na domovské stránce aplikace nebo na stránkách projektů. Tam můžeme ukázat nějaká relevantní vlákna z poslední doby a podobně, jasně vysvětlit, k čemu ta věc vlastně je – a přidat odkaz na onboarding.

Samostatný onboarding do Slacku

Když rozpojíme onboarding do Slacku a aplikace, chceme připustit možnost, že se někdo „nekontrolovaně“ přidá jen do Slacku? Například standardní vestavěnou funkcí Invite people to Česko.Digital.

Pro: Hodně by nám to zjednodušilo procesy kolem onboardingu do Slacku, který teď pečlivě monitorujeme a pokusy o zvaní nových uživatelů přesměrováváme na oficiální onboarding.

Proti: V současném modelu ale zase můžeme zaručit, že kdo přišel do Slacku, už má účet v komunitní aplikaci a má tedy například podepsaný souhlas se zpracováním osobních údajů nebo pravidla komunity.

Jak do aplikace dostaneme aktuální členy?

Momentálně se uživatelé do aplikace přihlašují svým slackovým účtem. Když zrušíme povinný onboarding do Slacku, musíme zavést nějakou alternativní vlastní autentizaci, nejspíš klasicky e-mail a heslo (s ověřením e-mailu). Bude to jediná možnost autentizace, anebo necháme jako variantu i Slack?

Pokud necháme pouze přihlašování jménem a heslem, budeme muset přijít na to, jak do aplikace dostat stávající uživatele. Protože vlastně každý, kdo je dneska v našem Slacku, má u nás „účet“ a měl by mít možnost se k němu v aplikaci přihlásit. Vždycky je možnost rozeslat jim mailem odkazy s možností přihlásit se do aplikace a nastavit nové heslo, ale nešlo by to nějak líp?

Pokud zachováme obě přihlašovací metody (Slack i jméno+heslo), můžou se stávající uživatelé do aplikace přihlásit přes Slack. Otázka pak je, jak se má systém chovat, když se přes Slack přihlásí někdo, kdo doposud účet neměl. Například ho někdo pozval do Slacku bokem – nemělo by to jít, ale občas se nám to stává. Taky je to problematické UX, to OAuth flow má řadu problémů a snadno se může stát, že to někomu neklapne.

Propojení účtů aplikace ↔ Slack

Stále by se nám hodilo udržet propojení mezi účtem v aplikaci (tabulka User Profiles) a Slackem (tabulka Slack Users). Aktuálně to děláme automaticky přes e-mail, což občas selže na tom, že se uživatelé registrují s jiným mailem do aplikace a jiným do Slacku, ale dá se to takhle dělat dál. Bezchybná automatická metoda mě nenapadá, protože ten onboarding do Slacku nemáme pod kontrolou, abychom si například předali nějaký jedinečný identifikátor. (Anebo bychom to propojení účtů mohli zrušit? O co přesně bychom přišli?)

Zeštíhlit onboarding do aplikace?

Současný onboarding je relativně dlouhý a je stavěný na „dobrovolníky“, čili nebere v úvahu to, že součástí Česko.Digital je řada lidí z jiných skupin (neziskovky, veřejná správa, …). Nabízí se proto ten základní onboarding razantně zjednodušit (například jen e-mail + heslo + právní náležitosti) a další informace sbírat až v aplikaci. Tam můžeme zobrazit například nějaký onboardovací boxík ve smyslu „Váš profil je úplný z 60 %“, kde bude možné vyplnit zbytek informací. Můžeme ale také informace sbírat na různých místech aplikace v logičtějším kontextu – například když někde zobrazíme mapu komunity, nabízí se k ní šoupnout dotaz, ve kterých okresech se pohybuje uživatel.

Zároveň by bylo podle mě skvělé vykostit současnou nálož onboardovacích e-mailů a zpráv od GreetBota. Jednak velká část z nich rychle přestává být relevantní, jednak se tyhle informace dají IMO mnohem líp předat pomocí různých tipů v rozhraní aplikace.

martinwenisch commented 10 months ago

Zvazoval si passwordless prihlaseni jenom pres email? Tim by se vyresili de-jure novi i stavajici clenove (nove bychom pridali, stare naparovali). Navic bychom mohli mit onboarding s flagem ?source=slack s copy pro lidi prichazejici ze Slacku (napriklad postu do #general) a jeste jim tu experience potunili cilenejsim copy.

Tenhle mod prihlasovani ma napriklad NextAuth (doporucuju) out-of-box.

zoul commented 10 months ago

To mě nenapadlo, děkuju, domyslím a zapracuju.

martinwenisch commented 10 months ago

Psal jsem de-jure, protoze de-fakto si nikdo nebude pamatovat, jaky email pouziva na Slack a muze se stat, ze budeme mit stejneho cloveka pod novym emailem. Ale co uz, urcite to nebude vetsina a je tam potencial odchytnout "aktivni" prave sdilenim v #general s lepsi copy. A kdo neni aktivni ve Slacku, tak je stejne jenom cislo do prezentace pro partnery a jestli pouzije jiny email na registraci, tak to cislo jenom vzroste. WIN-WIN-WIN.

petrillek commented 10 months ago

Jak komplikovaná je autentizace přes BankID? Jen mě to tak napadlo, že by to bylo cool. Ale počítám, že passwordless bude určitě jednodušší.

zoul commented 10 months ago

Zajímavý nápad. Já vlastně nevím! Ale spíš to podle mě nechceme kvůli složitějšímu UX a kvůli vnímání ze strany uživatelů, aby neměli dojem, že nám předávají nějaké soukromé informace nebo oprávnění.

zoul commented 9 months ago

V pátek jsme nad tím procesem seděli podrobně, výsledky viz tuhle debatu ve Slacku. Pokračujeme už implementačním ticketem #979, tohle zavřu.