Skip to content

[Due for payment 2026-10-22] [WIP] Consolidate integration to one Connection screen #101509

Open

Description

@dubielzyk-expensify

Problem

Today the integrations we have are split across HR, Accounting, Receipt Partners, and MCP, and every new vertical means another left-nav item. It's already crowding out our own features, and it doesn't scale well past 60+ integrations.

Solution

Consolidate all integrations to in one place. This means:

  • One unified page showing all your connections
  • Tabs to browse by popular, all, or by category
  • Search across all of them
  • Errors surfaced clearly at the top with a way to fix them

The Design

Empty state

Image

Two connections set up

Image

Accounting integration warning

When you already have a integration set up we should still warn people if they try to connect another. Today's warning is a bit too soft so let's tweak the wording slightly and change the button color:

Image

First time users

Given this is a navigational change, we should onboard the user by telling them that their integrations has moved. This tooltip should only show once and be dismissable:

Image

More features

Let's also update More features given we don't need toggles for Accounting, Receipt Partners, or HR.

Image

Onboarding

No changes made here. It should remain like it does today

Image

Try it out yourself

Prototype link

Specs

  • Tabs: Popular, All, Accounting, People, Travel & Delivery, Al & MCP
  • Popular listings: QBO, Xero, NetSuite, Uber for Business, Claude, ChatGPT, Gusto, BambooHR

Figma file

cc @Expensify/design @Expensify/product

Issue OwnerCurrent Issue Owner: @Krishna2323

Activity

  1. dubielzyk-expensify commented on Sep 22, 2026

    @dubielzyk-expensify
    ContributorAuthor

    Do we want to make this external, @Expensify/product ?

  2. shawnborton commented on Sep 22, 2026

    @shawnborton
    Contributor

    Beautiful, let's get this in motion. We might consider asking a C+ to do this or an agency?

  3. situchan commented on Sep 22, 2026

    @situchan
    Contributor

    I can help if needed

  4. dubielzyk-expensify commented on Sep 22, 2026

    @dubielzyk-expensify
    ContributorAuthor

    @JmillsExpensify or @trjExpensify , any preference on who works on this?

  5. trjExpensify commented on Sep 23, 2026

    @trjExpensify
    Contributor

    Have we figured out how we're going to handle connecting to the same integration for HRIS and ATS, or do we not need to do that here atm? CC: @twisterdotcom

  6. dubielzyk-expensify commented on Sep 23, 2026

    @dubielzyk-expensify
    ContributorAuthor

    Can I get more details on the example. Initially I though it should be two separate listings if it's different Auth, but I'm not sure anymore since what we'd wanna do with Gmail is one listing but multiple accounts added.

    So I'd love some details:

    1. What's the service?
    2. What does the integration do?
    3. What data can be synced?
    4. Is there any major API difference between them (syncing times, etc etc)
  7. shawnborton commented on Sep 23, 2026

    @shawnborton
    Contributor

    Can we do something where when you click on the + in the initial connection card, we show a dropdown/popover with those two items? Then if you do connect via one of those two, the connected card that floats to the top might say "ConnectionName (HRIS)"

    Then the connection would still remain in the table below where you could then add the other type - "ConnectName (ATS)" would show as a different card at the top as well once you connected that?

  8. dubielzyk-expensify commented on Sep 24, 2026

    @dubielzyk-expensify
    ContributorAuthor

    Is this what you mean? I could see that.

    Image

    Let's hear what @trjExpensify and @twisterdotcom says though cause I'm curious what is a smoother experience and what matches the users mental model more. Whether they think of it as two separate things or one thing.

  9. JmillsExpensify commented on Sep 24, 2026

    @JmillsExpensify
    Contributor

    Can we please not hold up this implementation on this detail? I agree we need to discuss it and align on it for implementation but let's not delay implementing accounting/MCP and the rest of the framework on this. I'll find someone.

  10. twisterdotcom commented on Sep 24, 2026

    @twisterdotcom
    Contributor

    It is confusing, because the customer will not see them as two separate things, but to us, they are architecturally different, so this flow is one we need to explain to them. The selector above is fine.

    I am also fine starting with defaulting to HRIS for any which cross both and we can build the selector as a V2.

  11. 28 remaining items

  12. JmillsExpensify commented on Sep 30, 2026

    @JmillsExpensify
    Contributor

    Awesome, yeah let's focus on addressing Tom's other detailed feedback in the PR first.

  13. melvin-bot commented on Oct 9, 2026

    @melvin-bot

    Triggered auto assignment to @Gonals, see https://stackoverflow.com/c/expensify/questions/7972 for more details.

  14. jponikarchuk commented on Oct 14, 2026

    @jponikarchuk

    Deploy Blocker #104009 was identified to be related to the PR #102265 that attempted to fix this issue.

  15. melvin-bot commented on Oct 14, 2026

    @melvin-bot

    ⚠️ Looks like this issue was linked to a Deploy Blocker here

    If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results.

    If a regression has occurred and you are the assigned CM follow the instructions here.

    If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future.

  16. jponikarchuk commented on Oct 14, 2026

    @jponikarchuk

    Deploy Blocker #104011 was identified to be related to the PR #102265 that attempted to fix this issue.

  17. melvin-bot commented on Oct 14, 2026

    @melvin-bot

    ⚠️ Looks like this issue was linked to a Deploy Blocker here

    If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results.

    If a regression has occurred and you are the assigned CM follow the instructions here.

    If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future.

  18. melvin-bot commented on Oct 14, 2026

    @melvin-bot

    ⚠️ Looks like this issue was linked to a Deploy Blocker here

    If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results.

    If a regression has occurred and you are the assigned CM follow the instructions here.

    If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future.

  19. changed the title [-][WIP] Consolidate integration to one Connection screen[/-] [+][Due for payment 2026-10-22] [WIP] Consolidate integration to one Connection screen[/+] on Oct 15, 2026
  20. melvin-bot commented on Oct 15, 2026

    @melvin-bot

    @Krishna2323 / @situchan

    The solution for this issue has been 🚀 deployed to production 🚀 in version 9.5.9-4 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:

    If no regressions arise, payment will be issued on 2026-10-22. 🎊

    The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the Contributor+ Checklist from here into a new comment on this GH and complete it. If you have the K2 extension, you can simply click: [this button]. If no checklist is needed for this issue, you can click: [no checklist button]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

DailyKSv2ImprovementItem broken or needs improvement.InternalRequires API changes or must be handled by Expensify staffOverdue

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions