P Pitchbar مستندات

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

صندوق ورودی و تحویل به کارشناس

صندوق ورودی، کنسول مدیریت مشتریان و تحویل مکالمات شماست. /app/inbox لیست تمام مشتریان جذب‌شده را نشان می‌دهد؛ با باز کردن هر کدام، رونوشت کامل مکالمه‌ای که آن را تولید کرده است نمایش داده می‌شود و می‌توانید به‌عنوان یک اپراتور انسانی وارد شده و مکالمه را ادامه دهید.

چیدمان

/app/inbox مشتریان را در سمت چپ، مرتب شده براساس جدیدترین، نشان می‌دهد. روی یکی کلیک کنید و پنل سمت راست، مکالمه‌ای که آن را تولید کرده است را نشان می‌دهد: پیام‌های بازدیدکننده در یک سمت، پاسخ‌های دستیار فروش در سمت دیگر، و پیام‌های اپراتور انسانی از تحویل‌های قبلی با نقش خودشان (user / assistant / human-agent).

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

فهرست مکالمات در /app/conversations تمام مکالمات را بدون توجه به اینکه مشتری تولید کرده‌اند یا نه، پوشش می‌دهد — برای بررسی جلسات گذشته که تبدیل نشده‌اند مفید است. از آنجا می‌توانید یک مکالمه را باز کرده و از همان کنترل‌های تحویل استفاده کنید.

بروزرسانی‌های زنده

هر مکالمه باز، در کانال خصوصی Reverb خود (conversation.{id}) برای بروزرسانی‌های بی‌درنگ مشترک می‌شود. پیام‌های جدید بدون نیاز به نظرسنجی ظاهر می‌شوند؛ وضعیت تحویل هم به ویجت بازدیدکننده و هم به هر اپراتور دیگری که به همان مکالمه نگاه می‌کند، منتشر می‌شود.

تحویل گرفتن

روی تحویل گرفتن کلیک کنید. چند اتفاق می‌افتد:

  1. مکالمه claimed_by_user_id + claimed_at را به شما اختصاص می‌دهد (مسیر: POST /app/conversations/{conversation}/claim).
  2. یک رویداد Reverb conversation.claimed در کانال خصوصی مکالمه فعال می‌شود — ویجت بازدیدکننده "کارشناس در ارتباط است" را در هدر چت نشان می‌دهد.
  3. هوش مصنوعی متوقف می‌شود. هر پیام بازدیدکننده به صندوق ورودی هدایت می‌شود؛ هر پاسخ شما به‌عنوان یک پیام با نقش human-agent از طریق POST /app/conversations/{conversation}/reply به بازدیدکننده پخش می‌شود.

رها کردن

روی بازگشت به ربات کلیک کنید تا رها کنید (مسیر: POST /app/conversations/{conversation}/release). پیام بعدی بازدیدکننده دوباره از مسیر RAG عبور می‌کند. هدر چت بازدیدکننده به شخصیت دستیار فروش بازمی‌گردد. زمانی مفید است که:

  • شما به سوال خارج از متن پاسخ داده‌اید و بقیه به حوزه سوالات متداول بازگشته است.
  • بازدیدکننده راضی است و احتمالاً خارج می‌شود.
  • شیفت کاری شما به پایان می‌رسد — بازگشت، پوشش ۲۴ ساعته را حفظ می‌کند.

جذب مشتریان بالقوه

مشتریان به دو روش وارد می‌شوند:

  • توسط بازدیدکننده — فرم جذب مشتری درون‌خطی ویجت، که توسط یک قانون رفتار یا درخواست صریح بازدیدکننده برای تماس فعال می‌شود. مشتریان ارسال‌شده در /app/inbox قرار می‌گیرند.
  • توسط وب‌هوک — هر مشتری جذب‌شده، وب‌هوک خروجی lead.captured را فعال می‌کند تا بتوانید آن را به سیستم CRM خود ارسال کنید. مشاهده کنید وب‌هوک‌های خروجی.

اعلان‌های درون برنامه‌ای

پوسته مدیریت هر ۳۰ ثانیه از GET /app/leads/feed برای مشتریان جدید جذب‌شده در فضای کاری نظرسنجی کرده و هر کدام را به‌عنوان یک اعلان در گوشه پایین راست هر صفحه در SPA مدیریت نمایش می‌دهد. روی اعلان کلیک کنید تا مستقیماً به ردیف صندوق ورودی بروید.

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

نظرسنجی در تب‌های مخفی متوقف می‌شود تا داشبوردهای بیکار درخواست‌های HTTP اضافی مصرف نکنند. مکان‌نما در sessionStorage ذخیره می‌شود تا باز کردن یک تب دوم، اعلان‌های دیده‌شده را دو برابر نکند.

اعلان‌های ایمیل

هر مشتری جذب‌شده به تمام مالکان و مدیران فضای کاری از طریق ایمیل ارسال می‌شود. اعلان (App\Notifications\NewLeadCaptured) در صف قرار می‌گیرد — درخواست HTTP بازدیدکننده هرگز منتظر SMTP نمی‌ماند، بنابراین یک سرویس ارسال ایمیل کند نمی‌تواند جذب مشتری یا چت را کند کند.

دو شرط برای رسیدن واقعی ایمیل:

  1. یک پردازشگر صف در حال اجرا است. در تولید از درایور database استفاده می‌کنیم — مطمئن شوید که php artisan queue:work --queue=default روی یک سرپرست فرآیند اجرا می‌شود (پردازشگر درون‌خوشه‌ای در Laravel Cloud این کار را انجام می‌دهد). بدون آن، اعلان‌های صف‌شده در jobs جمع می‌شوند و هرگز ارسال نمی‌شوند.
  2. MAIL_MAILER + اعتبارنامه‌های منطبق در .env پیکربندی شده‌اند. پیش‌فرض log است — برای توسعه خوب است اما هیچ ایمیل واقعی ارسال نمی‌شود. در تولید به smtp / resend / postmark تغییر دهید و با php artisan tinker --execute 'Mail::raw("ping",fn($m)=>$m->to("you@example.com")->subject("test"));' تأیید کنید.

گیرندگان به workspace_users.role IN ('owner', 'admin') با accepted_at IS NOT NULL فیلتر می‌شوند. دعوت‌نامه‌های در انتظار و بینندگان ایمیل مشتری دریافت نمی‌کنند. فوتر ایمیل عنوان سایت برچسب‌سفید شما را منعکس می‌کند (تنظیم شده در تنظیمات ← سیستم).

پاک‌سازی گزارش مکالمات

هر بار که یک بازدیدکننده برای اولین بار در ۲۴ ساعت ویجت را بارگذاری می‌کند، یک ردیف Conversation جدید نوشته می‌شود. بازدیدکنندگانی که بدون تایپ کردن عبور می‌کنند، همچنان یک ردیف تولید می‌کنند، که به این معنی است که /app/conversations ممکن است به مرور زمان با جلسات خالی پر شود. دو ابزار آن را قابل مدیریت نگه می‌دارند:

  • فیلتر فقط درگیر (پیش‌فرض). لیست مکالمات بدون پیام بازدیدکننده را مخفی می‌کند. نمایش همه را در نوار فیلتر تغییر دهید تا همه جلسات را ببینید — زمانی که به دنبال ترافیک ربات یا بارهای تضمین کیفیت هستید مفید است.
  • حذف به ازای هر ردیف. نقش‌های مدیر و مالک با هاور کردن، یک آیکون سطل زباله می‌بینند. حذف به پیام‌ها، مشتریان و برچسب‌های اعمال‌شده از طریق کلیدهای خارجی پایگاه داده آبشاری می‌شود؛ رویدادهای تحلیل‌ها نگهداری می‌شوند (کلید خارجی nullOnDelete) تا آمارهای تجمیعی دست نخورده باقی بمانند.
  • حذف گروهی خالی. دکمه در نوار فیلتر، هر مکالمه در فضای کاری را که پیامی با نقش کاربر ندارد، پاک می‌کند. جلساتی که بازدیدکننده حداقل یک پیام ارسال کرده است، هرگز لمس نمی‌شوند.
  • حذف گروهی انتخاب‌شده. چک‌باکس‌های هر ردیف قابل مشاهده را علامت بزنید، سپس روی حذف N انتخاب‌شده کلیک کنید. محدوده سراسری فضای کاری روی Conversation از جابه‌جایی شناسه بین فضاهای کاری جلوگیری می‌کند — شناسه‌های فضاهای کاری دیگر در سمت سرور به‌طور خاموش حذف می‌شوند.

بینندگان و ویرایشگران ابزارهای حذف را نمی‌بینند؛ بررسی‌های ConversationPolicy::delete + WorkspacePolicy::bulkDeleteConversations نیاز به مدیر یا مالک دارند. حذف غیرقابل بازگشت است — هیچ ردی از حذف نرم وجود ندارد و گزارش حسابرسی هنوز حذف مکالمات را ثبت نمی‌کند.

گزارش حسابرسی

اقدامات دارای مجوز روی مکالمات (تحویل گرفتن، رها کردن) ردیف‌هایی را در جدول audit_logs برای قابلیت ردیابی قانونی می‌نویسند. در نسخه v1 صفحه‌ای برای مرور آنها وجود ندارد؛ در صورت نیاز به بررسی، مستقیماً از جدول پرس‌وجو کنید.

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