Managing Integrations

Connect multiple accounting accounts, manage data feeds, transfer connection ownership, and resolve token issues.

You can connect multiple accounting accounts to a Levelup organization and manage all data feed connections from the Integrations section. This includes connecting QuickBooks Online and Xero accounts, choosing which companies to import, viewing per-account details, transferring connection ownership, and resolving token issues.

Required role: Owner or Admin

Integrations Overview Page

Go to Integrations to see the overview page. It contains two main sections: provider summary cards and connected accounts.

Provider Summary Cards

A card is displayed for each supported accounting provider:

  • QuickBooks Online (QBO)
  • Xero

Each card shows:

  • The number of connected accounts for that provider
  • The number of invalid accounts (if any)
  • A summary grid with totals for accounts, companies, and linked companies
  • A button to connect a new account or view the data feed

If no accounts are connected for a provider, the card displays a single Connect button.

Connected Accounts Section

Below the provider cards, all connected accounts are grouped by provider. Each account card shows:

  • A status indicator (green checkmark for valid, red icon for invalid)
  • The account name or email
  • The number of companies and how many are linked
  • A Reconnect button (shown when the token is invalid)
  • A disconnect button

Click any account card to open the account details drawer.

Connecting a New Account

To connect a new accounting account:

  1. Go to Integrations.
  2. Click Connect QuickBooks Online or Connect Xero on the provider card.
  3. If you already have accounts connected, click the + button on the provider card instead.
  4. Complete the OAuth authorization in the popup window.
  5. After authorization, a post-connect dialog appears.

Post-Connect Import Choice

After a successful OAuth connection, a dialog displays:

  • The account name and provider
  • The number of companies found, already linked, and available to import

You have two options:

  1. Import All Companies -- Queues all importable companies for automatic import and sync.
  2. Add Companies Manually -- Redirects to the Data Feed page where you can select individual companies to link.

If all companies are already linked, the dialog shows a Done button.

Account Details Drawer

Click any account in the Connected Accounts section to open a slide-out drawer. The drawer shows:

  • The provider logo and account name
  • A count of companies and how many are linked
  • A list of every company connected through that account

Each company row in the drawer displays:

  • The external company name
  • A connection status badge (Connected, Token Expired, Inaccessible, Sync Paused, Syncing, Not Imported, or No Token)
  • The linked Levelup company name (as a link to the company dashboard) or "Not linked"
  • The import date
  • The last resync date (if applicable)

Data Feed Page

Go to Integrations > Data Feed to manage individual company connections. The Data Feed table shows all companies associated with the connected integrations.

Summary Indicators

Above the table, summary pills filter by connection state:

  • Active Feed -- Companies with a healthy sync source
  • Ready to Link -- Imported feeds available for linking to a Levelup company
  • Extra Feed -- Feeds where another import is already the active source
  • Needs Attention -- Feeds with expired tokens, inaccessible tenants, metadata issues, or paused syncs

Click a summary pill to filter the table. Click it again to clear the filter.

Table Columns

The Data Feed table displays the following columns:

  • Levelup Company -- The linked internal company name (as a link to its dashboard). For unlinked feeds, a dropdown lets you select which Levelup company to link. For unconnected companies (no feed), a dropdown lets you choose from available imported feeds.
  • Imported Feed -- The external company name from the accounting provider, with the provider logo. Below it, a secondary line shows the source account label, who imported it, and when. A state badge indicates the feed status (Active Feed, Ready to Link, Extra Feed, Shared Feed, or Needs Repair).
  • Feed State -- A status icon and label showing the connection health: Connected, Reconnect Required, Sync Paused, Syncing, Not Imported, or No Connection.
  • Imported Account -- The provider account name or email that owns this connection. Hover for full details.
  • Imported By -- The team member who created the connection (hidden by default).
  • Last Sync -- A relative timestamp (e.g., "2 hours ago") with the full date on hover.
  • Actions -- Row-level actions (see below).

Account Filtering

When you navigate to the Data Feed page from a specific account (via the overview page), a banner at the top indicates that results are filtered to that account. Click Show All Accounts to clear the filter.

Row Actions

The actions available on each row depend on the feed state:

Feed StateAvailable Actions
Connected (active feed)Switch Source, Disconnect
Token expired or inaccessibleReconnect, Remove Feed
Unlinked imported feedRemove Feed
Extra feed (linked by another user)Switch Source
Unconnected company (no feed)Connect Feed
Shared connectionNo actions (managed in the owner organization)

Linking Unlinked Companies

When an imported feed is not yet linked to a Levelup company:

  1. Find the unlinked row in the Data Feed table. It shows "Link to Levelup company" in the Levelup Company column.
  2. Click the dropdown and search for the Levelup company to link.
  3. Select the company.
  4. Click Add Company (or Add Companies for multiple) in the table toolbar to confirm and start syncing.

For Levelup companies that have no feed connected, the Imported Feed column shows a dropdown where you can choose from available imported feeds.

Re-syncing Companies

To manually trigger a data refresh:

  • Selected companies -- Select rows using the checkboxes, then click Resync Selected Feeds with the count displayed.
  • All companies needing resync -- Click Auto Resync All to re-sync every linked company flagged as needing a refresh.

Only linked companies with an active feed can be re-synced.

Disconnecting a Company

Disconnecting stops data syncing for a specific company:

  1. Click Disconnect in the row actions for the company.
  2. Confirm in the warning dialog.

The company remains in Levelup with its previously synced data, but no new data is pulled. This action is reversible by reconnecting the feed.

Removing a Feed

Removing a feed detaches the imported data feed from the Levelup company:

  1. Click Remove Feed in the row actions.
  2. Confirm in the dialog.

For linked companies, this is equivalent to unlinking. The company stops receiving updates. You can re-link it later by selecting a different feed.

Switching the Source Connection

You can change which imported feed actively syncs a company. This is useful when another team member has a better connection, or when you want to switch from one provider account to another.

  1. Click Switch Source in the row actions for the target company.
  2. A dialog opens showing the current source connection and a list of alternative connections to the same external company.
  3. Select the new connection from the list. Each option shows:
    • The connected user's name
    • The provider account label and email
    • Whether it crosses user boundaries (labeled with a lock icon if it requires Admin or Owner role)
  4. Click Apply to transfer the connection.

If the transfer is to a connection owned by a different user, Admin or Owner role is required. The dialog indicates this with a lock icon and a note.

If no alternative connections exist, the dialog states that another user needs to connect the same external company first.

A resync is automatically triggered after a successful transfer.

Reconnecting Expired Tokens

OAuth tokens can expire if the accounting provider revokes access or after extended inactivity. When this happens:

  1. The account card on the Integrations overview shows an Invalid badge and a Reconnect button.
  2. In the Data Feed table, affected rows show a "Reconnect Required" status and a Reconnect button.
  3. Click Reconnect on either the account card or the table row.
  4. Complete the OAuth authorization in the popup window.
  5. The token refreshes and syncing resumes automatically.

Disconnecting an Account

You can disconnect an individual account or all accounts for a provider.

Disconnecting a Single Account

  1. Go to Integrations.
  2. In the Connected Accounts section, click the disconnect (X) button on the account card.
  3. Confirm in the warning dialog.

All companies syncing through that account stop receiving updates.

Disconnecting All Accounts for a Provider

  1. Go to Integrations.
  2. In the Connected Accounts section, click Disconnect All next to the provider heading (visible when two or more accounts are connected).
  3. Confirm in the warning dialog.

All accounts and their associated company syncs are removed.

Batch Token Validation

Token validity is checked automatically for each connected accounting account. Invalid tokens are flagged on both the overview page (as an "Invalid" badge on the account card) and in the Data Feed table (as a "Reconnect Required" status). Token status refreshes each time you visit the Integrations pages.

Integration Logs

Go to Integrations > Data Feed and navigate to the Logs section to view a history of sync events. The logs table shows:
  • Date -- When the event occurred
  • Accounting Software -- The provider (QuickBooks or Xero)
  • Company -- The affected company name
  • External Account -- The source account
  • Log Type -- Milestone or Event
  • Message -- Details about what happened

Logs are organized by company. The summary view shows each company with its total log count, error count, and last log timestamp. Click a company to see its detailed event log.

Access Requirements

The Integrations section requires Owner or Admin role. Members with lower roles cannot access integration management pages.

Transferring a connection to a feed owned by a different user also requires Owner or Admin role.

Limitations

  • Each external accounting company can only be actively linked to one Levelup company at a time. Additional imported feeds for the same external company appear as "Extra Feed" rows.
  • Shared connections (managed in another organization) cannot be modified from your organization.
  • Popup blockers may prevent the OAuth window from opening. Allow popups for Levelup if the connection flow does not start.
  • Importing large numbers of companies may take several minutes to complete.

Next Steps

Command Palette

Search for a command to run...