Google Sheets dashboard

Connect Google Sheets to Your Business Dashboard in 15 Minutes

Let your team keep updating a spreadsheet while your dashboard updates automatically with live KPIs, charts, search, and filters.

Business spreadsheet data flowing into a live dashboard

You do not have to throw your spreadsheet away

Many businesses already run on spreadsheets. That is okay. Spreadsheets are easy to edit. Your team already knows how to use them. They are often the fastest way to keep work moving.

The goal is not to rebuild your whole business on day one. The goal is smaller and more useful: turn one Google Sheet into a simple live dashboard.

Staff update Google SheetDashboard reads the sheetBusiness owner sees live numbers

The owner gets charts, KPIs, search, and filters. The team keeps using the sheet. That is the whole point.

Before you start

What You'll Build

By the end of this guide you'll have:

  • A live dashboard connected to Google Sheets
  • Searchable and sortable business data
  • Charts powered by your spreadsheet
  • Automatic updates whenever your spreadsheet changes
  • A production-ready project deployed on Render
  • A reusable foundation for future integrations like Stripe, Gmail, or Google Calendar

What You'll Learn

By completing this guide you'll also learn:

  • How to connect safely to Google Sheets
  • How to securely store credentials
  • How to read spreadsheet data
  • How to populate a React dashboard
  • How to deploy a production application on Render

Final Result

In this first version, you will connect one sheet called Customers. Staff can update rows in Google Sheets. The dashboard reads those rows and shows live numbers.

Completed business dashboard connected to Google Sheets
Customers128
Active84
At Risk9
Annual Value$171K

Free starter project

Start with the Business Operations Starter

The Business Operations Starter gives you the dashboard foundation so you are not starting from a blank screen.

This isn't just a demo project; it's the same starter architecture I use when building custom internal tools for businesses. It's production-ready, open source, and designed to grow as your business grows.

View on GitHub

What you need

1. Clone the Starter Project

Time: 2 minutes

Start by downloading or cloning the Business Operations Starter. This gives you the dashboard, table, chart, and deployment structure before you connect real data.

git clone https://github.com/mravert93/business-operations-starter.git

2. Create the Google Sheet

Time: 3 minutes

Create a Google Sheet named Customers. Add these columns in the first row.

CompanyPrimary ContactEmailStatusLast ActivityAnnual Value
ABC ConstructionMaria Lopezmaria@abcconstruction.comActive2026-07-0972000
Smith DentalEvan Smithevan@smithdental.comLead2026-07-0538000
Desert HVACKim Patelkim@deserthvac.comAt Risk2026-06-2761000

3. Create a Google Service Account

Time: 5 minutes

This step gives your dashboard a safe way to read the sheet. Take it one click at a time.

  1. Go to Google Cloud Console.
  2. Create a project.
  3. Enable Google Sheets API.
  4. Create a Service Account.
  5. Create a JSON key.
  6. Save the file safely.

4. Share the sheet

Time: 30 seconds

Open the JSON file and find client_email. It will look like an email address.

Open your Google Sheet. Click Share. Add that email address as Viewer.

This gives your dashboard permission to read the sheet, but not edit it.

5. Add environment variables

Time: 3 minutes

Environment variables are private settings for your app. Your developer can add these locally and in Render.

GOOGLE_SERVICE_ACCOUNT_EMAIL=
GOOGLE_PRIVATE_KEY=
GOOGLE_SHEET_ID=

The first two values come from the JSON key file you downloaded in Step 3.

Environment variableWhere to find it
GOOGLE_SERVICE_ACCOUNT_EMAILCopy the value next to client_email.
GOOGLE_PRIVATE_KEYCopy the full value next to private_key, including the beginning and ending lines.
GOOGLE_SHEET_IDCopy it from the Google Sheet URL.

The sheet ID is in the Google Sheet URL.

https://docs.google.com/spreadsheets/d/SHEET_ID_IS_HERE/edit

6. Install the Google Sheets package

Time: 1 minute

This package lets the dashboard read rows from Google Sheets.

npm install googleapis

7. Create a Google Sheets helper

Time: 5 minutes

Ask your developer to create this file: src/utils/googleSheetsApi.ts

The helper connects with the service account, reads rows from the sheet, and turns those rows into objects the dashboard can use.

import { google } from "googleapis";

const auth = new google.auth.JWT({
  email: process.env.GOOGLE_SERVICE_ACCOUNT_EMAIL,
  key: process.env.GOOGLE_PRIVATE_KEY?.replace(/\\n/g, "\n"),
  scopes: ["https://www.googleapis.com/auth/spreadsheets.readonly"],
});

const sheets = google.sheets({ version: "v4", auth });

export async function getCustomersFromGoogleSheet() {
  const response = await sheets.spreadsheets.values.get({
    spreadsheetId: process.env.GOOGLE_SHEET_ID,
    range: "Customers!A1:F",
  });

  const [headers = [], ...rows] = response.data.values ?? [];

  return rows.map((row) =>
    Object.fromEntries(
      headers.map((header, index) => [header, row[index] ?? ""]),
    ),
  );
}

8. Replace the mock data

Time: 3 minutes

In the starter, the pretend data lives here: src/utils/mockApi.ts

Right now, this file gives the dashboard sample data. Change one function so it gets customers from Google Sheets instead.

Before
getCustomers: () => wait(customers)
After
getCustomers: () => getCustomersFromGoogleSheet()

9. Deploy to Render

Time: 5 minutes

When it works locally, deploy it.

  1. Push the code to GitHub.
  2. Open Render.
  3. Add the same environment variables.
  4. Deploy the app.

10. Test it

Time: 1 minute
  1. Open the dashboard.
  2. Change a row in Google Sheets.
  3. Refresh the dashboard.
  4. Look for the new data.

That is the moment most owners smile. The team keeps using the spreadsheet, and the dashboard updates from the same source.

What to connect next

Once Customers works, do not rush to rebuild the whole app. Pick the next sheet that saves the most time.

  • Invoices
  • Tasks
  • Projects
  • Registrations
  • Documents

Start with one sheet.

Do not rebuild the whole company at once.

Connect customers first. Then invoices. Then tasks. Then reports.

That is how a spreadsheet slowly becomes real business software.

Troubleshooting

Permission denied

Verify the service account email has Viewer access to the spreadsheet.

Spreadsheet not found

Confirm the Spreadsheet ID matches the URL.

Dashboard is empty

Ensure the sheet contains data. Verify the correct worksheet name is configured.

Environment variables are not working

Double check Render environment variables. Redeploy after making changes.

Charts are not updating

Refresh the dashboard. Verify the sheet is updating correctly.

Continue Building

Once one sheet is connected, you can keep adding small, useful integrations one at a time.

Coming Soon

Connect Stripe to Your Dashboard

Coming Soon

Connect Gmail to Your Dashboard

Coming Soon

Connect Google Calendar

Coming Soon

Combine Multiple Data Sources

Coming Soon

Build Your Own CRM

Coming Soon

Create Executive KPI Dashboards

Done-for-you setup

Want help finding the manual work slowing your business down?

If you already have a Google Sheet your team depends on, I can help turn it into a simple dashboard and identify the next workflow worth improving.

We can start with one sheet, one workflow, and one dashboard page. You keep the process your team knows. I handle the setup, deployment, and the parts that should stay private.

Get My Free Workflow Assessment