Allow NewDot collect customers to add one third-party card feed#56144
Conversation
|
@DylanDylann 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] |
|
@ZhenjaHorbach will continue review here |
|
Copy message from here since this is a separate issue But actually We have another specific issue When we upgrade our workspace plan to control and we have at least one card
But when we downgrade our workspace plan
I think in this case we should suggest upgrading to a control plan when we have two and more cards But in this case I think we need advice from @joekaufmanexpensify ! 2025-01-31.11.39.53.mov |
|
Interesting. There seem to be a couple of different issues here. Here's my understanding:
Do we agree with that @mountiny @ZhenjaHorbach @narefyev91 ? |
|
@joekaufmanexpensify And following the suggestions I suppose we need a new warning screen or something like this that will not allow us to downgrade the plan if we have two or more card feeds, explaining that we can only have one card feed on collect instead this screen
And if we have one card feed everything is clear ! @Expensify/design |
|
Yeah I agree with the suggested path |
|
Yeah that sounds good to me. If they can't downgrade, could we just show our standard confirmation modal if they click that button and say some thing like
Obviously we need real copy, but I'm mainly wondering if our regular confirmation dialog would be enough here. cc @Expensify/design |
|
@ZhenjaHorbach added modal to prevent downgrade, updated all videos |
|
@narefyev91 And I suppose we need confirmation from @Expensify/design And I think that when we click on |
|
@mountiny
2025-02-03.15.57.12.mov
2025-02-03.15.58.21.mov |
|
Hmm yeah I see what you're saying. I'm a bit torn about that! @dubielzyk-expensify any additional thoughts? |
|
Yeah, I quite like them seeing the downgrade screen then showing the error once they click downgrade. So basically leaving it how it currently is 👍 |
|
Cool, let's leave it as it is then. All good from a design perspective then I think! |
|
Found one more bug looks like we get up-to-date information about cards only when we open company-cards page 2025-02-20.17.49.03.mov |
|
Otherwise everything looks good ! |
@ZhenjaHorbach good point - seems like we need to get this information from API when we open workspace we call "api/OpenPolicyProfilePage?" - and there are no information about company cards inside response. I think we need to extend API to receive that info or we can add direct API call here in WorkspaceProfilePage: |
As for me, both options are valid ! |
|
I can add that to the Profile page API, but I dont think we have to block on that, the API should block the downgrade when they have more than one feed. That change is in staging, @ZhenjaHorbach can you test please? |
I will check soon ! |
|
Now it looks something like this in staging But if it is okay 2025-02-21.12.07.41.movAnd we also have a similar problem with more-features selector 2025-02-21.12.09.59.mov |
This we should fix @narefyev91 the error is fine I think - because normally user wont be able to get to the downgrade option if they have more than one feed |
I think it's the same issue that we don't have enough data which we get only when we open company-cards screen |
|
|
||
| const onAddCardsPress = () => { | ||
| clearAddNewCardFlow(); | ||
| if (isCollect && feeds.length === 1) { |
There was a problem hiding this comment.
What if the user has Expensify Cards set up? that is also a feed
|
|
||
| const downgradeToTeam = () => { | ||
| const onDowngradeToTeam = () => { | ||
| if (!canPerformDowngrade || !policy) { |
There was a problem hiding this comment.
kind of feels like this condition should be added to the canModifyPlan too as now its not capturing this fact about multiple feeds
There was a problem hiding this comment.
not really getting you - which condition should be moved...
i think we can remove || !policy - because canPerformDowngrade will be false if policy not exists
There was a problem hiding this comment.
Ah I just meant if this logic should be in canModifyPlan but that only checks if you are admin so its ok here
|
@ZhenjaHorbach what is the logic for the lock there? |
Checking for object with cards from onyx But this bug also reproduces in staging So I think when we update BE |
Actually we already have an issue for this bug 😅 |
|
@ZhenjaHorbach can you please do a final check and testing on the PR? thanks! (checklist too) |
@mountiny |
They are only happening when you sign out and sign back in and navigate to this page without visiting the Company cards page first, right? I think that is fine as its uncommon |
Reviewer Checklist
Screenshots/VideosAndroid: Native2025-02-21.20.42.50.movAndroid: mWeb Chrome2025-02-21.20.16.14.moviOS: Nativeios.moviOS: mWeb Safariios-web.movMacOS: Chrome / Safariweb.movMacOS: Desktopdesktop.mov |
Yes
And it makes sense 😅 |
|
LGTM ! |
|
|
||
| const downgradeToTeam = () => { | ||
| const onDowngradeToTeam = () => { | ||
| if (!canPerformDowngrade || !policy) { |
There was a problem hiding this comment.
Ah I just meant if this logic should be in canModifyPlan but that only checks if you are admin so its ok here
|
✋ 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/mountiny in version: 9.1.4-0 🚀
|
|
Auth PR for this is in review https://github.com/Expensify/Auth/pull/14267 |
|
🚀 Deployed to production by https://github.com/chiragsalian in version: 9.1.4-4 🚀
|







Explanation of Change
Allow NewDot collect customers to add one third-party feed before requiring them to upgrade. This simplifies the onboarding experience for smaller customers using company cards alongside otherwise simple use cases, hopefully increasing conversion in NewDot. It also recognizes that having multiple card programs is a more complex use case and a more natural point to require upgrading
MOBILE-EXPENSIFY:https://github.com/Expensify/Mobile-Expensify/pull/13403
Fixed Issues
$ #55898
PROPOSAL:
Tests
Offline tests
No changes
QA Steps
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))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
android.mov
Android: mWeb Chrome
android-web.mov
iOS: Native
ios.mov
iOS: mWeb Safari
ios-web.mov
MacOS: Chrome / Safari
web.mov
MacOS: Desktop
desktop.mov