Overview

SmartStamp Workflow

0 stamp values, 0 condition types and every option in the settings panel — explained field by field.

Click a section to jump directly.

Setup Watch (4) Stamp (3) Conditions (4) Options (4) Good to know

Setup

SmartStamp has no formulas to write. You open the settings panel from the add-on menu, describe once which cells to watch and what to stamp, and it runs by itself from then on. Everything you configure is saved per spreadsheet.
The Configure tab — every field below is explained on this page.

Configure

Where you build a watched range: pick the sheet(s), mark the rows and the column to watch, then say what to stamp and where. The − and + buttons at the bottom remove or add a range, so one spreadsheet can have several independent rules — each with its own conditions and options.
💡 A range only starts working once you save it. Ranges are numbered (Range 1, Range 2, …) and are evaluated independently, so two ranges can watch the same sheet with different conditions.

Saved settings

Lists every range saved for this spreadsheet. Use Edit to change one, or Delete to remove it. At the bottom, Delete all ranges clears them all at once after a confirmation.
💡 Deleting a range only removes the rule. Timestamps and values already written into cells stay exactly where they are — SmartStamp never cleans up after itself retroactively.

Account & Support

Shows your current plan and trial status. From here you open Manage subscription (Stripe's self-serve billing portal), Manage team seats if you bought a team license, and the feedback form that reaches support directly.

Watch

The four fields that define when SmartStamp reacts. Together they mark a block of cells: one column, bounded by a start and end row, on the sheet(s) you pick. An edit anywhere else is ignored.

Sheet(s)

sheet(s)
Which sheets this range applies to. The picker takes one sheet, several sheets, or "all sheets" — the rest of the range's settings then apply to every sheet you picked. Targeting more than one sheet is part of the paid plans; on the free plan a range covers a single sheet.

Start row & end row

start row · end row
The first and last row SmartStamp pays attention to. Set the start row below your header so editing the header itself never triggers a stamp.
Field Value Meaning
start row number First row that is watched, e.g. 2 to skip a header row
end row number Last row that is watched, e.g. 100
Example: start row 2 + end row 100 — watches 99 rows of data underneath a header.
💡 On the free plan you get one range, one sheet and 30 rows, so a 1–1000 range will not fit. Pick the rows you actually use, or upgrade for unlimited ranges.

Edit column

edit column
The column people type in — the trigger. When a cell in this column changes, inside the row range above, SmartStamp writes a stamp. Editing any other column does nothing.
Example: a Status column that colleagues update as work progresses.
💡 Columns are entered as numbers, not letters: column A is 1, B is 2, C is 3.

Stamp

The fields that define what gets written and where. Two decisions: which cell receives the stamp, and what goes in it.

Stamp target

stamp target
Chooses between stamping per row or stamping into one fixed cell. This is the single most important setting on the page — it decides whether you get a history per row or one "last touched" indicator.
Option Writes to Use it for
column The same row you just edited, in the stamp column A "last updated" value per row
cell One fixed cell, no matter which row was edited A single "sheet last touched" indicator
💡 With cell, every edit in the range overwrites the same cell, so you only ever see the most recent one. Use column if you need to keep per-row history.

Stamp column

stamp column
Where the stamp lands. With target column this is the column that receives the value on the edited row; with target cell you point at one fixed cell instead.
Example: watch edit column 2 (B) and stamp into stamp column 3 (C) — the row's Status is typed in B, the moment it changed appears in C.
💡 Point the stamp at a column you don't type in yourself. If the stamp column and the edit column are the same, your own value gets replaced.

Stamp value

stamp value
What actually gets written. Four choices, picked from a dropdown.
Option Writes Use it for
timestamp The date and time of the edit, written as a real date value — Google Sheets shows it in your spreadsheet's locale (File › Settings › Locale), the same for everyone who opens the file "Last updated" tracking, audit trails, SLA timing
custom value Any fixed text you type in yourself — optionally with {row}, {date}, {email}, {sheet}, or {uuid} tokens, plus {date:local} / {time:local} / {datetime:local} (this spreadsheet's locale), and the fixed {date:eu}, {date:us}, {date:long}, {time:us}, {datetime:eu}, {datetime:us} layouts for date/time formatting, expanded at stamp time Status flags like Checked or Done, or self-numbering values like PO-{row}
user email The email of whoever made the edit "Who changed this?" on a shared sheet
UUID A freshly generated UUID Unique row IDs, dedupe keys, external system references
💡 Want both a time and a name? Add two ranges on a shared sheet and the same edit column: one stamping timestamp into one column, the other stamping user email into the next. Two ranges needs a paid plan — the free plan covers one.
💡 Tokens are expanded once, at the moment of the edit — they're plain text after that, not a live formula, so they won't update later. {date} is always yyyy-MM-dd and {datetime} yyyy-MM-dd HH:mm. For a familiar layout, {date:local} / {datetime:local} follow this spreadsheet's locale (File › Settings › Locale); {date:eu}, {date:us}, {date:long}, {time:us}, {datetime:eu} and {datetime:us} force a fixed one.

Conditions

By default every edit inside the range stamps. Tick Require a specific value in edit column and the stamp only fires when the newly typed value matches your condition. Four types are available, matched to what's in the cell.

Numeric

Compares the edited value as a number.
Operators Meaning
=   ≠ Equal to / not equal to
>   < Greater than / less than
≥   ≤ Greater or equal / less or equal
between Strictly between two values (bounds excluded)
not between Outside those two values (bounds excluded from the "between" side)
is one of Matches any value in a comma-separated list (e.g. "5, 10, 15")
is none of Matches none of the values in a comma-separated list
Example: stamp only when a Progress column reaches ≥ 100.

String

Compares the edited value as text. Case-sensitive by default, with an option to ignore case.
Operator Fires when the value…
matches Is exactly the text you specified
doesn't match Is anything other than that text
contains Has your text somewhere inside it
doesn't contain Does not have your text anywhere inside it
starts with Begins with your text
ends with Ends with your text
matches regex Matches the regular expression you specified
doesn't match regex Does not match the regular expression you specified
is one of Matches any value in a comma-separated list (e.g. "urgent, blocked")
is none of Matches none of the values in a comma-separated list
Example: stamp only when a Status column is set to Done, ignoring "In progress" and "Blocked".
💡 Case-sensitive by default means done won't match Done. Turn on ignore-case if colleagues type freely.
💡 For the regex operators, a "Test your regex" link next to the value field opens regex101.com to help build and check the pattern before you save.

Date

Compares the edited value against a date you set, by calendar day — the time of day is ignored.
Operator Fires when the date is…
on The same calendar day
not on Any day except that one
before   after Earlier than / later than that day
on or before That day or any earlier day
on or after That day or any later day
between Strictly between two dates (both boundary days excluded)
not between Outside those two dates
⚠ The edit column must hold a real date-formatted cell. Plain text that merely looks like a date (typed as text, or imported) will not be recognised as a date.

Checkbox

Compares the edited value against a checkbox state. No value field — just pick "is checked" or "is unchecked".
Operator Meaning
is checked The box in the edit column is ticked
is unchecked The box in the edit column is empty

Options

Four checkboxes per range, all off by default. They control what happens when a stamp already exists, when the source value disappears, whether a condition applies at all, and whether the rule also runs once against rows that already exist.

Don't overwrite an existing stamp

Leaves the target cell alone if it already holds a value. The first stamp wins and later edits no longer change it.
Example: record when a task was first marked done, not the last time somebody touched it.
💡 Off by default, so every qualifying edit refreshes the stamp — that's what you want for "last updated", and exactly what you don't want for "created on".

Delete stamp when the edit column no longer qualifies

Clears the stamp again when the watched cell no longer meets the rule — emptied, or (on a rule with a condition) changed to a value that fails the condition — so a row doesn't keep a timestamp for a state that no longer applies.
Example: someone clears a Status cell by mistake, or moves a deal back from "Closed won" to "Negotiation" — the stamp in the neighbouring column disappears with it instead of going stale.

Require a specific value in edit column

Turns on the condition builder. Leave it off and every edit inside the range stamps; tick it and you pick a numeric, string or date condition that the newly typed value has to satisfy.
💡 See Conditions above for all operators per type.

Also apply this to existing rows in the range now

A one-time action, not an ongoing setting: when saving, runs the range's stamp and conditions against every existing row that already qualifies, not just future edits. Rows that don't match the condition are checked but left alone.
Example: turning on stamping for a sheet that already has 200 rows of "Status = Done" — tick this once so those 200 rows get stamped immediately instead of only the next edit onward.
💡 The {row}/{date}/{email}/{sheet}/{uuid} tokens are fixed at the moment the backfill runs, same as for a live edit — see stamp value tokens in the FAQ.

Good to know

A few behaviours that aren't fields in the panel, but do decide whether SmartStamp does what you expect on a shared, busy sheet.

Paste and fill-down are handled

Pasting a block of values or dragging fill-down over several rows stamps every qualifying row in the edited range, not just single-cell edits. Conditions are checked per row, so a paste of mixed values only stamps the rows that actually match.

One install covers the whole sheet

Install and configure SmartStamp once on a shared sheet, and it stamps edits made by anyone with edit access to that sheet — colleagues don't need to install it themselves. It runs as an installable trigger tied to the sheet, under the authorization of whoever installed it, not to whichever person happens to be editing.
⚠ One thing that is tied to identity: the "current user's email" stamp value only reliably captures the actual editor when they're in the same Google Workspace domain as whoever installed SmartStamp. For an editor on a personal (non-domain) Google account — like @gmail.com — their address usually isn't accessible to the script at all, for privacy reasons, so it falls back to your own email instead of theirs. Rolling out to a whole team is covered by team licensing.

Team licences: buy the seats first

If you're covering a whole domain, purchase the team licence before you roll the add-on out from the Google Workspace admin console. Anyone who opens SmartStamp before the seats exist starts their own individual 14-day trial instead, and won't be picked up by the team licence until that trial ends. The email you use on the Stripe page becomes the domain admin who manages seats afterwards.
💡 Seat count is not fixed — add or remove seats anytime from "Manage team seats" in the Account & Support tab; the difference is prorated on your next invoice. Full step-by-step in the FAQ →.

What the free plan covers

You start the 14-day trial (everything unlocked) when you're ready — a button in the Account & Support tab, or the first time you save a setup that goes beyond the free plan. After it ends you drop to the free plan: one range, one sheet and 30 rows, with no time limit. A paid plan removes those limits.
💡 If a paid plan lapses, your oldest range keeps stamping up to the free plan's budget and newer ones stop. Values already stamped stay exactly as they are.

Still not sure how to set something up? The FAQ → covers billing, team licensing and troubleshooting, or just email us.