All workflows
Google Sheets logo

Copy new rows to a second spreadsheet

Checks a source sheet hourly and appends any rows it has not copied yet into a second sheet. One-way only - nothing is overwritten.

Every hour1 app5 steps

Apps it connects

Authenticate each one once and the workflow is ready to run.

What it does

Each integration step this workflow runs, in order, what it is for, and the conditions and loops that decide when it runs.

  1. 1Google SheetsGet column valuesReads the key column of both tabs to work out which source rows are not yet in the destination.
  2. If copiedKeys is empty

    1. 2Google SheetsGet row valuesFetches each uncopied row in full from the source tab, and its header row when the destination is still empty.
    2. If headerValues is not empty

      1. 3Google SheetsAppend rowAppends each new row whole to the destination tab, after the header row if that tab was empty.
  3. For each sourceKey

    1. If rowKey is not empty and copiedKeys does not include rowKey

      1. 4Google SheetsGet row values
      2. If rowValues is not empty

        1. 5Google SheetsAppend row

How it works

What happens on each run, in plain English.

Every hour, the key column of a source tab is compared with the key column of a destination tab in another spreadsheet, and every row whose key does not yet appear in the destination is appended there. One team keeps the list, another gets its own copy, and nobody pastes anything.

The copy is one way and append only. Nothing already in the destination is ever written over, and edits or deletions made in the source are not mirrored. A row counts as copied once its key appears in the destination, so running it twice copies nothing the second time. Rows with an empty key cell are left alone and counted in the run summary, a row that fails to copy is reported and tried again next run, and a large first copy is spread over several runs.

Both tabs need the same layout, with a column that identifies each row uniquely, such as an order number or an email address, in the same position in each. If the destination tab is empty, the source's header row is copied across first.

google sheetsspreadsheetsynccopybackuphourly

Start from a workflow that already works.

Add "Copy new rows to a second spreadsheet" to your workspace, connect its apps, and make it yours.

Free plan, no credit card