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

[HOLD for payment 2024-12-07] [$250] Clean-up in the Categorize it flow #52253

Open
8 tasks done
trjExpensify opened this issue Nov 8, 2024 · 27 comments
Open
8 tasks done
Assignees
Labels
Awaiting Payment Auto-added when associated PR is deployed to production Daily KSv2 External Added to denote the issue can be worked on by a contributor NewFeature Something to build that is a new item.

Comments

@trjExpensify
Copy link
Contributor

trjExpensify commented Nov 8, 2024

If you haven’t already, check out our contributing guidelines for onboarding and email [email protected] to request to join our Slack channel!


Version Number: v9.0.59-0
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?: N/A
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @trjExpensify
Slack conversation https://expensify.slack.com/archives/C07HPDRELLD/p1731032656572279?thread_ts=1731032605.304139&cid=C07HPDRELLD

Action Performed:

Case: Is not a member of collect or control workspaces

  1. Sign-up for a new account
  2. Choose "Track my personal spend" > complete onboarding
  3. Go to the selfDM > + icon > Track expense
  4. Create a manual expense
  5. Click Categorize it

Case: Is a member of collect or control workspaces

  1. Sign-up for a new account
  2. Choose "Manage my team's expenses" > complete onboarding
  3. Go to the selfDM > + icon > Track expense
  4. Create a manual expense
  5. Click Categorize it

Expected Result:

This is considered a feature request as it's improvements to the flow.

  1. When you click Categorize it, if your "default workspace" (activePolicyID) is type collect or control, skip the selector and show the categories list of the default workspace.
image
  1. If you have no workspaces (or your default workspace is a personal policy), show an upgrade interstitial. When Upgrade is clicked, create a collect workspace. When Got it, thanks is clicked, move on to show the list of categories on the workspace created.
image

Actual Result:

  1. When the user has workspaces, we show a selector to enter a name, email or phone number or create a new workspace. It's incredibly easy to go wrong here and create a second workspace, as evident in the thread.
image
  1. When the user has no workspaces, we seem to be showing an empty state for the submit expense flow which doesn't make sense or match the action you just took to "categorize it" not "submit it to someone"
image

Workaround:

N/A

Platforms:

Which of our officially supported platforms is this issue occurring on?

  • Android: Standalone
  • Android: HybridApp
  • Android: mWeb Chrome
  • iOS: Standalone
  • iOS: HybridApp
  • iOS: mWeb Safari
  • MacOS: Chrome / Safari
  • MacOS: Desktop

Screenshots/Videos

In-line above.

Add any screenshot/video evidence

View all open jobs on GitHub

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~021856320183270003796
  • Upwork Job ID: 1856320183270003796
  • Last Price Increase: 2024-11-12
  • Automatic offers:
    • nkdengineer | Contributor | 104948536
Issue OwnerCurrent Issue Owner: @trjExpensify
@trjExpensify trjExpensify added Daily KSv2 Planning Changes still in the thought process NewFeature Something to build that is a new item. labels Nov 8, 2024
@trjExpensify trjExpensify self-assigned this Nov 8, 2024
Copy link

melvin-bot bot commented Nov 8, 2024

Current assignee @trjExpensify 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
@trjExpensify
Copy link
Contributor Author

@jamesdeanexpensify can you just sense check the copy, and then I'll send it external. Figgy here if you want it.

@jamesdeanexpensify
Copy link
Contributor

Do you upgrade to a workspace, or do you upgrade to a plan? Because I'm thinking of saying something like "You've upgraded to a workspace on the Collect plan!" or "You've upgraded to the Collect plan!" because it sounds a bit clearer to me.

@trjExpensify
Copy link
Contributor Author

Do you upgrade to a workspace

Yeah, I mean you don't have a workspace before this. That's where I was going with that, and also to hopefully teach them about the "workspace" terminology in that sense.

@jamesdeanexpensify
Copy link
Contributor

Cool - only a couple comments in Figma!

@trjExpensify
Copy link
Contributor Author

Alright, moving this on.

@trjExpensify trjExpensify added External Added to denote the issue can be worked on by a contributor and removed Planning Changes still in the thought process labels Nov 12, 2024
@melvin-bot melvin-bot bot changed the title Clean-up in the Categorize it flow [$250] Clean-up in the Categorize it flow Nov 12, 2024
Copy link

melvin-bot bot commented Nov 12, 2024

Job added to Upwork: https://www.upwork.com/jobs/~021856320183270003796

@melvin-bot melvin-bot bot added the Help Wanted Apply this label when an issue is open to proposals by contributors label Nov 12, 2024
Copy link

melvin-bot bot commented Nov 12, 2024

Triggered auto assignment to Contributor-plus team member for initial proposal review - @Ollyws (External)

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

nkdengineer commented Nov 12, 2024

Edited by proposal-police: This proposal was edited at 2024-11-12 14:56:01 UTC.

Proposal

Please re-state the problem that we are trying to solve in this issue.

When the user has workspaces, we show a selector to enter a name, email or phone number or create a new workspace. It's incredibly easy to go wrong here and create a second workspace, as evident in the thread.

What is the root cause of that problem?

This is a new feature request

What changes do you think we should make in order to solve the problem?

  1. For the upgrade page, we can create a new page like IOURequestStepUpgradePage. We can re-use UpgradeConfirmation, UpgradeIntro as we do in WorkspaceUpgradePage.
  • UpgradeIntro: we will create a new policy or draft policy when we click on the upgrade button

  • UpgradeConfirmation: This will be shown when we create a policy/draft successfully and when clicking on got it button navigate to the select category step

  • We need to add a new translation for the category upgrade feature and custom UpgradeIntro and UpgradeConfirmation to dynamic the price, and the description

  1. When we click on Categorize it,
  • if the default workspace is control or collect, set the participant of the transaction as this workspace like we do here and navigate to the category step.

  • If filteredPolicies is an empty object, navigate to the IOURequestStepUpgradePage that we created above

  • If we have multiple workspaces, navigate to the selector page.

const filteredPolicies = Object.values(allPolicies ?? {}).filter(

What alternative solutions did you explore? (Optional)

Result

Screen.Recording.2024-11-12.at.21.54.20.mov

@nkdengineer
Copy link
Contributor

The test branch here.

@trjExpensify
Copy link
Contributor Author

If we have multiple workspaces, navigate to the selector page.

Just a note that we don't want to do this part from your proposal. We want to show the categories list of the user's "default workspace" (activePolicyID) in both cases of having either one or multiple existing workspaces.

@nkdengineer
Copy link
Contributor

@trjExpensify But what is the expected if activePolicyID is a personal workspace? In this case the user has many workspace, the default workspace still can be updated to personal in OD.

@trjExpensify
Copy link
Contributor Author

@trjExpensify But what is the expected if activePolicyID is a personal workspace?

The expectation is that we treat that like having no workspace, and show the upgrade flow to create one.

@nkdengineer
Copy link
Contributor

The expectation is that we treat that like having no workspace, and show the upgrade flow to create one.

@trjExpensify This is also expected when we have many collect or control workspace and the default workspace is the personal workspace, right?

@trjExpensify
Copy link
Contributor Author

Yep. To be clear, I think it's a hole in the design when you have multiple workspaces and an activePolicyID set to the personal workspace, but I've had pushback on the workspace picker bullet. So to start for now, we're going to have to treat that one like having "no workspace" instead and promote creating one in that case. Overall then:

  • If your default workspace is of a “group” type (collect or control), show the categories list for that workspace.
  • If your default workspace is the personal workspace:
    • If you have no group workspaces, promote creating one.
    • If you have one group workspace, show the categories list for that workspace.
    • If you have multiple group workspaces, promote creating one.

@Ollyws
Copy link
Contributor

Ollyws commented Nov 18, 2024

@nkdengineer's proposal LGTM.
🎀👀🎀 C+ reviewed

Copy link

melvin-bot bot commented Nov 18, 2024

Triggered auto assignment to @Julesssss, see https://stackoverflow.com/c/expensify/questions/7972 for more details.

@melvin-bot melvin-bot bot removed the Help Wanted Apply this label when an issue is open to proposals by contributors label Nov 18, 2024
Copy link

melvin-bot bot commented Nov 18, 2024

📣 @nkdengineer 🎉 An offer has been automatically sent to your Upwork account for the Contributor role 🎉 Thanks for contributing to the Expensify app!

Offer link
Upwork job
Please accept the offer and leave a comment on the Github issue letting us know when we can expect a PR to be ready for review 🧑‍💻
Keep in mind: Code of Conduct | Contributing 📖

Copy link

melvin-bot bot commented Nov 28, 2024

⚠️ Looks like this issue was linked to a Deploy Blocker here

If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results.

If a regression has occurred and you are the assigned CM follow the instructions here.

If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future.

Copy link

melvin-bot bot commented Nov 28, 2024

⚠️ Looks like this issue was linked to a Deploy Blocker here

If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results.

If a regression has occurred and you are the assigned CM follow the instructions here.

If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future.

@melvin-bot melvin-bot bot added Weekly KSv2 Awaiting Payment Auto-added when associated PR is deployed to production and removed Weekly KSv2 labels Nov 30, 2024
@melvin-bot melvin-bot bot changed the title [$250] Clean-up in the Categorize it flow [HOLD for payment 2024-12-07] [$250] Clean-up in the Categorize it flow Nov 30, 2024
@melvin-bot melvin-bot bot removed the Reviewing Has a PR in review label Nov 30, 2024
Copy link

melvin-bot bot commented Nov 30, 2024

Reviewing label has been removed, please complete the "BugZero Checklist".

Copy link

melvin-bot bot commented Nov 30, 2024

The solution for this issue has been 🚀 deployed to production 🚀 in version 9.0.68-7 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:

If no regressions arise, payment will be issued on 2024-12-07. 🎊

For reference, here are some details about the assignees on this issue:

Copy link

melvin-bot bot commented Nov 30, 2024

BugZero Checklist: The PR adding this new feature has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

  • [@Ollyws] Please propose regression test steps to ensure the new feature will work correctly on production in further releases.
  • [@trjExpensify] Link the GH issue for creating/updating the regression test once above steps have been agreed upon.

@melvin-bot melvin-bot bot added Daily KSv2 Overdue and removed Weekly KSv2 labels Dec 7, 2024
@trjExpensify
Copy link
Contributor Author

Alrighty, @Ollyws.. can we get regression tests for this so we can move on to looking at payments?

@melvin-bot melvin-bot bot removed the Overdue label Dec 9, 2024
@Ollyws
Copy link
Contributor

Ollyws commented Dec 11, 2024

These steps will cover #53247 and #53309 too.

1. Sign-up for a new account
2. Choose "Track my personal spend" > complete onboarding
3. Go to the selfDM > + icon > Track expense
4. Create a manual expense
5. Click Categorize it

Case: your default workspace is of a “group” type,

    6. Verify that: show the categories list for that workspace.

Case: your default workspace is the personal workspace

    7. Verify that: If you have no group workspaces, promote creating one.
    8. On the upgrade page, click on Learn more link
    9. Verify that a help page is opened in a new tag
    10. Verify that: If you have one group workspace, show the categories list for that workspace.
    11. Verify that: If you have multiple group workspaces, promote creating one.

1. Sign with a new user
2. Create a workspace and disable the category feature
3. Create a track expense
4. Categorize it and Click on Edit Categories after the empty page is opened
5. Verify that the category feature is enabled and the categories page appears

@trjExpensify
Copy link
Contributor Author

Thanks, going to suggest a little re-write to make these flow better. What do you think of those?

Case: your default workspace is the personal workspace

  1. Sign-up for a new account
  2. Choose "Track my personal spend" > complete onboarding
  3. Go to the selfDM > + icon > Track expense
  4. Create a manual expense
  5. Click Categorize it
  6. Verify that a category upgrade page appears.
  7. On the upgrade page, click on Learn more link
  8. Verify that a help page is opened in a new tab
  9. Click Upgrade > Confirm
  10. Verify that we show a list of categories to select from.

Case: your default workspace is of a “group” type ("Collect" or "Control")

  1. Go to the selfDM > track a new expense
  2. Click Categorize it
  3. Verify that we show the categories list for that workspace.
  4. Close the RHP

Case: Disabled categories on the workspace

  1. Go to the workspace settings of the workspace
  2. Go to More features > Categories
  3. Disable the Categories feature
  4. Go back to the selfDM
  5. Click Categorize it again
  6. Verify an empty page appears as all categories are disabled
  7. Click Edit categories
  8. Verify that the category feature is enabled and the categories page appears

Case: personal workspace default, multiple group workspaces exist

  1. Create another workspace, so the account is now a member of two group workspaces.
  2. Go to Settings > Domains (to switch over to expensify.com easily).
  3. On OldDot, click your avatar.
  4. Change your default workspace to the personal workspace
  5. Switch back to new.expensify.com
  6. Go to the selfDM > track another expense
  7. Click Categorize it
  8. Verify the categories upgrade modal appears.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Awaiting Payment Auto-added when associated PR is deployed to production Daily KSv2 External Added to denote the issue can be worked on by a contributor NewFeature Something to build that is a new item.
Projects
Development

No branches or pull requests

5 participants