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

[Tracking] Add a private domain email check to the new user onboarding flow #51496

Open
4 of 21 tasks
MitchExpensify opened this issue Oct 25, 2024 · 13 comments
Open
4 of 21 tasks
Assignees
Labels
Daily KSv2 Internal Requires API changes or must be handled by Expensify staff NewFeature Something to build that is a new item.

Comments

@MitchExpensify
Copy link
Contributor

MitchExpensify commented Oct 25, 2024

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!


Issue reported by: @MitchExpensify
Slack conversation: https://expensify.slack.com/archives/C07HPDRELLD/p1729809438307289
Figma file: https://www.figma.com/design/ir27daDKHaB1g4iZCT22K5/Onboarding-v2?node-id=7690-61846&t=VUO5F3YHDzF2O7Sw-1
Pre-design 1: https://expensify.slack.com/archives/C07HPDRELLD/p1730909567485999
Pre-design 1 summary: https://expensify.slack.com/archives/C07HPDRELLD/p1731000105159589
[Draft] Design Doc: https://docs.google.com/document/d/1JlM9G3jZpaHDlcILWL9170ancMLtOnI2a73dQgX6ENo/edit?tab=t.0

Proposal Add a private domain email check to the new user onboarding flow

Problem

Our product works a bit better when a user signs up with a private email address because we can more reliably get their First/Last name, better name auto created workspaces, etc. Further, our sales processes are enhanced when we know the domain of a user so we can target high-profile leads. Yet, the majority of our users sign up with public emails and/or phone numbers making it harder to catch edge cases where they accidentally create a new account when they should have added a secondary login to an existing account.

Solution

  1. Users sign in to New Expensify for the first time using a phone or public domain email address

  2. We will add a step immediately after signing in to the onboarding flow asking if they have a work email address.

  • This email field will only accept private domain entries, otherwise, it will throw an error: "Please use a valid work email from a private domain"
  1. If they enter a work email and choose to "Log in with my work email" we merge the accounts, making the work email their primary login
  • If the work email is tied to an existing account, we send a magic code and add a step to verify it so that we know they own it before merging.
  1. Once merged, users continue on their onboarding path or get redirected to Classic
  • If the work email is on any policy that is not isPolicyExpenseChatEnabled=true, or is tryNewDot.classicRedirect.dismissed=true, or has no tryNewDot NVP they are routed to Classic. Everyone else goes to the next NewDot onboarding step (Intent)

Work email check step:
image

Magic code step for existing accounts:
image

Tasks

  • Post Proposal (full Problem/Solution statement) in #expensify-open-source '#convert`: https://expensify.slack.com/archives/C07HPDRELLD/p1730909567485999
  • Wait at least one full business day, and until the post has a majority (2/3) of positive reactions (👍)
  • Paste Proposal in the space above with a link to the Slack thread
  • Email strategy@expensify.com and paste in the Proposal This is not a What's Next proposal but we're using the Design Doc template to make sure its done right
  • Fill out the High-level overview of the problem, Timeline, and Terminology sections of the Design Doc
  • Email strategy@expensify.com (continue the same email chain as before) with the link to your Design Doc This is not a What's Next proposal but we're using the Design Doc template to make sure its done right
  • Host a pre-design meeting (example) in #expensify-open-source to discuss any necessary details in public before filling out the High-level of proposed solution section: https://expensify.slack.com/archives/C07HPDRELLD/p1730909567485999
  • Fill out the High-level of proposed solution section
  • Email stategy@expensify.com again with links to the doc and pre-design conversation in Slack This is not a What's Next proposal but we're using the Design Doc template to make sure its done right
  • Add the DesignDocReview label to get the High-level of proposed solution section reviewed
  • Respond to any questions or concerns and bring up blockers in Slack to get a consensus if necessary
  • Confirm that the doc has the minimum necessary number of reviews before proceeding
  • Host another pre-design meeting in #expensify-open-source to ask for engineering feedback on the technical solution.
  • Fill out the Detailed implementation of the solution and related sections.
  • Re-add the DesignDocReview label to this issue
  • Respond to any questions or concerns and bring up blockers in Slack to get consensus if necessary
  • Confirm that the doc has the minimum necessary number of reviews before proceeding
  • Email strategy@expensify.com one last time to let them know the Design Doc is moving into the implementation phase
  • Implement the changes
  • Add regression tests so that QA can test your feature with every deploy (instructions)
  • Send out a follow up email to strategy@expensify.com once everything has been implemented and do a Project Wrap-Up retrospective that provides:
    • Summary of what we accomplished with this project
    • What went well?
    • What could we have done better?
    • What did we learn?
@MitchExpensify MitchExpensify added Daily KSv2 Internal Requires API changes or must be handled by Expensify staff Planning Changes still in the thought process labels Oct 25, 2024
@MitchExpensify MitchExpensify self-assigned this Oct 25, 2024
@melvin-bot melvin-bot bot added the Overdue label Oct 28, 2024
@anmurali
Copy link

Do we want to add this in the Stage 1 flow? @MitchExpensify

@MitchExpensify
Copy link
Contributor Author

That's the idea @anmurali, do you think it makes sense to add for everyone signing up before the "what would you like to do today?" options or after a choice on that screen and only for certain options?

image

I think track, manage, and get paid back all indicate a higher chance the user should have logged in using their work email so I'd lean to the latter (Adding the check after the welcome message only for certain choices)

@melvin-bot melvin-bot bot removed the Overdue label Oct 29, 2024
@anmurali
Copy link

So long as it is optional, I would try it across the board and if conversion through the stage 1 funnel falls, we can do something else.

@shawnborton
Copy link
Contributor

Posted some ideas to Slack here, working from this Figma file here

@MitchExpensify
Copy link
Contributor Author

@MitchExpensify MitchExpensify added Daily KSv2 and removed Monthly KSv2 labels Nov 6, 2024
@MitchExpensify
Copy link
Contributor Author

Pre-Design summarized - https://expensify.slack.com/archives/C07HPDRELLD/p1731000105159589

Will update this issue as a next step

@MitchExpensify MitchExpensify added NewFeature Something to build that is a new item. and removed Planning Changes still in the thought process labels Nov 8, 2024
Copy link

melvin-bot bot commented Nov 8, 2024

Current assignee @MitchExpensify is eligible for the NewFeature assigner, not assigning anyone new.

@melvin-bot melvin-bot bot added Weekly KSv2 and removed Daily KSv2 labels Nov 8, 2024
Copy link

melvin-bot bot commented Nov 8, 2024

⚠️ It looks like this issue is labelled as a New Feature but not tied to any GitHub Project. Keep in mind that all new features should be tied to GitHub Projects in order to properly track external CAP software time ⚠️

Copy link

melvin-bot bot commented Nov 8, 2024

Current assignee @shawnborton is eligible for the NewFeature assigner, not assigning anyone new.

@MitchExpensify MitchExpensify changed the title [Tracking] Add a private domain email check to the new user onboarding flow Add a private domain email check to the new user onboarding flow Nov 8, 2024
@MitchExpensify MitchExpensify added Daily KSv2 and removed Weekly KSv2 labels Nov 8, 2024
@melvin-bot melvin-bot bot added the Overdue label Nov 11, 2024
@shawnborton
Copy link
Contributor

Not overdue, I think we're all good from a mockup standpoint at least.

@melvin-bot melvin-bot bot removed the Overdue label Nov 11, 2024
@MitchExpensify
Copy link
Contributor Author

I'm gonna get this into a Design Doc as a next step to make sure we don't miss anything and get good visibility on the plan

@MitchExpensify MitchExpensify changed the title Add a private domain email check to the new user onboarding flow [Tracking] Add a private domain email check to the new user onboarding flow Nov 12, 2024
@MitchExpensify
Copy link
Contributor Author

MitchExpensify commented Nov 12, 2024

Design doc is coming along here: https://docs.google.com/document/d/1JlM9G3jZpaHDlcILWL9170ancMLtOnI2a73dQgX6ENo/edit?tab=t.0

I still need to:

  1. Confirm what the plan for secondary logins in NewDot is for the resource management section
  2. Get @blimpich 's help completing the data storage section

Then send it out for review

@blimpich
Copy link
Contributor

Raised some questions about edge cases and starting a conversation with what to do about them here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Daily KSv2 Internal Requires API changes or must be handled by Expensify staff NewFeature Something to build that is a new item.
Projects
Status: No status
Development

No branches or pull requests

4 participants