Remove vendor gate intacct - #100455
Remove vendor gate intacct#100455
Conversation
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppiOS: mWeb SafariMacOS: Chrome / Safari |
|
🚧 Beamanator has triggered a test Expensify/App build. You can view the workflow run here. |
|
thank you sir!! |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
🚀 Deployed to staging by https://github.com/Beamanator in version: 9.4.82-0 🚀
|
Yes, help site changes are requiredDraft PR: Docs updates for E/A#100455 Publish Sage Intacct vendor matching article The core problem: What the draft PR changes
Label verification and what I deliberately left aloneVerified against the live UI: Accounting, More features, and the Sage Intacct connection row were read back from live NewDot web. The More features sections render as Integrate, Organize, Manage, Spend, Earn. Verified from source: the Vendors row sits in the Organize section, not Integrate, per I could not create a Sage Intacct-connected Workspace in the test environment, so the Intacct-specific strings were verified from the translation source and the rendering components rather than by driving a connected Workspace. Worth a second pair of eyes on a real Intacct Workspace. Left alone on purpose:
@KioCoan, please review the linked help site PR and confirm it reflects the current behavior. Then mark the linked help site PR |
|
🚀 Deployed to staging by https://github.com/Beamanator in version: 9.4.86-0 🚀
|
|
🚀 Deployed to staging by https://github.com/Beamanator in version: 9.4.89-0 🚀
|
|
🚀 Deployed to production by https://github.com/luacmartins in version: 9.4.89-0 🚀
Bundle Size Analysis (Sentry): |
Explanation of Change
Vendor matching R2 (Sage Intacct) has shipped, every Sage Intacct-connected workspace has been enrolled in the
vendorMatchingbeta, and the Integration-Server exporter gate is already gone (https://github.com/Expensify/Integration-Server/pull/9282, on production since 2026-09-04). Intacct code paths should therefore stop consulting the beta. Xero (R3), Rillet (R4), and DualEntry are still pre-GA, soCONST.BETAS.VENDOR_MATCHINGstays and keeps gating those three. This is the Intacct counterpart of the QBO cleanup in #98516.Only two gates read the beta on an Intacct path, so only two change:
PolicyUtils.hasVendorFeaturenow short-circuits totrueonisIntacctVendorMatchingActivealongsideisQBOVendorMatchingActive, before the beta is consulted:Every cross-integration vendor surface already routes through it and needed no edit:
ViolationsUtils,MoneyRequestView,WorkspaceVendorsPage,getWorkspaceMenuItems(workspace menu and search router suggestions),MerchantRulePageBase,AddVendorPage,IOURequestStepVendor, and the product marketing CTA.WorkspaceMoreFeaturesPagedecides whether the Vendors row is visible from the active vendor source, and used to exempt only QBO from the beta. It now treats both QBO and Sage Intacct as GA. The active-source lookup itself is unchanged, so a lingering GA connection still cannot unlock the row for a beta-gated integration.GA does not widen the export mode gate: an Intacct workspace exporting non-reimbursable expenses as Vendor Bill still has no vendor feature, with or without the beta.
Deliberately untouched: no page under
src/pages/workspace/accounting/intacct/reads the beta, so there is no Intacct analogue of the QBO accounting page change. The two Xero-only pages (DynamicXeroExportConfigurationPage,DynamicXeroNonReimbursableDefaultContactSelectPage) keep their beta check.Known follow-up, out of scope here:
ProductMarketingWindowManagerstill gates its fallback-workspace connections prefetch on the beta, so an off-beta QBO or Intacct fallback workspace routes the marketing CTA to More features instead of Vendors. That is a one-line change plus a test and will go in its own PR.Deploy order: this PR goes first. The matching Web-Expensify PR (https://github.com/Expensify/Web-Expensify/pull/55939, auto-matcher and card-feed gates) must only be merged after this one is on production. Otherwise Concierge auto-match messages would show up on workspaces whose App still hides the Vendor row.
Fixed Issues
https://github.com/Expensify/Expensify/issues/677006
Tests
vendorMatchingbeta off:hasVendorFeatureis true for Intacct on Credit Card Charge, and still false for Intacct on Vendor Bill, for Intacct with no export destination, and for Xero.inactiveVendorviolation is added for an Intacct vendor missing from the synced list, not added for a vendor that is in the list, not added while the vendor list is still hydrating, and removed when the export switches to Vendor Bill.npm run typecheckand ESLint on the touched files and verified no errors.Offline tests
No network-dependent behavior changes. The gate is resolved from
policy.connections, which is already in Onyx, so the vendor UI shows or hides identically offline.QA Steps
Precondition: two workspaces on the Control plan whose owners are not in the
vendorMatchingbeta. Workspace A is connected to Sage Intacct, workspace B is connected to Xero. Each needs at least one non-reimbursable (company card) expense.vendorMatchingbeta, reload, and verify the vendor UI (labeled Supplier on Xero) appears.Cover web plus one native platform. We can tag @heyjennahay to help with this.
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, 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.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: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari