ساخت گزارش خودکار با n8n یکی از کاربردی‌ترین قابلیت‌هایی است که می‌تواند فرآیند تحلیل داده و ارسال گزارش‌های روزانه را بدون دخالت انسان انجام دهد. بسیاری از تیم‌ها نیاز دارند که اطلاعات ذخیره‌شده در Google Sheets، یک سیستم فروش یا یک دیتابیس را در بازه‌های زمانی مشخص پردازش و در قالب گزارش برای مدیران یا کاربران ارسال کنند. این کار اگر به صورت دستی انجام شود زمان‌بر است و احتمال خطا بالا می‌رود، اما با استفاده از n8n می‌توان کل فرایند را خودکار کرد. در این مقاله یاد می‌گیرید چگونه یک فلو زمان‌بندی‌شده ایجاد کنید، داده‌ها را از Google Sheets بخوانید، آن‌ها را پردازش کنید و در نهایت گزارش را از طریق ایمیل ارسال کنید.

چرا گزارش‌گیری خودکار مهم است

وقتی حجم داده بالا باشد، بررسی روزانه آن‌ها به صورت دستی تقریبا غیرممکن است. اتوماسیون گزارش‌گیری باعث می‌شود تیم‌ها همیشه اطلاعات تازه و دقیق داشته باشند. به جای اینکه یک نفر هر روز فایل‌ها را باز کند، اعداد را محاسبه کند و برای بقیه ارسال کند، n8n این فرایند را انجام می‌دهد و گزارش را آماده تحویل می‌کند. این موضوع به ویژه برای تیم‌های مالی، مارکتینگ، فروش، پشتیبانی و تیم‌های محصول بسیار کاربردی است.

ساخت Workflow مرحله‌به‌مرحله

گام ۱: ساخت Trigger زمان‌بندی‌شده

ابتدا یک Node نوع Schedule Trigger اضافه کنید.
زمان اجرای گزارش را تنظیم کنید؛ مثلا:

  • هر روز ساعت 08:00
  • هر هفته یک‌بار
  • هر ماه اول ماه
    این زمان‌بندی تعیین می‌کند که گزارش چه زمانی ساخته و ارسال شود.

گام ۲: دریافت داده از Google Sheets

یک Node با نوع Google Sheets اضافه کنید.
تنظیمات پیشنهادی:

  • Resource: Sheet
  • Operation: Read
  • Specify Range: فعال باشد
    اگر ردیف اول شامل عنوان ستون‌ها است، گزینه «Data Starts on Row 2» را فعال کنید تا محاسبات دقیق‌تر انجام شود.
    Credential گوگل را نیز باید از قبل ساخته باشید.

گام ۳: پردازش داده‌ها با Function Node

در این مرحله داده‌ها باید به شکل گزارش تبدیل شوند. اینجا از Function Node استفاده می‌کنیم و کد زیر کاملاً تست‌شده و آماده اجراست:

// Ready-to-run for n8n v1.8+
// Expects data from Google Sheets
const rows = $input.all();
if (!rows.length) {
  return [
    {
      json: {
        ok: false,
        error: "No data received from Google Sheets"
      }
    }
  ];
}
let total = 0;
rows.forEach(r => {
  const value = Number(r.json.amount || 0);
  total += value;
});
const reportLines = [];
reportLines.push("گزارش روزانه");
reportLines.push("------------------");
reportLines.push(`تعداد ردیف‌ها: ${rows.length}`);
reportLines.push(`مجموع مقدارها: ${total}`);
reportLines.push("جزئیات:");
rows.forEach((r, i) => {
  reportLines.push(`${i + 1}. ${r.json.name}: ${r.json.amount}`);
});
return [
  {
    json: {
      ok: true,
      textReport: reportLines.join("\n")
    }
  }
];

گام ۴: ارسال گزارش با Gmail

برای ارسال گزارش، یک Node نوع Gmail اضافه کنید.
تنظیمات:

  • Resource: Message
  • Operation: Send
  • To: ایمیل گیرنده
  • Subject: مثال «گزارش روزانه سیستم»
  • Message: خروجی Function Node (Expression → {{$json["textReport"]}})
    با این تنظیمات، متن گزارش کامل به صورت ایمیل ارسال می‌شود. فقط کافی است Credential جیمیل را انتخاب کنید.

گام ۵: پاسخ‌دهی و تست

اگر می‌خواهید اجرای دستی را تست کنید:

  • روی Execute Workflow بزنید
  • Function نتیجه گزارش را برمی‌گرداند
  • Gmail ایمیل را ارسال می‌کند
    بعد از تست موفق Workflow را فعال کنید تا طبق زمان‌بندی اجرا شود.

نکات حرفه‌ای برای بهبود گزارش‌ها

برای افزایش کیفیت گزارش‌ها می‌توانید چند تکنیک را در نظر بگیرید. مثلا اگر داده‌ها شامل رکوردهای خالی هستند، قبل از محاسبه آن‌ها را حذف کنید. همچنین می‌توانید گزارش را به صورت HTML بسازید تا ظاهر حرفه‌ای‌تری داشته باشد. اگر داده‌ها حجیم هستند، بهتر است ابتدا فیلتر شوند تا فقط اطلاعات لازم استفاده شود. برای سیستم‌هایی که چند گزارش نیاز دارند، استفاده از یک Function مرکزی توصیه می‌شود تا از تکرار جلوگیری شود. امکان افزودن فیلدهای تاریخ و ساعت نیز مفید است تا هر گزارش زمان تولید را در خود داشته باشد.

خطاهای رایج و روش رفع آن‌ها

اگر Google Sheets داده‌ای برنگرداند، معمولا مشکل از محدوده انتخابی است. مسیر Sheet و Range را بررسی کنید. اگر گزارش اشتباه باشد ممکن است ستون amount مقدار غیرعددی داشته باشد که باید قبل از محاسبه بررسی شود. خطای احراز هویت Gmail معمولا با Refresh Token حل می‌شود. اگر ایمیل ارسال نشد، محدودیت‌های امنیتی حساب گوگل را بررسی کنید. در صورتی که Workflow اجرا نشود، احتمالا Trigger غیرفعال شده است و باید دوباره Active شود.

جمع‌بندی

در این آموزش یاد گرفتید چگونه با استفاده از n8n فرایند ساخت گزارش‌های دوره‌ای و ارسال خودکار آن‌ها را انجام دهید. این گردش‌کار ترکیبی از یک Trigger زمان‌بندی‌شده، دریافت داده از Google Sheets، پردازش داده با Function Node و ارسال ایمیل با Gmail است. این روش باعث صرفه‌جویی در زمان، کاهش خطاهای انسانی و ایجاد یک روند دقیق و قابل اعتماد برای تحلیل روزانه می‌شود. شما می‌توانید این الگو را توسعه دهید و برای گزارش‌های هفتگی، ماهانه یا حتی لحظه‌ای استفاده کنید تا در هر لحظه اطلاعات تازه و پردازش‌شده داشته باشید.