Native Google Sheets™ Add-on • Zero External Database

Approval workflows and automatic row locking inside Google Sheets.

Prevent requesters from modifying purchase orders, expense amounts, or leave dates after manager sign-off. SheetApprove automatically locks approved rows, writes a timestamped audit trail, and triggers Slack alerts.

Runs on spreadsheets.currentonly scope 20 free approvals included One-time payment via Polar.sh
Interactive Demo: Change any "Pending" dropdown below to "Approved" to test row locking
Swipe spreadsheet sideways to view audit trail & columns
Internal_Purchase_Requests_2025
FileEditViewInsertFormatDataExtensions ▾
E4 fx Pending
A B C D E F
1 Request ID Requester Item / Vendor Amount Status Audit Log
Purchase Requests ▾
Expense Claims
PTO Tracker
Purchase Requests ● Active
Sheet Setup
Column E (Status) ▾
Workflow Rules
Lock row on approval
Highlight approved rows
Write timestamp audit log
Workflow Setup
Configured in under 60 seconds

No external dashboards, Zapier webhooks, or complex formulas required. Everything runs directly inside your spreadsheet.

STEP 01

Select Your Trigger Column

Open SheetApprove from the Extensions menu. It automatically reads Row 1 of your active tab so you can pick your Status column from a clean dropdown.

STEP 02

1-Click Status & Audit Formatting

Click "Format Status & Audit Columns" to automatically insert color-coded data validation dropdowns (Pending, Approved, Rejected) and an adjacent Audit Log header.

STEP 03

Approve, Lock & Log Automatically

When a manager sets a row to Approved, our background trigger locks that row via the Google Sheets Protection API, tints the row, and logs the approver email and timestamp.

Security & Privacy by Design
Zero external database architecture

Unlike traditional SaaS tools that sync your sensitive financial spreadsheets to third-party servers, SheetApprove executes entirely inside your Google Workspace container.

01 / SCOPE ISOLATION

Current Sheet Only

Uses the narrow spreadsheets.currentonly OAuth scope. The add-on cannot view, list, or access any other file in your Google Drive.

02 / NATIVE STORAGE

Document Properties

Your workflow settings are stored inside the spreadsheet itself via Google's PropertiesService—never on external servers.

03 / NATIVE PROTECTION

Google Protection API

Row locks use native Google Sheets range permissions, ensuring rules persist even when the add-on sidebar is closed.

Transparent Licensing
Pay once. Use forever.

We don't believe a spreadsheet utility should charge another monthly subscription. Start free, then unlock unlimited lifetime access for $19.

Free Evaluation
$0 forever

Full feature access for your first 20 approvals.

  • 20 automated row approvals
  • Automatic row locking on approval
  • 1-Click dropdown & conditional color setup
  • Timestamp & approver email audit trail
Install Free from Marketplace
Lifetime Pro One-Time Payment
$19 paid once

Instant license key delivered via Polar.sh.

  • Unlimited row approvals & locks
  • Real-time Slack webhook notifications
  • Row tinting & custom approver assignment
  • Lifetime updates & priority email support
Buy Lifetime License ($19) →
Questions & Answers
Frequently asked questions

Everything you need to know about permissions, row protection, and licensing.

Does every employee in my company need a Pro license?

No. Only the spreadsheet administrator who configures the workflow needs to activate the $19 Lifetime Pro license key inside the sheet. Employees and managers submitting or approving rows do not need a license.

How does the row locking work under the hood?

When a cell in your designated Status column changes to "Approved", SheetApprove uses the official Google Sheets Range.protect() API to restrict editing on that row to the approver's email address. The lock is a native Google Workspace protection that persists even when the sidebar is closed.

Can you see or access our company's Google Drive files?

No. SheetApprove uses the restricted spreadsheets.currentonly scope, which means Google only grants the script access to the single spreadsheet where you actively open the add-on. We do not operate an external database and cannot view any other file in your Google Drive.

Where is our workflow configuration stored?

Your workflow settings (chosen trigger column, Slack webhook URL, approver list) reside exclusively inside your Google Sheet's private PropertiesService document properties. No configuration or spreadsheet data is ever sent to or stored on external servers.

Can approved rows be unlocked or amended later?

Yes. The sheet owner and assigned approvers always retain permission to modify or unlock protected ranges at any time directly through Google Sheets' native Data → Protect sheets and ranges panel or by updating the row status.

How do I activate my Lifetime Pro key after purchasing on Polar.sh?

Immediately after checkout on Polar.sh, you will receive a license key (e.g., SA-XXXX-XXXX). Open the SheetApprove sidebar in Google Sheets, click "Enter license key" at the bottom, paste your key, and click Apply.

Have more questions?

Our team is available to assist with workflow design, security questionnaires, or setup help.

Contact Engineering →