Skip to content

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

Closed

Description

@danielrvidal

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

Activity

  1. added
    ExternalAdded to denote the issue can be worked on by a contributor
    Help WantedApply this label when an issue is open to proposals by contributors
    on Jan 22, 2025
  2. changed the title [-]Remove onboarding videos from all the onboarding flows[/-] [+][$250] Remove onboarding videos from all the onboarding flows[/+] on Jan 22, 2025
  3. melvin-bot commented on Jan 22, 2025

    @melvin-bot
  4. melvin-bot commented on Jan 22, 2025

    @melvin-bot

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

  5. twilight2294 commented on Jan 22, 2025

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

  6. FitseTLT commented on Jan 22, 2025

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

    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)

  7. github-actions commented on Jan 22, 2025

    @github-actions
    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).

  8. ugogiordano commented on Jan 22, 2025

    @ugogiordano
    Contributor

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

  9. github-actions commented on Jan 22, 2025

    @github-actions
    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).

  10. c3024 commented on Jan 23, 2025

    @c3024
    Contributor

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

  11. melvin-bot commented on Jan 23, 2025

    @melvin-bot

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

  12. 23 remaining items

  13. danielrvidal commented on Feb 4, 2025

    @danielrvidal
    ContributorAuthor

    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
  14. FitseTLT commented on Feb 4, 2025

    @FitseTLT
    Contributor

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

  15. danielrvidal commented on Feb 4, 2025

    @danielrvidal
    ContributorAuthor

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

  16. melvin-bot commented on Feb 10, 2025

    @melvin-bot

    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!

  17. trjExpensify commented on Feb 10, 2025

    @trjExpensify
    Contributor

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

  18. Gonals commented on Feb 11, 2025

    @Gonals
    Contributor

    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.

  19. trjExpensify commented on Feb 11, 2025

    @trjExpensify
    Contributor

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

  20. trjExpensify commented on Feb 11, 2025

    @trjExpensify
    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!

  21. Gonals commented on Feb 11, 2025

    @Gonals
    Contributor

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

  22. trjExpensify commented on Feb 11, 2025

    @trjExpensify
    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.

  23. JmillsExpensify commented on Mar 3, 2025

    @JmillsExpensify
    Contributor

    $250 approved for @c3024

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Awaiting PaymentAuto-added when associated PR is deployed to productionDailyKSv2ExternalAdded to denote the issue can be worked on by a contributor

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions