Integration guides

Plaid to Google Sheets: four ways to connect

Connecting Plaid to Google Sheets or Excel lets you sync real bank transactions from 10,000+ banks into your own spreadsheet. This guide covers the tools, setup steps and pricing, including SheetLink’s Chrome extension (free), Excel add-in (Pro) and CLI.

Free for one bank and your last 7 days. No card needed.

Press Sync now and new transactions land at the end of your Google Sheet.

What is Plaid?

Plaid is a financial data platform that powers bank connections for apps like Venmo, Cash App and Robinhood. Key features:

  • 10,000+ bank connections: major banks, credit unions and investment accounts
  • Secure authentication: encrypted connections, with OAuth where the bank supports it
  • Read-only access for SheetLink: it can retrieve transaction data but never move money
  • Automatic updates: Plaid keeps picking up new transactions from your bank
  • Developer-friendly API: a well-documented REST API for integrations

Why use Plaid for Google Sheets?

Instead of downloading CSV files from your bank and importing them into Google Sheets by hand, Plaid streamlines the whole process. Connect once, then sync with one click whenever you want.

Tools that connect Plaid to Google Sheets

You can’t connect Plaid directly to Google Sheets without a third-party tool. Here are the main options:

ToolTypePricingBest for
SheetLinkChrome + Excel + CLIFree / $4.99 / $10.99/moPrivacy-first, manual sync, spreadsheet or database
Tiller MoneyService + templates$99/yearAutomatic daily sync
Custom scriptDIY developmentFree (dev time)Developers
Zapier/MakeNo-code workaroundVariesBanks with their own Zapier app

Option 1: SheetLink (recommended)

SheetLink connects Plaid to Google Sheets, Microsoft Excel, Postgres, SQLite and CSV, with a privacy-first approach across all outputs.

How SheetLink works

1

Install the Chrome extension

Available in the Chrome Web Store.
2

Connect banks through Plaid

Sign in to your bank through Plaid’s secure flow.
3

Choose your Google Sheet

Open the sheet and choose Use this sheet, or paste the link to any sheet you can edit.
4

Press Sync now

Transactions are appended to the end of the Transactions tab in your sheet.

SheetLink privacy features

  • No bank credentials: Plaid handles your bank sign-in, so SheetLink never sees your username or password. Plaid access tokens are encrypted at rest.
  • Manual sync: you choose when to sync by pressing a button
  • Nothing stored: transactions pass through SheetLink’s server in memory on their way to your sheet
  • Public client code: the Chrome extension’s code is published for anyone to review

SheetLink pricing

  • Free: 1 bank, your last 7 days, Google Sheets (Chrome extension)
  • Pro, $4.99/mo or $49/year: every bank you connect, up to 2 years of history, Google Sheets and the Excel add-in (AppSource), priority support
  • Max, $10.99/mo or $99/year: everything in Pro, plus investments, CLI automation, Postgres and SQLite output, and Claude

Option 2: Tiller Money

Tiller Money is a subscription service that automatically syncs bank data to Google Sheets daily:

  • Automatic daily sync: set it and forget it, transactions sync every morning
  • Pre-built templates: 50+ spreadsheet templates for budgeting and tracking
  • Excel support: works with both Google Sheets and Microsoft Excel
  • $99/year: higher cost, but fully automatic

Tiller refreshes your feeds automatically in the background. That’s convenient. SheetLink takes a different approach: it pulls transactions only when you press Sync now and doesn’t store them (it keeps only an encrypted Plaid access token).

Option 3: Build your own with the Plaid API

Developers can build a custom Plaid to Google Sheets integration.

Requirements

  • Programming knowledge (JavaScript/Node.js, Python, etc.)
  • A Plaid developer account (free for development)
  • Google Sheets API credentials
  • A server or cloud function to run the sync (AWS Lambda, Google Cloud Functions, etc.)

How it fits together

  1. Your user signs in to their bank through Plaid Link, which returns a public_token.
  2. Your server exchanges it for an access_token with /item/public_token/exchange. Keep that token secret: it reads the account.
  3. Call /transactions/sync with the access token and a cursor. Each call returns the transactions added, modified and removed since the last cursor.
  4. Append the new rows to your sheet, then save next_cursor for next time.

For a personal sheet, Google Apps Script can do steps 3 and 4 on its own. Get an access token once (Plaid’s Quickstart app is the quickest way), store it in Script properties, and run something like this:

// Apps Script (Extensions > Apps Script): append new Plaid transactions to the Transactions tab.
// Put PLAID_CLIENT_ID, PLAID_SECRET and ACCESS_TOKEN in Project Settings > Script properties.
function syncPlaid() {
  const props = PropertiesService.getScriptProperties();
  const sheet = SpreadsheetApp.getActive().getSheetByName('Transactions');
  let cursor = props.getProperty('CURSOR');
  let hasMore = true;
  while (hasMore) {
    const body = {
      client_id: props.getProperty('PLAID_CLIENT_ID'),
      secret: props.getProperty('PLAID_SECRET'),
      access_token: props.getProperty('ACCESS_TOKEN'),
    };
    if (cursor) body.cursor = cursor;
    const res = UrlFetchApp.fetch('https://production.plaid.com/transactions/sync', {
      method: 'post', contentType: 'application/json', payload: JSON.stringify(body),
    });
    const data = JSON.parse(res.getContentText());
    const rows = data.added.map((t) => [t.date, t.name, t.merchant_name || '', t.amount, t.account_id]);
    if (rows.length) sheet.getRange(sheet.getLastRow() + 1, 1, rows.length, rows[0].length).setValues(rows);
    cursor = data.next_cursor;
    hasMore = data.has_more;
  }
  props.setProperty('CURSOR', cursor);
}

Before you build it

Real bank data needs Plaid production access, which means applying to Plaid; the free Sandbox only has test data. Plaid bills production apps per connected bank each month, on terms set by your Plaid plan. This sketch also ignores modified and removed transactions, and anyone with edit access to the script can read the token, so keep the sheet private.

Option 4: Zapier or Make (formerly Integromat)

No-code tools can move bank data into Google Sheets, with limits:

  • No Plaid app: neither Zapier nor Make has a built-in Plaid integration, so you’d call Plaid’s API from a webhook or code step, with your own Plaid developer account.
  • Some banks have their own apps: a few business banks, Mercury for example, offer Zapier apps that can send transactions to a sheet.
  • Task limits: each sync can use several tasks, which adds up on paid plans.
  • Complexity: you build and maintain multi-step zaps or scenarios.

Which option should you choose?

Choose SheetLink if:

  • You want the most affordable option (a free plan, or Pro from $4.99/mo)
  • Privacy matters to you (SheetLink never sees your bank login, and syncs only when you press Sync now)
  • You use Google Sheets or Microsoft Excel (Excel add-in on AppSource)
  • You want the CLI to sync to CSV, or to Postgres and SQLite with Max
  • You want to try it free (1 bank and your last 7 days, Chrome extension)

Choose Tiller Money if:

  • You want fully automatic daily syncing
  • You need pre-built budget templates
  • You use Microsoft Excel
  • $99/year fits your budget

Build your own if:

  • You’re a developer with time to build and maintain it
  • You need custom business logic
  • You want complete control over the integration
  • You’re integrating into a larger system

Common use cases

People use Plaid to Google Sheets integrations for:

  • Personal finance tracking: budget tracking, expense categorization
  • Freelance bookkeeping: tracking business income and expenses
  • Small business accounting: managing multiple accounts and bank feeds
  • Tax preparation: organizing transactions by category for tax season
  • Net worth tracking: monitoring all accounts in one place
  • E-commerce bookkeeping: tracking PayPal, Stripe and other payouts as they reach your bank

Security and privacy considerations

When connecting banks to Google Sheets, consider:

  • Credential storage: does the tool ever see your bank username and password? SheetLink doesn’t: Plaid handles the sign-in.
  • Google Sheets permissions: make sure your financial spreadsheet isn’t shared publicly
  • Read-only access: SheetLink’s Plaid connection can only read data, never transfer money
  • Encryption: Plaid connections are encrypted, and SheetLink encrypts Plaid access tokens at rest
  • Revoke access: you can disconnect a bank from Plaid at any time

Questions

Can you connect Plaid directly to Google Sheets?

You can’t connect Plaid directly to Google Sheets without a third-party tool. Plaid is an API that requires a developer integration or a ready-made product. The easiest options are SheetLink (Chrome extension, free to start), Tiller Money ($99/year, automatic daily sync), or building a custom script with the Plaid and Google Sheets APIs.

What is the easiest way to sync bank transactions to Google Sheets?

SheetLink’s Chrome extension: install it, connect your bank through Plaid, paste the link to a Google Sheet, and press Sync now. No code required. The free plan covers one bank and your last 7 days. Pro ($4.99/month or $49/year) covers every bank you connect, up to 2 years of history, and also works with Excel. Max ($10.99/month) adds CLI automation for scheduled syncs to Postgres, SQLite, CSV or JSON, plus investments and Claude.

Does SheetLink work with Excel as well as Google Sheets?

Yes. SheetLink’s Chrome extension syncs to Google Sheets, and the Excel add-in (on Microsoft AppSource) syncs to Excel. Both are included in the Pro plan ($4.99/month or $49/year). The free plan uses the Chrome extension only (Google Sheets).

How much does it cost to sync Plaid to Google Sheets?

SheetLink is the most affordable option: free for one bank and your last 7 days, Pro at $4.99/month or $49/year for up to 2 years of history and Excel, and Max at $10.99/month for CLI automation, Postgres and SQLite output, investments and Claude. Tiller Money costs $99/year with automatic daily sync. Building your own integration takes developer time plus Plaid’s production API costs ($0.10–$0.50 per item per month).

See it work.

Free with one bank and your last 7 days. Pro and Max sync every bank, two years back. Add to Chrome ›

Keep reading.

Your bank, in your spreadsheet.

Free for one bank and your last 7 days. No card needed.