ساخت ربات تلگرام پیشرفته با n8n در سال 1404: دکمههای شیشهای، مدیریت گروه و پاسخ خودکار
اگر شما هم مثل ما در کارورا، از پیچیدگیهای نگهداری اسکریپتهای پایتون یا PHP برای رباتهای تلگرامی که وظایف نسبتاً سادهای دارند خسته شدهاید، این راهنما برای شماست.
توسعه، تست و دیپلوی یک ربات تلگرام که چند دکمه شیشهای دارد و به یک API خارجی متصل میشود، نباید چندین روز زمان و انرژی مهندسی را صرف کند. مشکل اصلی در کدنویسی سنتی، هزینههای پنهان است: مدیریت dependencyها (dependency hell)، راهاندازی و نگهداری سرور، و چرخههای طولانیِ تغییر-تست-استقرار.
اینجاست که n8n، به عنوان یک ابزار اتوماسیون ویژوال، این معادله را کاملاً تغییر میدهد. n8n به ما اجازه میدهد تا منطق ربات را به صورت گرافیکی و با اتصال نودها به یکدیگر طراحی کنیم.
در تجربهی ما در پروژههای واقعی، فرآیند ساخت پروتوتایپ یک ربات پیچیده از چند روز به چند ساعت کاهش یافته است. دیگر نیازی به درگیر شدن با کتابخانههای مختلف، مدیریت محیطهای مجازی یا نوشتن کدهای تکراری برای مدیریت Webhook نیست. تمرکز شما مستقیماً روی منطق کسبوکار ربات قرار میگیرد، نه زیرساخت آن.
چرا ساخت ربات تلگرام با کدنویسی سنتی دیگر به صرفه نیست؟

واقعیت این است که برای بسیاری از سناریوهای B2B، از پاسخدهی خودکار به مشتریان گرفته تا مدیریت گروهها و ارسال نوتیفیکیشنهای داخلی، نوشتن کد از صفر یک اتلاف منابع است. n8n با حذف این مراحل اضافی، به شما اجازه میدهد تا:
در این راهنمای جامع، ما به صورت کاملاً عملی و فنی، نحوه ساخت یک ربات تلگرام پیشرفته با قابلیتهای کلیدی مانند دکمههای شیشهای، مدیریت گروه و اتصال به APIهای خارجی را با استفاده از n8n به شما نشان خواهیم داد.
پیشنیازهای ضروری: از BotFather تا آمادهسازی n8n

قبل از شروع ساخت ورکفلو، باید چند پیشنیاز اساسی را فراهم کنیم. این یک چکلیست سریع برای آمادهسازی محیط کار است.
۱. دریافت توکن API از BotFather
BotFather ربات رسمی تلگرام برای مدیریت رباتهای شماست. برای دریافت توکن، مراحل زیر را در تلگرام خود دنبال کنید:
@BotFather) یک پیام ارسال کنید./newbot را تایپ و ارسال کنید.bot ختم شود (مثلاً KarvaraSupportBot).پس از انجام این مراحل، BotFather یک توکن منحصر به فرد شبیه به 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11 به شما میدهد. این توکن کلید اصلی ربات شماست؛ آن را در مکانی امن نگهداری کنید.
۲. آمادهسازی نمونه n8n
این راهنما فرض میکند که شما یک نمونه (instance) از n8n را به صورت Self-hosted روی سرور خود یا از طریق سرویس ابری n8n Cloud در اختیار دارید.
نکته کلیدی این است که نمونه n8n شما باید از طریق اینترنت قابل دسترس باشد تا سرورهای تلگرام بتوانند آپدیتها را به Webhook شما ارسال کنند.
قدم اول: اتصال n8n به تلگرام با Webhook در کمتر از ۵ دقیقه

اینجاست که قدرت واقعی n8n نمایان میشود. در روش سنتی، شما باید به صورت دستی آدرس سرور خود را در تلگرام ثبت میکردید. n8n این فرآیند را کاملاً خودکار کرده است.
۱. یک ورکفلو جدید در n8n بسازید.
۲. روی دکمه + کلیک کرده و نود Telegram Trigger را جستجو و انتخاب کنید.
۳. در تنظیمات نود، روی بخش Telegram API کلیک کرده و Create New را انتخاب کنید.
۴. در پنجره باز شده، توکن ربات خود را که از BotFather دریافت کردهاید، در فیلد Access Token وارد کنید و ذخیره نمایید.
[اسکرینشات از پنجره تنظیمات Credentials تلگرام در n8n]
۵. در نود Telegram Trigger، اطمینان حاصل کنید که گزینه Updates روی message تنظیم شده باشد.
۶. ورکفلو را با کلیک روی دکمه سوئیچ در بالای صفحه، فعال (Active) کنید.
به محض فعال کردن ورکفلو، n8n به صورت خودکار Webhook ربات شما را تنظیم میکند. تمام شد! دیگر نیازی به کدنویسی، مدیریت SSL یا نگرانی در مورد در دسترس بودن سرور نیست.
⚠️ نکته امنیتی: وبهوک شما به صورت عمومی در دسترس است. اگرچه توکن تلگرام به عنوان یک لایه امنیتی عمل میکند، اما برای سناریوهای حساس، توصیه میشود از گزینههای Authentication موجود در تنظیمات وبهوک n8n (مانند Header Auth) استفاده کنید تا مطمئن شوید فقط سرورهای تلگرام میتوانند به آن درخواست ارسال کنند.
ساخت اولین پاسخ خودکار: مدیریت دستور start

بیایید یک ورکفلو “Hello World” بسازیم تا به دستور /start پاسخ دهیم. این کار به ما کمک میکند تا با ساختار دادهها و منطق شرطی در n8n آشنا شویم.
ورکفلو مورد نیاز: Telegram Trigger -> IF Node -> Telegram Node
۱. Telegram Trigger: این نود را همانطور که در بخش قبل توضیح داده شد، پیکربندی کنید.
۲. IF Node: یک نود IF اضافه کنید تا بررسی کنیم آیا متن پیام ورودی برابر با /start است یا خیر.
Value 1، از Expression زیر استفاده کنید: {{ $json.message.text }}Operation را روی String -> Equal تنظیم کنید.Value 2، مقدار /start را وارد کنید.[اسکرینشات از تنظیمات IF Node برای بررسی دستور /start]
نکته تخصصی: برای درک بهتر دادهها، پس از تست، خروجی JSON نود Telegram Trigger را بررسی کنید. این ساختار شامل اطلاعات کلیدی مانند message.chat.id و message.from.first_name است که در مراحل بعد به آنها نیاز خواهیم داشت.
۳. Telegram Node: حالا یک نود Telegram به خروجی true نود IF متصل کنید.
Resource را روی Message و Operation را روی Send Message تنظیم کنید.Chat ID، از Expression داینامیک زیر استفاده کنید: {{ $json.message.chat.id }}Text، پیام خوشامدگویی خود را بنویسید: سلام {{ $json.message.from.first_name }}! به ربات کارورا خوش آمدید.ورکفلو را فعال کنید و در تلگرام به ربات خود دستور /start را ارسال کنید. باید بلافاصله پاسخ خودکار را دریافت نمایید.
جادوی دکمههای شیشهای (Inline Keyboard): راهنمای کامل

دکمههای شیشهای (Inline Keyboards) یکی از قدرتمندترین ابزارهای تعاملی در رباتهای تلگرام هستند که مستقیماً زیر پیام ربات نمایش داده میشوند.
ساخت دکمه ساده از طریق UI
سادهترین راه، استفاده از رابط کاربری خود نود Telegram است.
۱. در نود Telegram، به بخش Options رفته و Add Option -> Reply Markup را انتخاب کنید.
۲. از منو، Inline Keyboard را انتخاب کرده و دکمههای خود را اضافه کنید.
۳. هر دکمه دو فیلد اصلی دارد:
URL و برای تعامل داخلی از Callback Data (مثلاً show_services) استفاده کنید.کنترل کامل با JSON (روش پیشنهادی برای حرفهایها)
برای ساختارهای پیچیدهتر، کنترل مستقیم از طریق JSON بهترین گزینه است. در بخش Reply Markup گزینه JSON Parameters را فعال کرده و ساختار کیبورد را خودتان بنویسید.
در فیلد Inline Keyboard، کد JSON زیر را وارد کنید:
{
"inline_keyboard": [
[
{ "text": "مشاهده سرویسها", "callback_data": "services_menu" },
{ "text": "تماس با پشتیبانی", "callback_data": "support_contact" }
],
[
{ "text": "وبسایت کارورا", "url": "https://karvara.com" }
]
]
}
inline_keyboard یک آرایه از سطرهاست.مدیریت Callback Query (پاسخ به کلیک کاربر)
وقتی کاربر روی دکمهای با callback_data کلیک میکند، تلگرام یک آپدیت از نوع callback_query ارسال میکند.
۱. یک نود Telegram Trigger جدید اضافه کنید.
۲. در تنظیمات آن، Updates را فقط روی Callback Query تنظیم کنید.
۳. یک نود Switch بعد از این تریگر قرار دهید تا بر اساس callback_data تصمیمگیری کند.
۴. در Property Name نود Switch، از Expression زیر استفاده کنید: {{ $json.callback_query.data }}
۵. حالا برای هر مقدار (مانند services_menu) یک خروجی تعریف کرده و به آن یک نود Telegram برای ارسال پاسخ مناسب متصل کنید.
[اسکرینشات از ورکفلو مدیریت Callback Query با Telegram Trigger و Switch Node]
مدیریت هوشمند گروه: خوشامدگویی و حذف هرزنامه
یکی از کاربردیترین سناریوها، اتوماسیون مدیریت گروههاست.
هدف: ساخت یک ورکفلو که به محض ورود کاربر جدید پیام خوشامدگویی ارسال کند و همزمان، پیامهای اسپم را به صورت خودکار حذف نماید.
۱. پیکربندی Telegram Trigger:
Telegram Trigger بسازید و در Updates، گزینههای Message و New Chat Members را فعال کنید.۲. منطق انشعاب با IF Node (شناسایی کاربر جدید):
IF قرار دهید تا وجود فیلد new_chat_member را بررسی کند.Value 1: {{ $json.message.new_chat_member }}Operation: Is Not Empty۳. شاخه خوشامدگویی (خروجی true):
true، یک نود Telegram متصل کنید و با Text: سلام {{ $json.message.new_chat_member.first_name }}، به گروه ما خوش آمدی! به کاربر جدید خوشامد بگویید.۴. شاخه حذف هرزنامه (خروجی false):
false، یک نود IF دیگر برای شناسایی اسپم متصل کنید.Value 1: {{ $json.message.text }}Operation: String -> ContainsValue 2: کلمه کلیدی اسپم، مثلاً فروش ویژهtrue این نود، یک نود Telegram با Operation: Delete Message متصل کنید.Chat ID: {{ $json.message.chat.id }}Message ID: {{ $json.message.message_id }} (این فیلد برای حذف پیام ضروری است).[اسکرینشات کامل از ورکفلو مدیریت گروه با دو شاخه خوشامدگویی و ضد اسپم]
اتصال ربات به APIهای دیگر: نمونه عملی قیمت لحظهای ارز
اینجاست که n8n از یک ابزار ساده، به یک پلتفرم یکپارچهسازی قدرتمند تبدیل میشود.
ورکفلو: Telegram Trigger -> IF Node -> HTTP Request Node -> Telegram Node
۱. Trigger و IF Node: مانند مثال /start، یک IF Node برای شناسایی دستور /btc بسازید.
۲. HTTP Request Node: این نود قلب این ورکفلو است.
Request Method: GETURL: https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usdOptions، گزینه Response Format را روی JSON تنظیم کنید.[اسکرینشات از تنظیمات نود HTTP Request برای فراخوانی API]
۳. نود HTTP Request را به تنهایی اجرا کنید (Execute Node) تا ساختار پاسخ JSON را ببینید.
۴. Telegram Node (ارسال پاسخ): یک نود Telegram برای ارسال پیام اضافه کنید.
Chat ID: {{ $json.message.chat.id }}Text: برای استخراج قیمت از خروجی نود قبلی، از Expression زیر استفاده کنید: قیمت لحظهای بیتکوین: {{ $json.body.bitcoin.usd }} دلار
این ورکفلو، قدرت واقعی n8n را به نمایش میگذارد: دریافت فرمان، فراخوانی سرویس خارجی، پردازش پاسخ و ارسال نتیجه به کاربر، همه بدون یک خط کد بکاند.
ورکفلو آماده این آموزش را دانلود کنید
چرا از صفر شروع کنید؟ این فایل JSON شامل تمام نودها و تنظیمات آموزش است. آن را در n8n خود ایمپورت کرده و فوراً شروع به کار کنید.
ربات شما آماده است: قدمهای بعدی برای توسعه و کسب درآمد
تا اینجا، شما یک ربات تلگرام کاملاً کاربردی ساختهاید. این یک پایه بسیار محکم برای توسعههای آینده است.
در کارورا، ما از پلتفرم اتوماسیون n8n برای ساخت راهکارهای تجاری پیچیده استفاده میکنیم. مسیرهای بعدی برای شما میتواند شامل موارد زیر باشد:
Postgres یا MySQL، رباتهای State-aware بسازید که اطلاعات کاربران را ذخیره و بازیابی کنند.هدف این بود که نشان دهیم چگونه میتوان فرآیندهای پیچیده را با ابزارهای نوین سادهسازی کرد.
یک قدم فراتر بروید: از اتوماسیون تا استراتژی
پیادهسازی این ورکفلوها قدرتمند است، اما ادغام آنها در استراتژی کسبوکار شما یک بازی دیگر است. اگر مطمئن نیستید چگونه این فرآیندها را برای سودآوری بهینه کنید، بیایید صحبت کنیم.
سوالات متداول
آیا برای استفاده از n8n با تلگرام، نیاز به سرور یا دامنه دارم؟
اگر از نسخه Self-hosted استفاده میکنید، بله، به یک سرور با IP عمومی یا دامنه نیاز دارید. اما اگر از n8n Cloud استفاده کنید، هیچ نیازی به مدیریت سرور ندارید.
چگونه میتوانم پیامها را با فرمت Markdown یا HTML ارسال کنم؟
در نود Telegram (برای ارسال پیام)، به بخش Options بروید و گزینه Parse Mode را اضافه کنید. سپس میتوانید MarkdownV2 یا HTML را انتخاب کرده و از سینتکس مربوطه برای بولد کردن یا افزودن لینک استفاده کنید.
آیا n8n میتواند فایلها (عکس، ویدیو، سند) را مدیریت کند؟
بله. برای ارسال، از Resource: Document, Photo و… در نود Telegram استفاده کنید. برای دریافت، Telegram Trigger آپدیتهای حاوی فایل را دریافت میکند و شما میتوانید از نود Telegram Get File برای دانلود آن استفاده کنید.
امنیت توکن ربات من در n8n چگونه تامین میشود؟
وقتی شما یک Credential در n8n ذخیره میکنید، توکن شما به صورت رمزنگاری شده در دیتابیس ذخیره میشود و در رابط کاربری نمایش داده نمیشود. این روش بسیار امنتر از Hard-code کردن توکن در اسکریپتها است.
اگر API خارجی (مثل قیمت ارز) از دسترس خارج شود چه اتفاقی میافتد؟
در ورکفلو فعلی، نود HTTP Request با خطا مواجه شده و ورکفلو متوقف میشود. در سناریوهای واقعی و حساس، باید مدیریت خطا را پیادهسازی کنید. میتوانید تنظیمات نود را طوری تغییر دهید که در صورت خطا ادامه دهد (Continue on Fail) و یا از یک Error Trigger برای اجرای یک مسیر جایگزین (مثلاً ارسال پیام خطا به کاربر یا ادمین) استفاده کنید.
