رباتهای تلگرام یکی از راههای ساده و کاربردی برای خودکارسازی ارتباط با کاربران هستند. با استفاده از یک ربات میتوان پیام دریافت کرد، اطلاعات را به سیستمهای دیگر فرستاد، اعلانهای خودکار ارسال کرد و در مراحل بعدی، امکاناتی مانند پشتیبانی، ثبت سفارش یا اتصال به هوش مصنوعی را پیادهسازی کرد.
در این مقاله یاد میگیریم چگونه یک ربات تلگرام بسازیم، توکن دسترسی آن را از BotFather دریافت کنیم و آن را به n8n متصل کنیم. در پایان، یک Workflow ساده خواهیم داشت که با دریافت پیام از ربات، اجرای آن در n8n را بررسی میکند.
ربات تلگرام چیست و چه کاربردی دارد؟
Telegram Bot حسابی ویژه در تلگرام است که بهجای یک انسان، از طریق برنامه یا سرویس نرمافزاری کنترل میشود. این ربات میتواند با استفاده از Telegram Bot API با کاربران تعامل داشته باشد.
وقتی ربات را به n8n متصل میکنیم، n8n نقش موتور اتوماسیون را بر عهده میگیرد. به این ترتیب، پیامهای دریافتی میتوانند شروعکننده یک Workflow باشند و اطلاعات در ادامه به سرویسهای دیگر منتقل شوند.
برای مثال، میتوان از این ترکیب برای کاربردهای زیر استفاده کرد:
- دریافت پیام کاربران و ثبت اطلاعات آنها
- ارسال اعلان به مدیر یا تیم پشتیبانی
- دریافت اطلاعات از فرمها و سرویسهای دیگر
- اتصال تلگرام به پایگاه داده یا CRM
- آمادهسازی زیرساخت یک ربات پشتیبانی یا فروش
- اتصال ربات به سرویسهای هوش مصنوعی
در این آموزش ابتدا ربات را میسازیم و به n8n متصل میکنیم. ساخت منطق پاسخگویی خودکار یا فروش، مراحل جداگانهای است که میتوان بعداً به همین Workflow اضافه کرد.
مرحله اول: ساخت ربات تلگرام با BotFather
برای ساخت ربات نیازی به نوشتن کد ندارید. تلگرام سرویس رسمی BotFather را برای ایجاد و مدیریت رباتها ارائه میکند.
۱. ورود به BotFather
تلگرام را باز کنید و حساب رسمی BotFather را پیدا کنید:
https://t.me/BotFather
پیش از شروع، مطمئن شوید حساب رسمی را باز کردهاید؛ نامهای مشابه ممکن است متعلق به حسابهای غیررسمی باشند.
۲. شروع ساخت ربات
در صفحه گفتوگو با BotFather، دکمه Start را بزنید یا دستور زیر را ارسال کنید:
/start
سپس دستور ساخت ربات جدید را بفرستید:
/newbot
BotFather از شما دو مقدار میخواهد.
۳. انتخاب نام ربات
ابتدا نام نمایشی ربات را وارد کنید. این نام به کاربران نمایش داده میشود و میتوانید آن را به فارسی یا انگلیسی انتخاب کنید.
برای نمونه:
CMSNevis Assistant
نام نمایشی الزاماً نباید یکتا باشد.
۴. انتخاب Username
در مرحله بعد باید یک Username برای ربات انتخاب کنید. این نام باید طبق قوانین تلگرام باشد و معمولاً به bot ختم شود.
برای مثال:
CMSNevisHelperBot
اگر نام انتخابی قبلاً استفاده شده باشد، BotFather از شما میخواهد نام دیگری وارد کنید.
پس از تأیید نام، BotFather پیامی شامل توکن ربات نمایش میدهد.
مرحله دوم: دریافت و نگهداری امن توکن ربات
توکن ربات یک مقدار محرمانه است که برای دسترسی به Telegram Bot API استفاده میشود. هر کسی که به توکن شما دسترسی داشته باشد، ممکن است بتواند از طرف ربات درخواست ارسال کند.
بنابراین:
- توکن را در مقاله، سایت عمومی یا مخزن کد منتشر نکنید.
- آن را در پیامهای عمومی یا تصاویر آموزشی قرار ندهید.
- از قرار دادن توکن بهصورت مستقیم در کد Workflow خودداری کنید.
- در صورت افشای توکن، از BotFather برای لغو یا جایگزین کردن آن اقدام کنید.
در این آموزش، توکن را فقط در بخش Credentials خود n8n ذخیره میکنیم. لازم نیست آن را در متن Workflow یا در یک نود Code بنویسید.
مرحله سوم: ساخت Credential تلگرام در n8n
حالا وارد محیط n8n شوید.
۱. یک Workflow جدید ایجاد کنید.
۲. روی افزودن نود کلیک کنید و نود Telegram Trigger را جستوجو کنید.
۳. نود را به Workflow اضافه کنید.
۴. در بخش Credential، گزینه ایجاد Credential جدید را انتخاب کنید. نام دقیق گزینه ممکن است با توجه به نسخه n8n کمی متفاوت باشد.
۵. توکنی را که از BotFather دریافت کردهاید در فیلد مربوط به Access Token قرار دهید.
۶. Credential را ذخیره کنید.
اگر n8n از شما خواست اتصال را آزمایش کند، مراحل نمایشدادهشده را دنبال کنید.
نکته امنیتی: توکن را فقط در Credential ذخیره کنید و از انتشار خروجیها یا اسکرینشاتهایی که ممکن است اطلاعات محرمانه را نشان دهند، خودداری کنید.
مرحله چهارم: آمادهسازی Workflow برای دریافت پیام
اکنون باید بررسی کنیم که پیامهای ارسالی به ربات به n8n میرسند یا خیر.
۱. تنظیم Telegram Trigger
در نود Telegram Trigger، Credential ساختهشده را انتخاب کنید.
سپس در قسمت رویدادها، گزینه مربوط به دریافت پیام، معمولاً با نام Message، را انتخاب کنید.
این نود وظیفه دارد با دریافت رویداد جدید از تلگرام، اجرای Workflow را آغاز کند.
۲. آزمایش Workflow
برای آزمایش، Workflow را در حالت تست قرار دهید و گزینهای مانند Test step یا Listen for test event را بزنید؛ نام دقیق آن به نسخه n8n بستگی دارد.
حالا تلگرام را باز کنید، وارد صفحه ربات شوید و دکمه Start را بزنید. سپس یک پیام آزمایشی مانند زیر ارسال کنید:
سلام، این یک پیام آزمایشی است.
اگر تنظیمات صحیح باشد و رویداد به n8n برسد، داده دریافتی را در خروجی نود مشاهده میکنید.
ساختار دقیق داده ممکن است با نوع رویداد و نسخه سرویس تفاوت داشته باشد، اما پیام معمولاً اطلاعاتی مانند متن پیام، شناسه گفتوگو و اطلاعات فرستنده را در اختیار Workflow قرار میدهد.
توجه: در محیط تست، ممکن است لازم باشد برای هر آزمایش دوباره حالت دریافت رویداد را فعال کنید. برای اجرای دائمی، Workflow باید ذخیره و فعال شود و آدرس عمومی و قابل دسترس برای دریافت Webhook داشته باشد.
مرحله پنجم: بررسی داده دریافتی از ربات
بعد از دریافت پیام، خروجی Telegram Trigger را باز کنید. میتوانید ببینید که تلگرام چه دادههایی برای n8n فرستاده است.
برای نمونه، در یک پیام معمولی ممکن است ساختاری شبیه این داشته باشید:
{
"message": {
"message_id": 12,
"from": {
"id": 123456789,
"is_bot": false
},
"chat": {
"id": 123456789,
"type": "private"
},
"text": "سلام، این یک پیام آزمایشی است."
}
}
این JSON صرفاً نمونهای برای توضیح ساختار داده است؛ شناسهها، متن پیام و جزئیات خروجی واقعی شما متفاوت خواهند بود.
در ادامه توسعه Workflow، میتوان از مقدار message.text برای خواندن متن پیام و از message.chat.id برای شناسایی گفتوگویی که پیام از آن دریافت شده استفاده کرد.
برای دسترسی به این مقادیر در Expressionها، ابتدا خروجی واقعی نود را بررسی کنید و مسیر دقیق فیلدها را بر اساس همان خروجی انتخاب کنید.
مرحله ششم: فعالسازی Workflow برای استفاده واقعی
پس از اینکه دریافت پیام را در حالت تست بررسی کردید، Workflow را ذخیره کنید و آن را فعال کنید.
برای اینکه Telegram Trigger در محیط واقعی کار کند، موارد زیر اهمیت دارند:
- آدرس n8n باید از اینترنت قابل دسترس باشد.
- تنظیمات دامنه و HTTPS باید صحیح باشند.
- در صورت استفاده از Reverse Proxy، آدرس عمومی n8n باید بهدرستی تنظیم شده باشد.
- Workflow باید فعال باشد تا رویدادها در حالت عملیاتی دریافت شوند.
در نصبهایی که پشت پراکسی قرار دارند، تنظیمات آدرس عمومی مانند WEBHOOK_URL یا تنظیمات متناظر نسخه مورد استفاده اهمیت دارند. نام و شیوه تنظیم متغیرها را با توجه به نسخه n8n و روش نصب خود بررسی کنید.
همچنین هر ربات تلگرام معمولاً برای دریافت رویدادها از طریق Webhook، یک مقصد Webhook ثبتشده دارد. اگر چند Workflow یا سرویس مختلف را همزمان برای دریافت رویدادهای یک ربات تنظیم کنید، ممکن است با تداخل در ثبت Webhook روبهرو شوید. بهتر است هر ربات را با یک مسیر مشخص و مدیریتشده در n8n به کار بگیرید.
خطاهای رایج هنگام ساخت ربات تلگرام با n8n
خطای Invalid Token
این خطا معمولاً زمانی رخ میدهد که توکن اشتباه وارد شده، ناقص کپی شده یا از اعتبار افتاده باشد.
راهحل:
- توکن را دوباره از BotFather بررسی کنید.
- فاصله یا کاراکتر اضافی را حذف کنید.
- مطمئن شوید Credential صحیح در نود انتخاب شده است.
- اگر توکن قبلاً لغو شده، توکن معتبر جدید را ثبت کنید.
ربات پیام را دریافت نمیکند
اگر پیام ارسال میکنید اما اجرای Workflow آغاز نمیشود، این موارد را بررسی کنید:
- آیا Workflow فعال است؟
- آیا Credential صحیح انتخاب شده است؟
- آیا در Telegram Trigger رویداد Message انتخاب شده است؟
- آیا n8n از اینترنت قابل دسترس است؟
- آیا تنظیمات HTTPS و آدرس Webhook صحیح هستند؟
- آیا ربات یا Webhook آن در جای دیگری تنظیم شده است؟
Workflow در حالت تست کار میکند اما در حالت فعال نه
این وضعیت میتواند ناشی از تفاوت بین Webhook تست و Webhook عملیاتی باشد. در این حالت، Workflow را ذخیره و فعال کنید و تنظیمات دامنه و آدرس عمومی n8n را بررسی کنید.
پیام به ربات ارسال میشود اما پاسخی دریافت نمیکنم
این موضوع لزوماً به معنی خراب بودن ربات نیست. نود Telegram Trigger فقط رویداد را دریافت میکند؛ برای ارسال پاسخ باید در Workflow از نود Telegram با عملیات ارسال پیام استفاده کنید و آن را به مسیر مناسب متصل کنید.
ساخت پاسخ خودکار را میتوان در مرحله بعد، با توجه به متن پیام و منطق مورد نیاز، پیادهسازی کرد.
نکات امنیتی برای استفاده از ربات تلگرام
اگر قرار است ربات را برای مشتریان یا در یک پروژه تجاری استفاده کنید، این موارد را جدی بگیرید:
۱. محافظت از توکن: توکن را در Credentials نگهداری کنید و در کد یا خروجی عمومی قرار ندهید.
۲. محدود کردن دسترسیها: اگر ربات فقط برای مدیران است، شناسه کاربران مجاز را بررسی کنید و به هر پیام دریافتی اعتماد نکنید.
۳. مدیریت دادههای حساس: پیامهای کاربران ممکن است حاوی اطلاعات شخصی باشند. فقط اطلاعات لازم را ذخیره کنید و دسترسی به Executionها و لاگها را کنترل کنید.
۴. مدیریت خطا: برای Workflowهای مهم، خطاها را ثبت کنید و اعلان مناسب برای مدیر در نظر بگیرید.
۵. جلوگیری از اجرای ناخواسته: پیش از انجام کارهای حساس مانند ثبت سفارش یا تغییر اطلاعات، اعتبارسنجی لازم را انجام دهید.
جمعبندی
برای ساخت ربات تلگرام و اتصال آن به n8n، ابتدا ربات را از طریق BotFather ایجاد میکنید، توکن آن را دریافت میکنید و سپس توکن را در Credential تلگرام در n8n ذخیره میکنید. بعد از تنظیم Telegram Trigger، میتوانید با ارسال یک پیام آزمایشی، دریافت رویداد را بررسی کنید.
با آماده شدن این زیرساخت، میتوانید در مراحل بعدی قابلیتهایی مانند پاسخ خودکار، ربات فروش، ربات پشتیبانی و اتصال به سرویسهای هوش مصنوعی را به Workflow اضافه کنید.
سوالات متداول
آیا برای ساخت ربات تلگرام با n8n باید برنامهنویسی بلد باشم؟
برای ساخت ربات و اتصال اولیه آن به n8n معمولاً به برنامهنویسی نیاز ندارید. برای منطقهای پیچیدهتر، پردازش داده یا اتصال سرویسهای اختصاصی ممکن است به Expressionها یا کدنویسی نیاز پیدا کنید.
آیا ساخت ربات تلگرام رایگان است؟
ساخت ربات با BotFather بهطور معمول رایگان است. هزینه احتمالی به زیرساخت اجرای n8n، میزبانی سرور و سرویسهای جانبی مورد استفاده بستگی دارد.
آیا میتوان چند ربات تلگرام را به n8n متصل کرد؟
بله. میتوانید برای رباتهای مختلف Credentialهای جداگانه بسازید و آنها را در Workflowهای مربوط به هر ربات استفاده کنید. برای جلوگیری از تداخل، Webhook و تنظیمات هر ربات را جداگانه مدیریت کنید.
چرا ربات من پیام را دریافت نمیکند؟
ابتدا فعال بودن Workflow، اعتبار توکن، تنظیم رویداد Message، دسترسی عمومی n8n و تنظیمات Webhook را بررسی کنید. اگر در حالت تست کار میکند اما در حالت عملیاتی نه، تنظیمات آدرس عمومی و HTTPS را نیز بررسی کنید.
آیا بعد از ساخت ربات، پیامها بهصورت خودکار پاسخ داده میشوند؟
خیر. ساخت ربات و دریافت پیام بهتنهایی به معنی پاسخگویی خودکار نیست. برای ارسال پاسخ باید عملیات ارسال پیام را به Workflow اضافه کنید و مشخص کنید در چه شرایطی چه پاسخی ارسال شود.
آیا میتوان بعداً هوش مصنوعی را به ربات تلگرام متصل کرد؟
بله. پس از دریافت پیام در n8n میتوانید داده را به یک سرویس هوش مصنوعی بفرستید، پاسخ را پردازش کنید و با نود Telegram برای کاربر ارسال کنید. در آن مرحله باید هزینه سرویس، امنیت اطلاعات و مدیریت خطا را نیز در نظر بگیرید.





