تحلیل احساسات بازبینی با هوش مصنوعی به Salesforce و Google …

تحلیل احساسات بازبینی با هوش مصنوعی به Salesforce و Google …

11 دقیقه مطالعه · منتشر شده ۱۴۰۵/۴/۲۸

دانلود workflow

فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.

  1. فایل JSON را دانلود کنید.
  2. در n8n: Workflows → Import from File.
  3. Credentialهای هر node را متصل کنید.
  4. workflow را فعال کنید.

شناسه workflow: 11489 · منبع: کاتالوگ Axeto

تحلیل احساسات بازبینی با هوش مصنوعی به Salesforce و Google Sheets با Decodo

این گردش کار فرآیند تحلیل بازبینی‌های مشتریان، استخراج بینش‌های کلیدی احساسات و همگام‌سازی این داده‌ها را با Salesforce و Google Sheets خودکار می‌کند. این ابزار از Decodo برای وب اسکرپینگ قابل اعتماد و یک مدل زبان هوش مصنوعی (از طریق LangChain) برای استخراج و خلاصه‌سازی هوشمند داده‌ها بهره می‌برد.

دسته‌بندی‌ها: تحقیقات بازار، خلاصه‌سازی هوش مصنوعی

کاتالوگ Axeto.ai: گردش‌کارهای n8n

۱. نمای کلی گردش کار

نام گردش کار: استخراج‌کننده خلاصه بازبینی و شاخص کلیدی عملکرد مبتنی بر LLM

عنوان کاربر: تحلیل احساسات بازبینی با هوش مصنوعی به Salesforce و Google Sheets با Decodo

هدف:

این گردش کار URL صفحات بازبینی Trustpilot (و شناسه‌های اختیاری حساب Salesforce) را از یک Google Sheet می‌خواند. سپس هر صفحه را با استفاده از Decodo اسکرپ می‌کند، HTML را به متن ساده پاک‌سازی می‌کند و از یک LLM (OpenAI از طریق LangChain Agent) برای استخراج شاخص‌های کلیدی عملکرد بازبینی تجمیع‌شده و بینش‌های احساسی استفاده می‌کند. در نهایت، نتایج را به موارد زیر می‌نویسد:

۱. یک Google Sheet "خروجی" حاوی معیارهای ساختاریافته.

۲. یک حساب Salesforce (خلاصه‌ای مختصر از احساسات/روند در یک فیلد سفارشی)، اما فقط در صورتی که شناسه حساب Salesforce در ورودی ارائه شده باشد.

بلوک‌های منطقی:

۱.۱. شروع دستی و دریافت ورودی: گردش کار را آغاز کرده و داده‌های ورودی را از Google Sheets بازیابی می‌کند.

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

۱.۳. اسکرپ صفحات بازبینی (Decodo): محتوای صفحات بازبینی را واکشی می‌کند.

۱.۴. تبدیل HTML به متن پاک و استخراج فراداده: HTML اسکرپ‌شده را پاک‌سازی کرده و اطلاعات مرتبط را استخراج می‌کند.

۱.۵. تجمیع LLM (JSON احساسات/شاخص کلیدی عملکرد): از هوش مصنوعی برای تجزیه و تحلیل متن و تولید بینش‌های ساختاریافته استفاده می‌کند.

۱.۶. تسطیح و ذخیره در Google Sheets: خروجی هوش مصنوعی را قالب‌بندی کرده و به یک Google Sheet اضافه می‌کند.

۱.۷. به‌روزرسانی شرطی Salesforce: در صورت در دسترس بودن شناسه حساب، رکوردهای Salesforce را به‌روزرسانی می‌کند.

---

۲. تحلیل بلوک به بلوک

۲.۱. شروع دستی و دریافت ورودی

مرور کلی: این بخش گردش کار را به صورت دستی شروع کرده و داده‌های ورودی شامل URLهای Trustpilot و شناسه‌های حساب Salesforce مرتبط را از یک Google Sheet بارگیری می‌کند.

گره‌های درگیر:

  • Manual Trigger (شروع کننده دستی)
  • Google Sheets (Get Rows) (دریافت سطرها از Google Sheets)

#### گره: Manual Trigger (شروع کننده دستی)

  • نوع/نقش: n8n-nodes-base.manualTrigger - نقطه ورود برای اجرای دستی گردش کار.
  • پیکربندی: هیچ پارامتر خاصی تنظیم نشده است؛ اجرا با شروع دستی آغاز می‌شود.
  • اتصالات:

* خروجی → Google Sheets (Get Rows) (دریافت سطرها از Google Sheets)

  • حالت‌های خطا/موارد مرزی: هیچ، فراتر از عدم اجرای گردش کار.

#### گره: Google Sheets (Get Rows) (دریافت سطرها از Google Sheets)

  • نوع/نقش: n8n-nodes-base.googleSheets - مجموعه داده ورودی را از Google Sheets می‌خواند.
  • پیکربندی:

* عملیات: Get rows (دریافت سطرها)

* سند: صفحه گسترده با نام url_feedback_truspilot

* برگه/تب: input

* هیچ فیلتری اعمال نمی‌شود و تمام سطرهای موجود خوانده می‌شوند.

  • ستون‌های ورودی مورد انتظار:

* url: URL صفحه بازبینی Trustpilot.

* salesforce_account_id: شناسه حساب Salesforce (می‌تواند خالی باشد).

  • اتصالات:

* ورودی ← Manual Trigger (شروع کننده دستی)

* خروجی → Split in Batches (تقسیم به دسته‌ها)

  • اعتبارنامه‌ها: Google Sheets OAuth2.
  • حالت‌های خطا/موارد مرزی:

* توکن OAuth منقضی شده یا مجوزهای ناکافی.

* شناسه صفحه گسترده یا نام برگه/تب نادرست.

* ستون‌های مورد انتظار (url, salesforce_account_id) گم شده‌اند که منجر به مقادیر خالی در عبارات پایین‌دستی می‌شود.

---

۲.۲. حلقه‌زنی دسته‌ای روی سطرها

مرور کلی: این گره از طریق هر سطر ورودی (هر جفت URL/شناسه حساب) از Google Sheet تکرار می‌شود و پردازش فردی برای هر مورد را امکان‌پذیر می‌سازد.

گره‌های درگیر:

  • Split in Batches (تقسیم به دسته‌ها)

#### گره: Split in Batches (تقسیم به دسته‌ها)

  • نوع/نقش: n8n-nodes-base.splitInBatches - فرآیند دسته‌بندی و حلقه‌زنی را کنترل می‌کند.
  • پیکربندی:

* اندازه دسته: معمولاً به طور پیش‌فرض ۱ است و در هر تکرار یک سطر را پردازش می‌کند.

  • اتصالات:

* ورودی ← Google Sheets (Get Rows) (دریافت سطرها از Google Sheets)

* خروجی (اصلی، شاخص ۱) → Decodo (مورد فعلی را برای پردازش ارسال می‌کند)

* حلقه ورودی ← IF (مسیر False) و Salesforce (ایجاد یا به‌روزرسانی حساب)

  • حالت‌های خطا/موارد مرزی:

* اگر اندازه دسته بزرگتر از ۱ باشد، گره‌های پایین‌دستی باید قادر به مدیریت چندین مورد باشند.

* خطر سیم‌کشی اشتباه، به خصوص هنگام بازسازی گردش کار.

---

۲.۳. اسکرپ صفحات بازبینی (Decodo)

مرور کلی: این گره با استفاده از زیرساخت اسکرپینگ Decodo، محتوای HTML صفحات بازبینی Trustpilot را به طور قابل اعتماد واکشی می‌کند.

گره‌های درگیر:

  • Decodo

#### گره: Decodo

  • نوع/نقش: @decodo/n8n-nodes-decodo.decodo - اسکرپینگ وب و واکشی محتوا را انجام می‌دهد.
  • پیکربندی:

* URL: ={{ $('Get row(s) in sheet').item.json.url }} - URL را به صورت پویا از آیتم فعلی Google Sheet تنظیم می‌کند.

  • اتصالات:

* ورودی ← Split in Batches (تقسیم به دسته‌ها)

* خروجی → Code in JavaScript (HTML Cleaning) (کد جاوا اسکریپت - پاکسازی HTML)

  • اعتبارنامه‌ها: اعتبارنامه API Decodo.
  • حالت‌های خطا/موارد مرزی:

* URL نامعتبر یا فیلد url خالی منجر به درخواست‌های ناموفق یا محتوای خالی می‌شود.

* خطاهای احراز هویت Decodo (کلید API نامعتبر).

* محدودیت نرخ، اقدامات ضد ربات، یا تغییرات در ساختار صفحه.

* تغییرات در ساختار payload بازگشتی (انتظار {results:[{url, content}]} یا {url, content}).

---

۲.۴. تبدیل HTML به متن پاک و استخراج فراداده

مرور کلی: این گره خروجی Decodo را نرمال می‌کند، اطلاعات ضروری مانند URL، دامنه و شناسه‌های موجودیت را استخراج می‌کند، نشانه‌گذاری HTML را حذف می‌کند و page_text پاک را برای LLM تولید می‌کند.

گره‌های درگیر:

  • Code in JavaScript (HTML Cleaning) (کد جاوا اسکریپت - پاکسازی HTML)

#### گره: Code in JavaScript (HTML Cleaning) (کد جاوا اسکریپت - پاکسازی HTML)

  • نوع/نقش: n8n-nodes-base.code - تجزیه، پاکسازی و غنی‌سازی داده‌ها را مدیریت می‌کند.
  • پیکربندی کلیدی:

* تگ‌های <script> و <style> را حذف می‌کند.

* تگ‌های HTML سطح بلوک را به خطوط جدید تبدیل می‌کند.

* تگ‌های HTML باقی‌مانده را حذف می‌کند.

* موجودیت‌های رایج HTML را رمزگشایی می‌کند.

* خروجی‌ها:

* url: URL اصلی.

* domain: نام میزبان بدون www..

* entity_slug: از URLهای بازبینی شبیه Trustpilot استخراج شده است.

* entity_name: از <h1> یا <title> مشتق شده است، با اولویت entity_slug.

* page_text: محتوای متنی پاک و ساده.

* raw_html_length: طول HTML اصلی.

* تغییرات payload Decodo را مدیریت می‌کند (به عنوان مثال، json.results[0]).

  • اتصالات:

* ورودی ← Decodo

* خروجی → LangChain Agent (عامل LangChain)

  • حالت‌های خطا/موارد مرزی:

* اگر Decodo محتوایی برنگرداند، page_text خالی خواهد بود که منجر به حداقل خروجی LLM می‌شود.

* new URL(url) می‌تواند خطا ایجاد کند که توسط یک بلوک try-catch مدیریت می‌شود.

* تجزیه HTML مبتنی بر Regex ممکن است محتوا را در صفحات با اسکریپت زیاد یا ساختار غیرمعمول از دست بدهد.

---

۲.۵. تجمیع LLM (JSON احساسات/شاخص کلیدی عملکرد)

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

گره‌های درگیر:

  • LangChain OpenAI Chat Model (مدل چت OpenAI LangChain)
  • LangChain Agent (عامل LangChain)

#### گره: LangChain OpenAI Chat Model (مدل چت OpenAI LangChain)

  • نوع/نقش: @n8n/n8n-nodes-langchain.lmChatOpenAi - سرویس LLM زیربنایی را فراهم می‌کند.
  • پیکربندی:

* مدل: gpt-4.1-nano (یا جایگزین مناسب)

  • اتصالات:

* خروجی (ai\_languageModel) → LangChain Agent (به عنوان ارائه‌دهنده مدل)

  • اعتبارنامه‌ها: اعتبارنامه API OpenAI.
  • حالت‌های خطا/موارد مرزی:

* خطاهای احراز هویت یا تجاوز از سهمیه API.

* عدم دسترسی به مدل.

* تایم‌اوت‌ها، به خصوص با متن ورودی بزرگ.

#### گره: LangChain Agent (عامل LangChain)

  • نوع/نقش: @n8n/n8n-nodes-langchain.agent - اعلان را اجرا کرده و تعامل LLM را مدیریت می‌کند.
  • پیکربندی:

* اعلان: شامل url, domain, و page_text.

* دستورالعمل: اکیداً خروجی را به عنوان یک شی JSON با یک طرحواره از پیش تعریف شده الزامی می‌کند.

* پیام سیستم: بر تحلیل محافظه‌کارانه و قالب‌بندی دقیق JSON تأکید می‌کند.

  • اتصالات:

* ورودی ← Code in JavaScript (HTML Cleaning) (کد جاوا اسکریپت - پاکسازی HTML)

* ورودی مدل ← LangChain OpenAI Chat Model (مدل چت OpenAI LangChain)

* خروجی → Code in JavaScript (Parse/Flatten) (کد جاوا اسکریپت - تجزیه/تسطیح)

  • حالت‌های خطا/موارد مرزی:

* LLM ممکن است همچنان خروجی غیر JSON یا متن اضافی تولید کند که تجزیه‌کننده پایین‌دستی سعی در مدیریت آن دارد.

* اگر page_text خالی باشد یا حاوی نویز باشد، معیارهای استخراج شده احتمالاً صفر یا null خواهند بود و data_quality_notes باید این محدودیت‌ها را منعکس کند.

---

۲.۶. تسطیح و ذخیره در Google Sheets

مرور کلی: این بخش خروجی JSON LLM را تجزیه می‌کند، داده‌های تودرتو را به قالبی مناسب صفحه گسترده تسطیح می‌کند و یک سطر جدید به Google Sheet خروجی اختصاصی اضافه می‌کند.

گره‌های درگیر:

  • Code in JavaScript (Parse/Flatten) (کد جاوا اسکریپت - تجزیه/تسطیح)
  • Google Sheets (Append Row) (افزودن سطر به Google Sheets)

#### گره: Code in JavaScript (Parse/Flatten) (کد جاوا اسکریپت - تجزیه/تسطیح)

  • نوع/نقش: n8n-nodes-base.code - داده‌های JSON را تجزیه و تسطیح می‌کند.
  • پیکربندی کلیدی:

* خروجی LLM را می‌خواند (انتظار می‌رود در item.json.output).

* رشته خروجی را به یک شی JSON تجزیه می‌کند. خطاهای تجزیه را با انتشار یک آیتم با parse_error: true مدیریت می‌کند.

* ساختارهای تودرتو مانند rating_distribution, sentiment_distribution, و topic_distribution را به ستون‌های جداگانه تسطیح می‌کند (به عنوان مثال، rating_1 تا rating_5).

* آرایه‌ها را به رشته‌های جدا شده با کاما یا بلوک‌های جدا شده با خط جدید تبدیل می‌کند.

  • اتصالات:

* ورودی ← LangChain Agent (عامل LangChain)

* خروجی → Google Sheets (Append Row) (افزودن سطر به Google Sheets)

  • حالت‌های خطا/موارد مرزی:

* اگر نام فیلد خروجی LLM با output متفاوت باشد، تجزیه ناموفق خواهد بود.

* اگر یک آیتم parse_error به گره Google Sheets ارسال شود، ممکن است منجر به سلول‌های عمدتاً خالی شود.

#### گره: Google Sheets (Append Row) (افزودن سطر به Google Sheets)

  • نوع/نقش: n8n-nodes-base.googleSheets - داده‌های پردازش شده را به عنوان یک سطر جدید در برگه خروجی اضافه می‌کند.
  • پیکربندی:

* عملیات: Append (افزودن)

* سند: url_feedback_truspilot

* برگه/تب: output

* نگاشت ستون: فیلدهایی مانند source_url, estimated_total_reviews, average_rating, sentiment_positive, sentiment_neutral, sentiment_negative, top_positive_keywords, top_negative_keywords, و recent_trend_summary را به صراحت نگاشت می‌کند.

  • اتصالات:

* ورودی ← Code in JavaScript (Parse/Flatten) (کد جاوا اسکریپت - تجزیه/تسطیح)

* خروجی → IF (Salesforce Gating) (اگر - دروازه‌بانی Salesforce)

  • اعتبارنامه‌ها: Google Sheets OAuth2.
  • حالت‌های خطا/موارد مرزی:

* مشکلات مجوز یا پیکربندی نادرست برگه/تب.

* عدم تطابق طرحواره بین ستون‌های نگاشت شده و هدرهای برگه خروجی.

* افزودن آیتم‌های parse_error می‌تواند منجر به داده‌های خالی در برگه شود.

---

۲.۷. به‌روزرسانی شرطی Salesforce

مرور کلی: این بخش نهایی بررسی می‌کند که آیا شناسه حساب Salesforce ارائه شده است یا خیر. اگر چنین باشد، خلاصه روند را برای جا شدن در حد کاراکتر Salesforce کوتاه کرده و رکورد حساب مربوطه را به‌روزرسانی می‌کند.

گره‌های درگیر:

  • IF (اگر)
  • Code in JavaScript (Salesforce Field Safety) (کد جاوا اسکریپت - ایمنی فیلد Salesforce)
  • Salesforce (Create or Update Account) (Salesforce - ایجاد یا به‌روزرسانی حساب)

#### گره: IF (اگر)

  • نوع/نقش: n8n-nodes-base.if - اجرای شرطی را بر اساس وجود شناسه حساب Salesforce کنترل می‌کند.
  • شرط: بررسی می‌کند که آیا salesforce_account_id از ورودی یک رشته خالی نیست ({{ $('Get row(s) in sheet').item.json.salesforce_account_id }} != "").
  • اتصالات:

* ورودی ← Google Sheets (Append Row) (افزودن سطر به Google Sheets)

* True (درست) → Code in JavaScript (Salesforce Field Safety) (کد جاوا اسکریپت - ایمنی فیلد Salesforce)

* False (نادرست) → Split in Batches (برای ادامه حلقه)

  • حالت‌های خطا/موارد مرزی:

* اگر فیلد salesforce_account_id گم شده باشد (تعریف نشده)، معمولاً به عنوان یک رشته خالی یا null در نظر گرفته می‌شود و بررسی شرط را برآورده می‌کند.

* مقادیر ورودی که فقط حاوی فاصله خالی هستند ممکن است از بررسی عبور کنند اما در طول به‌روزرسانی Salesforce ناموفق باشند.

#### گره: Code in JavaScript (Salesforce Field Safety) (کد جاوا اسکریپت - ایمنی فیلد Salesforce)

  • نوع/نقش: n8n-nodes-base.code - اطمینان حاصل می‌کند که خلاصه روند برای Salesforce ایمن است.
  • پیکربندی:

* recent_trend_summary را به حداکثر ۲۵۵ کاراکتر کوتاه می‌کند و سعی می‌کند در آخرین فاصله برش دهد تا از شکستن کلمات جلوگیری شود.

* یک شی حاوی خلاصه ایمن کوتاه شده را خروجی می‌دهد: { recent_trend_summary: safeTrendSummary }.

  • اتصالات:

* ورودی ← IF (مسیر True)

* خروجی → Salesforce (Create or Update Account) (Salesforce - ایجاد یا به‌روزرسانی حساب)

  • حالت‌های خطا/موارد مرزی:

* اگر recent_trend_summary گم شده باشد، به طور پیش‌فرض یک رشته خالی است که قابل قبول است.

#### گره: Salesforce (Create or Update Account) (Salesforce - ایجاد یا به‌روزرسانی حساب)

  • نوع/نقش: n8n-nodes-base.salesforce - رکوردهای Salesforce را به‌روزرسانی یا ایجاد می‌کند.
  • پیکربندی:

* عملیات: Upsert (ایجاد یا به‌روزرسانی)

* شی: Account (حساب)

* کلید Upsert: Id (با استفاده از salesforce_account_id از ورودی)

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

  • اتصالات:

* ورودی ← Code in JavaScript (Salesforce Field Safety) (کد جاوا اسکریپت - ایمنی فیلد Salesforce)

* خروجی → Split in Batches (برای آیتم بعدی برمی‌گردد)

  • اعتبارنامه‌ها: اعتبارنامه API Salesforce.
  • حالت‌های خطا/موارد مرزی:

* خطاهای احراز هویت Salesforce.

* salesforce_account_id نامعتبر (به عنوان مثال، شناسه ناموجود).

* خطاهای اعتبارسنجی داده در شی Salesforce.

* محدودیت‌های API رسید.

Nodeهای استفاده‌شده

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

این گردش کار چگونه تحلیل احساسات بازبینی را خودکار می‌کند؟

این گردش کار با استفاده از ابزارهایی مانند Decodo برای استخراج داده‌ها از صفحات بازبینی و مدل‌های زبان هوش مصنوعی (مانند OpenAI از طریق LangChain) برای تجزیه و تحلیل متن، فرآیند تحلیل احساسات را خودکار می‌کند.

چه داده‌هایی از بازبینی‌ها استخراج می‌شود؟

این گردش کار بینش‌های کلیدی احساسی، شاخص‌های کلیدی عملکرد (KPIs) تجمیع‌شده و خلاصه‌ای از روندها را از بازبینی‌های مشتریان استخراج می‌کند.

نتایج تحلیل به کجا ارسال می‌شود؟

نتایج تحلیل به دو مقصد ارسال می‌شود: یک Google Sheet برای داده‌های ساختاریافته و یک حساب Salesforce (در صورت ارائه شناسه حساب) برای به‌روزرسانی رکوردهای مربوطه.

نقش Decodo در این گردش کار چیست؟

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

workflowهای مرتبط

این workflow در کاتالوگ Axeto.ai بایگانی شده است. لایسنس اصلی متعلق به سازنده workflow است.