Add rhpHomePage variant (D) to onboarding A/B/C/D test#85273
Add rhpHomePage variant (D) to onboarding A/B/C/D test#85273carlosmiceli merged 4 commits intomainfrom
Conversation
Add frontend handling for the new rhpHomePage variant that navigates users to the Home page after onboarding, without opening the side panel or test drive modal. Concierge Anywhere remains accessible in the #admins room naturally. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
@thesahindia Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
The module-level onboardingRHPVariant variable in RHPVariantTest/index.ts is populated by an Onyx.connectWithoutView callback that may not have fired by the time navigateAfterOnboarding calls shouldOpenRHPVariant. This causes intermittent failures where users assigned to rhpConciergeDm or rhpAdminsRoom fall through to default navigation instead of the workspace editor. Fix: accept an optional variantOverride parameter in shouldOpenRHPVariant and handleRHPVariantNavigation. The caller in BaseOnboardingInterestedFeatures extracts the variant directly from the CompleteGuidedSetup API response onyxData and passes it through, bypassing the async Onyx callback entirely. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
The response onyxData is typed with a narrow key union that does not
include nvp_onboardingRHPVariant. Cast to Array<{key: string; value: unknown}>
to allow searching for the variant key.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The rhpHomePage variant should open the RHP with Concierge DM on the Home page, not just navigate to Home silently. This matches the experiment intent: test whether landing on Home + RHP Concierge performs differently from workspace overview + RHP Concierge. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Hi @thesahindia! Could you prioritize the review soon? Any questions, please let me know! |
joekaufmanexpensify
left a comment
There was a problem hiding this comment.
Good for product
|
@marcochavezf, for Screen.Recording.2026-03-18.at.5.11.47.AM.mov |
Yup, this is the expected behavior for this variant. The RHP remains closed only for the control variant |
@marcochavezf, do we need to update the test steps for |
Oh yes, good catch, updated! |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppiOS: mWeb SafariMacOS: Chrome / SafariScreen.Recording.2026-03-18.at.5.11.47.AM.mov |
|
@carlosmiceli Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
|
🎯 @thesahindia, thanks for reviewing and testing this PR! 🎉 An E/App issue has been created to issue payment here: #85625. |
|
🚧 @carlosmiceli has triggered a test Expensify/App build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
@marcochavezf
|
|
🚀 Deployed to staging by https://github.com/carlosmiceli in version: 9.3.40-0 🚀
|
|
🚀 Deployed to staging by https://github.com/carlosmiceli in version: 9.3.40-0 🚀
|
The way to check is by signing up with a new account and checking in the console the variant with the following command |
This reverts merge commit d1f626f because the control variant regressed — it no longer lands on the Home view after onboarding. Reverting to restore correct behavior while the fix is reworked. Made-with: Cursor
…g-variant-d Revert "Add rhpHomePage variant (D) to onboarding A/B/C/D test" (#85273)
|
🚀 Deployed to production by https://github.com/cristipaval in version: 9.3.41-4 🚀
|





Explanation of Change
This PR does two things for the onboarding A/B/C/D experiment (#610149):
1. Add variant D (
rhpHomePage) frontend handlingAdd frontend handling for the new
rhpHomePageonboarding variant that navigates users to the Home page after onboarding, without opening the side panel or test drive modal. Concierge Anywhere remains accessible in the #admins room naturally.Changes:
RHP_HOME_PAGE: 'rhpHomePage'constant and update theOnboardingRHPVarianttyperhpHomePageinshouldOpenRHPVariant()eligibility checkhandleRHPVariantNavigation()that navigates toROUTES.HOME2. Fix race condition in variant redirect (affects all variants)
Users assigned to
rhpConciergeDmorrhpAdminsRoomsometimes don't get redirected to the workspace editor. The root cause:shouldOpenRHPVariant()reads module-level variables populated byOnyx.connectWithoutView()callbacks, which may not have fired by the time navigation runs after theCompleteGuidedSetupAPI response.Fix: Accept an optional
variantOverrideparameter inshouldOpenRHPVariant()andhandleRHPVariantNavigation(). The caller inBaseOnboardingInterestedFeaturesextracts the variant directly from the API response'sonyxDataand passes it through, bypassing the async Onyx callback entirely. Existing callers without the override continue to work via the module-level variable (backward compatible).Companion PRs:
% 3→% 4, addsrhpHomePagebranch)Deployment note: This PR should deploy before Auth#20374 to avoid a measurement gap. App changes are no-ops until Auth activates the randomization.
Fixed Issues
$ https://github.com/Expensify/Expensify/issues/610149
Tests
Variant D (new):
rhpHomePagevariant (check viaawait Onyx.get('nvp_onboardingRHPVariant')in the console), verify:Existing variants (regression check):
6. For
rhpConciergeDmvariant: verify you land on Workspace Overview with the side panel open showing Concierge DM7. For
rhpAdminsRoomvariant: verify you land on Workspace Overview with the side panel open showing the #admins room chat8. For
controlvariant: verify you land on Home view, no side panel openRace condition fix verification:
9. On a slow network connection (use Chrome DevTools throttling), complete onboarding as a micro-company user
10. Verify you are consistently redirected to the correct variant destination (not falling through to default/HOME)
Offline tests
N/A — variant assignment happens during onboarding which requires network.
QA Steps
Same as Tests above. Focus on steps 9-10 for the race condition fix.
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
No screenshots or videos
Android: mWeb Chrome
No screenshots or videos
iOS: Native
No screenshots or videos
iOS: mWeb Safari
No screenshots or videos
MacOS: Chrome / Safari
No screenshots or videos