P Pitchbar مستندات

مدیریت فضای کاری

اتصال به کارشناس آنلاین

بازدیدکنندگانی که با دستیار هوش مصنوعی به بن بست می‌رسند، می‌توانند درخواست اتصال به کارشناس کنند و واقعاً به آن برسند — به‌صورت بی‌درنگ، با استفاده از همان منوی مکالمات که تیم شما قبلاً برای خواندن رونوشت‌ها استفاده می‌کند.

جریان بازدیدکننده

  1. هدر ویجت دارای یک دکمه‌ی همیشه قابل مشاهده به نام گفتگو با کارشناس است. بازدیدکنندگان نیازی به منتظر ماندن برای ظاهر شدن یک گزینه توسط هوش مصنوعی ندارند — با یک کلیک از هر وضعیت مکالمه‌ای به کارشناس متصل می‌شوند. این دکمه برای هر دستیار فروشی که قابلیت ticket_escalation را داشته باشد (همه پیش‌تنظیم‌ها به‌طور پیش‌فرض آن را فعال دارند) باقی می‌ماند.
  2. دستیار فروش همچنین قصد ارجاع به کارشناس را در متن پیام تشخیص می‌دهد — HumanIntentDetector با حدود ۴۰ عبارت تطابق می‌یابد ("گفتگو با کارشناس"، "من را به کارشناس متصل کن"، "باید با کسی صحبت کنم" و غیره). تایپ یکی از این عبارات، هوش مصنوعی را دور زده و مستقیماً به جریان ارجاع می‌رود.
  3. با کلیک / تطابق قصد، سه اتفاق فوراً رخ می‌دهد:
    • مکالمه با یک زمان‌مهر human_requested_at در سرور علامت‌گذاری می‌شود.
    • یک HumanRequestedEvent به کانال خصوصی Reverb فضای کاری پخش می‌شود تا زبانه‌های داشبورد به‌صورت بی‌درنگ به‌روز شوند.
    • NotifyOperatorsHumanRequestedJob اعلان‌های پایگاه داده + ایمیل را به هر عضو فضای کاری با live_chat_available=true ارسال می‌کند.
  4. ویجت یک بنر "در حال اتصال شما به یک کارشناس…" نشان می‌دهد. بازدیدکننده تا ۲ دقیقه روی این بنر باقی می‌ماند. در حالی که مکالمه در پنجره انتظار است، ربات سکوت می‌کند — هر پیام بعدی بازدیدکننده به‌جای دریافت پاسخ هوش مصنوعی، برای کارشناس در صف قرار می‌گیرد.
  5. اگر یک کارشناس در این بازه مکالمه را تصاحب کند، بنر به "سارا به چت پیوست" تغییر می‌کند (یا "یک کارشناس پیوست" اگر شخصی‌سازی را در تنظیمات فضای کاری خاموش کرده‌اید).
  6. اگر هیچ کارشناسی پس از ۲ دقیقه مکالمه را تصاحب نکند، ویجت پیام "هم‌اکنون کسی در دسترس نیست — ایمیل خود را وارد کنید، به محض آزاد شدن کسی با شما تماس می‌گیریم." را نشان می‌دهد. فرم جذب مشتری برای پیگیری خارج از باند باز می‌شود. اعلان همچنان ارسال شده است، بنابراین کارشناسان می‌توانند بعداً مکالمه را از داشبورد تصاحب کنند.
  7. پاسخ‌های کارشناس به‌صورت حباب‌های چت با برچسب "کارشناس" نمایش داده می‌شوند. پیام‌های بازدیدکننده به‌صورت زنده به کنسول کارشناس بازمی‌گردند (نظرسنجی ۳ ثانیه‌ای).

جریان کارشناس

  1. ورودی نوار کناری مکالمات یک نشان قرمز با تعداد مکالمات در انتظار کارشناس را نشان می‌دهد.
  2. /app/conversations را باز کرده و به فیلتر نیاز به کارشناس تغییر دهید. هر ردیف نشان می‌دهد که بازدیدکننده چه زمانی دکمه کارشناس را کلیک کرده، در چه صفحه‌ای است و ایمیل ثبت‌شده‌اش (در صورت وجود) چیست.
  3. روی یک ردیف کلیک کنید → رشته مکالمه پیام‌های زنده را نشان می‌دهد. برای تصاحب مکالمه، روی تصاحب در بالا سمت راست کلیک کنید.
  4. در حالی که مکالمه را تصاحب کرده‌اید:
    • ربات پاسخ خودکار نمی‌دهد.
    • از جعبه پاسخ در پایین استفاده کنید (Cmd / Ctrl + Enter ارسال می‌کند).
    • پیام‌های بازدیدکننده به‌صورت بی‌درنگ ظاهر می‌شوند — در حالی که تصاحب کرده‌اید، صفحه هر ۲ ثانیه نظرسنجی می‌کند.
  5. وقتی کارتان تمام شد، روی رها کردن کلیک کنید. سرور claimed_by_user_id، claimed_at، human_requested_at و پنجره تایپ کارشناس را پاک می‌کند، سپس یک پیام سیستمی یک‌خطی به چت ارسال می‌کند ("کارشناس خارج شد. دستیار هوش مصنوعی برای کمک بازگشت."). بنر "در حال اتصال شما به یک کارشناس…" بازدیدکننده در نظرسنجی بعدی ناپدید می‌شود. تاریخچه مکالمه برای تحلیل‌ها و مراجعات آینده intact باقی می‌ماند و هوش مصنوعی در پیام بعدی بازدیدکننده از سر گرفته می‌شود.

تنظیمات فضای کاری

چند تنظیم در تنظیمات در سطح فضای کاری وجود دارد:

  • شخصی‌سازی چت زنده (پیش‌فرض روشن). وقتی روشن باشد، بازدیدکننده نام واقعی کارشناس را در بنر پیوستن می‌بیند. برای صنایع تحت‌regulation (حقوقی، درمانی، مالی) که نباید هویت فردی کارشناسان فاش شود، آن را خاموش کنید — بازدیدکننده به‌جای آن "یک کارشناس از <برند>" را می‌بیند.
  • نام فضای کاری (/settings/workspace) — برچسبی که تیم در نوار کناری و ایمیل‌های خروجی می‌بیند. قابل ویرایش توسط نقش‌های مالک و مدیر؛ ویرایشگران و پایین‌تر ۴۰۳ می‌بینند.

اعلان‌ها

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

  • پخش HumanRequestedEvent در کانال خصوصی Reverb فضای کاری. هر زبانه داشبورد باز آن را دریافت کرده و نشان نوار کناری مکالمات را به‌روز می‌کند و یک اعلان صوتی را به‌صورت بی‌درنگ پخش می‌کند.
  • NotifyOperatorsHumanRequestedJob — اعلان پایگاه داده + ایمیل صف‌شده (HumanRequestedNotification) به هر عضو فضای کاری با users.live_chat_available = true ارسال می‌شود. اعضایی که داشبورد را بسته بودند، همچنان ایمیلی دریافت می‌کنند تا بتوانند در ورود بعدی مکالمه را تصاحب کنند.

اگر جذب مشتری نیز فعال شود، آبشار ایمیل + اعلان داشبورد جذب مشتری نیز به‌طور جداگانه اجرا می‌شود. اعلان ارجاع idempotent است: کلیک دوم در پنجره انتظار ۲ دقیقه‌ای، پخش یا اعلان مجددی ایجاد نمی‌کند.

مسیریابی هوشمند

سرور براساس در دسترس بودن کارشناس و ساعات کاری شما، یکی از سه پاسخ را زمانی که بازدیدکننده درخواست کارشناس می‌کند، انتخاب می‌کند:

  • در صف (کارشناس آنلاین). یک کارشناس آنلاین است و در ساعات کاری شما. بازدیدکننده "در حال اتصال شما به یک کارشناس…" را می‌بیند، مکالمه علامت‌گذاری می‌شود، ربات سکوت می‌کند و کارشناسان مطلع می‌شوند. انتظار به ۲ دقیقه محدود می‌شود (RequestHumanController::WAIT_TIMEOUT_SECONDS = 120).
  • به‌هرحال در صف (هیچ کارشناس آنلاین نیست). در ساعات کاری است اما هیچکس خود را دریافت چت زنده علامت‌گذاری نکرده است. همچنان در صف قرار می‌گیرد و اعلان می‌فرستد — اعلان پایگاه داده + ایمیل به هر عضو با پذیرش چت زنده می‌رسد، بنابراین می‌توانند مکالمه را زمانی که داشبورد را باز می‌کنند تصاحب کنند. بازدیدکننده همان بنر "در حال اتصال شما…" را برای ۲ دقیقه می‌بیند. پس از اتمام زمان، ویجت به "هم‌اکنون کسی در دسترس نیست — ایمیل خود را وارد کنید، با شما تماس می‌گیریم." تغییر می‌کند.
  • آفلاین — خارج از ساعات کاری. خارج از ساعات کاری که پیکربندی کرده‌اید. بازدیدکننده "هم‌اکنون تعطیل هستیم. در <روز ساعت> برمی‌گردیم. ایمیل خود را وارد کنید، در اولین فرصت پیگیری می‌کنیم." را می‌بیند.

پذیرش کارشناس

هر عضو فضای کاری به‌طور جداگانه در تنظیمات پروفایل در دسترس بودن خود را تنظیم می‌کند:

  • چک‌باکس دریافت چت زنده — زمانی که روشن باشد و زبانه مدیریت شما در ۲ دقیقه اخیر فعال بوده باشد، به‌عنوان یک کارشناس در دسترس محسوب می‌شوید.
  • ضربان قلب هر ۶۰ ثانیه در حالی که زبانه در پیش‌زمینه است، ارسال می‌شود و زمانی که زبانه مخفی است، متوقف می‌شود.

ساعات کاری

در تنظیمات ← چت زنده پیکربندی کنید. در حال حاضر ویرایش JSON (یک ویرایشگر شبکه بصری در نسخه بعدی ارائه می‌شود):

{
  "enabled": true,
  "timezone": "Asia/Tehran",
  "schedule": {
    "saturday":    [{"start": "09:00", "end": "17:00"}],
    "sunday":      [{"start": "09:00", "end": "17:00"}],
    "monday":      [{"start": "09:00", "end": "17:00"}],
    "tuesday":     [{"start": "09:00", "end": "17:00"}],
    "wednesday":   [
      {"start": "09:00", "end": "12:00"},
      {"start": "13:00", "end": "17:00"}
    ],
    "thursday":    [{"start": "09:00", "end": "17:00"}],
    "friday":      []
  }
}
  • کلیدهای روز با حروف کوچک. HH:mm ۲۴ ساعته. آرایه خالی = تمام روز بسته است.
  • چندین بازه در روز پشتیبانی می‌شود (مثلاً استراحت ناهار).
  • منطقه زمانی هر شناسه IANA است — سرور در برابر پایگاه داده tz PHP اعتبارسنجی می‌کند.
  • "enabled": false را تنظیم کنید (یا کل فیلد را خالی بگذارید) تا همیشه روشن بماند.

اعلان‌های اسلک / تیمز

در تنظیمات ← چت زنده، یک آدرس وب‌هوک ورودی برای هر پلتفرم وارد کنید. زمانی که بازدیدکننده درخواست کارشناس می‌کند، یک شنونده صف‌شده یک پینگ جمع‌وجور با آدرس مکالمه ارسال می‌کند تا کارشناس بتواند مستقیماً از اسلک / تیمز بدون باز کردن داشبورد وارد شود.

  • اسلک — از آدرس استاندارد incoming-webhook از پیکربندی برنامه اسلک استفاده می‌کند. اسلک به‌طور خودکار لینک مکالمه را باز می‌کند.
  • مایکروسافت تیمز — آدرس وب‌هوک ورودی از اتصال‌دهنده کانال تیمز. ما به‌عنوان یک MessageCard با دکمه "باز کردن مکالمه" ارسال می‌کنیم.

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

بازدیدکنندگان هرگز نباید برای همیشه روی حباب "در حال اتصال شما…" باقی بمانند. ویجت یک تایمر سمت کلاینت ۲ دقیقه‌ای را از لحظه درخواست ارجاع اجرا می‌کند (به RequestHumanController::WAIT_TIMEOUT_SECONDS مراجعه کنید). وقتی تایمر بدون تصاحب به پایان می‌رسد، بنر به متن "کسی در دسترس نیست" تغییر کرده و فرم جذب مشتری باز می‌شود تا بازدیدکننده بتواند ایمیل خود را وارد کند. ردیف مکالمه در سرور علامت‌گذاری شده باقی می‌ماند تا کارشناس همچنان بتواند بعداً آن را تصاحب کند — آبشار اعلان یک بار در درخواست اولیه ارسال می‌شود، بنابراین کارشناسان مکالمه صف‌شده را در نوار کناری مکالمات بدون توجه به اینکه بازدیدکننده در صفحه باقی مانده است یا خیر، می‌بینند.

ویژگی‌های کارشناس (فاز ۳)

پاسخ‌های آماده

پاسخ‌هایی که تیم شما بارها تایپ می‌کند (دستورالعمل‌های بازنشانی رمز عبور، سیاست بازپرداخت، زمان‌بندی ارسال) را در تنظیمات ← پاسخ‌های آماده ذخیره کنید. هر ورودی دارای یک برچسب کوتاه (که کارشناسان با آن جستجو می‌کنند) و متن کامل پاسخ است. با دسته‌های بالا/پایین مرتب کنید — پاسخ‌های پرکاربرد باید در بالا قرار گیرند.

در هر مکالمه زنده، روی دکمه پاسخ آماده در بالای ناحیه متن کلیک کنید. برچسب یا محتوا را به‌صورت فازی جستجو کنید، یکی را انتخاب کنید و ناحیه متن پر می‌شود. کارشناس می‌تواند قبل از ارسال، آن را ویرایش کند.

یادداشت‌های داخلی

جعبه پاسخ را از پاسخ به یادداشت داخلی تغییر دهید (ناحیه متن کهربایی می‌شود). یادداشت‌های داخلی برای سایر کارشناسان در رشته مکالمه قابل مشاهده است اما هرگز برای بازدیدکننده ارسال نمی‌شود. برای زمینه ارجاع مفید است: "بازدیدکننده به نظر ناامید می‌رسد — من قبلاً X را امتحان کردم، لطفاً ادامه دهید." پیام‌های حسابرسی انتقال خودکار نیز از این نقش استفاده می‌کنند.

نشانگرهای تایپ

هر دو جهت، بدون نیاز به تنظیمات:

  • بازدیدکننده در حالی که شما در کنسول کارشناس تایپ می‌کنید، "<کارشناس> در حال تایپ…" را بالای چت خود می‌بیند.
  • کارشناس در حالی که بازدیدکننده در ویجت تایپ می‌کند، یک حباب سه‌نقطه‌ای در لاگ پیام می‌بیند.

به‌عنوان زمان‌مهرهای سمت سرور با انقضای ۵ ثانیه پیاده‌سازی شده است؛ هر دو طرف از نقاط پایانی موجود نظرسنجی می‌کنند، بنابراین به زیرساخت اضافی نیازی نیست.

انتقال مکالمه

روی دکمه انتقال در نوار پاسخ کلیک کنید. هم‌تیمی‌های آنلاین در بالا با نشان سبز "آنلاین" ظاهر می‌شوند. هم‌تیمی‌های آفلاین نیز لیست می‌شوند (ممکن است بخواهید به کسی که بعداً تصاحب می‌کند، ارجاع دهید). انتخاب هدف، تصاحب را دوباره اختصاص می‌دهد، به ویجت بازدیدکننده پخش می‌کند تا بنر "به چت پیوست" به نام کارشناس جدید به‌روز شود و یک یادداشت سیستمی در رشته برای زمینه قرار می‌دهد.

ویرایشگر شبکه ساعات کاری

ناحیه متن JSON فاز ۲ با یک شبکه بصری ۷ روزه در تنظیمات ← چت زنده جایگزین می‌شود. روی دکمه "+ پنجره" در هر روز کلیک کنید تا یک بازه باز دیگر اضافه کنید (استراحت ناهار، شیفت‌های تقسیم‌شده)، یا "بسته" را علامت بزنید تا آن روز را تعطیل کنید. انتخابگر منطقه زمانی دارای ۱۵ منطقه رایج IANA به علاوه یک گزینه "سفارشی…" برای هر منطقه‌ای که PHP تشخیص می‌دهد، است.

برچسب‌ها + امتیازات + بازسازی رابط کاربری (فاز ۴)

برچسب‌های مکالمه

مکالمات را دسته‌بندی کنید تا تیم شما بتواند آنها را فیلتر و گزارش کند. لیست را در تنظیمات ← برچسب‌ها مدیریت کنید: هر برچسب دارای یک برچسب (حداکثر ۶۰ کاراکتر) و یک رنگ هگز است که پس‌زمینه تراشه را تعیین می‌کند.

در هر رشته مکالمه، پنل سمت انتهایی دارای یک بخش برچسب‌ها است. روی × یک تراشه کلیک کنید تا جدا شود؛ + برچسب یک منوی کشویی جستجوی فازی از برچسب‌های انتخاب‌نشده فضای کاری را باز می‌کند.

لیست مکالمات: یک منوی کشویی انتخاب "برچسب‌ها" به فیلترهای موجود نیاز به کارشناس / اکنون زنده اضافه می‌شود. هر ردیف همچنین برچسب‌های اعمال‌شده را به‌عنوان تراشه‌های فشرده در کنار نشان‌های موجود نشان می‌دهد.

امتیازات رضایت

پس از اینکه کارشناس مکالمه را رها کرد، بازدیدکننده یک درخواست "آیا این مفید بود؟" با دکمه‌های پسندیدن / نپسندیدن + یک فیلد نظر اختیاری می‌بیند. اولین امتیاز در سرور قفل می‌شود؛ ارسال‌های بعدی فقط نظر را به‌روز می‌کنند — خریداران از شگفتی‌های "بازنویسی امتیاز" به سبک Intercom شکایت کرده بودند.

سمت کارشناس: پنل زمینه سمت انتهایی، امتیاز + نظر را در زیر کارت بازدیدکننده نشان می‌دهد. لیست مکالمات همچنین زمانی که امتیازی وجود دارد، یک تراشه 👍 / 👎 در هر ردیف نشان می‌دهد.

بازسازی رابط کاربری رشته مکالمه

صفحه رشته اکنون یک سطح واقعی میز کمک است:

  • چیدمان دو پنلی در دسکتاپ (≥ md) — چت در سمت چپ، نوار کناری زمینه در سمت راست. نوار کناری در موبایل به یک کشوی Sheet با دکمه "جزئیات" جمع می‌شود.
  • نوار کناری سمت راست بخش‌ها: بازدیدکننده (شناسه ناشناس، زبان، پرچم بازگشت، آدرس صفحه با آیکون لینک)، مشتری (لینک‌های mailto ایمیل / tel تلفن)، برچسب‌ها، سیگنال رضایت، کاشی زمان‌بندی (سن تصاحب / زمان انتظار / زمان شروع).
  • نوار اقدامات یکپارچه فشرده در بالا: نشان زنده، نشان‌های وضعیت، دکمه‌های تصاحب / رها کردن / انتشار اجباری در یک خوشه.
  • نویسنده در پایین با زبانه‌های پاسخ / یادداشت، انتخابگر پاسخ آماده، منوی کشویی انتقال و تأخیر تایپ (همه از فاز ۳ منتقل شده‌اند).

مسیرهای ارسال‌شده (تجمیعی)

  • POST /app/conversations/{id}/note — یادداشت داخلی
  • POST /app/conversations/{id}/typing — راهنمای تایپ کارشناس
  • POST /app/conversations/{id}/transfer — تخصیص مجدد تصاحب
  • POST / DELETE /app/conversations/{id}/tags/{tagId} — پیوست / جدا کردن برچسب
  • POST /api/v1/widget/typing — راهنمای تایپ بازدیدکننده (JWT)
  • POST /api/v1/widget/satisfaction — امتیاز بازدیدکننده (JWT)
  • GET / POST / PATCH / DELETE /app/settings/canned-replies/… — CRUD + مرتب‌سازی مجدد
  • GET / POST / PATCH / DELETE /app/settings/tags/… — CRUD برچسب فضای کاری

زبان خود را انتخاب کنید