Skip to content
n8n canvas: hourly schedule, Google Sheets read, changed-rows filter, Airtable upsert and Sheets sync mark
Price
Free
Difficulty
Intermediate
Updated
November 6, 2026

Overview

Every hour the workflow reads the rows of a Source tab in Google Sheets and keeps only the rows whose Last changed time falls in the previous hour. Those rows are upserted into an Airtable table, matching on the ID field, so existing records are updated and new ones are created.

After the upsert, each row is written back to the sheet with a Synced at time. Because the filter looks back one hour, a row is picked up once for each change, and a row that has not changed is left alone.

Useful for

  • Keep an Airtable base current from a sheet that people edit
  • Move new sheet rows into a database view without copying
  • See when each row last reached Airtable

What's included

  • An n8n workflow with 5 nodes, ready to import
  • Trigger: Every hour
  • Connects Sheets, Airtable
  • Sticky notes on the canvas that explain what to set up
  • No credentials inside: you connect your own accounts

How to use it

  1. 1

    Download the workflow JSON.

  2. 2

    In n8n, create a workflow, open the … menu, choose Import from File and select the JSON.

  3. 3

    Connect Google Sheets on the Read rows and Mark rows synced nodes and pick the Source tab.

  4. 4

    Connect Airtable on the Upsert into Airtable node and pick the base and table. The table needs an ID field.

  5. 5

    Edit a row in the sheet, run once to check Airtable, then activate the workflow.

What you need

Requirements

  • An n8n instance (cloud or self-hosted, version 1.x)
  • A Google account with a spreadsheet and an Airtable account with a base

Works with

  • n8n 1.x (cloud or self-hosted)

Questions

Is this n8n workflow free?

Yes. Download the JSON and import it into your own n8n. There is no sign-up and no cost.

Does it include any credentials?

No. The file has no keys or tokens. You connect your own Google and Airtable accounts after importing.

Why is a row missing after an edit?

The filter only keeps rows whose Last changed time is in the last hour. Make sure the column is updated when you edit a row, or change the look-back in the filter.

  • #ops-automation
  • #data-sync-sheets-to-airtable
  • #n8n
  • #automation
  • #workflow-template
  • #free-template

More ops automation templates

See all 6

Also in Business operations

All business operations templates
Get this template

Preparing your template…