تحلیل احساسات با n8n

انتشار خودکار محتوا با n8n

مقدمه

تحلیل احساسات با n8n:

N8Nابزاری است که به کمک آن می توانید در مدت‌زمان کوتاهی، فرایندهای خود را با هوش مصنوعی خودکار کنید و از مزایای اتوماسیون هوشمند بهره‌ مند شوید.

N8N برای چه کسب و کارهایی مناسب است:

اگر سازمان شما کوچک می باشد و هم اکنون بسیاری از کار های خود را با نرم افزار هایی همچون اکسل انجام می دهید، N8N برای کسب و کار شما ایده آل است و در صورتی که کسب و کاری متوسط یا بزرگ دارید می توانید بخش های بسیاری از فرایند های غیر کلیدی خود را با این ابزار هوشمند کنید.

اگر به پیاده‌سازی اختصاصی، اتصال n8n به نرم‌افزارهای سازمانی یا سفارشی‌سازی Workflowها متناسب با کسب‌وکارتان نیاز دارید، Danix با بررسی نیازهای کسب‌وکار تان، می‌تواند این فرایند را از طراحی تا استقرار برای شما انجام دهیم.

برای کسب و کارهای کوچک به این لینک مراجعه کنید.

همچنین اگر ترجیح می‌دهید شخصاً نصب و راه‌اندازی را انجام دهید، می‌توانید از اطلاعات موجود در مقالات، دسته N8N استفاده کنید .همچنین می توانید template موجود در این workflow را به صورت رایگان از این قسمت دانلود کنید.

رمز فایل: danixai.com

تحلیل احساسات با n8n:

امروزه سرعت و کیفیت پاسخ‌گویی به تیکت‌های پشتیبانی یا گزارش‌های خطا در تیم‌های فنی، تاثیر مستقیم بر رضایت مشتریان دارد. بررسی دستی تمام دیدگاه‌ها و کامنت‌های ثبت‌شده روی تیکت‌ها فرآیندی زمان‌بر و طاقت‌فرساست. با استفاده از ابزارهای خودکارسازی، می‌توان لحن و کیفیت گفتگوها را به شکل لحظه‌ای سنجید. پیاده‌سازی پروژه تحلیل احساسات با n8n به تیم شما کمک می‌کند تا نارضایتی‌های نوظهور را پیش از تصاعد بحران شناسایی کند.

سیستم‌های خودکار تحلیل متن به کمک مدل‌های زبانی هوش مصنوعی، متن کامنت‌ها را پردازش کرده و وضعیت روانی مشتری یا کاربر را در سه دسته مثبت، خنثی یا منفی طبقه‌بندی می‌کنند. فرآیند تحلیل احساسات با n8n به شما این امکان را می‌دهد تا بدون نیاز به کدنویسی‌های پیچیده، ابزارهایی مانند Linear، OpenAI، Airtable و Slack را به یکدیگر متصل کرده و یک سیستم پایش هوشمند تیکت‌ها با n8n ایجاد نمایید.

قبل از شروع

اگر هنوز n8n را نصب نکرده‌اید، پیشنهاد می‌کنیم ابتدا مقاله «آموزش n8n» را مطالعه کنید. در آن مقاله، مراحل نصب با Node.js و Docker، راه‌اندازی اولیه و ساخت اولین Workflow به‌صورت کامل آموزش داده شده است. پس از نصب و راه‌اندازی، به این مقاله بازگردید و مراحل پیاده‌سازی این Workflow را دنبال کنید.

این Workflow چه کاری انجام می‌دهد؟

این سناریو پایش هوشمند تیکت‌ها با n8n به‌صورت زمان‌بندی‌شده تیکت‌های به‌روزرسانی‌شده در پلتفرم مدیریت پروژه Linear را دریافت می‌کند. سپس تمام کامنت‌های ثبت‌شده در هر تیکت را استخراج کرده و برای بررسی لحن و حس گفتگو  به مدل هوش مصنوعی OpenAI ارسال می‌کند. هوش مصنوعی پس از بررسی متن، یک خلاصه مدیریتی و وضعیت حس گفتگو (مثبت، خنثی یا منفی) را مشخص می‌سازد.

در مرحله بعد، اطلاعات به دست آمده در پایگاه داده Airtable ذخیره و به‌روزرسانی می‌شوند. سیستم، وضعیت فعلی حس گفتگو را با وضعیت قبلی آن مقایسه می‌کند. اگر حس یک تیکت از حالت غیرمنفی (مثبت یا خنثی) به حالت منفی تغییر کند، این تغییر وضعیت به عنوان یک هشدار بحران شناسایی شده و بلافاصله پیامی حاوی خلاصه تیکت و لینک مستقیم آن به کانال اختصاصی Slack تیم پشتیبانی ارسال می‌شود.

کاربردهای این Workflow

  • پایش هوشمند تیکت‌ها با n8n: شناسایی زودهنگام نارضایتی و عصبانیت کاربران در کامنت‌های پشتیبانی.

  • اولیت‌بندی تیکت‌های حساس: ارجاع سریع تیکت‌هایی که حس آن‌ها به سمت منفی تغییر کرده به مدیران ارشد.

  • سنجش عملکرد تیم پشتیبانی: بررسی تاثیر پاسخ‌های کارشناسان پشتیبانی بر لحن و رضایت کاربران.

  • کاهش ریزش مشتریان (Churn Rate): اقدام به موقع روی تیکت‌های بحرانی برای جلوگیری از لغو اشتراک کاربران.

  • ارزیابی کیفیت محصولات جدید: تحلیل بازخورد کاربران پس از انتشار ویژگی‌های جدید در نرم‌افزار.

  • ارائه گزارش‌های مدیریتی: ذخیره تاریخچه تغییرات لحن گفتگوها در Airtable برای تحلیل‌های دوره‌ای و کیفی.

پیش‌نیازها

برای راه‌اندازی و اجرای بدون نقص این سناریو، به پیش‌نیازهای زیر نیاز خواهید داشت:

  • نصب و راه‌اندازی n8n: دسترسی به نسخه خودمیزبان (Self-hosted) یا ابری n8n.

  • حساب کاربری Linear و API Key: جهت دسترسی به تیکت‌ها از طریق endpoint سیستم GraphQL.

  • کلید API سرویس OpenAI: جهت اتصال به مدل‌های چت و استخراج هوشمند اطلاعات (Information Extractor).

  • حساب Airtable و Personal Access Token: جهت ذخیره‌سازی، جستجو و به‌روزرسانی تاریخچه تیکت‌ها و حس گفتگوها.

  • حساب Slack و Slack API Credential: جهت ساخت پیام‌های ساختاریافته (Block Kit) و ارسال هشدارها به کانال مشخص.

دانلود Template

فایل JSON این Workflow را از این قسمت دانلود کنید.

رمز فایل: danixai.com

آموزش Import کردن Workflow

  1. وارد داشبورد n8n شوید.

  2. روی Import from File کلیک کنید.

  3. فایل JSON را انتخاب کنید.

  4. Workflow ایجاد خواهد شد.

  5. Credentialهای موردنیاز را تنظیم کنید.

ساختار Workflow و آموزش Node های آن:

این سناریو از ۹ گام اصلی تشکیل شده است که داده‌ها را میان سرویس‌های مختلف منتقل میکنند که در ادامه نحوه استفاده از انها را اموزش خواهیم دید. 

آموزش کامل تمام Nodeها

۱. Schedule Trigger
  • وظیفه Node: شروع خودکار اجرای Workflow در فواصل زمانی مشخص.

  • ورودی: زمان‌بندی سیستم.

  • خروجی: یک پیام Object حاوی timestamp شروع اجرا.

  • تنظیمات مهم: تنظیم interval روی ۳۰ دقیقه.

  • نکات قابل تغییر: بازه زمانی اجرا را می‌توانید بر اساس حجم تیکت‌های خود افزایش یا کاهش دهید.

  • دلیل استفاده: برای پایش مداوم و بدون نیاز به دخالت انسانی.

۲. Fetch Active Linear Issues
  • وظیفه Node: دریافت تیکت‌های به‌روزرسانی‌شده اخیر از پلتفرم Linear.

  • ورودی: زمان اجرای فعلی.

  • خروجی: آرایه‌ای از تیکت‌ها به همراه عنوان، توضیحات، شناسه و کامنت‌ها.

  • تنظیمات مهم: کوئری GraphQL جهت فیلتر تیکت‌هایی که در ۳۰ دقیقه اخیر (updatedAt) تغییر کرده‌اند.

  • نکات قابل تغییر: می‌توانید فیلترها را بر اساس تیم، پروژه یا شناسه کاربر تغییر دهید.

  • دلیل استفاده: نود رسمی Linear فیلترهای پیشرفته GraphQL را پشتیبانی نمی‌کند؛ لذا از این نود استفاده شده است.

۳. Issues to List
  • وظیفه Node: تفکیک لیست تیکت‌های دریافت شده به آیتم‌های مجزا.

  • ورودی: ساختار JSON پیچیده حاصل از کوئری GraphQL.

  • خروجی: آیتم‌های منفرد از تیکت‌های Linear.

  • تنظیمات مهم: تنظیم فیلد data.issues.nodes در پارامتر fieldToSplitOut.

  • نکات قابل تغییر: در صورت تغییر ساختار GraphQL، مسیر فیلد باید به‌روزرسانی شود.

  • دلیل استفاده: جهت پردازش تک‌تک تیکت‌ها در مراحل بعدی.

۴. OpenAI Chat Model
  • وظیفه Node: تامین هوش مصنوعی برای نودهای زیرمجموعه LangChain.

  • ورودی: اعتبارنامه API سرویس OpenAI.

  • خروجی: اتصال زبان مدل به پردازشگر اطلاعات.

  • تنظیمات مهم: انتخاب مدل چت متناسب (نظیر gpt-4o یا gpt-3.5-turbo).

  • نکات قابل تغییر: تغییر مدل یا پارامتر Temperature جهت دقت بیشتر.

  • دلیل استفاده: موتور اصلی پردازش زبان طبیعی و انجام تحلیل احساسات با n8n.

۵. Sentiment over Issue Comments
  • وظیفه Node: استخراج حس گفتگو و خلاصه‌سازی کامنت‌ها.

  • ورودی: متن ترکیب‌شده کامنت‌های هر تیکت و مدل OpenAI.

  • خروجی: فیلدهای ساختاریافته شامل sentiment و sentimentSummary.

  • تنظیمات مهم: نگاشت کامنت‌ها و تعریف دو ویژگی الزامی sentiment (با مقادیر positive, negative, neutral) و sentimentSummary.

  • نکات قابل تغییر: افزودن فیلدهای جدید مانند شدت عصبانیت یا موضوع اصلی تیکت.

  • دلیل استفاده: تبدیل متن‌های غیرساختاریافته کامنت‌ها به داده‌های ساختاریافته قابل تصمیم‌گیری.

۶. Combine Sentiment Analysis
  • وظیفه Node: ادغام نتیجه تحلیل هوش مصنوعی با اطلاعات اولیه تیکت.

  • ورودی: خروجی استخراج حس و اطلاعات نود Issues to List.

  • خروجی: یک دیتای جامع شامل تمام مشخصات تیکت و وضعیت حس آن.

  • تنظیمات مهم: استفاده از فرمول نویسی جهت ترکیب دو Object در حالت raw.

  • نکات قابل تغییر: حذف یا افزودن فیلدهای دلخواه به ساختار نهایی.

  • دلیل استفاده: جلوگیری از از دست رفتن شناسه و مشخصات اصلی تیکت پس از پردازش AI.

۷. For Each Issue…
  • وظیفه Node: مدیریت حلقه پردازش برای تک‌تک تیکت‌ها به صورت دسته‌ای.

  • ورودی: آرایه تیکت‌های تحلیل‌شده.

  • خروجی: ارسال تک به تک آیتم‌ها به مسیر پردازش.

  • تنظیمات مهم: تنظیم حالت Batching (به صورت پیش‌فرض ۱ آیتم در هر بازه).

  • نکات قابل تغییر: تغییر سایز دسته در صورت نیاز به پردازش موازی.

  • دلیل استفاده: اجرای دقیق و گام به گام مراحل استعلام و به‌روزرسانی دیتابیس برای هر تیکت.

۸. Copy of Issue
  • وظیفه Node: ساخت یک نسخه پشتیبان از دیتای تیکت جاری.

  • ورودی: دیتای تیکت فعال در حلقه.

  • خروجی: عین دیتای ورودی بدون تغییر.

  • تنظیمات مهم: حالت raw با عبارت {{ $json }}.

  • نکات قابل تغییر: نیازی به تغییر ندارد.

  • دلیل استفاده: جهت ارجاع آسان سایر نودهای داخل حلقه به دیتای اولیه بدون تداخل با خروجی Airtable.

۹. Get Existing Sentiment
  • وظیفه Node: جستجوی تیکت جاری در پایگاه داده Airtable.

  • ورودی: شناسه تیکت (identifier).

  • خروجی: سطر معادل در دیتابیس (در صورت وجود) یا خروجی خالی.

  • تنظیمات مهم: فرمول فیلتر ={Issue ID} = '{{ $json.identifier }}' و فعال‌سازی گزینه alwaysOutputData.

  • نکات قابل تغییر: نام جدول و Base ID متناسب با دیتابیس شما.

  • دلیل استفاده: چک کردن اینکه آیا تیکت قبلا ثبت شده است یا خیر، جهت دریافت وضعیت قبلی حس گفتگو.

۱۰. Update Row
  • وظیفه Node: ثبت یا به‌روزرسانی اطلاعات تیکت در دیتابیس (Upsert).

  • ورودی: دیتای قبلی Airtable و دیتای نود Copy of Issue.

  • خروجی: سطر به‌روزرسانی‌شده در Airtable.

  • تنظیمات مهم: نگاشت فیلدهای Previous Sentiment و Current Sentiment و تنظیم حالت upsert بر اساس Issue ID.

  • نکات قابل تغییر: افزودن ستون‌های جدید مطابق با جدول Airtable شما.

  • دلیل استفاده: ذخیره تاریخچه تغییر حس گفتگو و آماده‌سازی داده برای تریگر بعدی.

۱۱. Airtable Trigger
  • وظیفه Node: پایش جدول Airtable برای شناسایی سطور تغییریافته.

  • ورودی: فیلد تریگر Current Sentiment.

  • خروجی: سطرهایی که ستون وضعیت حس آن‌ها به‌روزرسانی شده است.

  • تنظیمات مهم: زمان‌بندی بررسی در هر ساعت (everyHour).

  • نکات قابل تغییر: بازه پایش بر اساس نیاز ساعتی یا دقیقه‌ای.

  • دلیل استفاده: جداسازی بخش ذخیره‌سازی از بخش اطلاع‌رسانی جهت کاهش پیچیدگی Workflow.

۱۲. Sentiment Transition
  • وظیفه Node: بررسی شرط تغییر وضعیت حس تیکت به حالت منفی.

  • ورودی: داده‌های سطر تغییریافته از Airtable.

  • خروجی: انتقال داده در صورت صادق بودن شرط به مسیر خروجی.

  • تنظیمات مهم: شرط برقراری Previous Sentiment !== 'Negative' و Current Sentiment === 'Negative'.

  • نکات قابل تغییر: ساخت مسیرهای خروجی جدید برای وضعیت‌های مثبت یا خنثی.

  • دلیل استفاده: فیلتر کردن دقیق تیکت‌هایی که دچار افت کیفیت و رضایت شده‌اند.

۱۳. Deduplicate Notifications
  • وظیفه Node: جلوگیری از ارسال هشدارهای تکراری برای یک تیکت.

  • ورودی: تیکت‌های فیلترشده توسط نود Switch.

  • خروجی: فقط تیکت‌های جدیدی که قبلا برای آن‌ها پیام ارسال نشده است.

  • تنظیمات مهم: مقایسه ترکیب شناسه تیکت و زمان آخرین تغییر ({{ $json.fields['Issue ID'] }}:{{ $json.fields['Last Modified'] }}).

  • نکات قابل تغییر: کلید یکتا برای حذف تکرار.

  • دلیل استفاده: عدم ایجاد اسپم در کانال Slack در اجراهای متوالی.

۱۴. Report Issue Negative Transition
  • وظیفه Node: ارسال پیام هشدار ساختاریافته به کانال Slack.

  • ورودی: تمام تیکت‌های یکتای شناسایی‌شده.

  • خروجی: پیام ارسال‌شده در Slack.

  • تنظیمات مهم: استفاده از Slack Block Kit برای نمایش شکیل، لینک به Linear و خلاصه مشکل. فعال بودن گزینه executeOnce.

  • نکات قابل تغییر: تغییر شناسه کانال Slack و متن پیام.

  • دلیل استفاده: آگاه‌سازی سریع تیم پشتیبانی و مدیران از بروز بحران.

نحوه شخصی‌سازی Workflow تحلیل احساسات با n8n:

این الگو انعطاف‌پذیری بالایی دارد و می‌توانید بخش‌های مختلف آن را تغییر دهید:

  • تغییر Promptها و استخراج‌کننده: در نود Sentiment over Issue Comments می‌توانید توضیحات ویژگی‌ها را تغییر دهید تا علاوه بر حس، میزان فوریت تیکت را هم استخراج کند.

  • مدل هوش مصنوعی: می‌توانید سرویس OpenAI را با مدل‌های دیگر مانند Claude یا مدل‌های محلی مجهز به ساختار Ollama جایگزین کنید.

  • تغییر Trigger و زمان‌بندی: امکان تغییر نود Schedule Trigger به Webhook وجود دارد تا هر زمان که تیکت در Linear تغییر کرد، فرآیند بلافاصله اجرا شود.

  • شرط‌ها و مسیرهای جدید: در نود Sentiment Transition می‌توانید شرط‌های بیشتری اضافه کنید؛ مثلاً ارسال پیام تشویقی در صورت تبدیل حس منفی به مثبت.

  • تغییر پلتفرم مدیریت تیکت: به جای Linear می‌توانید از سرویس‌های Jira، GitHub Issues یا Zendesk با تغییر نود ورودی استفاده نمایید.

مزایای استفاده از تحلیل احساسات با n8n:

  • پاسخ‌گویی پیش‌دستانه: شناسایی نارضایتی کاربر پیش از درج شکایت رسمی یا ترک محصول.

  • کاهش خطای انسانی: حذف نیاز به مرور دستی صدها کامنت توسط نیروی انسانی.

  • معماری ماژولار و توسعه‌پذیر: استفاده از Airtable به عنوان دیتابیس واسط، مدیریت داده‌ها را بسیار ساده می‌کند.

  • عدم ارسال هشدارهای تکراری: وجود نود Deduplicate مانع از آزار اعضای تیم با پیام‌های تکراری می‌شود.

  • شفافیت در عملکرد تیم: ثبت تاریخچه تغییرات لحن گفتگوها، معیار مناسبی برای ارزیابی کیفی پاسخ‌هاست.

  • صرفه‌جویی در هزینه‌ها: پردازش هوشمند فقط برای تیکت‌های به‌روزرسانی‌شده در بازه زمانی اخیر انجام می‌شود.

نکات مهم

  • کلیدهای API سرویس OpenAI را با محدودیت مصرف (Usage Limit) تنظیم کنید تا با هزینه‌های غیرمنتظره روبرو نشوید.

  • در نود GraphQL مربوط به Linear، تاریخ و زمان را متناسب با منطقه زمانی سرور خود تنظیم نمایید.

  • جدول Airtable باید دقیقا دارای ستون‌های نام‌برده شده (مانند Issue ID، Current Sentiment و…) با نوع داده صحیح باشد.

  • تنظیمات مربوط به executeOnce در نود Slack باعث می‌شود تمام تیکت‌های بحرانی در قالب یک پیام تجمیعی ارسال شوند.

  • برای حفظ امنیت داده‌ها، از لایسنس‌ها و Credentialهای امن در محیط n8n استفاده کنید.

  • نرخ محدودیت فراخوانی (Rate Limit) سرویس Linear را در نظر داشته باشید.

  • مدل‌های هوش مصنوعی همیشه ۱۰۰٪ دقیق نیستند؛ خلاصه تولیدشده را به عنوان ابزار کمک‌کننده ببینید.

  • در صورت افزایش حجم داده‌ها، بازه زمانی زمان‌بندی اجرا را تنظیم کنید تا فشار روی دیتابیس کاهش یابد.

خطاهای رایج (Troubleshooting)

۱. خطای عدم دسترسی در نود GraphQL
  • علت: معتبر نبودن API Token مربوط به Linear یا عدم دسترسی به سازمان مربوطه.

  • راه‌حل: یک Personal Access Token جدید در Linear بسازید و دسترسی Read آن را تایید نمایید.

۲. خطای Quota Exceeded در OpenAI
  • علت: اتمام شارژ حساب یا تجاوز از حد مجاز فراخوانی در دقیقه (RPM).

  • راه‌حل: حساب OpenAI خود را شارژ کرده یا مدل کم‌مصرف‌تری انتخاب کنید.

۳. عدم تطابق ستون‌ها در Airtable
  • علت: یکسان نبودن نام ستون‌های تعریف‌شده در نود Update Row با جدول واقعی Airtable.

  • راه‌حل: اسامی ستون‌ها را در Airtable دقیقا مطابق با خروجی‌های فرمول بررسی کنید.

۴. ارسال نشدن پیام به Slack
  • علت: اشتباه بودن شناسه کانال یا عدم عضویت ربات Slack در کانال مقصد.

  • راه‌حل: ربات ساخته شده را با دستور invite/ به کانال Slack دعوت کرده و Channel ID را مجددا بررسی کنید.

۵. خروجی خالی در نود Issues to List
  • علت: عدم وجود تیکت به‌روزرسانی‌شده در بازه ۳۰ دقیقه اخیر.

  • راه‌حل: بازه زمانی در کوئری GraphQL را برای تست افزایش دهید (مثلا ۱ روز اخیر).

سوالات متداول

آیا امکان استفاده از مدل‌های هوش مصنوعی رایگان یا محلی وجود دارد؟ بله، شما می‌توانید نود OpenAI را با نودهای مربوط به Ollama یا سایر مدل‌های متن‌باز جایگزین کنید.

چگونه می‌توانم این سناریو را برای سیستم تیکتینگ دیگری مانند Jira استفاده کنم؟ کافی است نود ورودی Linear را با نود Jira جایگزین کرده و فیلدهای مربوط به متن کامنت‌ها را نگاشت نمایید.

آیا این سناریو از زبان فارسی در کامنت‌ها پشتیبانی می‌کند؟ بله، مدل‌های زبانی OpenAI توانایی بالایی در فهم و تحلیل حس متون فارسی دارند.

چرا از Airtable به عنوان دیتابیس واسط استفاده شده است؟ Airtable علاوه بر ذخیره‌سازی ساده، دارای سیستم تریگر داخلی است که پیاده‌سازی شرط‌های تغییر وضعیت را بسیار آسان می‌کند.

هزینه اجرای این Workflow چقدر است؟ هزینه اصلی مربوط به فراخوانی API سرویس OpenAI است که به دلیل پردازش فقط تیکت‌های به‌روزرسانی‌شده، بسیار اندک و مقرون‌به‌صرفه خواهد بود.

جمع‌بندی

پیاده‌سازی فرآیند تحلیل احساسات با n8n راهکاری هوشمندانه برای تحول در دپارتمان‌های پشتیبانی و مدیریت مشتریان است. با ترکیب قدرت ابزارهای اتوماسیون و مدل‌های زبانی هوش مصنوعی، می‌توانید به صورت لحظه‌ای از نبض رضایت کاربران خود مطلع شوید. این سناریو نه تنها از تصاعد بحران‌های پشتیبانی جلوگیری می‌کند، بلکه امکان ثبت و تحلیل دقیق داده‌ها را در یک دیتابیس متمرکز فراهم می‌سازد. پیاده‌سازی سیستم پایش هوشمند تیکت‌ها با n8n، گامی مهم در جهت ارتقای کیفیت خدمات و حفظ مشتریان در دنیای رقابتی امروز است.

GIT

Categories: , ,