مشتریها هر روز همان چند سؤال را میپرسند: «ارسال به شهر ما دارید؟»، «سفارشم کی میرسد؟»، «این مدل را دارید؟». میخواهی یک چتبات جوابشان را بدهد، ولی برنامهنویس نیستی و حوصلهٔ کد پایتون هم نداری. این آموزش یک دستیار هوش مصنوعی با n8n میسازد که فقط با کشیدن و وصل کردن چند گره (node) کار میکند: یک صفحهٔ چت عمومی، یک مدل زبانی و یک حافظهٔ کوتاه برای هر گفتگو.
مدل از API هوش مصنوعی چابکان میآید که با پرداخت ریالی شارژ میشود و کارت اعتباری خارجی نمیخواهد. خود n8n هم روی برنامهٔ آمادهٔ n8n چابکان اجرا میشود و نصب دستی ندارد. ورکفلوی این آموزش را روی n8n نسخهٔ 2.2.1، آخرین نسخهٔ فهرست سرویس n8n چابکان، ساخته و اجرا کردهایم.

با n8n و هوش مصنوعی چه کارهایی میشود کرد؟
n8n ابزار اتوماسیون است: هر کار در آن یک گره است و گرهها را با خط به هم وصل میکنی. وقتی یک مدل زبانی وسط این خطها بنشیند، n8n میتواند متن بخواند، بفهمد و جواب بنویسد. سه نمونهٔ واقعی:
- پشتیبانی فروشگاه: یک صفحهٔ چت که به سؤالهای تکراری دربارهٔ ارسال، مرجوعی و ساعت کاری جواب میدهد. همین را در این آموزش میسازیم.
- دستهبندی پیامها: متن فرم تماس یا ایمیل به مدل داده میشود، موضوع و فوریتش مشخص میشود و برای آدم درست فرستاده میشود.
- پیشنویس جواب: مدل برای هر تیکت تازه یک جواب پیشنهادی مینویسد و اپراتور فقط آن را بازبینی میکند.
اگر دستیار را با کد پایتون و روی سرور خودت میخواهی، اجرای AI Agent روی سرور آن مسیر را رفته است. در روش اصلی این آموزش یک خط کد هم نمینویسیم.
قبل از شروع: n8n آماده و کلید API هوش مصنوعی
دو چیز لازم داری: یک n8n روشن و یک کلید API برای مدل.
راهاندازی n8n روی چابکان
- در پنل چابکان به «ساخت سرویس جدید» برو، «برنامههای آماده» را باز کن و N8N را انتخاب کن.
- پلن و موقعیت سرویس را انتخاب کن. اگر بعداً میخواهی دستیار را به تلگرام وصل کنی، موقعیت اروپا را بردار، چون سرورهای داخل ایران به تلگرام وصل نمیشوند.
- بعد از چند دقیقه که سرویس ساخته شد، دامنهٔ سرویس را در مرورگر باز کن.
- در اولین ورود، کاربر ادمین را بساز.
- در «تنظیمات» سرویس، نسخهٔ n8n را روی جدیدترین نسخهٔ فهرست بگذار و «ذخیرهٔ تغییرات» را بزن. در نسخههای 2.x ورکفلو با دکمهٔ Publish روشن میشود و این آموزش هم با همین نسخهها نوشته شده است.
جزئیات با تصویر در مستند نصب n8n چابکان آمده است. اگر هنوز n8n را نمیشناسی، صفحهٔ n8n آمادهٔ چابکان فرقش با اشتراک n8n Cloud را توضیح داده است.
گرفتن کلید از هوش مصنوعی چابکان
هوش مصنوعی ابری چابکان یک API سازگار با OpenAI است. با یک کلید به مدلهای OpenAI، Gemini، Claude، DeepSeek، Qwen، GLM و چند خانوادهٔ دیگر دسترسی داری و اعتبار مصرف را با پرداخت ریالی از درگاه داخلی شارژ میکنی.
- در پنل از منوی محصولات، «هوش مصنوعی» را باز کن و «ایجاد سرویس هوش مصنوعی» را بزن. فهرست مدلهایی که میتوانی صدا بزنی به پلن سرویس بستگی دارد.
- در زبانهٔ «اعتبار و شارژ»، اعتبار مصرف را از کیف پول شارژ کن.
- در زبانهٔ «کلیدهای API» یک کلید با اسمی مثل
n8nبساز و همان لحظه کپیاش کن. کلید باsk-chbk-شروع میشود و فقط یک بار نمایش داده میشود. - در زبانهٔ «مدلهای قابل استفاده» شناسهٔ یک مدل را بردار، مثلاً
openai/gpt-4o-miniکه در پلن پایه هم هست.
مرحلهها با جزئیات در مستند راهاندازی هوش مصنوعی چابکان آمده است. اگر اولین بار است کلید API میگیری، آموزش کار با API ChatGPT و ساخت کلید هر مرحله را همراه با تست کلید توضیح داده است.
قدم ۱: وصل کردن n8n به هوش مصنوعی چابکان
n8n کلیدها را در بخشی به اسم Credentials نگه میدارد. کلید را هیچوقت مستقیم داخل یک گره ننویس، چون موقع خروجی گرفتن از ورکفلو همراهش بیرون میرود.

- در صفحهٔ اصلی n8n زبانهٔ Credentials را باز کن و Create credential را بزن.
- در جستجو OpenAi را انتخاب کن.
- در فیلد API Key کلید
sk-chbk-...را بگذار. - فیلد Base URL را از مقدار پیشفرض به
https://ai.chabokan.net/v1عوض کن. تغییر اصلی همین یک فیلد است. آدرس را دقیقاً همینطور بنویس، بدون/chat/completionsدر آخر. - اسم Credential را
Chabokan AIبگذار و Save را بزن.
n8n بعد از ذخیره، با خواندن فهرست مدلها از چابکان اتصال را تست میکند. اگر پیام Connection tested successfully را دیدی، کلید و آدرس درستاند. اگر Authorization failed دیدی، یا کلید ناقص یا لغوشده است، یا سرویس هوش مصنوعی فعال نیست یا اعتبار ندارد. کلید را دوباره کامل paste کن، وضعیت سرویس را در پنل ببین یا کلید تازه بساز.
قدم ۲: ساخت دستیار هوش مصنوعی با n8n
یک ورکفلو تازه بساز و این چهار گره را اضافه کن. هر چهار گره جزو گرههای رسمی n8n هستند.
- When chat message received: گره Chat Trigger را اضافه کن. این گره یک صفحهٔ چت میسازد و هر پیام کاربر، ورکفلو را اجرا میکند.
- AI Agent: بعد از آن گره AI Agent را بگذار، همان ایجنت هوش مصنوعی در n8n. این گره پیام کاربر را میگیرد، به مدل میدهد و جواب را برمیگرداند.
- OpenAI Chat Model: زیر AI Agent روی خانهٔ Chat Model بزن و OpenAI Chat Model را انتخاب کن. در Credential همان
Chabokan AIرا بگذار. - Simple Memory: روی خانهٔ Memory زیر AI Agent بزن و Simple Memory را انتخاب کن. با این گره دستیار پیامهای قبلی همان گفتگو را یادش میماند. عدد Context Window Length تعداد رفتوبرگشتهایی است که به خاطر میسپارد و پیشفرضش ۵ است.
در گره OpenAI Chat Model دو تنظیم مهم است:
- Model: فهرست مدلها از خود چابکان خوانده میشود، ولی ممکن است مدلهایی بیشتر از پلن سرویست نشان بدهد. شناسهای را انتخاب کن که در زبانهٔ «مدلهای قابل استفاده» دیدی، یا حالت By ID را بزن و همان شناسه را دستی بنویس.
- Use Responses API: این گزینه را خاموش کن. در n8n 2.2.1 بهطور پیشفرض روشن است. اگر روشن بماند، n8n درخواست را به مسیر دیگری (Responses) میفرستد و ممکن است مدل جواب ندهد. مثالهای زبانهای برنامهنویسی در مستندات چابکان هم میگوید قابلیت Responses را برای هر مدل جداگانه آزمایش کن. با خاموش کردن این گزینه، n8n از مسیر Chat Completions استفاده میکند که در همهٔ مثالهای چابکان آمده است.
دستیار یا ایجنت هوش مصنوعی در n8n؟
گره AI Agent همان ایجنت n8n است. در این آموزش فقط مدل و حافظه به آن وصل است، پس کارش جواب دادن به پیام است. اگر زیر خانهٔ Tool ابزاری مثل خواندن از Google Sheets یا فرستادن ایمیل وصل کنی، ایجنت خودش تصمیم میگیرد کی آن ابزار را صدا بزند. برای این کار مدلی لازم است که ابزارخوانی (tool calling) را خوب پشتیبانی کند. راهنمای عیبیابی چابکان توصیه میکند اول حالت ساده را تست کنی و بعد ابزار اضافه کنی.
قدم ۳: نوشتن دستور سیستمی برای دستیار
دستیاری که دستور ندارد، دربارهٔ همه چیز حرف میزند و گاهی جواب از خودش میسازد. در گره AI Agent روی Add Option بزن و System Message را اضافه کن. یک نمونه برای فروشگاه:
«تو دستیار فروشگاه آنلاین نارنج هستی. فقط به سؤالهای مربوط به سفارش، ارسال، مرجوعی و محصولات جواب بده. جوابها کوتاه و مؤدبانه و به همان زبانی باشد که مشتری نوشته. ارسال به همهٔ شهرها با پست انجام میشود. مرجوعی تا هفت روز بعد از تحویل ممکن است. اگر جواب را نمیدانی، حدس نزن و بگو مشتری با پشتیبانی تماس بگیرد.»
سه نکته دستور را بهتر میکند:
- اطلاعات واقعی را خودت بنویس. مدل از قوانین فروشگاه تو خبر ندارد. هر چیزی که باید درست بگوید، مثل ساعت کاری یا شرایط مرجوعی، باید در همین متن باشد.
- مرز بگذار. بنویس به چه سؤالهایی جواب ندهد. اینطوری دستیار وارد بحثهای بیربط نمیشود و مصرف هم کمتر میشود.
- با سؤالهای واقعی تست کن. ده سؤالی را که مشتریها بیشتر میپرسند جلوی دستیار بگذار و هر جا جواب غلط داد، دستور را دقیقتر کن.
قدم ۴: تست و انتشار صفحهٔ چت
پایین ویرایشگر روی Open chat بزن و چند پیام بفرست. هر پیام یک اجرا در زبانهٔ Executions میسازد و آنجا میبینی هر گره چه گرفته و چه داده است.
وقتی جوابها خوب شد، صفحهٔ چت را عمومی کن:
- در گره When chat message received گزینهٔ Make Chat Publicly Available را روشن کن.
- Mode را روی Hosted Chat بگذار. در Initial Message(s) یک خوشامد بنویس و از بخش Options عنوان صفحه را عوض کن.
- ورکفلو را ذخیره و Publish کن. در n8n 2.x صفحهٔ چت فقط بعد از Publish روی آدرس عمومی بالا میآید.
- Chat URL را از همان گره کپی کن و برای مشتری بفرست یا در صفحهٔ تماس سایت بگذار.
سرویس n8n چابکان آدرس ادیتور و وبهوکها (N8N_EDITOR_BASE_URL و WEBHOOK_URL) را خودش روی دامنهٔ سرویس تنظیم میکند، پس Chat URL با همان دامنه شروع میشود و لازم نیست چیزی دستی بگذاری. اگر دامنهٔ اختصاصی وصل کردهای و Chat URL هنوز localhost یا دامنهٔ قبلی را نشان میدهد، متغیرهای آدرس سرویس را طبق نکات تکمیلی n8n چابکان بررسی کن.
برای اینکه فقط آدمهای مشخص با دستیار حرف بزنند، در همان گره Authentication را روی Basic Auth بگذار. بعد در فیلد Credential یک Credential تازه از نوع Basic Auth بساز، User و Password بگذار و همین نام کاربری و رمز را به کسانی بده که باید با دستیار کار کنند. اگر دستیار فقط برای همتیمیهایی است که در همین n8n حساب دارند، گزینهٔ n8n User Auth سادهتر است. توضیح همهٔ گزینهها در مستند Chat Trigger آمده است.
روش دوم: اتصال با HTTP Request
مستندات چابکان برای اتصال n8n روش دیگری را «مطمئنترین روش مستقل از نسخه» میداند: گره عمومی HTTP Request که مستقیم به مسیر Chat Completions درخواست میفرستد. اگر نسخهٔ n8n تو فیلد Base URL را در Credential نشان نمیدهد، یا میخواهی فقط یک متن را خلاصه یا دستهبندی کنی و حافظه لازم نداری، این روش سادهتر است.
- برای تست، گره Manual Trigger و بعد گره Edit Fields را بگذار. در Edit Fields یک فیلد متنی به اسم
promptبا یک سؤال نمونه بساز. - یک Credential از نوع Header Auth بساز. در Name بنویس
Authorizationو در Value بنویسBearerو بعد از یک فاصله کلیدت را. - گره HTTP Request را بعد از Edit Fields اضافه کن. Method را POST و URL را
https://ai.chabokan.net/v1/chat/completionsبگذار. - در Authentication گزینهٔ Generic Credential Type و بعد Header Auth را بزن و Credential را انتخاب کن.
- Send Body را روشن کن، Body Content Type را JSON و Specify Body را Using JSON بگذار.
- بالای فیلد JSON، حالت را از Fixed به Expression عوض کن و این متن را بگذار:
{
"model": "openai/gpt-4o-mini",
"messages": [
{ "role": "system", "content": "You are a helpful support assistant." },
{ "role": "user", "content": {{ JSON.stringify($json.prompt) }} }
],
"stream": false
}
$json.prompt همان فیلدی است که در Edit Fields ساختی. JSON.stringify آن را طوری بستهبندی میکند که اگر متن کاربر علامت نقلقول یا خط جدید داشت، درخواست خراب نشود. اگر حالت فیلد Fixed بماند، n8n این عبارت را اجرا نمیکند و خطای JSON parameter needs to be valid JSON میدهد. در Options گره هم Timeout را 60000 (یک دقیقه) بگذار تا اگر جوابی نیامد، گره خطا بدهد و ورکفلو منتظر نماند. جواب مدل در گره بعد با این عبارت در دسترس است:
{{ $json.choices[0].message.content }}
این ورکفلو را هم با n8n 2.2.1 اجرا کردیم و جواب در گره آخر درست خوانده شد. راهنمای کامل در مستند اتصال n8n به هوش مصنوعی چابکان هست.
فرستادن جواب به ایمیل یا تلگرام
خروجی دستیار لازم نیست فقط صفحهٔ چت باشد. بعد از گره AI Agent یا HTTP Request میتوانی گره دیگری بگذاری:
- ایمیل: گره Send Email با مشخصات SMTP صندوق ایمیلت، جواب یا خلاصه را برای خودت یا مشتری میفرستد.
- تلگرام: گرههای Telegram در n8n پیام را از سرور تلگرام میگیرند و میفرستند. سرورهای داخل ایران به
api.telegram.orgوصل نمیشوند، پس گرههای تلگرام فقط روی سرویس n8n با موقعیت اروپا کار میکنند. Telegram Trigger هم آدرس webhook عمومی با HTTPS لازم دارد که سرویس n8n چابکان آن را خودکار روی دامنهٔ سرویس میگذارد.
خطاهای رایج در ساخت دستیار هوش مصنوعی با n8n
هر اجرای ناموفق در زبانهٔ Executions ثبت میشود. روی اجرا بزن، گره قرمز را باز کن و متن خطا را بخوان.
| چیزی که میبینی | علت | چه کار کنی |
|---|---|---|
| Authorization failed هنگام ذخیرهٔ Credential | کلید ناقص یا لغوشده است، یا سرویس هوش مصنوعی فعال نیست یا اعتبار ندارد | کلید را دوباره کامل paste کن، وضعیت سرویس را در پنل ببین یا کلید تازه بساز |
| خطای 404 Unknown path | Base URL ناقص است یا دو بار /v1 دارد |
Base URL را دقیقاً https://ai.chabokan.net/v1 بنویس، بدون /chat/completions در آخر |
| خطای 402 | اعتبار مصرف یا سقف ماهانهٔ کلید تمام شده | از زبانهٔ «اعتبار و شارژ» شارژ کن |
| خطای 404 یا model not found | شناسهٔ مدل غلط است یا مدل در پلن سرویس تو نیست | شناسه را از «مدلهای قابل استفاده» عیناً کپی کن |
| خطای 429 | تعداد درخواست در دقیقه از سقف پلن بیشتر شده | چند ثانیه صبر کن و دوباره امتحان کن |
| خطا فقط در OpenAI Chat Model، با اینکه Credential سالم است | Use Responses API روشن مانده | این گزینه را خاموش کن |
| JSON parameter needs to be valid JSON در HTTP Request | فیلد JSON در حالت Fixed مانده | حالت فیلد را روی Expression بگذار |
| صفحهٔ چت در ویرایشگر کار میکند ولی آدرس عمومی باز نمیشود | ورکفلو Publish نشده یا Make Chat Publicly Available خاموش است | هر دو را چک کن |
| Chat URL با localhost یا دامنهٔ قبلی شروع میشود | آدرس عمومی سرویس با دامنهای که استفاده میکنی یکی نیست | N8N_EDITOR_BASE_URL و WEBHOOK_URL را چابکان خودکار میگذارد. اگر دامنه را عوض کردهای، مقدارشان را در متغیرهای سرویس با دامنهٔ فعلی مقایسه کن |
فهرست کامل کدهای خطای API در راهنمای عیبیابی هوش مصنوعی چابکان آمده است.
امنیت کلید و کنترل مصرف
هر پیامی که دستیار جواب میدهد از اعتبار هوش مصنوعی کم میکند و صفحهٔ چت عمومی را هر کسی میتواند باز کند. این چند کار را از روز اول انجام بده:
- برای n8n کلید جدا بساز و موقع ساختن کلید، سقف مصرف ماهانه بگذار. اگر کسی صفحهٔ چت را با پیامهای پشت سر هم پر کرد، مصرف از همان سقف بالاتر نمیرود.
- حافظه را کوتاه نگه دار. هر پیام قبلی که در Simple Memory میماند دوباره به مدل فرستاده میشود. برای پشتیبانی فروشگاه همان عدد پیشفرض ۵ کافی است.
- دستیار داخلی را عمومی نکن. اگر دستیار برای تیم خودت است، Basic Auth را روشن کن.
- به دستیار عمومی ابزار حساس نده. هر کسی میتواند با پیامهایش سعی کند دستور سیستمی را دور بزند. اگر بعداً به ایجنت ابزار وصل کردی، ابزاری نده که بتواند چیزی را پاک یا ارسال کند.
- قبل از اشتراکگذاری ورکفلو، فایل خروجی را نگاه کن. وقتی کلید در Credentials است، فایل JSON خروجی فقط اسم Credential را دارد و خود کلید در آن نیست.
دستیار هوش مصنوعی خودت را روی چابکان بساز
هر دو بخش این آموزش در یک پنل است: n8n آمادهٔ چابکان بدون نصب دستی بالا میآید و هوش مصنوعی ابری چابکان مدل را با پرداخت ریالی در اختیارت میگذارد. سرویس n8n پرداخت ساعتی دارد، پس میتوانی آن را چند روز تست کنی و اگر لازمش نداشتی، بعد از خروجی گرفتن از ورکفلوها حذفش کنی. با اعتبار هدیهٔ ۱۰۰ هزار تومانی میتوانی هم خود سرویس n8n و هم مصرف هوش مصنوعی دستیار را تست کنی.
اگر بعداً خواستی کدی را که ChatGPT برایت نوشته هم آنلاین کنی، پروژه ChatGPT یا Claude را آنلاین کنیم را بخوان.
سوالات متداول درباره دستیار هوش مصنوعی با n8n
برای ساخت دستیار هوش مصنوعی با n8n باید برنامهنویسی بلد باشم؟
نه. همهٔ کار با اضافه کردن گرهها و پر کردن فرمها انجام میشود. فقط در روش HTTP Request یک متن JSON آماده را کپی میکنی که در همین مقاله آمده است.
n8n چابکان همان اشتراک n8n Cloud است؟
نه. چابکان نسخهٔ self-hosted (Community) n8n را روی یک سرویس جدا برایت نصب میکند. حساب کاربری داخل همان نصب ساخته میشود و هزینه بابت منابع سرویس است، نه تعداد اجرای ورکفلو.
به جای ChatGPT میتوانم از Claude یا DeepSeek استفاده کنم؟
بله، اگر آن مدل در پلن سرویست باشد. در گره OpenAI Chat Model شناسهٔ مدل Claude، DeepSeek یا مثلاً GLM را از «مدلهای قابل استفاده» بردار و جایگزین کن. Credential و Base URL همان میماند. قبل از عمومی کردن صفحه، مدل تازه را با چند سؤال واقعی تست کن.
دستیار فارسی جواب میدهد؟
بله. رابط n8n انگلیسی است، ولی پیامهای فارسی بدون مشکل از صفحهٔ چت به مدل میرسند و جواب هم فارسی برمیگردد. کیفیت فارسی به مدل بستگی دارد. در دستور سیستمی بنویس «به همان زبانی که مشتری نوشته جواب بده» و قبل از عمومی کردن صفحه، چند مدل را با سؤالهای فارسی واقعی مقایسه کن.
دستیار گفتگوهای قبلی را یادش میماند؟
با گره Simple Memory، پیامهای آخر هر گفتگو را یادش میماند. این حافظه برای هر گفتگو جداست و هر بار که صفحهٔ چت باز میشود، گفتگوی تازهای شروع میشود و گفتگوهای جدا روی هم اثر ندارند. ما این را با دو گفتگوی آزمایشی تست کردیم و حافظهٔ هر کدام جدا ماند. اگر میخواهی با رفرش صفحه گفتگو ادامه پیدا کند، در Options گره When chat message received گزینهٔ Load Previous Session را روی From Memory بگذار و همان Simple Memory را به خانهٔ Memory این گره هم وصل کن. آنوقت گفتگوی هر مرورگر حفظ میشود، ولی همان آدم با گوشی و لپتاپ باز هم دو گفتگوی جدا دارد. برای اینکه حافظه با ریاستارت n8n هم بماند، باید یک گره حافظهٔ دیتابیسی جایش بگذاری.
میتوانم صفحهٔ چت را داخل سایتم بگذارم؟
بله. در گره When chat message received، Mode را روی Embedded Chat بگذار و از ویجت چت n8n استفاده کن. در Options همین گره، گزینهٔ Allowed Origins (CORS) بهطور پیشفرض * است، یعنی ویجت روی هر سایتی کار میکند. بهتر است دامنهٔ سایتت را آنجا بنویسی، مثل https://shop.ir، و چند دامنه را با کاما جدا کنی. سایتی که در این فهرست نباشد، در مرورگر خطای CORS میگیرد. راهنمایش در مستند Chat Trigger آمده است. اگر فقط لینک میخواهی، همان Hosted Chat کافی است.