[Side Panel] Concierge Everywhere AB tests#79122
[Side Panel] Concierge Everywhere AB tests#79122marcochavezf merged 22 commits intoExpensify:mainfrom
Conversation
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
… SidePanel definition.
…ds, change complete onboarding from write to makeRequestWithSideEffects
…remove report ID handling.
|
@bernhardoj 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] |
|
I think @aimane-chnaif should review this one, but not sure tbh so I'm just tagging him for visibility :) |
|
@marcochavezf take a look please 🙇 |
|
yes I can |
|
@bernhardoj, I assigned @aimane-chnaif since they reviewed the implementation of Concierge in the RHP previously 🙇🏽 |
| // We use Onyx.connectWithoutView because we do not use this in React components and this logic is not tied directly to the UI. | ||
| Onyx.connectWithoutView({ | ||
| key: ONYXKEYS.NVP_ONBOARDING_RHP_VARIANT, | ||
| callback: (value) => { | ||
| onboardingRHPVariant = value; | ||
| }, | ||
| }); | ||
|
|
||
| Onyx.connectWithoutView({ |
There was a problem hiding this comment.
Not sure if guys working on Onyx.connect deprecation will mark this as regression
There was a problem hiding this comment.
In this case I would advise against using useOnyx, It's just a beta that will be removed in couple of weeks/months. It's much easier to keep the logic in one place instead of using useOnyx and making a bigger refactor.
The whole project is blocked by this so I would prefer to continue with this approach, wdyt @marcochavezf?
There was a problem hiding this comment.
ok, I think that reason would be enough to treat this as not regression.
There was a problem hiding this comment.
Yup, I agree with @blazejkustra that we should continue with this approach. This is a temporary A/B experiment, and we will update the code again once we have a winning variant (which hopefully can be seen in a couple of weeks)
|
Bug: [iOS safari] black screen shows before opening admins page Screen.Recording.2026-01-13.at.8.36.10.am.mov |
Yes, that was discussed on slack here |
This is a performance issue, you can clearly see that a lot of things happen at the same time (onboarding, test drive, concierge and other calculations). I don't think we can do mucha about it. |
…ation into onboarding logic
Good catch, just fixed it @aimane-chnaif Simulator.Screen.Recording.-.iPhone.15.Plus.-.2026-01-13.at.11.44.31.mov |
|
Back to you @aimane-chnaif! |
src/pages/OnboardingInterestedFeatures/BaseOnboardingInterestedFeatures.tsx
Outdated
Show resolved
Hide resolved
|
To confirm, when Screen.Recording.2026-01-13.at.1.09.26.pm.mov |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 96da54f0bd
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
src/pages/OnboardingInterestedFeatures/BaseOnboardingInterestedFeatures.tsx
Outdated
Show resolved
Hide resolved
|
No more blockers found |
trjExpensify
left a comment
There was a problem hiding this comment.
Implementing this A/B test is part of an agreed plan for the onboarding enhancements in #concierge-ai 👍
Yep! |
…d a try-catch block around the onboarding completion process
| // We use Onyx.connectWithoutView because we do not use this in React components and this logic is not tied directly to the UI. | ||
| Onyx.connectWithoutView({ | ||
| key: ONYXKEYS.NVP_ONBOARDING_RHP_VARIANT, | ||
| callback: (value) => { | ||
| onboardingRHPVariant = value; | ||
| }, | ||
| }); | ||
|
|
||
| Onyx.connectWithoutView({ |
There was a problem hiding this comment.
Yup, I agree with @blazejkustra that we should continue with this approach. This is a temporary A/B experiment, and we will update the code again once we have a winning variant (which hopefully can be seen in a couple of weeks)
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚀 Deployed to staging by https://github.com/marcochavezf in version: 9.3.1-0 🚀
|
|
🚀 Deployed to production by https://github.com/francoisl in version: 9.3.1-1 🚀
|



Explanation of Change
New signup admins who select 1-10 employees in onboarding currently land in #admins full-width after completing onboarding. We want to test different landing experiences:
/workspaces/<policyID>/overview) with Concierge DM open in the Side Panel/workspaces/<policyID>/overview) with #admins open in the Side PanelFixed Issues
$ #78413
PROPOSAL: N/A
Tests
Onyx.get('nvp_onboardingRHPVariant')Based on the value test if:
a)
control: Side Panel is closed andYour spaceor#adminsroom is be displayedb)
rhpConciergeDm: Side Panel is opened automatically and user is redirected to the Workspace Editor (/workspaces/<policyID>/overview). Concierge is displayed in the Side Panelc)
rhpAdminsRoom: Side Panel is opened automatically and user is redirected to the Workspace Editor (/workspaces/<policyID>/overview).#adminsroom is displayed in the Side PanelOffline tests
N/A
QA Steps
Same as Tests
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectioncanBeMissingparam foruseOnyxtoggleReportand 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
MacOS: Chrome / Safari
Screen.Recording.2026-01-09.at.15.32.53.1.mov