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

New User Onboarding Flow UI #16501

Merged
merged 29 commits into from
Feb 23, 2023
Merged

New User Onboarding Flow UI #16501

merged 29 commits into from
Feb 23, 2023

Conversation

selfcontained
Copy link
Contributor

@selfcontained selfcontained commented Feb 21, 2023

Description

This adds a new onboarding flow for new users (currently we consider new users anyone that hasn't provided a preferred IDE). For those users, we'll show the following three step flow when they sign in.

Step One Step Two Step Three
image image image
  • This is behind the newSignupFlow feature flag that is enabled in non-production.
  • While we're collecting a distinct First and Last name in the flow, we're still storing these as a unified fullName on the user. Collecting as 2 fields is an attempt to help signal we're asking for real names and not aliases/usernames.
  • Email is still stored on user.additionalDetails.profile.emailAddress
  • Answers to step 3 are stored on new fields under user.additionalDetails.profile
  • At the completion of the onboarding flow we're storing a timestamp on user.additionalDetails.profile.onboardedTimestamp to help us identify which user's have completed this flow in the future. We plan to introduce this flow, or a variation of it to existing users, and this will help us distinguish those that have gone through it.

Related Issue(s)

Fixes #

How to test

  • Visit the preview environment: https://bmh-onboarding-form.preview.gitpod-dev.com/
  • The first time you visit, you should be sent through the flow.
  • You can verify your name and email changes are applied after completing the flow by visiting the User Settings.

Repeat the flow
You can also initiate the onboarding flow manually by appending the query param ?onboarding=force to a url. For example:

https://bmh-onboarding-form.preview.gitpod-dev.com/workspaces?onboarding=force

... should kick you into the flow even if you've completed it. This was mainly added to aid in testing, but could be helpful in the future to send a user into the flow manually.

With Starting Workspace links:

You can also test this with a workspace context link and include the ?onboarding=force query param:

https://bmh-onboarding-form.preview.gitpod-dev.com/?onboarding=force#https://github.com/gitpod-io/gitpod

Release Notes

We've introduced a new onboarding flow to help user's customize Gitpod and get to know their needs better.

Documentation

Build Options:

  • /werft with-github-actions
    Experimental feature to run the build with GitHub Actions (and not in Werft).
  • leeway-no-cache
    leeway-target=components:all
  • /werft no-test
    Run Leeway with --dont-test
Publish Options
  • /werft publish-to-npm
  • /werft publish-to-jb-marketplace
Installer Options
  • with-ee-license
  • with-slow-database
  • with-dedicated-emulation
  • with-ws-manager-mk2
  • workspace-feature-flags
    Add desired feature flags to the end of the line above, space separated

Preview Environment Options:

  • /werft with-local-preview
    If enabled this will build install/preview
  • /werft with-preview
  • /werft with-large-vm
  • /werft with-gce-vm
    If enabled this will create the environment on GCE infra
  • /werft with-integration-tests=all
    Valid options are all, workspace, webapp, ide, jetbrains, vscode, ssh
  • /werft analytics=segment

@werft-gitpod-dev-com
Copy link

started the job as gitpod-build-bmh-onboarding-form.1 because the annotations in the pull request description changed
(with .werft/ from main)

@selfcontained
Copy link
Contributor Author

selfcontained commented Feb 22, 2023

/werft run with-clean-slate-deployment=true recreate-vm=true

👍 started the job as gitpod-build-bmh-onboarding-form.3
(with .werft/ from main)

@roboquat roboquat added size/XXL and removed size/XL labels Feb 22, 2023
@selfcontained selfcontained changed the title Bmh/onboarding-form New User Onboarding Flow UI Feb 22, 2023
@@ -13,7 +13,7 @@
"strict": true,
"forceConsistentCasingInFileNames": true,
"noFallthroughCasesInSwitch": true,
"noUnusedLocals": true,
"noUnusedLocals": false,
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Disabling for compilation to improve dx a bit. Once we have our linter enabled for PRs it will catch any unused vars rather than it be a compilation error.

@selfcontained
Copy link
Contributor Author

selfcontained commented Feb 22, 2023

/werft run with-preview with-gce-vm

👍 started the job as gitpod-build-bmh-onboarding-form.10
(with .werft/ from main)

@selfcontained
Copy link
Contributor Author

selfcontained commented Feb 22, 2023

/werft run with-preview with-gce-vm

👍 started the job as gitpod-build-bmh-onboarding-form.12
(with .werft/ from main)

@selfcontained
Copy link
Contributor Author

selfcontained commented Feb 22, 2023

/werft run with-preview=true

👍 started the job as gitpod-build-bmh-onboarding-form.13
(with .werft/ from main)

@mustard-mh
Copy link
Contributor

I tried with ?onboarding=force, but didn't see this onboarding flow, did I miss any steps? @selfcontained

https://bmh-onboarding-form.preview.gitpod-dev.com/?onboarding=force#https://github.com/gitpod-io/gitpod

Copy link
Contributor

@gtsiolis gtsiolis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for making this happen, @selfcontained! 🔮

💭 I'd leave comments with suggestions in individual lines, but for the sake of minimizing the distraction, noise, and scope creep in this PR, I've added only one review comment about a component reusability.

❓ The only question that's possibly worth asking is whether we could skip the first + last name here and go with the proposal of the preferred name you mentioned in our recent discussion. Cc @loujaybee @phimae

🛹 I've also posted a slightly improved version of the flow in a relevant discussion (internal), that includes quite a few changes, including additional steps, better disabled states, skip option, and more. However, I'd not hold this back for the first iteration. Adding below three of the pages affected here in case we could grab any design bits that are easy to address here like copy changes, font styles, etc. See also design thinking (internal) behind these changes.

Step 1 Step 2 Step 3
Welcome Welcome-2 Welcome-3

Approving to unblock merging, holding in case you'd like to address any of the UX suggestions.

/hold

{signupGoalsOptions.map((o) => (
<div key={o.value} className="flex space-x-2 justify-start items-center">
<input
type="checkbox"
Copy link
Contributor

@gtsiolis gtsiolis Feb 23, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: We do have a Checkbox component that could be helpful here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I need to make one, this was the first checkbox I've added ui for, so wanted to build it out a little, and will extract it to a component in a followup. Checkboxes are always so different than other inputs, so I wasn't sure what our UX pattern might look like for them.

Copy link
Contributor

@gtsiolis gtsiolis Feb 23, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DEAL—Opened #16511 yesterday that mentions a checkbox component which is possibly worth splitting into separate issues for each form element. 🏓

@Siddhant-K-code
Copy link
Member

I tried with ?onboarding=force, but didn't see this onboarding flow, did I miss any steps? @selfcontained

https://bmh-onboarding-form.preview.gitpod-dev.com/?onboarding=force#https://github.com/gitpod-io/gitpod

@mustard-mh, Related Internal conversation

@jakobhero
Copy link
Contributor

jakobhero commented Feb 23, 2023

thanks for working on this @selfcontained !🙏🏼 i'm having a look at the tracking of this now👀

value: "replace_remote_containerized_dev",
},
{ label: "More powerful dev resources", value: "powerful_dev_resources" },
{ label: "Just exploring CDEs", value: "exploring_cdes" },
Copy link
Contributor

@mustard-mh mustard-mh Feb 23, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe make it (CEDs) possible to add a link here?

And also other labels if it can help user to understand

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mustard-mh I think, He meant Cloud Dev Environments (CDEs)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A link would be great - going to leave that for a followup as I'd need to adjust a few things with how these labels render so it supports it.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mustard-mh I think, He meant Cloud Dev Environments (CDEs)

Yep, I know it, but for users may don't know this shorthand new word 😂 just want to give them more context

@werft-gitpod-dev-com
Copy link

started the job as gitpod-build-bmh-onboarding-form.21 because the annotations in the pull request description changed
(with .werft/ from main)

Copy link
Contributor

@mustard-mh mustard-mh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If it's for commit info, then first and last names do seem not that good to me (it's more like a nick for me).

And I confirmed that it's not working as it said, we may need to add env var too

OnboardingFlow Settings CommitInfo
image image image

@selfcontained
Copy link
Contributor Author

/unhold

@roboquat roboquat merged commit 83862f2 into main Feb 23, 2023
@roboquat roboquat deleted the bmh/onboarding-form branch February 23, 2023 22:49
@selfcontained selfcontained restored the bmh/onboarding-form branch February 23, 2023 23:20
@roboquat roboquat added deployed: webapp Meta team change is running in production deployed Change is completely running in production labels Feb 24, 2023
@filiptronicek filiptronicek mentioned this pull request Feb 24, 2023
11 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
deployed: webapp Meta team change is running in production deployed Change is completely running in production release-note size/XXL team: webapp Issue belongs to the WebApp team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants