نود Google Sheet در N8N
نود Google Sheet در N8N یکی از پرکاربردترین نودها برای خواندن، ثبت، ویرایش و مدیریت دادهها در Google Sheets است. با این نود میتوان اطلاعات فرمها، سفارشها، لیدهای فروش، گزارشهای روزانه، دادههای CRM و خروجی سرویسهای مختلف را بدون کدنویسی وارد شیت کرد یا از شیت به عنوان منبع داده در ورکفلوها استفاده کرد.
معرفی نود در N8N
نود Google Sheet یا Google Sheets در N8N برای اتصال مستقیم به فایلهای Google Sheets استفاده میشود. این نود به شما اجازه میدهد ردیفها را بخوانید، ردیف جدید اضافه کنید، دادهها را بهروزرسانی کنید، شیت جدید بسازید، محدودهای از دادهها را پاک کنید یا بر اساس یک ستون مشخص، رکوردها را جستجو و مدیریت کنید.
- دستهبندی نود: Integration / Action
- سرویس متصلشونده: Google Sheets
- نیاز به احراز هویت: دارد؛ معمولاً از طریق Google OAuth2 یا Google Service Account
- کاربرد اصلی: ذخیرهسازی، خواندن، بهروزرسانی و مدیریت دادههای جدولی در ورکفلوهای اتوماسیون
اهمیت این نود در این است که Google Sheets برای بسیاری از تیمها نقش یک دیتابیس ساده، ابزار گزارشگیری، سیستم ثبت سفارش، لیست مخاطبان یا داشبورد عملیاتی را دارد. با اتصال N8N به Google Sheets، میتوان این فایلها را به بخشی فعال از فرآیندهای خودکار تبدیل کرد.
موارد استفاده
نود Google Sheet در سناریوهای بسیار متنوعی استفاده میشود؛ از ذخیره اطلاعات ساده گرفته تا ساخت سیستمهای اتوماسیون نیمهحرفهای برای فروش، بازاریابی، پشتیبانی و گزارشگیری.
ثبت اطلاعات فرمها در Google Sheets
یکی از رایجترین کاربردها، ذخیره اطلاعات فرمهای آنلاین در Google Sheets است. برای مثال، اطلاعات دریافتی از یک Webhook، Typeform، Tally، Google Forms یا فرم سایت را میتوان مستقیماً به یک شیت اضافه کرد.
- Trigger: Webhook
- Action: Google Sheet – Append Row
- کاربرد: ثبت نام کاربران، دریافت درخواست مشاوره، ذخیره پیامهای تماس با ما
ساخت لیست لیدهای فروش
میتوان دادههای دریافتشده از تبلیغات، فرمهای لندینگ پیج، شبکههای اجتماعی یا CRM را در Google Sheets ذخیره کرد و سپس برای تیم فروش قابل مشاهده کرد.
- Webhook برای دریافت لید
- Set برای مرتبسازی فیلدها
- Google Sheet برای ثبت لید
- Email یا Telegram برای اطلاعرسانی به تیم فروش
بهروزرسانی وضعیت سفارشها
اگر یک فروشگاه آنلاین دارید، میتوانید وضعیت سفارشها را در Google Sheets نگهداری کنید. مثلاً بعد از پرداخت موفق، ستون وضعیت سفارش از Pending به Paid تغییر کند.
- Trigger: Webhook از درگاه پرداخت یا فروشگاه
- Google Sheet: جستجو بر اساس Order ID
- Google Sheet: Update Row برای تغییر وضعیت سفارش
ساخت گزارشهای خودکار
نود Google Sheet میتواند دادههای روزانه را از منابع مختلف دریافت کند و به شکل مرتب در شیت ثبت کند. سپس با استفاده از نمودارها و Pivot Table در Google Sheets میتوان داشبورد ساخت.
- Schedule Trigger برای اجرای روزانه
- HTTP Request برای دریافت داده از API
- Function یا Code برای پردازش دادهها
- Google Sheet برای ذخیره خروجی گزارش
استفاده از Google Sheets به عنوان دیتابیس ساده
برای پروژههای کوچک و متوسط، Google Sheets میتواند نقش یک دیتابیس ساده را بازی کند. برای مثال، میتوانید لیست محصولات، کدهای تخفیف، کاربران مجاز یا تنظیمات یک ورکفلو را در شیت نگهداری کنید و N8N هنگام اجرا آنها را بخواند.
پارامترها و تنظیمات
پارامترهای نود Google Sheet بسته به نسخه N8N و Operation انتخابشده ممکن است کمی متفاوت باشند، اما ساختار کلی آن شامل انتخاب حساب گوگل، فایل Spreadsheet، شیت، عملیات مورد نظر، محدوده داده، ستونها و گزینههای خواندن یا نوشتن است.
Credentials یا اطلاعات اتصال
- نام پارامتر: Credential
- نوع داده: Google OAuth2 یا Google Service Account
- توضیح کاربرد: مشخص میکند N8N با کدام حساب گوگل به Google Sheets متصل شود.
- مثال عملی: اتصال به حسابی که مالک فایل فروش ماهانه در Google Drive است.
- نکته مهم: اگر از Service Account استفاده میشود، باید فایل Google Sheet با ایمیل Service Account به اشتراک گذاشته شود.
Resource
- نام پارامتر: Resource
- نوع داده: لیست انتخابی
- توضیح کاربرد: مشخص میکند عملیات روی چه بخشی از Google Sheets انجام شود؛ مثلاً روی کل Document یا روی یک Sheet داخل فایل.
- مقادیر رایج: Document، Sheet
- مثال عملی: انتخاب Sheet برای اضافه کردن ردیف جدید به تب Orders.
Operation
- نام پارامتر: Operation
- نوع داده: لیست انتخابی
- توضیح کاربرد: نوع عملیاتی را مشخص میکند که باید روی Google Sheet انجام شود.
- عملیات رایج: Read، Append Row، Update Row، Append or Update Row، Clear، Create Sheet، Delete Sheet، Get Row، Get Many، Lookup
- مثال عملی: انتخاب Append Row برای ذخیره هر ثبتنام جدید در انتهای شیت.
Document
- نام پارامتر: Document یا Spreadsheet
- نوع داده: انتخاب از لیست یا وارد کردن ID/URL
- توضیح کاربرد: فایل Google Sheets مورد نظر را مشخص میکند.
- مثال عملی: انتخاب فایل CRM Leads از Google Drive.
- نکته مهم: در صورت انتخاب By ID، باید Spreadsheet ID را از URL فایل بردارید. در آدرس https://docs.google.com/spreadsheets/d/abc123/edit مقدار abc123 همان Spreadsheet ID است.
Sheet
- نام پارامتر: Sheet
- نوع داده: انتخاب از لیست یا وارد کردن نام/ID شیت
- توضیح کاربرد: تب داخلی فایل Google Sheets را مشخص میکند؛ مثل Orders، Leads یا Products.
- مثال عملی: ثبت سفارشها در Sheet با نام Orders.
- نکته مهم: نام Sheet باید دقیقاً با نام تب داخل Google Sheets یکی باشد؛ فاصلهها و حروف بزرگ و کوچک میتوانند مهم باشند.
Range
- نام پارامتر: Range
- نوع داده: متن
- توضیح کاربرد: محدوده سلولهایی را مشخص میکند که باید خوانده، پاک یا پردازش شوند.
- مثال عملی: A1:D100 برای خواندن ستونهای A تا D از ردیف 1 تا 100.
- فرمت قابل قبول: A1 notation مانند A1:E10 یا Orders!A:D
- نکته مهم: اگر محدوده بیش از حد بزرگ انتخاب شود، عملکرد ورکفلو کندتر میشود.
Mapping Column Mode
- نام پارامتر: Mapping Column Mode یا Data Mode
- نوع داده: لیست انتخابی
- توضیح کاربرد: مشخص میکند دادهها چگونه به ستونهای Google Sheets نگاشت شوند.
- گزینههای رایج: Map Each Column Manually، Auto-map Input Data to Columns، JSON
- مثال عملی: اگر ورودی دارای فیلدهای name، email و phone باشد، با Auto-map میتوان این فیلدها را به ستونهای همنام در شیت متصل کرد.
Columns / Values to Send
- نام پارامتر: Columns یا Values to Send
- نوع داده: آبجکت، متن، عدد، تاریخ، Boolean
- توضیح کاربرد: مشخص میکند چه دادهای در کدام ستون ذخیره یا بهروزرسانی شود.
- مثال عملی: ستون Name مقدار {{$json.name}}، ستون Email مقدار {{$json.email}} و ستون Created At مقدار {{$now}} دریافت کند.
- نکته مهم: بهتر است نام ستونها در ردیف اول Google Sheets دقیق، انگلیسی و بدون کاراکترهای پیچیده باشد تا نگاشت خودکار بهتر کار کند.
Key Column یا Column to Match On
- نام پارامتر: Column to Match On
- نوع داده: نام ستون
- توضیح کاربرد: در عملیاتهایی مثل Update یا Append or Update مشخص میکند کدام ستون برای پیدا کردن رکورد مشابه استفاده شود.
- مثال عملی: استفاده از ستون order_id برای پیدا کردن سفارش و بهروزرسانی وضعیت آن.
- نکته مهم: مقدار این ستون باید تا حد امکان یکتا باشد؛ مثل email، user_id، order_id یا invoice_number.
Value Input Mode
- نام پارامتر: Value Input Mode
- نوع داده: لیست انتخابی
- گزینهها: RAW، USER_ENTERED
- توضیح کاربرد: مشخص میکند دادهها همانطور خام ذخیره شوند یا Google Sheets آنها را مثل ورودی کاربر تفسیر کند.
- مثال عملی: اگر مقدار =SUM(A1:A5) با USER_ENTERED ثبت شود، به عنوان فرمول پردازش میشود؛ اما با RAW به صورت متن خام ذخیره میشود.
- نکته مهم: برای تاریخها، عددها و فرمولها معمولاً USER_ENTERED کاربردیتر است؛ برای دادههای متنی حساس مثل کد رهگیری، RAW امنتر است.
Insert Data Option
- نام پارامتر: Insert Data Option
- نوع داده: لیست انتخابی
- گزینهها: INSERT_ROWS، OVERWRITE
- توضیح کاربرد: مشخص میکند هنگام اضافه کردن داده جدید، ردیف جدید ساخته شود یا دادهها روی محدوده موجود نوشته شوند.
- مثال عملی: برای ثبت سفارشهای جدید، INSERT_ROWS گزینه مناسبتری است.
Header Row
- نام پارامتر: Header Row
- نوع داده: عدد
- توضیح کاربرد: مشخص میکند عنوان ستونها در کدام ردیف قرار دارند.
- مثال عملی: اگر ردیف اول شامل Name، Email و Phone است، مقدار Header Row برابر 1 است.
- نکته مهم: اگر عنوان ستونها در ردیف اشتباه تشخیص داده شود، خروجی خواندن دادهها یا نگاشت ستونها نادرست خواهد بود.
Data Starts Row
- نام پارامتر: Data Starts Row
- نوع داده: عدد
- توضیح کاربرد: مشخص میکند دادههای واقعی از کدام ردیف شروع میشوند.
- مثال عملی: اگر ردیف اول عنوان ستونها باشد، دادهها معمولاً از ردیف 2 شروع میشوند.
Return All
- نام پارامتر: Return All
- نوع داده: Boolean
- توضیح کاربرد: مشخص میکند همه رکوردهای موجود برگردانده شوند یا فقط تعداد محدودی از آنها.
- مثال عملی: برای دریافت کل لیست مشتریان، مقدار true انتخاب میشود.
- نکته مهم: در شیتهای بزرگ، فعال کردن Return All میتواند باعث کندی و مصرف بیشتر منابع شود.
Limit
- نام پارامتر: Limit
- نوع داده: عدد
- توضیح کاربرد: تعداد رکوردهایی را مشخص میکند که باید از شیت خوانده شوند.
- مثال عملی: خواندن فقط 100 ردیف اول برای پردازش سریعتر.
Value Render Mode
- نام پارامتر: Value Render Mode
- نوع داده: لیست انتخابی
- گزینههای رایج: FORMATTED_VALUE، UNFORMATTED_VALUE، FORMULA
- توضیح کاربرد: مشخص میکند مقادیر خروجی به چه شکلی برگردانده شوند.
- مثال عملی: اگر یک سلول شامل فرمول باشد، با FORMULA فرمول اصلی و با FORMATTED_VALUE نتیجه نمایشدادهشده برگردانده میشود.
DateTime Render Option
- نام پارامتر: DateTime Render Option
- نوع داده: لیست انتخابی
- توضیح کاربرد: نحوه نمایش تاریخ و زمان در خروجی را تعیین میکند.
- مثال عملی: تاریخ میتواند به صورت عدد سریالی Google Sheets یا مقدار فرمتشده خوانده شود.
- نکته مهم: برای جلوگیری از خطاهای منطقه زمانی، بهتر است تاریخها را در N8N با فرمت ISO مانند 2026-06-29T10:30:00Z مدیریت کنید.
Use First Row as Header
- نام پارامتر: Use First Row as Header
- نوع داده: Boolean
- توضیح کاربرد: اگر فعال باشد، مقادیر ردیف اول به عنوان نام فیلدهای خروجی استفاده میشوند.
- مثال عملی: ستون Email در خروجی به شکل {{$json.Email}} قابل دسترسی خواهد بود.
Continue On Fail
- نام پارامتر: Continue On Fail
- نوع داده: Boolean
- توضیح کاربرد: مشخص میکند در صورت بروز خطا، اجرای ورکفلو متوقف شود یا ادامه پیدا کند.
- مثال عملی: در پردازش گروهی 100 سفارش، اگر یک سفارش خطا داشت، باقی سفارشها همچنان پردازش شوند.
ورودیها و خروجیها
نود Google Sheet معمولاً دادهها را از نود قبلی دریافت میکند و بسته به عملیات انتخابشده، آنها را در Google Sheets مینویسد یا از Google Sheets داده برمیگرداند. دادهها در N8N به صورت آیتمهای JSON بین نودها منتقل میشوند.
ورودی نود
ورودی این نود میتواند هر آبجکت JSON باشد. برای مثال، اگر از یک Webhook اطلاعات فرم دریافت شود، داده ورودی میتواند به شکل زیر باشد:
{ "name": "علی رضایی", "email": "ali@example.com", "phone": "09121234567", "source": "landing-page", "created_at": "2026-06-29T09:15:00Z"}در عملیات Append Row، این فیلدها میتوانند به ستونهای Google Sheets نگاشت شوند:
- Name = {{$json.name}}
- Email = {{$json.email}}
- Phone = {{$json.phone}}
- Source = {{$json.source}}
- Created At = {{$json.created_at}}
خروجی نود هنگام خواندن داده
اگر عملیات Read یا Get Many استفاده شود، نود Google Sheet دادههای شیت را به صورت JSON برمیگرداند. اگر ردیف اول شیت شامل عنوان ستونها باشد، خروجی میتواند شبیه نمونه زیر باشد:
[ { "row_number": 2, "Name": "علی رضایی", "Email": "ali@example.com", "Phone": "09121234567", "Status": "New" }, { "row_number": 3, "Name": "مریم احمدی", "Email": "maryam@example.com", "Phone": "09351234567", "Status": "Contacted" }]خروجی نود هنگام افزودن ردیف
در عملیات Append Row، خروجی معمولاً شامل اطلاعات ردیف ثبتشده یا دادههای ارسالشده است. در برخی تنظیمات، خروجی ممکن است شامل شماره ردیف یا محدوده بهروزرسانیشده باشد.
{ "Name": "علی رضایی", "Email": "ali@example.com", "Phone": "09121234567", "Status": "New"}خروجی نود هنگام بهروزرسانی داده
در عملیات Update Row یا Append or Update Row، خروجی میتواند نشان دهد کدام ردیف بهروزرسانی شده و مقدارهای جدید چه بودهاند.
{ "row_number": 7, "order_id": "ORD-10025", "customer": "علی رضایی", "status": "Paid", "paid_at": "2026-06-29T10:20:00Z"}نکات پیشرفته و ترفندها
استفاده از Google Sheets به عنوان جدول تنظیمات ورکفلو
میتوان یک شیت را به عنوان فایل تنظیمات استفاده کرد. برای مثال، API Keyها، آستانه هشدار، لیست ایمیل مدیران یا وضعیت فعال بودن یک قابلیت را از Google Sheets خواند و در ادامه ورکفلو استفاده کرد.
- Google Sheet برای خواندن تنظیمات
- IF برای بررسی مقدار فعال یا غیرفعال
- HTTP Request یا Email بر اساس تنظیمات خواندهشده
جلوگیری از ثبت داده تکراری
برای جلوگیری از ذخیره رکوردهای تکراری، ابتدا با استفاده از Lookup یا Read داده را بر اساس یک کلید یکتا مثل email یا order_id جستجو کنید. اگر رکورد وجود نداشت، Append Row انجام شود؛ اگر وجود داشت، Update Row اجرا شود.
- کلید مناسب برای کاربران: email یا user_id
- کلید مناسب برای سفارشها: order_id یا transaction_id
- کلید مناسب برای فاکتورها: invoice_number
استفاده از Append or Update Row
در نسخههای جدیدتر نود Google Sheets، عملیات Append or Update Row بسیار کاربردی است. این عملیات ابتدا بررسی میکند آیا رکوردی با مقدار مشخص در ستون کلیدی وجود دارد یا نه؛ اگر وجود داشته باشد، آن را بهروزرسانی میکند و اگر وجود نداشته باشد، یک ردیف جدید اضافه میکند.
مثال: اگر کاربری با ایمیل ali@example.com قبلاً ثبت شده باشد، شماره تماس او بهروزرسانی میشود؛ در غیر این صورت، کاربر جدید به انتهای شیت اضافه میشود.
بهینهسازی خواندن دادههای بزرگ
در شیتهایی که هزاران ردیف دارند، خواندن کل دادهها میتواند باعث کندی شود. بهتر است محدوده مشخص، Limit، فیلترهای منطقی و ستونهای کلیدی استفاده شود.
- به جای خواندن A:Z، محدوده دقیق مانند A1:F500 انتخاب شود.
- از Return All فقط زمانی استفاده شود که واقعاً نیاز است.
- برای پردازش حجم بالا، دادهها به صورت Batch پردازش شوند.
- ستونهای غیرضروری از شیت حذف یا در محدوده خواندن وارد نشوند.
ترکیب با نود Code برای پاکسازی دادهها
قبل از ثبت اطلاعات در Google Sheets میتوان با نود Code یا Set دادهها را مرتب و استاندارد کرد. برای مثال، شماره موبایلها را یکسانسازی کرد، فاصلههای اضافه را حذف کرد یا تاریخها را به فرمت مشخص تبدیل کرد.
{ "name": "{{$json.name.trim()}}", "email": "{{$json.email.toLowerCase()}}", "phone": "{{$json.phone.replace(/s/g, '')}}"}استفاده از فرمولهای Google Sheets
اگر Value Input Mode روی USER_ENTERED باشد، میتوان فرمولهایی مثل VLOOKUP، SUM، IF یا HYPERLINK را از N8N وارد سلول کرد. این قابلیت برای ساخت گزارشها و داشبوردهای پویا مفید است.
- نمونه فرمول محاسبه جمع: =SUM(D2:D100)
- نمونه لینک قابل کلیک: =HYPERLINK(“https://example.com”,”مشاهده”)
- نمونه شرط: =IF(E2=”Paid”,”تسویه شده”,”در انتظار”)
مدیریت چند شیت در یک فایل
میتوان دادههای متفاوت را در تبهای جداگانه ذخیره کرد. برای مثال، یک فایل Google Sheets شامل شیتهای Leads، Orders، Payments و Logs باشد. در N8N میتوان بر اساس نوع داده، Sheet مقصد را به صورت داینامیک مشخص کرد.
ثبت لاگ اجرای ورکفلو
Google Sheets برای ثبت لاگهای ساده بسیار کاربردی است. میتوان در پایان هر اجرای ورکفلو، زمان اجرا، وضعیت موفق یا ناموفق، پیام خطا و تعداد رکوردهای پردازششده را در یک شیت ذخیره کرد.
محدودیتها و خطاها
محدودیتهای Google Sheets
- Google Sheets برای دیتابیسهای بزرگ و تراکنشهای سنگین طراحی نشده است.
- هر فایل Google Sheets محدودیت تعداد سلول دارد.
- عملیات همزمان زیاد ممکن است باعث خطاهای Rate Limit شود.
- سرعت خواندن و نوشتن در Google Sheets نسبت به دیتابیسهایی مثل PostgreSQL یا MySQL کمتر است.
- برای عملیات پیچیده جستجو، فیلتر و رابطهای، Google Sheets گزینه ایدهآل نیست.
خطای دسترسی یا Permission Denied
علت: حساب متصلشده به N8N به فایل Google Sheets دسترسی ندارد.
- بررسی کنید فایل با همان حساب گوگل به اشتراک گذاشته شده باشد.
- در صورت استفاده از Service Account، ایمیل Service Account را در Share فایل اضافه کنید.
- سطح دسترسی باید متناسب با عملیات باشد؛ برای نوشتن داده، دسترسی Editor لازم است.
خطای Spreadsheet Not Found
علت: Spreadsheet ID اشتباه است یا فایل در دسترس Credential انتخابشده نیست.
- ID فایل را از URL بررسی کنید.
- از انتخاب فایل از لیست به جای وارد کردن دستی ID استفاده کنید.
- مطمئن شوید فایل حذف نشده یا به Drive دیگری منتقل نشده است.
خطای Sheet Not Found
علت: نام شیت داخلی اشتباه وارد شده است.
- نام تب داخل فایل را دقیق بررسی کنید.
- فاصلههای ابتدا و انتهای نام را حذف کنید.
- در صورت امکان، Sheet را از لیست انتخاب کنید.
مشکل در نگاشت ستونها
علت: نام ستونهای Google Sheets با نام فیلدهای ورودی N8N هماهنگ نیست.
- ردیف Header را بررسی کنید.
- نام ستونها را ساده و بدون کاراکترهای پیچیده انتخاب کنید.
- از Map Each Column Manually برای کنترل دقیقتر استفاده کنید.
- از نود Set برای تغییر نام فیلدهای ورودی قبل از Google Sheet استفاده کنید.
ثبت تاریخ با فرمت اشتباه
علت: تفاوت فرمت تاریخ در N8N، Google Sheets و منطقه زمانی فایل.
- تاریخها را با فرمت ISO ذخیره کنید.
- Timezone ورکفلو و Google Sheets را بررسی کنید.
- برای نمایش تاریخ، از فرمولها یا Format داخلی Google Sheets استفاده کنید.
خطای Quota یا Rate Limit
علت: تعداد درخواستهای زیاد به Google Sheets API در بازه زمانی کوتاه.
- بین درخواستها از Wait استفاده کنید.
- دادهها را به صورت Batch ارسال کنید.
- از اجرای همزمان تعداد زیادی ورکفلو که به یک فایل مینویسند خودداری کنید.
- در پردازشهای سنگین، از دیتابیس واقعی به جای Google Sheets استفاده کنید.
مشکل همزمانی در بهروزرسانی ردیفها
علت: چند اجرای همزمان ورکفلو روی یک فایل یا یک ردیف کار میکنند.
- برای فرآیندهای حساس، اجرای همزمان را محدود کنید.
- از کلیدهای یکتا مثل order_id استفاده کنید.
- برای دادههای حساس مالی یا موجودی کالا، از دیتابیس تراکنشی استفاده شود.
ایده ها
- سیستم مدیریت لید فروش: دریافت لید از فرم سایت، ذخیره در Google Sheets، ارسال پیام به تلگرام تیم فروش و تغییر وضعیت لید بعد از تماس.
- داشبورد سفارشهای روزانه: دریافت سفارشها از فروشگاه، ثبت در شیت، محاسبه فروش روزانه با فرمولها و ارسال گزارش پایان روز با ایمیل.
- سیستم حضور و غیاب ساده: ثبت ورود و خروج کارکنان از طریق فرم یا QR Code و ذخیره زمانها در Google Sheets.
- مدیریت محتوای شبکههای اجتماعی: نگهداری تقویم محتوایی در Google Sheets و انتشار خودکار پستها در زمان مشخص با Schedule Trigger.
- مانیتورینگ قیمت یا موجودی: دریافت اطلاعات از API یا سایت، ثبت تغییرات در Google Sheets و ارسال هشدار هنگام تغییر قیمت یا کاهش موجودی.
