Guide - Integrations

How do you analyze Plaid bank data in Metabase?

Plaid analytics turns finance operations into shared, queryable models. Plaid provides user-authorized bank account, balance, and transaction data. In Metabase, normalized Plaid records can power cash-position, spend-category, recurring-cash-flow, and reconciliation views across connected institutions. Metabase connects to the database that holds the synced data; it does not connect natively to Plaid.

TL;DR - Use the MCP + CLI route for a scoped, short-lived analysis. Use the official API or approved connector route for recurring dashboards, history, permissions, and reconciliation.

How do you connect Plaid to Metabase?

1 - MCP + CLI route (AI-assisted)

Explore a scoped snapshot quickly

Plaid's official Dashboard MCP covers Item diagnostics, Link conversion, and API usage rather than raw account transactions. Use it for integration health; use Transactions Sync or a reviewed Plaid-powered service such as FinContext for account-level analysis. Pair the approved server with the Metabase CLI to load a focused CSV as a table and model.

Best for
  • Quick questions about Plaid data
  • Validating fields and dashboard ideas before building a pipeline
  • Loading a minimal, permissioned snapshot into Metabase
Trade-offs
  • A CSV is a point-in-time snapshot, not governed reporting
  • Finance data needs least-privilege credentials and an explicit tool allowlist
  • Move recurring dashboards to the warehouse-backed route
2 - Pipeline route (warehouse-backed)

Durable dashboards with history

Use Plaid Transactions Sync and webhooks to incrementally land accounts and transactions in a database. Handle added, modified, and removed transactions instead of treating the feed as append-only.

Best for
  • Recurring finance and leadership dashboards
  • Historical aging, lifecycle, and period reporting
  • Joining finance data with sales, product, and operations data
Trade-offs
  • Requires a destination database and maintained sync
  • You own currency, status, accounting period, and reconciliation definitions
  • Every modeled total should reconcile to the source system

What can you analyze from Plaid?

  • Current and available cash by account and institution
  • Cash inflows and outflows by week and category
  • Recurring deposits, bills, and subscriptions
  • Uncategorized, pending, modified, or removed transactions
  • Bank-feed coverage and freshness by connected Item

Which Plaid dashboards should you build in Metabase?

For: Finance leaders

Finance overview

A compact view of cash, exposure, and operating performance.

  • Current and available balance
  • Net cash flow by week
  • Largest inflow and outflow categories
  • Cash concentration by institution
For: Finance operations

Operations

The work that needs attention before the next close.

  • New and modified transactions
  • Pending-to-posted lag
  • Recurring inflows and outflows
  • Items needing re-authentication
For: Controllers

Controls and reconciliation

Find exceptions before they become close surprises.

  • Removed transactions
  • Duplicate transaction candidates
  • Uncategorized spend
  • Feed freshness by account
For: FP&A

Planning and trends

Compare actuals with the plan and explain the variance.

  • Rolling 13-week cash trend
  • Recurring expense baseline
  • Category trend
  • Balance forecast inputs

How do you use Plaid MCP with the Metabase CLI?

The Plaid MCP server is a officialMCP option for AI-assisted exploration. Plaid's official Dashboard MCP covers Item diagnostics, Link conversion, and API usage rather than raw account transactions. Use it for integration health; use Transactions Sync or a reviewed Plaid-powered service such as FinContext for account-level analysis. The Metabase CLI can then upload a sanitized CSV and create a ready-to-query table and model.

  • Start with a narrow read-only question and the minimum required objects.
  • Remove secrets, bank details, and personal fields before exporting.
  • Use mb upload csv for a first snapshot and mb upload replace for a controlled refresh.
  • Move to an API or connector sync when the dashboard becomes recurring.

How do you set up Plaid MCP and the Metabase CLI?

Plaid MCP serverofficial

Data source
Plaid API
Auth
Plaid client credentials plus user-authorized Item access tokens
Access
Read-only, least privilege
Use for
Exploration and scoped exports

Metabase CLIofficial

Install
npm install -g @metabase/cli
Auth
mb auth login
Load data
mb upload csv --file data.csv
Requires
An uploads database in Metabase
MCP clientExample MCP configuration - verify before use
{
  "mcpServers": {
    "plaid": {
      "type": "http",
      "url": "https://api.dashboard.plaid.com/mcp/"
    }
  }
}

Alternative: FinContext is a third-party, read-only Plaid-powered MCP for balances, transactions, holdings, and account analysis. Its remote endpoint is https://fincontext.ai/mcp after signup.

TerminalLoad a Plaid CSV with the Metabase CLI
# Install the Metabase CLI
npm install -g @metabase/cli

# Log in (opens your browser; requires Metabase v62+)
mb auth login --url https://your-metabase.example.com

# Load a scoped Plaid export - creates a table and a model
mb upload csv --file plaid-export.csv --collection "Finance & Accounting"

# Refresh the same table later
mb upload replace <table-id> --file plaid-export.csv
Verify before connecting: check the current Plaid MCP server documentation, review every MCP tool, and enable an uploads database under Admin > Settings > Uploads. Use the vendor's documented authentication flow and a least-privilege role for analytics.

Can you generate a Plaid finance dashboard with AI?

Yes. Use the prompt below with an assistant that can access an approved data route and the Metabase CLI. It tells the assistant to inspect the real schema, reconcile totals, and skip cards that the available data cannot support.

Prompt for a Plaid finance dashboard
Create a polished Metabase dashboard for Plaid finance analytics.
Work end to end: find existing modeled data first; if none exists, load a minimal
read-only snapshot or describe the warehouse sync required.

Goal: Connect Plaid to Metabase for account balances, bank transactions, recurring cash flows, categorization, and reconciliation dashboards.

Inspect before querying:
- Inspect actual tables, column names, currencies, status values, and timestamps.
- Do not assume the source schema matches this guide exactly.
- Reconcile source totals before publishing any finance KPI.

Important:
- Do not claim Metabase connects natively to Plaid; it reads a
  supported database or CLI-uploaded tables.
- Keep native amount, native currency, and reporting-currency amount separate.
- Distinguish authorization, posting, payment, settlement, and reconciliation
  states where the source exposes them.
- Use stable business keys and apply updates/deletes during incremental syncs.
- Exclude account numbers, personal data, and secrets from broad dashboards.
- Only build cards whose required fields and history are actually present.

Dashboard sections:
1. Finance overview: Current and available balance; Net cash flow by week; Largest inflow and outflow categories; Cash concentration by institution.
2. Operations: New and modified transactions; Pending-to-posted lag; Recurring inflows and outflows; Items needing re-authentication.
3. Controls and reconciliation: Removed transactions; Duplicate transaction candidates; Uncategorized spend; Feed freshness by account.
4. Planning and trends: Rolling 13-week cash trend; Recurring expense baseline; Category trend; Balance forecast inputs.

Suggested models: modeled_plaid_accounts, modeled_plaid_transactions, modeled_plaid_recurring_cash_flows.

Output: Build the dashboard if you have permission; otherwise provide the exact
questions, SQL, model definitions, and layout. State refresh time, reporting
currency, accounting basis, and any reconciliation caveats.

How do you sync Plaid into a database or warehouse?

Use Plaid Transactions Sync and webhooks to incrementally land accounts and transactions in a database. Handle added, modified, and removed transactions instead of treating the feed as append-only.

Plaid API or data service

Start from Plaid's official interface and authentication documentation. Extract only the finance objects required by the models below.

dlt Plaid Transactions pipeline

Load accounts and transaction sync responses into a database while retaining Plaid IDs, modifications, and removals.

Implementation checklist

  1. Create a dedicated read-only integration identity and document its scopes.
  2. Land raw records with source IDs, source timestamps, extraction time, and currency fields intact.
  3. Apply updates and deletes idempotently; keep lifecycle history when aging or process metrics depend on it.
  4. Reconcile modeled totals to Plaid for a closed period before exposing the models broadly.
  5. Connect Metabase to the destination database and schedule model refreshes.

Source documentation

What data model should you use?

EntityGrainUse
itemsone row per institution connectionconsent, status, and sync cursor
accountsone row per bank accounttype, currency, and balances
transactionsone row per Plaid transactionamount, merchant, category, status, and date
recurring_streamsone row per recurring inflow or outflowcash commitments and expected income

Build reusable models such as modeled_plaid_accounts, modeled_plaid_transactions, modeled_plaid_recurring_cash_flows.

Which finance metrics are useful?

Practical SQL patterns

Weekly net cash flowPostgreSQL
SELECT
  date_trunc('week', transaction_date) AS week,
  SUM(CASE WHEN amount < 0 THEN -amount ELSE 0 END) AS inflows,
  SUM(CASE WHEN amount > 0 THEN amount ELSE 0 END) AS outflows,
  SUM(-amount) AS net_cash_flow
FROM modeled_plaid_transactions
WHERE pending = FALSE
GROUP BY 1
ORDER BY 1;
Account feed freshnessPostgreSQL

Monitor sync age by account before relying on a consolidated cash view.

SELECT
  account_name,
  institution_name,
  MAX(synced_at) AS last_synced_at,
  CURRENT_TIMESTAMP - MAX(synced_at) AS data_age
FROM modeled_plaid_accounts
GROUP BY 1, 2
ORDER BY last_synced_at;

Common mistakes

Appending every sync response.→ Apply added, modified, and removed records using the Plaid transaction ID.
Counting pending and posted versions twice.→ Use pending_transaction_id and status rules to reconcile the lifecycle.
Assuming positive amounts are inflows.→ Plaid transaction amounts are normally positive for money leaving the account; model the reporting sign explicitly.

Dashboards

Integrations

Analytics

FAQ

How much transaction history can Plaid return?
Plaid's Transactions product can return up to 24 months, subject to institution coverage and the product configuration.
Can Plaid replace the general ledger?
No. It is a bank-data feed. Reconcile it to your ledger or ERP rather than treating categorization as booked accounting.
Does Metabase connect natively to Plaid?
No. Metabase reads supported databases and uploaded tables. Sync Plaid data into a database or load a scoped CSV snapshot first.