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

[$250] Remove onboarding videos from all the onboarding flows #55642

Open
danielrvidal opened this issue Jan 22, 2025 · 10 comments
Open

[$250] Remove onboarding videos from all the onboarding flows #55642

danielrvidal opened this issue Jan 22, 2025 · 10 comments
Assignees
Labels
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

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
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

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});
    }

In addition we will need to update the BE to remove all onboarding videos.

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

@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 :/ c.c. @Gonals

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
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
Projects
None yet
Development

No branches or pull requests

6 participants