وقتی چندین Workflow در n8n دارید، بررسی دستی اجرای تکتک آنها کار زمانبر و دشواری است. ممکن است یک Workflow سفارشهای فروشگاه را پردازش کند، Workflow دیگری اطلاعات را از یک API دریافت کند و Workflow دیگری وظیفه ارسال پیامک یا تهیه گزارش را بر عهده داشته باشد.
اگر یکی از این فرآیندها با خطا مواجه شود یا اجرای آن با موفقیت به پایان برسد، بهتر است از نتیجه آن مطلع شوید؛ بدون اینکه مجبور باشید مرتب وارد پنل n8n شوید.
یکی از روشهای ساده برای این کار، ارسال گزارش به تلگرام است. با استفاده از n8n و Telegram Bot میتوانید بعد از انجام یک عملیات، پیامی حاوی وضعیت اجرا، نتیجه پردازش یا اطلاعات مهم برای خودتان یا اعضای تیم ارسال کنید.
در این آموزش، یک سیستم اطلاعرسانی میسازیم که گزارش اجرای Workflow را به تلگرام ارسال کند و سپس روش ارسال گزارش خطاها را نیز بررسی میکنیم.
ارسال گزارش Workflow به تلگرام چه کاربردی دارد؟
این قابلیت در پروژههای مختلف کاربرد دارد. برای مثال:
- اطلاعرسانی پس از ثبت موفق سفارش در فروشگاه اینترنتی
- ارسال تعداد رکوردهای پردازششده از یک فایل اکسل
- گزارش موفقیت یا شکست دریافت اطلاعات از یک API
- اطلاعرسانی پس از پایان فرآیند تهیه گزارش
- ارسال خلاصه وضعیت اجرای اتوماسیونهای روزانه
- آگاهشدن مدیر سیستم از بروز خطا در یک فرآیند مهم
فرض کنید Workflow شما هر روز اطلاعات چند صد محصول را از یک سرویس دریافت میکند و در پایگاه داده قرار میدهد. بهجای بررسی دستی Executionها، میتوانید در پایان کار پیامی مانند زیر دریافت کنید:
گزارش اجرای Workflow
وضعیت: موفق
تعداد محصولات پردازششده: 245
زمان پایان: 14:35
نتیجه: پردازش اطلاعات با موفقیت انجام شد.
این پیام صرفاً یک نمونه است و مقادیر آن باید از دادههای واقعی Workflow به دست بیایند.
پیشنیازهای آموزش
برای اجرای مثالهای این مقاله به موارد زیر نیاز دارید:
- یک نمونه فعال از n8n
- یک ربات تلگرام ساختهشده با BotFather
- تنظیم Credentials تلگرام در n8n
- یک Workflow ساده برای آزمایش ارسال گزارش
اگر هنوز ربات تلگرام را به n8n متصل نکردهاید، ابتدا مقاله «آموزش اتصال تلگرام به n8n؛ ساخت اولین اتوماسیون تلگرام» را مطالعه کنید.
مرحله اول: ساخت Workflow آزمایشی
ابتدا وارد پنل n8n شوید و یک Workflow جدید ایجاد کنید.
برای اینکه بتوانیم بدون وابستگی به سرویس خارجی ارسال گزارش را آزمایش کنیم، از یک Workflow ساده استفاده میکنیم.
یک Node از نوع Manual Trigger اضافه کنید. این Node امکان اجرای دستی Workflow را برای آزمایش فراهم میکند.
سپس یک Node از نوع Edit Fields به آن متصل کنید و فیلدهای زیر را بسازید:
| نام فیلد | مقدار نمونه |
|---|---|
status | موفق |
processed_count | 25 |
report_message | پردازش اطلاعات با موفقیت انجام شد. |
مقدار processed_count در این مثال صرفاً یک عدد آزمایشی است. در یک Workflow واقعی، این مقدار باید از خروجی مرحله پردازش اطلاعات استخراج شود.
اکنون ساختار اولیه Workflow شما چنین است:
Manual Trigger
|
v
Edit Fields
این Workflow هنوز کاری انجام نمیدهد؛ اما دادههایی را آماده میکند که قرار است در گزارش تلگرام نمایش داده شوند.
مرحله دوم: افزودن Node تلگرام برای ارسال گزارش
اکنون یک Node از نوع Telegram به Workflow اضافه کنید و آن را بعد از Edit Fields قرار دهید.
در تنظیمات Node:
- Credentials مربوط به ربات تلگرام را انتخاب کنید.
- عملیات ارسال پیام، معمولاً با عنوان
Send Message، را انتخاب کنید. - در فیلد Chat ID، شناسه گفتوگویی را وارد کنید که قرار است گزارش را دریافت کند.
- در فیلد متن پیام، محتوای گزارش را مشخص کنید.
اگر قصد دارید گزارش را برای خودتان ارسال کنید، ابتدا باید گفتوگو را با ربات آغاز کرده باشید و شناسه گفتوگوی صحیح را در اختیار داشته باشید. برای ارسال به گروه نیز باید ربات را به گروه اضافه کنید و شناسه مناسب همان گفتوگو را به کار ببرید.
ساختار Workflow اکنون به این شکل است:
Manual Trigger
|
v
Edit Fields
|
v
Telegram: Send Message
Workflow را اجرا کنید. اگر تنظیمات ربات و شناسه گفتوگو صحیح باشند، پیام باید در تلگرام دریافت شود.
مرحله سوم: ساخت گزارش پویا با Expression
بهتر است متن گزارش را بهصورت ثابت وارد نکنید؛ زیرا در پروژه واقعی، وضعیت و نتیجه هر اجرا ممکن است متفاوت باشد.
در فیلد متن پیام Telegram Node میتوانید از Expression استفاده کنید تا مقادیر را از دادههای ورودی بخوانید.
برای مثال:
گزارش اجرای Workflow
وضعیت: {{ $json.status }}
تعداد پردازششده: {{ $json.processed_count }}
نتیجه: {{ $json.report_message }}
در این مثال، مقادیر از خروجی Edit Fields خوانده میشوند.
اگر خروجی مرحله قبل چنین باشد:
{
"status": "موفق",
"processed_count": 25,
"report_message": "پردازش اطلاعات با موفقیت انجام شد."
}
پیام دریافتی در تلگرام تقریباً به این شکل خواهد بود:
گزارش اجرای Workflow
وضعیت: موفق
تعداد پردازششده: 25
نتیجه: پردازش اطلاعات با موفقیت انجام شد.
دقت کنید که $json به داده ورودی همان Node اشاره میکند. اگر Telegram Node به Node دیگری متصل باشد یا دادهها در مراحل قبل تغییر کرده باشند، باید مسیر مناسب را بر اساس خروجی واقعی Workflow انتخاب کنید.
همچنین اگر اطلاعات موردنیاز در چند Node مختلف تولید میشوند، باید آنها را به شکل مناسب در یک جریان داده در اختیار مرحله گزارش قرار دهید.
مرحله چهارم: ارسال گزارش در پایان یک فرآیند واقعی
در مثال قبلی، گزارش بعد از یک Node آزمایشی ارسال میشد. اما کاربرد اصلی این قابلیت زمانی است که آن را به Workflow واقعی خود متصل کنید.
برای مثال، فرض کنید فرآیند شما اطلاعات محصولات را دریافت و پردازش میکند:
دریافت اطلاعات
|
v
پردازش محصولات
|
v
آمادهسازی گزارش
|
v
ارسال گزارش به تلگرام
در پایان پردازش، تعداد محصولات بررسیشده، تعداد محصولات موفق و سایر اطلاعات موردنیاز را استخراج کنید. سپس این دادهها را با Edit Fields یا Node مناسب دیگری برای گزارش آماده کنید.
در مرحله آخر، Telegram Node گزارش را ارسال میکند.
یک نکته مهم درباره تعداد آیتمها
در n8n، خروجی بسیاری از Nodeها به شکل مجموعهای از آیتمها است. اگر یک Node تعداد زیادی آیتم تولید کند و Telegram Node مستقیماً به آن متصل شود، ممکن است برای هر آیتم یک پیام ارسال شود.
برای مثال، اگر 100 محصول پردازش شده باشند، احتمال دارد بهجای یک گزارش خلاصه، 100 پیام دریافت کنید.
برای جلوگیری از این وضعیت، ابتدا اطلاعات را تجمیع کنید و یک آیتم شامل خلاصه نهایی بسازید. سپس Telegram Node را به آن مرحله متصل کنید.
به این ترتیب، بهجای ارسال یک پیام برای هر محصول، یک گزارش نهایی دریافت خواهید کرد.
مرحله پنجم: ارسال گزارش موفقیت و شکست با IF
در بسیاری از Workflowها لازم است برای نتیجههای مختلف، پیامهای متفاوتی ارسال شود.
برای مثال:
- اگر پردازش موفق بود، پیام موفقیت ارسال شود.
- اگر یک شرط تجاری برقرار نبود، پیام هشدار ارسال شود.
- اگر نتیجه پردازش ناموفق بود، پیام مناسب ارسال شود.
برای پیادهسازی این منطق میتوانید از Node نوع IF استفاده کنید.
فرض کنید خروجی مرحله پردازش شامل فیلد status باشد. یک شرط تعریف کنید که بررسی کند آیا مقدار این فیلد برابر با success است یا خیر.
ساختار کلی Workflow:
پردازش اطلاعات
|
v
IF
/ \
/ \
موفقیت مسیر دیگر
| |
v v
پیام پیام
موفقیت مناسب
اگر شرط برقرار باشد، Telegram Node مسیر موفقیت اجرا میشود. در غیر این صورت، مسیر دیگر اجرا خواهد شد.
توجه کنید که این روش برای زمانی مناسب است که Workflow به مرحله بررسی شرط رسیده باشد. اگر یکی از Nodeها با خطای اجرایی متوقف شود، ممکن است اصلاً دادهای به IF نرسد. برای گزارش خطاهای واقعی اجرای Nodeها باید از سازوکار مدیریت خطای n8n استفاده کنید که در بخش بعدی توضیح میدهیم.
مرحله ششم: ارسال گزارش خطاهای Workflow به تلگرام
تا اینجا یاد گرفتیم چطور گزارش موفقیت یا نتیجه پردازش را ارسال کنیم. اما اگر یک Node با خطای اجرایی مواجه شود، چه اتفاقی میافتد؟
برای مثال، ممکن است:
- یک API پاسخ ندهد.
- اتصال به پایگاه داده برقرار نشود.
- یک سرویس خارجی خطای HTTP برگرداند.
- اطلاعات ورودی ناقص باشد.
- یک عملیات ضروری شکست بخورد.
در چنین شرایطی، استفاده از IF در مسیر عادی Workflow بهتنهایی کافی نیست؛ زیرا ممکن است اجرای اصلی قبل از رسیدن به مرحله گزارش متوقف شود.
یکی از روشهای استاندارد در n8n، ساخت یک Error Workflow است.
ساخت Error Workflow
یک Workflow جدید ایجاد کنید و Node نوع Error Trigger را بهعنوان نقطه شروع آن قرار دهید.
سپس یک Telegram Node به آن متصل کنید و عملیات ارسال پیام را تنظیم کنید.
در این Error Workflow میتوانید اطلاعات خطا را از دادهای که Error Trigger دریافت میکند استخراج کنید. بسته به نوع اجرا و نسخه n8n، اطلاعاتی مانند نام Workflow، نام Node خطادار، پیام خطا و جزئیات اجرای ناموفق ممکن است در خروجی در دسترس باشند.
پیش از نوشتن Expressionها، یک اجرای آزمایشی ناموفق ایجاد کنید و خروجی واقعی Error Trigger را بررسی کنید؛ زیرا مسیر دقیق دادهها را باید بر اساس همان خروجی انتخاب کرد.
برای مثال، پیام خطا میتواند قالبی مانند زیر داشته باشد:
هشدار اجرای Workflow
یک خطا در اجرای اتوماسیون رخ داده است.
Workflow: نام Workflow
Node خطادار: نام Node
پیام خطا: توضیح کوتاه خطا
مقادیر بالا نمونه هستند و باید با دادههای واقعی Error Trigger جایگزین شوند.
اتصال Error Workflow به Workflow اصلی
پس از ذخیره Error Workflow:
- Workflow اصلی را باز کنید.
- وارد تنظیمات Workflow شوید.
- گزینه مربوط به Error Workflow را پیدا کنید.
- Error Workflow ساختهشده را انتخاب کنید.
- تنظیمات را ذخیره کنید.
در صورت وقوع خطایی که توسط سازوکار Error Workflow مدیریت شود، n8n میتواند Workflow خطا را اجرا کند و پیام هشدار به تلگرام ارسال شود.
برای آزمایش، یک Workflow ساده بسازید که عمداً با خطا مواجه شود و بررسی کنید آیا پیام به مقصد میرسد یا خیر.
نکته: Error Workflow برای مدیریت خطاهای اجرایی است و جایگزین طراحی درست مسیرهای شرطی، اعتبارسنجی دادهها یا مدیریت خطاهای قابل پیشبینی در خود Workflow نیست. اگر از گزینههایی مانند ادامه اجرا پس از خطا استفاده میکنید، رفتار گزارشدهی را متناسب با تنظیمات خود آزمایش کنید.
اگر قبلاً مقاله «مدیریت خطا در n8n؛ آموزش ساخت Error Workflow و گزارش خطاها» را منتشر کردهاید، میتوانید برای جزئیات بیشتر درباره تنظیم Error Workflow به آن لینک بدهید.
مرحله هفتم: ساخت قالب استاندارد برای گزارشها
اگر چندین Workflow دارید، بهتر است همه پیامهای گزارش از یک قالب مشخص پیروی کنند.
برای مثال:
گزارش اتوماسیون
نام فرآیند: همگامسازی محصولات
وضعیت: موفق
تعداد آیتمها: 245
زمان گزارش: 14:35
توضیحات:
اطلاعات با موفقیت پردازش شدند.
یک قالب ثابت چند مزیت دارد:
- خواندن گزارشها آسانتر میشود.
- میتوانید پیامهای چند Workflow را سریعتر با هم مقایسه کنید.
- اطلاعات مهم در همه گزارشها جای مشخصی دارند.
- در صورت نیاز به توسعه سیستم گزارشدهی، تغییر قالب سادهتر خواهد بود.
اگر گزارش شامل متن پویا یا دادههای کاربران است، مراقب باشید محتوای ورودی باعث نمایش نامناسب یا افشای اطلاعات نشود. در صورت استفاده از قالببندی Markdown یا HTML در Telegram Node، کاراکترهای خاص باید متناسب با حالت قالببندی انتخابشده مدیریت شوند.
مرحله هشتم: جلوگیری از ارسال پیامهای تکراری
یکی از مشکلات احتمالی در سیستمهای گزارشدهی، ارسال پیامهای متعدد و تکراری است.
این اتفاق ممکن است به دلایل مختلف رخ دهد؛ برای مثال:
- Telegram Node بهجای گزارش تجمیعی، بهازای هر آیتم اجرا شود.
- Workflow چند بار بهصورت همزمان اجرا شود.
- مرحله گزارش در چند مسیر مختلف قرار گرفته باشد.
- سیستم برای تلاش مجدد پس از خطا، پیامهای تکراری تولید کند.
برای کاهش این مشکلات:
- گزارش نهایی را به یک آیتم خلاصه تبدیل کنید.
- محل قرارگیری Telegram Node را بررسی کنید.
- برای هر نوع نتیجه، مسیر گزارشدهی مشخصی در نظر بگیرید.
- اگر اجرای مجدد میتواند گزارش تکراری تولید کند، از شناسه اجرا یا شناسه عملیات برای تشخیص تکرار استفاده کنید.
- در فرآیندهای حساس، ثبت وضعیت ارسال گزارش را در یک پایگاه داده یا سامانه مناسب در نظر بگیرید.
به یاد داشته باشید که تلاش مجدد پس از خطا همیشه به معنی تکراریبودن گزارش نیست؛ رفتار دقیق به طراحی Workflow بستگی دارد.
مرحله نهم: نکات امنیتی هنگام ارسال گزارش به تلگرام
گزارشها ممکن است اطلاعات مهمی درباره زیرساخت، پایگاه داده یا کاربران در خود داشته باشند. بنابراین نباید همه جزئیات اجرای Workflow را بدون بررسی به تلگرام ارسال کنید.
بهتر است موارد زیر را رعایت کنید:
- توکن API، رمز عبور، کلیدهای محرمانه و اطلاعات اتصال را در پیام گزارش قرار ندهید.
- متن کامل خطا را پیش از ارسال بررسی کنید؛ ممکن است حاوی اطلاعات حساس باشد.
- گزارشهای مدیریتی را فقط به Chat IDهای مورد اعتماد ارسال کنید.
- از ارسال اطلاعات شخصی کاربران، مگر در صورت نیاز و با رعایت الزامات امنیتی، خودداری کنید.
- در پیام خطا، اطلاعات لازم برای عیبیابی را نگه دارید و جزئیات غیرضروری را حذف کنید.
- اگر گزارش به گروه تلگرامی ارسال میشود، دسترسی اعضای گروه را بررسی کنید.
هدف گزارشدهی این است که سریعتر از وضعیت سیستم مطلع شوید، نه اینکه اطلاعات محرمانه را در پیامرسان منتشر کنید.
مثال عملی کامل: گزارش موفقیت و خطای همگامسازی محصولات
فرض کنید Workflow شما اطلاعات محصولات را از یک API دریافت میکند و در یک فروشگاه یا پایگاه داده ثبت میکند.
میخواهیم دو رفتار داشته باشیم:
- پس از اتمام موفق فرآیند، یک گزارش خلاصه به تلگرام ارسال شود.
- اگر اجرای Workflow با خطای اجرایی متوقف شد، پیام هشدار جداگانهای دریافت کنیم.
برای این کار، دو بخش میسازیم.
بخش اول: گزارش موفقیت
دریافت محصولات از API
|
v
پردازش دادهها
|
v
تجمیع نتیجه نهایی
|
v
آمادهسازی گزارش
|
v
ارسال گزارش تلگرام
در مرحله تجمیع نتیجه، تعداد محصولات پردازششده و وضعیت عملیات را محاسبه کنید. سپس با Edit Fields متن گزارش را آماده کرده و به Telegram Node بدهید.
بخش دوم: گزارش خطا
Workflow اصلی
|
| بروز خطای اجرایی
v
Error Workflow
|
v
Error Trigger
|
v
آمادهسازی پیام
|
v
ارسال هشدار تلگرام
Error Workflow را در تنظیمات Workflow اصلی انتخاب کنید و یک اجرای ناموفق آزمایشی انجام دهید تا مسیر گزارشدهی را بررسی کنید.
با این طراحی، گزارش موفقیت بخشی از مسیر عادی Workflow است و گزارش خطا از مسیر مدیریت خطای جداگانه انجام میشود.
جمعبندی
در این مقاله یاد گرفتیم چگونه در n8n گزارش اجرای Workflow را به تلگرام ارسال کنیم. ابتدا یک گزارش ساده ساختیم، سپس با Expressionها مقادیر پویا را در متن پیام قرار دادیم و درباره گزارش موفقیت، نتیجه پردازش و خطاهای اجرایی صحبت کردیم.
برای ارسال گزارشهای عادی، میتوانید Telegram Node را در انتهای مسیر موفق Workflow قرار دهید. برای اطلاع از خطاهایی که باعث توقف اجرای Workflow میشوند، استفاده از Error Workflow و Error Trigger راهکار مناسبی است.
اگر چندین اتوماسیون دارید، ساخت یک الگوی گزارش استاندارد و جلوگیری از ارسال پیامهای تکراری کمک میکند وضعیت سیستم را راحتتر پیگیری کنید.
در مقاله بعدی این کلاستر به سراغ مانیتورینگ سرور با تلگرام و n8n میرویم و بررسی میکنیم چگونه میتوان وضعیت سرور را پایش کرد و هنگام بروز مشکل، هشدار دریافت کرد.
سوالات متداول
آیا میتوان پس از هر اجرای Workflow یک پیام به تلگرام ارسال کرد؟
بله. میتوانید Telegram Node را در انتهای مسیر عادی Workflow قرار دهید و نتیجه اجرای فرآیند را با Expressionها در پیام نمایش دهید. برای اجراهایی که با خطای اجرایی متوقف میشوند، باید سازوکار مدیریت خطا را نیز در نظر بگیرید.
تفاوت گزارش موفقیت با Error Workflow چیست؟
گزارش موفقیت معمولاً بخشی از مسیر عادی Workflow است و پس از انجام عملیات ارسال میشود. Error Workflow برای رسیدگی به خطاهای اجرایی مدیریتشده در n8n استفاده میشود و میتواند پیام هشدار جداگانهای ارسال کند.
آیا میتوان نام Node خطادار را در تلگرام نمایش داد؟
بله، در صورتی که اطلاعات مربوط به Node خطادار در خروجی Error Trigger موجود باشد، میتوانید آن را با Expression مناسب در پیام قرار دهید. برای تعیین مسیر دقیق فیلد، خروجی واقعی Error Trigger را بررسی کنید.
چگونه از ارسال چند پیام برای یک Workflow جلوگیری کنیم؟
گزارش را پیش از ارسال تجمیع کنید، محل Telegram Node را بررسی کنید و مطمئن شوید برای هر آیتم یا هر مسیر غیرضروری پیام جداگانه تولید نمیشود.
آیا میتوان گزارش چند Workflow را به یک گروه تلگرامی ارسال کرد؟
بله. میتوانید از یک ربات و مقصد مشترک استفاده کنید و در هر پیام نام Workflow یا نوع فرآیند را مشخص کنید. برای گزارشهای مدیریتی، دسترسی اعضای گروه و اطلاعات درجشده در پیام را بررسی کنید.





