
نظارت بر در دسترس بودن API با هشدارهای واتساپ و مدیریت گوگل…
12 دقیقه مطالعه · منتشر شده ۱۴۰۵/۴/۲۷
دانلود workflow
فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.
- فایل JSON را دانلود کنید.
- در n8n: Workflows → Import from File.
- Credentialهای هر node را متصل کنید.
- workflow را فعال کنید.
شناسه workflow: 6747 · منبع: کاتالوگ Axeto
نظارت بر در دسترس بودن API با هشدارهای واتساپ و مدیریت گوگل شیت
این گردش کار، نظارت بر در دسترس بودن API را خودکار میکند. این گردش کار به صورت دورهای لیستی از APIها را بررسی میکند، درخواستهای ناموفق را مجدداً امتحان میکند و در صورت تأیید عدم در دسترس بودن یک API، هشدارهای واتساپ ارسال میکند. لیست APIها از طریق گوگل شیت مدیریت میشود و گردش کار شامل منطق تلاش مجدد با تأخیر است. این گردش کار برای سناریوهایی که در دسترس بودن مداوم API حیاتی است و اطلاعرسانی سریع حوادث از طریق واتساپ ضروری است، ایدهآل است.
شما میتوانید این گردش کار و موارد دیگر را در کاتالوگ n8n شرکت Axeto.ai بیابید.
نمای کلی گردش کار
این گردش کار به چندین بخش منطقی تقسیم شده است:
1. زمانبندی و بارگذاری ورودی: گردش کار را به صورت دورهای فعال میکند، لیست APIها را از گوگل شیت میخواند و آن را برای پردازش فردی آماده میکند.
2. تست API و منطق تلاش مجدد: هر API را تست میکند، مکانیزم تلاش مجدد با تأخیر برای درخواستهای ناموفق را پیادهسازی میکند و نتایج را ارزیابی میکند.
3. هشدار و ادامه کار: هشدارهای واتساپ را برای APIهای غیرپاسخگو قالببندی و ارسال میکند و ادامه کار به API بعدی را مدیریت میکند.
4. جریان کنترل و حلقهزنی: اطمینان حاصل میکند که گردش کار به درستی از طریق APIها و تلاشهای مجدد حلقه میزند.
---
تجزیه و تحلیل گرههای دقیق
۱. زمانبندی و بارگذاری ورودی
این بخش مراحل اولیه راهاندازی گردش کار، دریافت لیست APIها و آمادهسازی آن برای پردازش را پوشش میدهد.
- گرهها (Nodes):
* Schedule Trigger
* Read API List
* Process Each API
- جزئیات گرهها:
1. Schedule Trigger
* نوع: scheduleTrigger
* نقش: گردش کار را در یک بازه زمانی مشخص راهاندازی میکند.
* پیکربندی: برای راهاندازی هر ۱۵ دقیقه تنظیم شده است.
* ورودی/خروجی: ورودی ندارد؛ یک رویداد راهاندازی خروجی میدهد.
* مشکلات احتمالی: نقص در زمانبند گردش کار.
2. Read API List
* نوع: googleSheets.list
* نقش: لیست APIها برای نظارت را از یک گوگل شیت میخواند.
* پیکربندی: از Sheet1 (gid=0) یک گوگل شیت با شناسه 1VKlDZSHicdZhhj-fl-vIIH0mC6VDwdCS4-LqaDIeyw0 میخواند. به اعتبارنامههای OAuth2 با نام "Google Sheets account" نیاز دارد.
* ورودی/خروجی: راهاندازی را از Schedule Trigger دریافت میکند؛ آرایهای از اشیاء داده API را خروجی میدهد.
* مشکلات احتمالی: خطاهای احراز هویت، مشکلات اتصال، یا عدم دسترسی کافی به شیت.
3. Process Each API
* نوع: splitInBatches
* نقش: آرایه APIها را به موارد جداگانه برای پردازش متوالی تقسیم میکند.
* پیکربندی: اندازه دسته پیشفرض ۱ برای پردازش یک API در هر زمان.
* ورودی/خروجی: آرایه را از Read API List میپذیرد؛ یک شیء داده API را در هر زمان خروجی میدهد.
* مشکلات احتمالی: دادههای ورودی نامعتبر یا خالی.
۲. تست API و منطق تلاش مجدد
این بلوک منطق اصلی تست در دسترس بودن API و پیادهسازی تلاشهای مجدد را مدیریت میکند.
- گرهها (Nodes):
* Init Retry Counter
* Test API
* Check Response
* If No Response
* Wait 10 Min
* Increment Retry
* Retry API
* Check Retry Response
* If Still No Response
* If Still No Retry > 4
- جزئیات گرهها:
1. Init Retry Counter
* نوع: code
* نقش: متغیر retryCount را در صورت عدم وجود، روی ۰ مقداردهی اولیه میکند.
* پیکربندی: کد جاوا اسکریپت را برای اطمینان از وجود retryCount اجرا میکند.
* ورودی/خروجی: یک شیء API واحد را دریافت میکند؛ شیء را با retryCount خروجی میدهد.
* مشکلات احتمالی: خطاهای عبارت اگر داده ورودی نامعتبر باشد.
2. Test API
* نوع: httpRequest
* نقش: درخواست اولیه را به URL API ارسال میکند.
* پیکربندی: متد HTTP و URL را به صورت پویا از دادههای ورودی استخراج میکند. مهلت زمانی ۱۰ ثانیهای را تنظیم میکند. هدر Content-Type: application/json را شامل میشود. Continue On Fail فعال است.
* ورودی/خروجی: دادههای API را دریافت میکند؛ پاسخ HTTP را خروجی میدهد.
* مشکلات احتمالی: خطاهای شبکه، مهلت زمانی، URLهای نامعتبر، یا کدهای وضعیت HTTP غیرمنتظره.
3. Check Response
* نوع: code
* نقش: تعیین میکند که آیا API یک پاسخ معتبر برگردانده است یا خیر.
* پیکربندی: بررسی میکند که آیا پاسخ یک شیء غیر خالی است و یک پرچم بولی hasResponse را تنظیم میکند.
* ورودی/خروجی: پاسخ HTTP را دریافت میکند؛ دادههای ترکیبی شامل پرچم hasResponse را خروجی میدهد.
* مشکلات احتمالی: خطاهای عبارت اگر پاسخ JSON معتبر نباشد یا خالی باشد.
4. If No Response
* نوع: if
* نقش: گردش کار را بر اساس اینکه آیا پاسخی دریافت شده است یا خیر، منشعب میکند.
* پیکربندی: شرط بررسی میکند که آیا hasResponse برابر false است.
* ورودی/خروجی: اگر false (بدون پاسخ)، به جریان تلاش مجدد (Wait 10 Min) ادامه میدهد. اگر true، به ادامه به API بعدی میرود.
* مشکلات احتمالی: خطاهای ارزیابی شرط اگر پرچم hasResponse گم شده باشد.
5. Wait 10 Min
* نوع: wait
* نقش: گردش کار را برای ۱۰ دقیقه قبل از تلاش مجدد متوقف میکند.
* پیکربندی: برای ۱۰ دقیقه انتظار تنظیم شده است.
* ورودی/خروجی: از If No Response دریافت میکند؛ به Increment Retry خروجی میدهد.
* مشکلات احتمالی: ملاحظات مهلت زمانی گردش کار.
6. Increment Retry
* نوع: code
* نقش: retryCount را ۱ واحد افزایش میدهد.
* پیکربندی: جاوا اسکریپت را برای افزایش retryCount اجرا میکند.
* ورودی/خروجی: دادهها را دریافت میکند؛ دادهها را با retryCount افزایش یافته خروجی میدهد.
* مشکلات احتمالی: خطاها اگر retryCount گم شده باشد یا عدد نباشد.
7. Retry API
* نوع: httpRequest
* نقش: درخواست تلاش مجدد را به API ارسال میکند.
* پیکربندی: از همان URL و متد پویا مانند Test API استفاده میکند. مهلت زمانی ۱۰ ثانیه است. Continue On Fail فعال است.
* ورودی/خروجی: دادهها را دریافت میکند؛ پاسخ HTTP تلاش مجدد را خروجی میدهد.
* مشکلات احتمالی: مشابه شکستهای درخواست اولیه (شبکه، مهلت زمانی و غیره).
8. Check Retry Response
* نوع: code
* نقش: پاسخ تلاش مجدد را ارزیابی میکند.
* پیکربندی: پرچم hasResponse را بر اساس محتوای پاسخ تلاش مجدد تنظیم میکند.
* ورودی/خروجی: دادهها را به If Still No Response خروجی میدهد.
* مشکلات احتمالی: مشابه گره Check Response اولیه.
9. If Still No Response
* نوع: if
* نقش: بر اساس اینکه آیا تلاش مجدد موفقیتآمیز بوده است یا خیر، منشعب میشود.
* پیکربندی: بررسی میکند که آیا hasResponse هنوز false است.
* ورودی/خروجی: اگر false (هنوز بدون پاسخ)، به بررسی تعداد تلاش مجدد (If Still No Retry > 4) ادامه میدهد. اگر true، به ادامه به API بعدی میرود.
* مشکلات احتمالی: خطاهای ارزیابی شرط اگر دادهها نامعتبر باشند.
10. If Still No Retry > 4
* نوع: if
* نقش: بررسی میکند که آیا حداکثر تعداد تلاشهای مجدد (۴) رسیده است یا خیر.
* پیکربندی: شرط بررسی میکند که آیا retryCount >= 4 است.
* ورودی/خروجی: اگر true (تلاشهای مجدد تمام شده است)، به قالببندی هشدار (Format Down Alert) ادامه میدهد. اگر false، قبل از تلاش مجدد دوباره ۱۰ دقیقه دیگر صبر میکند (Wait 10 Min).
* مشکلات احتمالی: خطاهای منطقی اگر retryCount گم شده باشد.
۳. هشدار و ادامه کار
این بخش ارسال اعلانها و مدیریت پیشرفت گردش کار را پوشش میدهد.
- گرهها (Nodes):
* Format Down Alert
* Send WhatsApp Alert
* Continue Next API
- جزئیات گرهها:
1. Format Down Alert
* نوع: code
* نقش: یک پیام هشدار قالببندی شده برای واتساپ ایجاد میکند.
* پیکربندی: یک رشته پیام شامل نام API، URL و یک مُهر زمانی با ایموجیها میسازد.
* ورودی/خروجی: دادههای API را دریافت میکند؛ دادههای غنی شده با alertMessage را خروجی میدهد.
* مشکلات احتمالی: خطاهای عبارت اگر فیلدهای داده ورودی مورد نیاز گم شده باشند.
2. Send WhatsApp Alert
* نوع: whatsApp.send
* نقش: پیام هشدار قالببندی شده را از طریق واتساپ ارسال میکند.
* پیکربندی: پیام alertMessage را به شماره تلفن +919974388925 با استفاده از phoneNumberId 550325331503475 ارسال میکند. به اعتبارنامههای واتساپ API با نام "WhatsApp account API" نیاز دارد.
* ورودی/خروجی: دادههای هشدار را دریافت میکند؛ به Continue Next API خروجی میدهد.
* مشکلات احتمالی: خطاهای احراز هویت، محدودیتهای نرخ API، فرمت نادرست شماره تلفن، یا قطعی واتساپ API.
3. Continue Next API
* نوع: code
* نقش: تعداد تلاشهای مجدد را در صورت پاسخگو بودن API بازنشانی میکند و برای پردازش API بعدی در لیست سیگنال میدهد.
* پیکربندی: retryCount را در صورت true بودن hasResponse به ۰ بازنشانی میکند. دادهها را برای مدیریت مورد بعدی به گره Process Each API برمیگرداند.
* ورودی/خروجی: دادهها را از شاخههای مختلف میپذیرد؛ به Process Each API خروجی میدهد.
* مشکلات احتمالی: خطاهای منطقی اگر دادههای ورودی نامعتبر باشند.
۴. جریان کنترل و حلقهزنی
این بلوک اطمینان حاصل میکند که گردش کار به درستی از طریق لیست APIها تکرار میشود و حلقه تلاش مجدد را مدیریت میکند.
- گرهها (Nodes):
* Process Each API (خروجی دوم)
* Continue Next API
* Schedule Trigger
- جزئیات گرهها:
1. Process Each API (خروجی دوم)
* نوع: splitInBatches
* نقش: دادهها را از Continue Next API برای پردازش API بعدی در لیست دریافت میکند و اجرای متوالی را تضمین میکند.
* پیکربندی: جریان دسته را مدیریت میکند.
* ورودی/خروجی: از Continue Next API دریافت میکند؛ به Init Retry Counter خروجی میدهد.
* مشکلات احتمالی: خرابی وضعیت دسته اگر دادههای ورودی نادرست باشند.
2. Continue Next API
* نقش: بررسیهای موفقیتآمیز API و موفقیتهای تلاش مجدد را به حلقه پردازش دسته برمیگرداند. (برای جزئیات به بخش ۳ مراجعه کنید).
3. Schedule Trigger
* نقش: کل فرآیند را هر ۱۵ دقیقه راهاندازی میکند و نظارت مداوم را تضمین میکند. (برای جزئیات به بخش ۱ مراجعه کنید).
---
جدول خلاصه
| نام نود (Node Name) | نوع نود (Node Type) | نقش عملکردی (Functional Role) | نود(های) ورودی (Input Node(s)) | نود(های) خروجی (Output Node(s)) | یادداشت چسبان (Sticky Note) |
|---|---|---|---|---|---|
Schedule Trigger | scheduleTrigger | راهاندازی گردش کار هر ۱۵ دقیقه | Read API List | ## نحوه کار<br>* Schedule Trigger → هر ۱۵ دقیقه فعال میشود. | |
Read API List | googleSheets.list | خواندن لیست API از گوگل شیت | Schedule Trigger | Process Each API | * Read API List → تمام URLهای API را از یک گوگل شیت دریافت میکند. |
Process Each API | splitInBatches | تقسیم لیست API برای پردازش جداگانه | Read API List, Continue Next API | Init Retry Counter, (خروجی دوم به Init Retry Counter) | * Process Each API → هر ورودی API را پیمایش میکند. |
Init Retry Counter | code | مقداردهی اولیه شمارنده تلاش مجدد به ۰ | Process Each API | Test API | * Init Retry Counter → retryCount = 0 را مقداردهی اولیه میکند. |
Test API | httpRequest | ارسال درخواست اولیه API | Init Retry Counter | Check Response | * Test API → اولین درخواست را به API ارسال میکند. |
Check Response | code | بررسی دریافت پاسخ از API | Test API | If No Response | * Check Response → بررسی میکند که آیا پاسخ معتبری دریافت شده است. |
If No Response | if | انشعاب در صورت عدم دریافت پاسخ | Check Response | Wait 10 Min, Continue Next API | * If No Response → در صورت عدم پاسخگویی، به جریان تلاش مجدد منشعب میشود. |
Wait 10 Min | wait | انتظار ۱۰ دقیقه قبل از تلاش مجدد | If No Response, If Still No Retry > 4 | Increment Retry, Retry API | * Wait 10 Min → Increment Retry → Retry API → Check Retry Response. |
Increment Retry | code | افزایش شمارنده تلاش مجدد | Wait 10 Min | Retry API | |
Retry API | httpRequest | ارسال درخواست تلاش مجدد API | Increment Retry | Check Retry Response | |
Check Retry Response | code | بررسی دریافت پاسخ از تلاش مجدد | Retry API | If Still No Response | * Check Retry Response → پاسخ را پس از تلاش مجدد تأیید میکند. |
If Still No Response | if | انشعاب در صورت شکست تلاش مجدد | Check Retry Response | If Still No Retry > 4, Continue Next API | * If Still No Response → بررسی میکند که آیا تلاشهای مجدد بیشتری مجاز است. |
If Still No Retry > 4 | if | بررسی عبور شمارنده تلاش مجدد از حد مجاز | If Still No Response | Format Down Alert, Wait 10 Min | * If Still No Retry > 4 → تصمیم میگیرد که آیا هشدار ارسال شود یا دوباره منتظر بماند. |
Format Down Alert | code | قالببندی پیام هشدار واتساپ | If Still No Retry > 4 | Send WhatsApp Alert | * Format Down Alert → محتوای پیام هشدار را ایجاد میکند. |
Send WhatsApp Alert | whatsApp.send | ارسال پیام هشدار از طریق واتساپ | Format Down Alert | Continue Next API | * Send WhatsApp Alert → اعلان را ارسال میکند. |
Continue Next API | code | بازنشانی شمارنده تلاش مجدد و ادامه به API بعدی | If No Response, If Still No Response, Send WhatsApp Alert | Process Each API | * Continue Next API → retryCount را بازنشانی کرده و به مورد بعدی در لیست منتقل میشود. |
Nodeهای استفادهشده
سوالات متداول
این گردش کار n8n چگونه در دسترس بودن API را نظارت میکند؟▾
این گردش کار به طور دورهای لیستی از URLهای API را از یک گوگل شیت میخواند و با استفاده از گره httpRequest وضعیت پاسخگویی آنها را بررسی میکند.
در صورت عدم پاسخگویی API چه اتفاقی میافتد؟▾
در صورت عدم پاسخگویی API، گردش کار ابتدا منطق تلاش مجدد را با تأخیر اجرا میکند. اگر API همچنان در دسترس نباشد، یک هشدار فوری از طریق واتساپ ارسال میشود.
چگونه میتوان لیست APIهایی که باید نظارت شوند را مدیریت کرد؟▾
لیست APIها در یک گوگل شیت نگهداری میشود و گردش کار به طور خودکار این لیست را میخواند. شما میتوانید با ویرایش گوگل شیت، APIهای جدید اضافه کرده یا APIهای موجود را حذف کنید.
چه نوع هشدارهایی ارسال میشود و از چه طریقی؟▾
هشدارهای فوری از طریق واتساپ ارسال میشوند تا به محض تأیید عدم در دسترس بودن یک API، به شما اطلاع داده شود.
workflowهای مرتبط
- خودکارسازی بهروزرسانی n8n با Coolify و API گیتهابDevOps
- حسابرسی استفاده از اعتبارنامهها در n8n و ارسال به Google Sh…DevOps
- نظارت بر تازگی پشتیبانگیری Google Drive با اسنک و Google Sh…DevOps
- ممیزی خودکار پرچمهای ویژگی اندروید از گیتهاب به اسلکDevOps
- تحلیل خودکار عملکرد ساخت اپلیکیشن موبایل با n8n و هوش مصنوعیDevOps
- تحلیل خودکار حوادث با n8n، OpenAI و SlackDevOps
