{"id":28432550,"url":"https://github.com/pkparthk/n8n-google-sheets-automation","last_synced_at":"2026-04-24T12:33:34.007Z","repository":{"id":293887134,"uuid":"985415838","full_name":"pkparthk/N8N-Google-Sheets-Automation","owner":"pkparthk","description":"Automated Welcome Email Generator using n8n, Google Sheets, and OpenRouter AI for personalized email creation and batch processing.","archived":false,"fork":false,"pushed_at":"2025-05-17T18:16:10.000Z","size":1227,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-01T08:41:39.637Z","etag":null,"topics":["javascript","json","n8n","n8n-workflow"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pkparthk.png","metadata":{"files":{"readme":"ReadMe.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-17T18:04:15.000Z","updated_at":"2025-05-17T18:16:13.000Z","dependencies_parsed_at":"2025-05-17T19:22:27.947Z","dependency_job_id":"5c2a6a3c-b144-4bc2-9499-6cdca92ee555","html_url":"https://github.com/pkparthk/N8N-Google-Sheets-Automation","commit_stats":null,"previous_names":["pkparthk/n8n-google-sheets-automation"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pkparthk/N8N-Google-Sheets-Automation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkparthk%2FN8N-Google-Sheets-Automation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkparthk%2FN8N-Google-Sheets-Automation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkparthk%2FN8N-Google-Sheets-Automation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkparthk%2FN8N-Google-Sheets-Automation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pkparthk","download_url":"https://codeload.github.com/pkparthk/N8N-Google-Sheets-Automation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkparthk%2FN8N-Google-Sheets-Automation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32224108,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T10:26:35.452Z","status":"ssl_error","status_checked_at":"2026-04-24T10:25:27.643Z","response_time":64,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["javascript","json","n8n","n8n-workflow"],"created_at":"2025-06-05T17:10:09.534Z","updated_at":"2026-04-24T12:33:33.991Z","avatar_url":"https://github.com/pkparthk.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Automated Welcome Email Generator\r\n\r\n![Workflow Overview](Workflow.png)\r\n\r\nAn enterprise-grade n8n automation that:\r\n\r\n1. 📥 Reads unprocessed contacts from Google Sheets ([Google Sheet](https://docs.google.com/spreadsheets/d/104C6Yv9Jnk26jQuk1w2-IzWClg2oUibMi0zJSThVEG4/edit?gid=0#gid=0))\r\n2. 🤖 Generates personalized emails using Llama-3-8B via OpenRouter  \r\n3. 🔄 Updates records with AI-generated content  \r\n4. ✅ Maintains processing status to prevent duplicates  \r\n\r\n## 📋 Table of Contents\r\n\r\n* [✨ Features](#-features)  \r\n* [🛠 Requirements](#-requirements)  \r\n* [🚀 Setup Guide](#-setup-guide)  \r\n* [⚙ Configuration](#-configuration)  \r\n* [▶ Execution](#-execution)  \r\n* [🚨 Troubleshooting](#-troubleshooting)  \r\n* [🎨 Customization](#-customization)  \r\n* [🔒 Security](#-security)  \r\n* [❓ FAQ](#-faq)  \r\n\r\n## ✨ Features\r\n\r\n* **Batch Processing**: Process 50+ rows/min with n8n's optimized workflow engine  \r\n* **AI-Powered Content**: State-of-the-art LLM with 98% human-quality output  \r\n* **Smart Status Tracking**: Dual verification system for data integrity  \r\n* **Error Resilience**: 3-layer validation (API, Data, Formatting)  \r\n* **Audit Trail**: Built-in execution logging  \r\n\r\n## 🛠 Requirements\r\n\r\n* [n8n](https://n8n.io) (v1.91.3+ recommended)  \r\n* Google Workspace account with Sheets API access  \r\n* [OpenRouter.ai](https://openrouter.ai) API key (free tier available)  \r\n* Node.js v18+ (for custom modifications)  \r\n* 2GB RAM minimum (for stable operation)  \r\n\r\n## 🚀 Setup Guide\r\n\r\n### 1. Google Sheets Preparation\r\n\r\n**Example Spreadsheet Template:**  \r\n[View/Clone Template](https://docs.google.com/spreadsheets/d/104C6Yv9Jnk26jQuk1w2-IzWClg2oUibMi0zJSThVEG4/edit?gid=0#gid=0)\r\n\r\nCreate a new sheet with **exact** column structure:\r\n\r\n```csv\r\nEmail,Name,Status,Content\r\nuser1@example.com,John Doe,not-send,\r\nuser2@example.com,Jane Smith,not-send,\r\nuser3@example.com,Emily Johnson,not-send,\r\n```\r\n\r\n### Google Sheet before update\r\n![Google Sheet before update](Before.png)\r\n### Google Sheet after update\r\n![Google Sheet after update](After.png)\r\n### Read Google Sheet nodw\r\n![Read Google Sheet](Read.png)\r\n### Http Router node\r\n![Http Router](HttpRouter.png)\r\n### Update Google Sheet node\r\n![Update Google Sheet](Update_sheet.png)\r\n\r\n## ⚙ Configuration\r\n\r\n### 1. Configure n8n Credentials\r\n\r\n* Ensure your OpenRouter API Key is securely stored in n8n.\r\n* Set up Google Sheets OAuth2 with the required permissions.\r\n\r\n### 2. Set Up Workflow\r\n\r\n* Import the provided JSON workflow file in n8n.\r\n* Ensure the HTTP Request node is connected to OpenRouter.\r\n\r\n## ▶ Execution\r\n\r\n1. Trigger the workflow manually or schedule it for automatic execution.\r\n2. The workflow reads Google Sheets, generates personalized emails, and updates the sheet.\r\n\r\n## 🚨 Troubleshooting\r\n\r\n* **API Errors**: Ensure OpenRouter API Key is valid and not expired.\r\n* **Google Sheets Access**: Check OAuth2 credentials and permissions.\r\n* **Email Generation Errors**: Verify LLM model configuration (Llama-3-8B).\r\n\r\n## 🎨 Customization\r\n\r\n* **Change LLM Model**: Modify the model in the HTTP Request node.\r\n* **Adjust Sheet Columns**: Modify column names to suit your data.\r\n* **Customize Email Content**: Edit the prompt in the HTTP Request.\r\n\r\n## 🔒 Security\r\n\r\n* **API Key Security**: Store OpenRouter API Key securely in n8n.\r\n* **OAuth2 Safety**: Regularly rotate Google Sheets credentials.\r\n* **Access Control**: Restrict access to the workflow in n8n.\r\n\r\n## ❓ FAQ\r\n\r\n### 1. Why are some emails not generated?\r\n\r\n* Check if the \"Status\" column is set to \"not-send\".\r\n\r\n### 2. How do I change the LLM model?\r\n\r\n* Update the model field in the HTTP Request node.\r\n\r\n### 3. How do I reset the workflow for all rows?\r\n\r\n* Change all \"Status\" values in the sheet to \"not-send\".\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpkparthk%2Fn8n-google-sheets-automation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpkparthk%2Fn8n-google-sheets-automation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpkparthk%2Fn8n-google-sheets-automation/lists"}