Artisan IMG > Google Sheets (sheets) (a894e6ff-8a08-4375-ac35-ab9b5d2bc849)

Check for new data in Google Sheets


This is a 'Workflow' template which means that it is a single standalone workflow.

Some workflow templates can be modified to work with other workflow templates - e.g. to convert a data sync between two services from uni-directional to bi-directional


Fetching new rows in Google Sheets and sending them somewhere else is a very common requirement due to the infinite potential uses of Google Sheets.

This template allows your team to easily check for new rows in a google sheet and perform some action when new rows are found, such as:

  • Sending them to a CRM

  • Sending a notification to Slack

  • Sending to the 100s of other connectors available in the Tray platform.

This Workflow closely imitates a trigger and runs every 5 minutes to pick up any new rows that have been added to a Google Sheet.

Connectors Used

The following connectors are used in this template. This is mostly provided for reference only - there is no need to read through the linked connector pages. All you need to know for this template is explained here, although you will likely need to look up service authentication instructions:

End Result

Any time new rows are added to a Google Sheet:

This workflow will create a data object for each row:

Which can then be sent to any service of your choice.

For example it could be sent to a Slack Channel:

Or it could be sent to a CRM such as Salesforce:

This workflow only creates the new row objects, it leaves you to decide what service to send them to, as per the Getting Live section below


This workflow assumes the following:

  • Your team can authenticate to Google Sheets

  • Your Google Sheet has column Headers as the first row

  • New rows will be added to the bottom of this Sheet

  • Rows in this spreadsheet will not ever be deleted

Getting Live

To configure the workflow for your own use:

Workflow logic

Step-by-step explanation

Note that in step 2, the last_row_processed name given to the key is arbitrary and could be anything such as 'last_row' or 'last_processed_row'. You just need to make sure that other data storage steps (i.e. Set Last Row Processed (storage-2) use the same key name