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

[Due for payment 2025-02-10] [$250] Remove onboarding videos from all the onboarding flows #55642

Closed
danielrvidal opened this issue Jan 22, 2025 · 30 comments
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

Comments

@danielrvidal
Copy link
Contributor

danielrvidal commented Jan 22, 2025

We have onboarding videos in the welcome message that comes from Concierge for most flows and from the guide/sales in the #admins room for users who created a workspace or are an admin.

We did an a/b test and found the videos are now less effective at generating usage than not having the videos. Thus, we would like to remove them from all cases.

We show different variations of the video based on their introSelected NVP. We need to remove it from all cases. The NVP looks like:

"introSelected": {
        "choice": "newDotEmployer"

And here you can see the video for the employee (the NVP above) case here:
Image

Please let me know if there are any questions.

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~021882162574801556686
  • Upwork Job ID: 1882162574801556686
  • Last Price Increase: 2025-01-22
  • Automatic offers:
    • FitseTLT | Contributor | 105889621
Issue OwnerCurrent Issue Owner: @c3024
@danielrvidal danielrvidal added Daily KSv2 External Added to denote the issue can be worked on by a contributor Help Wanted Apply this label when an issue is open to proposals by contributors labels Jan 22, 2025
@melvin-bot melvin-bot bot changed the title Remove onboarding videos from all the onboarding flows [$250] Remove onboarding videos from all the onboarding flows Jan 22, 2025
Copy link

melvin-bot bot commented Jan 22, 2025

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

Copy link

melvin-bot bot commented Jan 22, 2025

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

@twilight2294
Copy link
Contributor

Proposal

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

Remove onboarding videos from all the onboarding flows

What is the root cause of that problem?

Feature removal request

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

Remove the videos from the message creation flow at the following places:

App/src/CONST.ts

Lines 104 to 107 in 9340e36

const onboardingEmployerOrSubmitMessage: OnboardingMessage = {
message: 'Getting paid back is as easy as sending a message. Let’s go over the basics.',
video: {
url: `${CLOUDFRONT_URL}/videos/guided-setup-get-paid-back-v3.mp4`,

App/src/CONST.ts

Lines 157 to 162 in 9340e36

const onboardingPersonalSpendMessage: OnboardingMessage = {
message: 'Here’s how to track your spend in a few clicks.',
video: {
url: `${CLOUDFRONT_URL}/videos/guided-setup-track-personal-v2.mp4`,
thumbnailUrl: `${CLOUDFRONT_URL}/images/guided-setup-track-personal.jpg`,

App/src/CONST.ts

Lines 5178 to 5182 in 9340e36

[onboardingChoices.ADMIN]: {
message: "As an admin, learn how to manage your team's workspace and submit expenses yourself.",
video: {
url: `${CLOUDFRONT_URL}/videos/guided-setup-manage-team-v2.mp4`,
thumbnailUrl: `${CLOUDFRONT_URL}/images/guided-setup-manage-team.jpg`,

App/src/CONST.ts

Lines 4992 to 4996 in 9340e36

[onboardingChoices.MANAGE_TEAM]: {
message: 'Here are some important tasks to help get your team’s expenses under control.',
video: {
url: `${CLOUDFRONT_URL}/videos/guided-setup-manage-team-v2.mp4`,
thumbnailUrl: `${CLOUDFRONT_URL}/images/guided-setup-manage-team.jpg`,

App/src/CONST.ts

Lines 5131 to 5135 in 9340e36

[onboardingChoices.CHAT_SPLIT]: {
message: 'Splitting bills with friends is as easy as sending a message. Here’s how.',
video: {
url: `${CLOUDFRONT_URL}/videos/guided-setup-chat-split-bills-v2.mp4`,
thumbnailUrl: `${CLOUDFRONT_URL}/images/guided-setup-chat-split-bills.jpg`,

Optional: I think we need to remove the message as well, but that needs to be confirmed

What specific scenarios should we cover in automated tests to prevent reintroducing this issue in the future?

N/A

What alternative solutions did you explore? (Optional)

N/A

@FitseTLT
Copy link
Contributor

FitseTLT commented Jan 22, 2025

Proposal

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

Remove onboarding videos from all the onboarding flows

What is the root cause of that problem?

Improvement

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

  1. Remove the videos from the Onboarding const here, here, here, here and here
  2. Then remove code linked to video

    App/src/libs/actions/Report.ts

    Lines 3660 to 3670 in a0836a9

    let videoCommentAction: OptimisticAddCommentReportAction | null = null;
    let videoMessage: AddCommentOrAttachementParams | null = null;
    if ('video' in data && data.video) {
    const videoComment = buildOptimisticAddCommentReportAction(CONST.ATTACHMENT_MESSAGE_TEXT, undefined, actorAccountID, 2);
    videoCommentAction = videoComment.reportAction;
    videoMessage = {
    reportID: targetChatReportID,
    reportActionID: videoCommentAction.reportActionID,
    reportComment: videoComment.commentText,
    };
    }

    and

    App/src/libs/actions/Report.ts

    Lines 4034 to 4064 in a0836a9

    if (!shouldPostTasksInAdminsRoom && 'video' in data && data.video && videoCommentAction && videoMessage) {
    optimisticData.push({
    onyxMethod: Onyx.METHOD.MERGE,
    key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${targetChatReportID}`,
    value: {
    [videoCommentAction.reportActionID]: videoCommentAction as ReportAction,
    },
    });
    successData.push({
    onyxMethod: Onyx.METHOD.MERGE,
    key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${targetChatReportID}`,
    value: {
    [videoCommentAction.reportActionID]: {pendingAction: null},
    },
    });
    failureData.push({
    onyxMethod: Onyx.METHOD.MERGE,
    key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${targetChatReportID}`,
    value: {
    [videoCommentAction.reportActionID]: {
    errors: ErrorUtils.getMicroSecondOnyxErrorWithTranslationKey('report.genericAddCommentFailureMessage'),
    } as ReportAction,
    },
    });
    guidedSetupData.push({type: 'video', ...data.video, ...videoMessage});
    }

What specific scenarios should we cover in automated tests to prevent reintroducing this issue in the future?

Not needed

What alternative solutions did you explore? (Optional)

Copy link
Contributor

⚠️ @FitseTLT Thanks for your proposal. Please update it to follow the proposal template, as proposals are only reviewed if they follow that format (note the mandatory sections).

@ugogiordano
Copy link
Contributor

ugogiordano commented Jan 22, 2025

🚨 Edited by proposal-police: This proposal was edited at 2024-09-28 10:38:21 UTC.

Proposal

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

The goal is to remove all onboarding videos from the onboarding flows.

What is the root cause of that problem?

This request is based on a feature removal decision.

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

  1. Remove the onboarding videos from the onboarding message creation flow defined in the CONST.ts file, specifically at the following lines:

https://github.com/Expensify/App/blob/9340e36d214aa1dff61d98f1f82bf30906f293c7/src/CONST.ts#L7C1-L8C1

App/src/CONST.ts

Lines 263 to 264 in 9340e36

/** Video object to be displayed after initial description message */
video?: Video;

App/src/CONST.ts

Lines 106 to 112 in 9340e36

video: {
url: `${CLOUDFRONT_URL}/videos/guided-setup-get-paid-back-v3.mp4`,
thumbnailUrl: `${CLOUDFRONT_URL}/images/guided-setup-get-paid-back.jpg`,
duration: 26,
width: 1280,
height: 960,
},

App/src/CONST.ts

Lines 160 to 166 in 9340e36

video: {
url: `${CLOUDFRONT_URL}/videos/guided-setup-track-personal-v2.mp4`,
thumbnailUrl: `${CLOUDFRONT_URL}/images/guided-setup-track-personal.jpg`,
duration: 55,
width: 1280,
height: 960,
},

App/src/CONST.ts

Lines 4994 to 5000 in 9340e36

video: {
url: `${CLOUDFRONT_URL}/videos/guided-setup-manage-team-v2.mp4`,
thumbnailUrl: `${CLOUDFRONT_URL}/images/guided-setup-manage-team.jpg`,
duration: 55,
width: 1280,
height: 960,
},

App/src/CONST.ts

Lines 5133 to 5139 in 9340e36

video: {
url: `${CLOUDFRONT_URL}/videos/guided-setup-chat-split-bills-v2.mp4`,
thumbnailUrl: `${CLOUDFRONT_URL}/images/guided-setup-chat-split-bills.jpg`,
duration: 55,
width: 1280,
height: 960,
},

App/src/CONST.ts

Lines 5180 to 5186 in 9340e36

video: {
url: `${CLOUDFRONT_URL}/videos/guided-setup-manage-team-v2.mp4`,
thumbnailUrl: `${CLOUDFRONT_URL}/images/guided-setup-manage-team.jpg`,
duration: 55,
width: 1280,
height: 960,
},

  1. Remove the videoCommentAction from the prepareOnboardingOptimisticData function in the Report.ts file, at the following lines:

App/src/libs/actions/Report.ts

Lines 3660 to 3670 in 9340e36

let videoCommentAction: OptimisticAddCommentReportAction | null = null;
let videoMessage: AddCommentOrAttachementParams | null = null;
if ('video' in data && data.video) {
const videoComment = buildOptimisticAddCommentReportAction(CONST.ATTACHMENT_MESSAGE_TEXT, undefined, actorAccountID, 2);
videoCommentAction = videoComment.reportAction;
videoMessage = {
reportID: targetChatReportID,
reportActionID: videoCommentAction.reportActionID,
reportComment: videoComment.commentText,
};
}

App/src/libs/actions/Report.ts

Lines 4035 to 4063 in 9340e36

if (!shouldPostTasksInAdminsRoom && 'video' in data && data.video && videoCommentAction && videoMessage) {
optimisticData.push({
onyxMethod: Onyx.METHOD.MERGE,
key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${targetChatReportID}`,
value: {
[videoCommentAction.reportActionID]: videoCommentAction as ReportAction,
},
});
successData.push({
onyxMethod: Onyx.METHOD.MERGE,
key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${targetChatReportID}`,
value: {
[videoCommentAction.reportActionID]: {pendingAction: null},
},
});
failureData.push({
onyxMethod: Onyx.METHOD.MERGE,
key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${targetChatReportID}`,
value: {
[videoCommentAction.reportActionID]: {
errors: ErrorUtils.getMicroSecondOnyxErrorWithTranslationKey('report.genericAddCommentFailureMessage'),
} as ReportAction,
},
});
guidedSetupData.push({type: 'video', ...data.video, ...videoMessage});
}

What specific scenarios should we cover in automated tests to prevent reintroducing this issue in the future?

What alternative solutions did you explore? (Optional)

None at this time.

Reminder: Please use plain English, be brief and avoid jargon. Feel free to use images, charts or pseudo-code if necessary. Do not post large multi-line diffs or write walls of text. Do not create PRs unless you have been hired for this job.

Copy link
Contributor

⚠️ @ugogiordano Thanks for your proposal. Please update it to follow the proposal template, as proposals are only reviewed if they follow that format (note the mandatory sections).

@c3024
Copy link
Contributor

c3024 commented Jan 23, 2025

@FitseTLT’s proposal here looks good to me, as it addresses removal of all redundant code including the removal of all optimistic report action generations and writing to the backend.

🎀 👀 🎀 C+ reviewed!

Copy link

melvin-bot bot commented Jan 23, 2025

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

@twilight2294
Copy link
Contributor

twilight2294 commented Jan 23, 2025

@c3024 I think those are implementation details, my proposal did cover the thing needed to complete the task in the OP, so i guess the selection is not fair based only code clean up :/

Actually my point is that according to the contributors doc:

ALL NEW PROPOSALS MUST BE DIFFERENT FROM EXISTING PROPOSALS. The difference should be important, meaningful or considerable.

So my proposal yields the same result even if we do not do the cleanup as suggested by other contributor. So results is the same which will be achieved so other proposal is not at all different, and i honestly think that the extra things suggested are a code cleanup which can be done during PR phase

c.c. @Gonals

@danielrvidal
Copy link
Contributor Author

@c3024 so are we ready to move to the next phase? Can you outline next steps and get this one moving please?

@melvin-bot melvin-bot bot added the Overdue label Jan 27, 2025
@c3024
Copy link
Contributor

c3024 commented Jan 28, 2025

@twilight2294

I chose @FitseTLT’s proposal because it is complete and addresses all the changes required to remove the video-related logic.

It is true that your proposal also works and yields the same result.

I feel this is a simple issue, and all the required changes can be identified and included by the contributor in the initial proposal itself. Moreover, there is a possibility that code cleanup might be missed, especially since simply removing the constants from the file also works.

So, I’d like to stick with my decision to select @FitseTLT’s proposal for moving forward.

@danielrvidal

The next step is for @Gonals to choose one of the external contributors to work on the PR.

Thanks!

@melvin-bot melvin-bot bot removed the Overdue label Jan 28, 2025
@twilight2294
Copy link
Contributor

It is true that your proposal also works and yields the same result.

Thanks for agreeing on this.

I feel this is a simple issue, and all the required changes can be identified and included by the contributor in the initial proposal itself.

I thought counter intuitively 😅 that this is a simple issue and would only need the crux part of the changes required and not the cleanup .

So, I’d like to stick with my decision to select @FitseTLT’s proposal for moving forward.

Thanks for replying, though i still think that my proposal should be choosen here as it's complete and works according to OP and shouldn't be ignored because i didn't include code cleanup 😢 .

@Gonals can you please review my POV too before making a proposal selection, thanks!

@melvin-bot melvin-bot bot removed the Help Wanted Apply this label when an issue is open to proposals by contributors label Jan 28, 2025
Copy link

melvin-bot bot commented Jan 28, 2025

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

@Gonals
Copy link
Contributor

Gonals commented Jan 28, 2025

@twilight2294

I chose @FitseTLT’s proposal because it is complete and addresses all the changes required to remove the video-related logic.

It is true that your proposal also works and yields the same result.

I feel this is a simple issue, and all the required changes can be identified and included by the contributor in the initial proposal itself. Moreover, there is a possibility that code cleanup might be missed, especially since simply removing the constants from the file also works.

So, I’d like to stick with my decision to select @FitseTLT’s proposal for moving forward.

@danielrvidal

The next step is for @Gonals to choose one of the external contributors to work on the PR.

Thanks!

I agree with your logic. Assigning to @FitseTLT

@twilight2294
Copy link
Contributor

I agree with your logic. Assigning to @FitseTLT

@Gonals sorry, do you agree with my logic or @c3024 's ?

@Gonals
Copy link
Contributor

Gonals commented Jan 28, 2025

I agree with your logic. Assigning to @FitseTLT

@Gonals sorry, do you agree with my logic or @c3024 's ?

Ah, it got wrongly quoted, but I agree with @c3024 👍

@melvin-bot melvin-bot bot added Reviewing Has a PR in review and removed Daily KSv2 labels Jan 28, 2025
@melvin-bot melvin-bot bot added the Weekly KSv2 label Jan 28, 2025
@melvin-bot melvin-bot bot added Weekly KSv2 Awaiting Payment Auto-added when associated PR is deployed to production and removed Weekly KSv2 labels Feb 3, 2025
@melvin-bot melvin-bot bot changed the title [$250] Remove onboarding videos from all the onboarding flows [Due for payment 2025-02-10] [$250] Remove onboarding videos from all the onboarding flows Feb 3, 2025
Copy link

melvin-bot bot commented Feb 3, 2025

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

@melvin-bot melvin-bot bot removed the Reviewing Has a PR in review label Feb 3, 2025
Copy link

melvin-bot bot commented Feb 3, 2025

The solution for this issue has been 🚀 deployed to production 🚀 in version 9.0.93-3 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 2025-02-10. 🎊

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

Copy link

melvin-bot bot commented Feb 4, 2025

⚠️ 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.

@danielrvidal
Copy link
Contributor Author

I'm still seeing the onboarding video on my onboarding flows on staging and production? Should I be seeing it still?

2025-02-04_11-45-59.mp4

@FitseTLT
Copy link
Contributor

FitseTLT commented Feb 4, 2025

I think this is a gif @danielrvidal It has already been mentioned here that it needs a BE fix.

@danielrvidal
Copy link
Contributor Author

Got it, so is that on @Gonals to help update from our side?

@melvin-bot melvin-bot bot added Daily KSv2 and removed Weekly KSv2 labels Feb 10, 2025
Copy link

melvin-bot bot commented Feb 10, 2025

Issue is ready for payment but no BZ is assigned. @trjExpensify you are the lucky winner! Please verify the payment summary looks correct and complete the checklist. Thanks!

@trjExpensify
Copy link
Contributor

@Gonals don't suppose you can confirm removal of that GIF from the backend?

@Gonals
Copy link
Contributor

Gonals commented Feb 11, 2025

Yep. I haven't gotten to it yet. I'll create a separate issue for it, so we don't have to hold this one for it.

@trjExpensify
Copy link
Contributor

Okay, let's track that in #convert though (CC: @danielrvidal). Added it to the project.

@trjExpensify
Copy link
Contributor

Payment summary as follows:

  • $250 to @FitseTLT for the C+ review (paid!)
  • $250 to @c3024 for the PR (Go ahead and request!)

Removal of vids, so no checklist required here. Closing!

@Gonals
Copy link
Contributor

Gonals commented Feb 11, 2025

@trjExpensify, I take we want to remove the GIF, but geep the rest of the message, right?

@trjExpensify
Copy link
Contributor

@trjExpensify, I take we want to remove the GIF, but geep the rest of the message, right?

Yes, I believe that was @danielrvidal's intent.

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
Projects
None yet
Development

No branches or pull requests

7 participants