[Payment due @bernhardoj] [HR Import] Add remaining hr providers to merge - #93580
Conversation
roryabraham
left a comment
There was a problem hiding this comment.
Since the integration list has >15 items, it should be searchable
|
(I also wonder if we should surface the most popular ones to the top) |
|
@roryabraham search was implemented #93581, but now I see that the issue has been closed waiting for new design I think |
|
@jmusial I think you have access to this issue to see this comment, do you? |
grgia
left a comment
There was a problem hiding this comment.
Piggybacking @roryabraham, should this merge after #93581 so the list never ships without search?
|
@codex review |
|
@thelullabyy 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] |
🦜 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 c1bd8cea..9958fa42 100644
--- a/src/languages/de.ts
+++ b/src/languages/de.ts
@@ -8240,6 +8240,7 @@ Fügen Sie weitere Ausgabelimits hinzu, um den Cashflow Ihres Unternehmens zu sc
authenticationError: (providerName: string) => `Verbindung mit ${providerName} aufgrund einer abgelaufenen Verknüpfung nicht möglich.`,
reconnect: 'Erneut verbinden',
reconnectLink: 'Erneut verbinden.',
+ findIntegration: 'Integration finden',
},
emptyDomain: {
title: 'Stärken Sie Ihre Sicherheit mit Domains',
diff --git a/src/languages/el.ts b/src/languages/el.ts
index b2e70b99..a02d7162 100644
--- a/src/languages/el.ts
+++ b/src/languages/el.ts
@@ -7331,6 +7331,7 @@ _Για πιο αναλυτικές οδηγίες, [επισκεφθείτε τ
prompt: 'Έχετε φτάσει το όριο συγχρονισμών σας για σήμερα.',
},
},
+ findIntegration: 'Βρείτε ενοποίηση',
},
export: {
notReadyHeading: 'Μη έτοιμο για εξαγωγή',
diff --git a/src/languages/es.ts b/src/languages/es.ts
index 693a7c70..d6a96348 100644
--- a/src/languages/es.ts
+++ b/src/languages/es.ts
@@ -7049,6 +7049,7 @@ El plan Controlar empieza en 9 $ por miembro activo al mes.`,
authenticationError: (providerName: string) => `No se puede conectar a ${providerName} porque la conexión ha caducado.`,
reconnect: 'Volver a conectar',
reconnectLink: 'Volver a conectar.',
+ findIntegration: 'Buscar integración',
},
export: {
notReadyHeading: 'No está listo para exportar',
diff --git a/src/languages/fr.ts b/src/languages/fr.ts
index 0aefec5e..aff18c53 100644
--- a/src/languages/fr.ts
+++ b/src/languages/fr.ts
@@ -8271,6 +8271,7 @@ Ajoutez davantage de règles de dépenses pour protéger la trésorerie de l’e
authenticationError: (providerName: string) => `Connexion à ${providerName} impossible en raison d'une connexion expirée.`,
reconnect: 'Reconnect',
reconnectLink: 'Reconnectez-vous.',
+ findIntegration: 'Rechercher une intégration',
},
emptyDomain: {
title: 'Renforcez votre sécurité avec des domaines',
diff --git a/src/languages/it.ts b/src/languages/it.ts
index f8a7f637..90f6a4b4 100644
--- a/src/languages/it.ts
+++ b/src/languages/it.ts
@@ -8205,6 +8205,7 @@ Aggiungi altre regole di spesa per proteggere il flusso di cassa aziendale.`,
authenticationError: (providerName: string) => `Impossibile connettersi a ${providerName} a causa di una connessione scaduta.`,
reconnect: 'Riconnetti',
reconnectLink: 'Riconnetti.',
+ findIntegration: 'Trova integrazione',
},
emptyDomain: {
title: 'Migliora la tua sicurezza con i domini',
diff --git a/src/languages/ja.ts b/src/languages/ja.ts
index 97648190..bd38c03a 100644
--- a/src/languages/ja.ts
+++ b/src/languages/ja.ts
@@ -8105,6 +8105,7 @@ ${reportName}`,
authenticationError: (providerName: string) => `有効期限が切れた接続のため、${providerName} に接続できません。`,
reconnect: '再接続',
reconnectLink: '再接続する',
+ findIntegration: '連携を検索',
},
emptyDomain: {
title: 'ドメインでセキュリティを強化しましょう',
diff --git a/src/languages/nl.ts b/src/languages/nl.ts
index b016bea9..05a31bec 100644
--- a/src/languages/nl.ts
+++ b/src/languages/nl.ts
@@ -8183,6 +8183,7 @@ er bestedingsregels toe om de kasstroom van het bedrijf te beschermen.`,
authenticationError: (providerName: string) => `Kan geen verbinding maken met ${providerName} vanwege een verlopen koppeling.`,
reconnect: 'Opnieuw verbinden',
reconnectLink: 'Opnieuw verbinden.',
+ findIntegration: 'Integratie zoeken',
},
emptyDomain: {title: 'Verbeter je beveiliging met domeinen', subtitle: 'Vereis dat leden op je domein inloggen via single sign-on, beperk het aanmaken van werkruimtes en meer.'},
},
diff --git a/src/languages/pl.ts b/src/languages/pl.ts
index 5de5d559..ca063822 100644
--- a/src/languages/pl.ts
+++ b/src/languages/pl.ts
@@ -8164,6 +8164,7 @@ Dodaj więcej zasad wydatków, żeby chronić płynność finansową firmy.`,
authenticationError: (providerName: string) => `Nie można połączyć z ${providerName} z powodu wygasłego połączenia.`,
reconnect: 'Połącz ponownie',
reconnectLink: 'Połącz ponownie.',
+ findIntegration: 'Znajdź integrację',
},
emptyDomain: {
title: 'Zwiększ swoje bezpieczeństwo dzięki domenom',
diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts
index 40f5a92b..d0113287 100644
--- a/src/languages/pt-BR.ts
+++ b/src/languages/pt-BR.ts
@@ -8185,6 +8185,7 @@ Adicione mais regras de gasto para proteger o fluxo de caixa da empresa.`,
authenticationError: (providerName: string) => `Não é possível conectar a ${providerName} devido a uma conexão expirada.`,
reconnect: 'Reconectar',
reconnectLink: 'Reconectar.',
+ findIntegration: 'Encontrar integração',
},
emptyDomain: {
title: 'Aumente sua segurança com domínios',
diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts
index 87868905..3e20717b 100644
--- a/src/languages/zh-hans.ts
+++ b/src/languages/zh-hans.ts
@@ -7896,6 +7896,7 @@ ${reportName}`,
authenticationError: (providerName: string) => `由于连接已过期,无法连接到 ${providerName}。`,
reconnect: '重新连接',
reconnectLink: '重新连接。',
+ findIntegration: '查找集成',
},
emptyDomain: {title: '通过域名提升安全性', subtitle: '要求您域中的成员通过单点登录登录、限制工作区创建等。'},
},
Note You can apply these changes to your branch by copying the patch to your clipboard, then running |
|
All updated @dubielzyk-expensify @cristipaval @bernhardoj Screen.Recording.2026-08-20.at.14.55.16.mov |
bernhardoj
left a comment
There was a problem hiding this comment.
LGTM! The icons are not from the FE, so approving.
|
🎯 @bernhardoj, thanks for reviewing and testing this PR! 🎉 A payment issue will be created for your review once this PR is deployed to production. If payment is not needed (e.g., regression PR review fix etc), react with 👎 to this comment to prevent the payment issue from being created. |
Were getting them from |
No, we're relying on Merge's metadata to provide us the logos: https://docs.merge.dev/merge-unified/platform-and-account-metadata/integration-metadata |
|
Got it. I think that's fine for now but we might want to revisit that later. Basically it seems like all logos from merge are on a white background, whereas logos we manually upload typically have full bleed backgrounds. I would like to standardize on something. |
cristipaval
left a comment
There was a problem hiding this comment.
on you now, @roryabraham @grgia
yes, it should be 26 now that we commented out to more. Updated |
|
🚧 cristipaval 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! 🧪🧪
|
|
🚀 Deployed to staging by https://github.com/cristipaval in version: 9.4.59-0 🚀
|
Help site review — changes required ✅Yes, this PR needs a help site update. It expands the workspace HR page from 3 Merge-based providers (BambooHR, HiBob, Workday) to 24 enabled providers and adds a Find integration search field, but the help site only documented BambooHR, HiBob, and Workday individually — the 21 new providers and the search field had no coverage. Draft PR created: #99234 Rather than creating 21 near-duplicate per-provider stubs, I added one new article that documents the shared connection flow (identical across all Merge providers), lists the currently supported providers, and covers the new Find integration search:
It cross-links to the existing detailed BambooHR/HiBob/Workday guides and notes that Gusto and TriNet use a separate setup flow. What I checked and how
@jmusial, please review the linked help site PR and confirm it reflects the current behavior. Then mark the linked help site PR |
|
Deploy Blocker #99250 was identified to be related to this PR. |
|
Deploy Blocker #99284 was identified to be related to this PR. |
|
🚀 Deployed to production by https://github.com/AndrewGable in version: 9.4.59-5 🚀
Bundle Size Analysis (Sentry): |
|
🤖 Payment issue created: #99361 |

Explanation of Change
Expands the Merge HR provider list from 3 entries to 23 enabled providers - with 15 further providers included but commented out for now.
Adds an option to search the list by connection name.
Fixed Issues
$ https://github.com/Expensify/Expensify/issues/648089
PROPOSAL:
Tests
Offline tests
QA Steps
Same as tests +
7. Click each new integration and verify that a setup dialog opens.
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
MacOS: Chrome / Safari
Screen.Recording.2026-08-20.at.14.55.16.mov