Repository navigation
Add Exact Online waitlist - #103997
Add Exact Online waitlist#103997
Conversation
|
@jayeshmangwani 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] |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
This comment has been minimized.
This comment has been minimized.
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
|
@claude review |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
🚧 inimaga has triggered a test Expensify/App build. You can view the workflow run here. |
🦜 Polyglot Parrot! 🦜Squawk! Looks like you added some shiny new English strings. Allow me to parrot them back to you in other tongues: View the translation diffdiff --git a/src/languages/de.ts b/src/languages/de.ts
index 16afc54a..5efbafed 100644
--- a/src/languages/de.ts
+++ b/src/languages/de.ts
@@ -7455,7 +7455,7 @@ Der Control-Tarif beginnt bei 9 $ pro aktivem Mitglied und Monat.`,
goToODToSettings: 'Wechsle zu Expensify Classic, um deine Einstellungen zu verwalten.',
exactOnline: {
comingSoon: 'Demnächst verfügbar',
- joinWaitlist: 'Warteliste beitreten',
+ joinWaitlist: 'Auf Warteliste setzen',
onWaitlist: 'Sie stehen auf der Warteliste',
waitlistDescription: 'Concierge sendet Ihnen eine Nachricht, sobald diese Integration bereit ist, und erklärt Ihnen, wie Sie die Verbindung herstellen.',
},
diff --git a/src/languages/el.ts b/src/languages/el.ts
index dd38db87..ce61c410 100644
--- a/src/languages/el.ts
+++ b/src/languages/el.ts
@@ -7588,9 +7588,9 @@ _Για πιο αναλυτικές οδηγίες, [επισκεφθείτε τ
goToODToSettings: 'Μεταβείτε στο Expensify Classic για να διαχειριστείτε τις ρυθμίσεις σας.',
exactOnline: {
comingSoon: 'Έρχεται σύντομα',
- joinWaitlist: 'Εγγραφείτε στη λίστα αναμονής',
- onWaitlist: 'Είστε σε λίστα αναμονής',
- waitlistDescription: 'Ο Concierge θα σας στείλει ένα μήνυμα για να σας ενημερώσει πότε θα είναι έτοιμη αυτή η ενσωμάτωση και πώς να τη συνδέσετε.',
+ joinWaitlist: 'Μπείτε στη λίστα αναμονής',
+ onWaitlist: 'Βρίσκεστε στη λίστα αναμονής',
+ waitlistDescription: 'Το Concierge θα σας στείλει ένα μήνυμα για να σας ενημερώσει πότε θα είναι έτοιμη αυτή η ενσωμάτωση και πώς να τη συνδέσετε.',
},
setup: 'Σύνδεση',
connectToSandbox: 'Σύνδεση στο sandbox',
diff --git a/src/languages/it.ts b/src/languages/it.ts
index c5301458..8e3dcffb 100644
--- a/src/languages/it.ts
+++ b/src/languages/it.ts
@@ -7411,10 +7411,10 @@ Il piano Control parte da 9 $ al mese per ogni membro attivo.`,
`Si è verificato un errore con una connessione configurata in Expensify Classic. [Vai a Expensify Classic per risolvere questo problema.](${oldDotPolicyConnectionsURL})`,
goToODToSettings: 'Vai a Expensify Classic per gestire le tue impostazioni.',
exactOnline: {
- comingSoon: 'Presto in arrivo',
+ comingSoon: 'Disponibile a breve',
joinWaitlist: 'Unisciti alla lista d’attesa',
onWaitlist: 'Sei in lista d’attesa',
- waitlistDescription: 'Concierge ti invierà un messaggio per farti sapere quando questa integrazione sarà pronta e come collegarla.',
+ waitlistDescription: 'Concierge ti invierà un messaggio per farti sapere quando questa integrazione è pronta e come connetterla.',
},
setup: 'Connetti',
connectToSandbox: 'Connetti alla sandbox',
diff --git a/src/languages/ja.ts b/src/languages/ja.ts
index 0900aeb0..d0a7588c 100644
--- a/src/languages/ja.ts
+++ b/src/languages/ja.ts
@@ -7322,8 +7322,8 @@ Control プランは、アクティブメンバー1人あたり月額 $9 から
exactOnline: {
comingSoon: '近日公開予定',
joinWaitlist: 'ウェイトリストに参加',
- onWaitlist: '順番待ちリストに登録されています',
- waitlistDescription: 'この連携の準備が整い、接続方法が決まりましたら、Concierge からメッセージでお知らせします。',
+ onWaitlist: '現在、ウェイトリストに登録されています',
+ waitlistDescription: 'この連携の準備ができて接続方法が決まりましたら、Concierge からメッセージでお知らせします。',
},
setup: '接続',
connectToSandbox: 'Sandbox に接続',
diff --git a/src/languages/nl.ts b/src/languages/nl.ts
index 4c3130be..5f683a8b 100644
--- a/src/languages/nl.ts
+++ b/src/languages/nl.ts
@@ -7395,9 +7395,9 @@ Het Control-abonnement begint bij $9 per actieve deelnemer per maand.`,
goToODToSettings: 'Ga naar Expensify Classic om je instellingen te beheren.',
exactOnline: {
comingSoon: 'Binnenkort beschikbaar',
- joinWaitlist: 'Aanmelden voor wachtlijst',
+ joinWaitlist: 'Op wachtlijst zetten',
onWaitlist: 'Je staat op de wachtlijst',
- waitlistDescription: 'Concierge stuurt je een bericht om je te laten weten wanneer deze integratie klaar is en hoe je verbinding kunt maken.',
+ waitlistDescription: 'Concierge stuurt je een bericht om je te laten weten wanneer deze integratie klaar is en hoe je verbinding maakt.',
},
setup: 'Verbinden',
connectToSandbox: 'Verbinden met sandbox',
diff --git a/src/languages/pl.ts b/src/languages/pl.ts
index e8b9b5c7..bb886f83 100644
--- a/src/languages/pl.ts
+++ b/src/languages/pl.ts
@@ -7420,10 +7420,10 @@ Plan Control zaczyna się od 9 USD za aktywnego członka miesięcznie.`,
`Wystąpił błąd z połączeniem skonfigurowanym w Expensify Classic. [Przejdź do Expensify Classic, aby rozwiązać ten problem.](${oldDotPolicyConnectionsURL})`,
goToODToSettings: 'Przejdź do Expensify Classic, aby zarządzać swoimi ustawieniami.',
exactOnline: {
- comingSoon: 'Wkrótce dostępne',
+ comingSoon: 'Już wkrótce',
joinWaitlist: 'Dołącz do listy oczekujących',
onWaitlist: 'Jesteś na liście oczekujących',
- waitlistDescription: 'Concierge wyśle ci wiadomość, żeby dać znać, kiedy ta integracja będzie gotowa i jak ją połączyć.',
+ waitlistDescription: 'Concierge wyśle ci wiadomość, gdy ta integracja będzie gotowa, oraz poinformuje cię, jak się połączyć.',
},
setup: 'Połącz',
connectToSandbox: 'Połącz z sandboxem',
diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts
index dd2bab08..fd465a84 100644
--- a/src/languages/zh-hans.ts
+++ b/src/languages/zh-hans.ts
@@ -7141,8 +7141,8 @@ _如需更详细的说明,请[访问我们的帮助网站](${CONST.NETSUITE_IM
exactOnline: {
comingSoon: '即将推出',
joinWaitlist: '加入候补名单',
- onWaitlist: '您在候补名单中',
- waitlistDescription: '当此集成准备就绪并可连接时,Concierge 会向你发送消息通知你并说明如何连接。',
+ onWaitlist: '您已在候补名单中',
+ waitlistDescription: '当此集成准备就绪并可连接时,Concierge 会发送消息通知你并告知连接方式。',
},
setup: '连接',
connectToSandbox: '连接到沙盒',
Note You can apply these changes to your branch by copying the patch to your clipboard, then running |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
| function ExactOnlineWaitlistRow({policy, style, titleWrapperStyle, isBadgeCondensed}: ExactOnlineWaitlistRowProps) { | ||
| const styles = useThemeStyles(); | ||
| const {translate} = useLocalize(); | ||
| const icons = useMemoizedLazyExpensifyIcons(['ExactOnlineSquare']); |
There was a problem hiding this comment.
Tested on a real Android device and the icon shows as blank space, even though it renders fine on web. I'm trying to test it on a simulator but having build issues. Can you confirm it shows up for you on an Android build?
4790.mp4
It is showing correctly on Web though:
Screen.Recording.2026-10-20.at.2.26.02.PM.mov
There was a problem hiding this comment.
It worked for me in a local android build:
Screen.Recording.android.mov
| CAMPFIRE: 'campfire', | ||
| ZOHO_BOOKS: 'zohoBooks', | ||
| BUSINESS_CENTRAL: 'businessCentral', | ||
| EXACT_ONLINE: 'exactOnline', |
There was a problem hiding this comment.
Not necessary. Its defacto covered by other + we have other fully integrated accounting software not in that list.
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppScreen.Recording.android.movAndroid: mWeb Chrome4796.mp4iOS: HybridAppScreen.Recording.ios.mp4iOS: mWeb SafariScreen.Recording.iPhone.18.Pro.mp4MacOS: Chrome / SafariScreen.Recording.2026-10-20.at.2.26.02.PM.mov |
rayane-d
left a comment
There was a problem hiding this comment.
LGTM! I think the issues I found are NAB.
rayane-d
left a comment
There was a problem hiding this comment.
LGTM and tests well 🚀
Thanks!
Screen.Recording.2026-10-20.at.5.57.32.PM.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] |
|
🚧 carlosmiceli has triggered a test Expensify/App build. You can view the workflow run 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. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|



Held on:
Explanation of Change
Exact Online is not available yet, so workspace admins need a way to register interest before launch. This adds Exact Online with Coming soon and Join waitlist to Accounting and Connections. Signup shows the confirmation from the design and the same joined state across the account's workspaces.
Signup uses the existing account save action, works offline, keeps its timestamp on retries, and rolls back on failure. Beta users also see the waitlist until R1 adds the connection flow.
Fixed Issues
$ https://github.com/Expensify/Expensify/issues/691056
PROPOSAL: N/A (internal implementation issue)
Tests
Manual Test steps
Offline tests
Automated tests verify that signup remains available offline, the queued save and optimistic update use one timestamp, and failure restores the absent value. Existing live connectors remain disabled offline.
QA Steps
Same as manual test steps above
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, I verified the components usingAvatarare working as expected)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
Exact.Online.Web.mp4