Templates / Clean Google Sheets contact data for phone, email, and dates on an hourly schedule

Clean Google Sheets contact data for phone, email, and dates on an hourly schedule

Ready for 3.0

by DEUS Automations · 3 views · created 2026-08-31 · Document Extraction

Ready for 3.0. This template uses no nodes that n8n 3.0 removes. No removed nodes, versions or helpers found. Static check, last run 2026-10-19.

What this workflow does

This workflow has 13 nodes and runs on a schedule (every hour). Along the way it connects Google Sheets.

How it runs

Trigger: On a schedule (every hour).

  1. Read rows (Google Sheets): read (sheet)
  2. Read failed? (If): checks a condition and branches into true / false
  3. Log read failure (Code): runs custom JavaScript code
  4. Normalize phone/email/date (Code): runs custom JavaScript code
  5. Invalid email found? (If): checks a condition and branches into true / false
  6. Flag invalid rows (Google Sheets): append (sheet)
  7. Only changed rows (If): checks a condition and branches into true / false
  8. Write cleaned rows back (Google Sheets): update (sheet)
  9. Write failed? (If): checks a condition and branches into true / false
  10. Log write failure (Code): runs custom JavaScript code

Services it uses

Google Sheets

Before you upgrade to n8n 3.0

Nothing in this workflow is removed in n8n 3.0, so it should import and run after the upgrade.

Nodes used (5)

From the author

Quick overview This workflow runs hourly to read rows from Google Sheets, normalize phone numbers, email addresses, and dates, and write back only the rows that changed while adding an emailvalid flag for downstream filtering. How it works 1. Runs every hour…

Excerpt from DEUS Automations's description on n8n.io.

View the original on n8n.io → Check your own copy

Get the weekly “what broke” email

New templates, newly broken ones, and n8n release changes. One short email a week.

Form not loading? Subscribe here.