Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Onboarding experience with SSO #26025

Open
gabrc52 opened this issue Aug 22, 2023 · 11 comments
Open

Onboarding experience with SSO #26025

gabrc52 opened this issue Aug 22, 2023 · 11 comments
Assignees
Labels
A-Onboarding The users first experience of Element, whether that be first impressions or first tasks. T-Enhancement X-Needs-Design

Comments

@gabrc52
Copy link

gabrc52 commented Aug 22, 2023

Your use case

What would you like to do?

Element has a pretty nice onboarding screen but it only works when signing up via password. It would be nice to be able to do this with SSO too.

Why would you like to do it?

To set up an organization Matrix server and have Element encourage people to install mobile apps, enable notifications, etc.

How would you like to achieve it?

By having a config.json option to enable the onboarding experience when logging in for the first time when using single-sign on. Element can know the account is brand new if it's missing account data from it. It would also be nice to be able to specify an option from the coworkers vs friends question, i.e. have it say "talk with your classmates" without people having to choose they'll use it for work.

Have you considered any alternatives?

It may be already possible somehow by using templates and adding template code for welcome.html.

Additional context

No response

@t3chguy
Copy link
Member

t3chguy commented Aug 22, 2023

Element can know the account is brand new if it's missing account data from it

Not really? Existing users who haven't gone through the onboarding flow would be met with it, e.g. existing SSO users merely signing in again, or users who registered on a Element android/ios or non-Element client.

@weeman1337
Copy link
Contributor

May this be a different issue then? Something like „Onboarding on first Element Web login“? We could store something in the account data to find out. Input from product is required here anyway in my opinion.

@weeman1337 weeman1337 added X-Needs-Product More input needed from the Product team A-Onboarding The users first experience of Element, whether that be first impressions or first tasks. labels Aug 22, 2023
@sandhose
Copy link
Member

This is becoming important because it also affects OIDC-native logins

@t3chguy
Copy link
Member

t3chguy commented Oct 8, 2024

image

So currently the logic is to only show it to users where we know their registration time, which is something we know if the registration happened within the local client and SSO always counts as login. Would need Product to confirm how they would like this to work in an SSO world.

@pmaier1
Copy link

pmaier1 commented Oct 8, 2024

Well, in the future with MAS, every login will be an "SSO-login", if I'm not mistaken. So we need to find a way to show the onboarding screens in that case as well.

What are the options? Why did we choose registration time? I could imagine to show it always and give the user the ability to say "don't show this again".

@t3chguy
Copy link
Member

t3chguy commented Oct 8, 2024

Why did we choose registration time?

Unfortunately your guess is as good as mine, everyone involved in that work & review is no longer around matrix-org/matrix-react-sdk#9083

There is nothing in the Matrix API or SSO login that lets us differentiate a new account from an existing one, nor any way to get registration time for an account.

@pmaier1
Copy link

pmaier1 commented Oct 8, 2024

There is nothing in the Matrix API or SSO login that lets us differentiate a new account from an existing one, nor any way to get registration time for an account.

Ok, got it. What about showing it always and storing permanent dismiss in the account data or so? Let's discuss other options in a meeting if it isn't that easy.

@t3chguy t3chguy added X-Needs-Design and removed X-Needs-Product More input needed from the Product team labels Oct 8, 2024
@t3chguy
Copy link
Member

t3chguy commented Oct 8, 2024

@pmaier1 sounds good, there is currently no dismiss interaction, could you suggest who can be tasked with designing such?

image

@pmaier1
Copy link

pmaier1 commented Oct 14, 2024

@pmaier1 sounds good, there is currently no dismiss interaction, could you suggest who can be tasked with designing such?

👍 who can help here @daniellekirkwood @amshakal ?

@MuhammadHadiofficial
Copy link

MuhammadHadiofficial commented Oct 31, 2024

@pmaier1 Synapse does flag new SSO logins and register new SSO_IDS as new accounts before mapping users and redirecting back to client. We can pass information along with loginToken in URL for registration time or simply just pass newUser field in queryparam with loginToken and fetch those in attemptTokenLogin and start onboarding based on that? This would be more of a synapse server solution before anything being done on client.

Just quick thoughts as I was also wondering the onboarding didn't work with SSO.

@t3chguy
Copy link
Member

t3chguy commented Nov 4, 2024

@MuhammadHadiofficial that'd need spec work as loginToken is the only specced param atm https://spec.matrix.org/v1.12/client-server-api/#client-login-via-sso

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Onboarding The users first experience of Element, whether that be first impressions or first tasks. T-Enhancement X-Needs-Design
Projects
None yet
Development

No branches or pull requests

6 participants