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-05-06] CRITICAL: [Marketing] [$500] Create training interstitial when you click Track expense #40156

Closed
quinthar opened this issue Apr 12, 2024 · 54 comments
Assignees
Labels
Awaiting Payment Auto-added when associated PR is deployed to production External Added to denote the issue can be worked on by a contributor NewFeature Something to build that is a new item. Task Weekly KSv2

Comments

@quinthar
Copy link
Contributor

quinthar commented Apr 12, 2024

Problem:

We are about to promote Track expense to 10MM+ existing users, most of whom have never used NewDot. If we are lucky, they will see our marketing message and click through to check it out. It's unlikely they have an actual expense to track at that moment, so it's more likely they are going to just sorta click around to see what's available. Some unknown number of users will intuitively figure out our UI. However, some number of users won't find it intuitive by itself, and will abandon the product.

Note: We are working on Stage 2 onboarding. However, it doesn't exist today. Additionally, even if it did, it only targets new signups -- not historical signups. Furthermore, it only educates a single use case.

Solution:

Show "inline/on-demand training" the first time you use the Track expense, to:

  1. Explain what this feature does from a functional basis
  2. Preview how it works, to make it less scary and encourage them to give it a shot
  3. Highlight the major use cases they should be using it for

It would work like this:

<gif combo roll>

[ ] Don't show me this again
(   Tell me more!    )
(     Got it!        )

The components are:

  1. A modal interstitial that shows when you tap it
  2. A looping Lottie animation walking through all the animations we've already made
  3. A checkbox to cause this to be hidden in the future (which sets dismissedTrackTraining=1 in Onyx locally)
  4. A button that links to HelpDot for Track
  5. A button to continue

Image

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~01978ee6c0535caae9
  • Upwork Job ID: 1778617803608776704
  • Last Price Increase: 2024-06-06
  • Automatic offers:
    • tienifr | Contributor | 0
@quinthar quinthar converted this from a draft issue Apr 12, 2024
@quinthar quinthar added External Added to denote the issue can be worked on by a contributor Daily KSv2 Task labels Apr 12, 2024
Copy link

melvin-bot bot commented Apr 12, 2024

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

@melvin-bot melvin-bot bot changed the title CRITICAL: [Marketing] Create training interstitial when you click Track expense [$250] CRITICAL: [Marketing] Create training interstitial when you click Track expense Apr 12, 2024
@melvin-bot melvin-bot bot added the Help Wanted Apply this label when an issue is open to proposals by contributors label Apr 12, 2024
Copy link

melvin-bot bot commented Apr 12, 2024

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

@gijoe0295
Copy link
Contributor

gijoe0295 commented Apr 12, 2024

Proposal

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

Create training interstitial when you click Track expense

What is the root cause of that problem?

This is a new feature.

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

I can work on this feature following description in OP.

What alternative solutions did you explore? (Optional)

NA

@tienifr
Copy link
Contributor

tienifr commented Apr 12, 2024

Proposal

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

Create training interstitial when you click Track expense

What is the root cause of that problem?

This is a new feature

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

  • Create a FeatureTrainingModal that will accept 4 params: Lottie assets,learnMoreLink, onNotShowAgainPress, shouldShow
  • Build the UI for FeatureTrainingModal according to the OP
    • This will be almost like the <ConfirmModal> which will show as a bottom tab modal, with 2 buttons
    • The checkbox will use the <Checkbox> component
    • The buttons will use <Button>, with the proper text and color
    • Animation will use <Lottie>
  • Adds the FeatureTrainingModal to the track expense amount page, with Lottie assets, learnMoreLink based on what's provided by the design team.
  • The onNotShowAgainPress will be a handler that will set dismissedTrackTraining to 1 in Onyx (and potentially call an NVP endpoint to mark this in the back-end). It should also set dismissedTrackTraining to null in Onyx if the user uncheck the checkbox for Do not show again
  • The shouldShow will be true by default if dismissedTrackTraining is not 1, we'll also connect to Onyx to get this dismissedTrackTraining value. The shouldShow will need to be a local state too, for use in the next step.
  • Add onPress handlers when the user press on Got it, or when the user dismiss by tapping on the modal's backdrop, we'll dismiss the modal, and set shouldShow to false
  • Pressing the Learn more button, we'll redirect the user to the link provided in learnMoreLink
  • Of course the FeatureTrainingModal will only show on first navigation to the Track expense page, not when going back from the Confirmation step, ...

This reusable component can be used whenever we want to educate the user about a new feature in the future, we can just pass the correct 4 params to FeatureTrainingModal, according to that particular feature.

What alternative solutions did you explore? (Optional)

NA

@rushatgabhane
Copy link
Member

🎀 👀 🎀

Let's assign @tienifr to implement this feature

Copy link

melvin-bot bot commented Apr 13, 2024

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

@rushatgabhane
Copy link
Member

rushatgabhane commented Apr 13, 2024

@yuwenmemon is OOO until 16th, so I've asked someone else to assign themselves to this urgent issue

https://expensify.slack.com/archives/C02NK2DQWUX/p1712996505924539

@srikarparsi
Copy link
Contributor

Taking this over @yuwenmemon

@srikarparsi
Copy link
Contributor

@tienifr's proposal looks good to me as well. Assigning

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

melvin-bot bot commented Apr 13, 2024

📣 @tienifr 🎉 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 📖

@quinthar quinthar changed the title [$250] CRITICAL: [Marketing] Create training interstitial when you click Track expense CRITICAL: [Marketing] [$250] Create training interstitial when you click Track expense Apr 13, 2024
@tienifr
Copy link
Contributor

tienifr commented Apr 15, 2024

cc @Expensify/design Please send me the tutorial animation/video for this screen. Thanks!

@srikarparsi
Copy link
Contributor

srikarparsi commented Apr 16, 2024

Hey @tienifr, for this point in your proposal:

and potentially call an NVP endpoint to mark this in the back-end

I created an NVP called HAS_SEEN_TRACK_TRAINING = "hasSeenTrackTraining" in the backend that you can set using SET_NAME_VALUE_PAIR in the frontend. Similar to how it is done here. We also want to set this NVP whenever Don't show this again is checked.

@tienifr
Copy link
Contributor

tienifr commented Apr 16, 2024

@srikarparsi Got it! @shawnborton Could you kindly check #40156 (comment)?

@srikarparsi
Copy link
Contributor

cc @dubielzyk-expensify since I believe you were working on the video.

@dubielzyk-expensify dubielzyk-expensify self-assigned this Apr 17, 2024
@dubielzyk-expensify
Copy link
Contributor

I'll add myself here so I can help with PRs and I'll upload the video when it's done. It's posted to TCW here

Copy link

melvin-bot bot commented Apr 29, 2024

The solution for this issue has been 🚀 deployed to production 🚀 in version 1.4.67-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-05-06. 🎊

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

@melvin-bot melvin-bot bot added the Overdue label May 8, 2024
@srikarparsi
Copy link
Contributor

Hi @rushatgabhane and @tienifr, this PR introduced this bug which we fixed with a 300ms timeout. I'm still not sure if this is the best way to do this so I wanted to ask if you guys had any other ideas.

@melvin-bot melvin-bot bot removed the Overdue label May 9, 2024
@rushatgabhane
Copy link
Member

@srikarparsi please attach payment summary for this issue 🙇

@mallenexpensify mallenexpensify added the NewFeature Something to build that is a new item. label May 10, 2024
Copy link

melvin-bot bot commented May 10, 2024

Triggered auto assignment to @muttmuure (NewFeature), see https://stackoverflowteams.com/c/expensify/questions/14418#:~:text=BugZero%20process%20steps%20for%20feature%20requests for more details. Please add this Feature request to a GH project, as outlined in the SO.

@srikarparsi
Copy link
Contributor

srikarparsi commented May 12, 2024

Hey @rushatgabhane! Since this was a pretty big PR and it only caused one small regression, we can pay $250 for you and @tienifr each without the deduction. It would be great though if you could take a look at this comment and check if there’s a better approach for fixing this regression. More information about the fix is here and we’re essentially looking for a good way to queue the next animation once the previous animation is complete.

@JmillsExpensify
Copy link

Waiting for BZ checklist to be complete before approving payment, based on @srikarparsi's comment above.

@rushatgabhane
Copy link
Member

rushatgabhane commented May 13, 2024

This is a new feature, so I'll propose regression steps only

  1. Go to a new account
  2. Press green+ > Track expense
  3. Verify the training animation shows
  4. Press Learn more
  5. Verify user is navigated to HelpDot for track expenses
  6. Press Got it
  7. Verify user is navigated to Track expense page
  8. Press Back button
  9. Verify Track expense RHP dismisses
  10. Press green+ > Track expense
  11. Verify the training modal shows again
  12. Toggle "Don't show me this again" > Got it
  13. Verify user is navigated to Track expense page
  14. Dismiss Track expense page
  15. Press green+ > Track expense
  16. Verify the training modal does not show. User is navigated directly to Track expense page instead

@rushatgabhane
Copy link
Member

rushatgabhane commented May 13, 2024

I'm still not sure if this is the best way to do this so I wanted to ask if you guys had any other ideas.

@srikarparsi no, i don't know a better way yet. I spent time on this yesterday, but couldn't find much

@srikarparsi
Copy link
Contributor

Ok sounds good, @tienifr did you have a chance to look? The current solution is okay for me since we do the same thing in other places but just want to check. If not, I believe we can proceed with payment @muttmuure since the regression steps look good to me.

@tienifr
Copy link
Contributor

tienifr commented May 17, 2024

Hi @srikarparsi I tried to find a solution for the last 2 days but still had no better idea. Also given that it has been used in other places, I think it should be fine. If we want to find a more general approach to solve all these cases, we should open a separate issue for that.

@srikarparsi
Copy link
Contributor

Cool sounds good! I think this solution should work fine as well then. @muttmuure do you think you could help with payment or is there anything else that needs to be done? The regression steps here look good to me.

@JmillsExpensify
Copy link

Still waiting for a payment summary so I can approve.

@melvin-bot melvin-bot bot added the Overdue label May 27, 2024
@dubielzyk-expensify
Copy link
Contributor

Any updates here?

@melvin-bot melvin-bot bot removed the Overdue label May 27, 2024
@JmillsExpensify
Copy link

I flagged with Matt Moore via DM but he's OOO until Monday

@tienifr
Copy link
Contributor

tienifr commented Jun 2, 2024

@muttmuure @JmillsExpensify According to this announcement, this issue is marked as CRITICAL and should have a base price of $500. Could you help to update the issue title and factor that into the payment summary?

Thanks!

While bugs/feature requests will now start at $250, any that are deemed Critical or High to our roadmap (noted via the label High Priority) will automatically be updated to $500. This is to ensure we get the necessary attention and urgency applied to these issues.

@JmillsExpensify
Copy link

I don't see the High Priority label on this issue, right?

@JmillsExpensify
Copy link

In any case, @muttmuure I need a summary on this issue when you're back from OOO.

@tienifr
Copy link
Contributor

tienifr commented Jun 6, 2024

I don't see the High Priority label on this issue, right?

@JmillsExpensify I think the label was just missed out, like it was missed out and later applied here and here. In #40208 (comment) an issue with HIGH in the label missed the "High priority" label and it was added later. If not mistaken, CRITICAL here would be higher priority than HIGH

@muttmuure
Copy link
Contributor

Going to give the benefit of the doubt that this is at least a HIGH issue, since it has CRITICAL status in the project

@rushatgabhane - C+ $500
@tienifr - C $500

@muttmuure muttmuure changed the title [HOLD for payment 2024-05-06] CRITICAL: [Marketing] [$250] Create training interstitial when you click Track expense [HOLD for payment 2024-05-06] CRITICAL: [Marketing] [$500] Create training interstitial when you click Track expense Jun 6, 2024
Copy link

melvin-bot bot commented Jun 6, 2024

Upwork job price has been updated to $500

@JmillsExpensify
Copy link

$500 approved for @rushatgabhane

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 External Added to denote the issue can be worked on by a contributor NewFeature Something to build that is a new item. Task Weekly KSv2
Projects
No open projects
Status: CRITICAL
Development

No branches or pull requests