نصب ویجت
صدا، مشتریان بالقوه و ماندگاری
ویجت چیزی فراتر از یک جعبه چت است. مشتریان بالقوه را بهصورت درونخطی جذب میکند، صدا را به متن تبدیل میکند، در بارگذاریهای مجدد باقی میماند و زمانی که یک اپراتور مکالمه را تصاحب میکند، وضعیت زنده "کارشناس در ارتباط است" را نشان میدهد. این صفحه هر قابلیت و نحوه پیکربندی آن را پوشش میدهد.
ماندگاری مکالمه
هر بازدیدکننده یک anon_id دریافت میکند (یک رشته تصادفی که در اولین بازدید در localStorage نوشته میشود). در بارگذاری مجدد، ویجت /v1/widget/init را با همان anon_id فراخوانی میکند و سرور جدیدترین مکالمه را در صورتی که کمتر از ۲۴ ساعت گذشته باشد، از سر میگیرد.
پاسخ راهاندازی شامل ۳۰ پیام آخر است تا گزارش چت به ترتیبی که بازدیدکننده آن را ترک کرده است، دوباره پر شود. دکمه "پاک کردن مکالمه" (در هدر ویجت) یک زمانمهر cleared_at را روی ردیف مکالمه ثبت میکند — پیامهای گذشته برای تحلیلها + اتصال مشتریان بالقوه در پایگاه داده باقی میمانند اما دیگر به بازدیدکننده نشان داده نمیشوند.
میکروفون صوتی
یک دکمه میکروفون در ناحیه ورودی به بازدیدکنندگان اجازه میدهد بهجای تایپ، دیکته کنند. ویجت از API SpeechRecognition داخلی مرورگر استفاده میکند — بدون مدل گفتار سمت سرور. در حین ضبط، میکروفون یک انیمیشن حلقه سونار نشان میدهد. کلیک مجدد آن را متوقف کرده و متن را در جعبه ورودی درج میکند (در صورت وجود متن از قبل، به آن اضافه میشود، بنابراین میتوانید دیکته کنید، ویرایش کنید و سپس بیشتر دیکته کنید).
مرورگرهای بدون SpeechRecognition (فایرفاکس، سافاری قدیمیتر) دکمه میکروفون را نشان نمیدهند. هیچ بازگشتی وجود ندارد — این قابلیت بهصورت فرصتطلبانه است.
جذب مشتری بالقوه
ویجت میتواند اطلاعات تماس را بهصورت درونخطی بدون اینکه بازدیدکننده را از مکالمه دور کند، جمعآوری کند. جذب مشتری بالقوه زمانی فعال میشود که:
- یک قانون رفتار با
kind=lead_captureمطابقت داشته باشد. - بازدیدکننده بهصراحت درخواست تماس کند ("یک نفر میتواند با من تماس بگیرد؟"، "برای من یک قیمت ایمیل کن").
- یک دکمه فراخوان را به اقدام
lead_captureمتصل کنید.
فیلدهای فرم به ازای هر دستیار فروش پیکربندی میشوند. پیشفرض نام + ایمیل است. میتوانید تلفن، شرکت و فیلدهای سفارشی اضافه کنید. مشتریان بالقوه ارسالشده به /v1/widget/leads POST میشوند (محدودیت نرخ به ازای هر JWT) و بلافاصله در /app/inbox (لیست مشتریان بالقوه به ازای هر فضای کاری) ظاهر میشوند.
جذب هوشمند براساس قصد
آخرین بهروزرسانی (commit 9190aa5) جذب مبتنی بر قصد را اضافه میکند: ویجت مکالمه را برای عباراتی که نشاندهنده قصد فروش واقعی هستند رصد میکند — سوالات قیمتگذاری، "آیا این برای… مناسب است؟"، "میتوانم دمو بگیرم؟" — و پس از چند نوبت بهطور فعال فرم جذب مشتری را ارائه میدهد. آستانه و لیست عبارات به ازای هر دستیار فروش قابل تنظیم هستند.
اتصال به کارشناس
زمانی که یک اپراتور فضای کاری یک مکالمه را در /app/inbox تصاحب میکند، ویجت یک رویداد Reverb (conversation.takeover) دریافت کرده و هدر چت را بهروز میکند تا یک نشان "کارشناس در ارتباط است" را نشان دهد. از آن نقطه به بعد، هوش مصنوعی متوقف میشود — هر پیام بازدیدکننده به اپراتور میرود و هر پاسخ اپراتور به بازدیدکننده پخش میشود. بازدیدکننده یک رشته پیوسته میبیند. در پشت صحنه، نقش پیام از assistant به human-agent و برعکس تغییر میکند.
برای سمت اپراتور، صندوق ورودی و اتصال به کارشناس را مشاهده کنید.
ارجاعات
هر زمان که دستیار فروش از منابع بازیابیشده پاسخ میدهد، نشانهای ارجاع در زیر پیام ظاهر میشوند. برای باز کردن آدرس منبع در یک زبانه جدید، روی یکی کلیک کنید. نشانها شمارهگذاری شدهاند ([1]، [2]) که با ارجاعات درونخطی در متن پاسخ مطابقت دارند — بازدیدکنندگانی که اهمیت میدهند میتوانند پاسخ را تأیید کنند. بازدیدکنندگانی که اهمیت نمیدهند، یک پاسخ تمیز میبینند.
پاسخهای گزینشی نیز میتوانند یک آدرس ارجاع اختیاری داشته باشند — زمانی مفید است که پاسخ از پیش تعیینشده از یک صفحه خاص گرفته شده باشد.
پخش جریانی
پیامها توکن به توکن از طریق رویدادهای ارسالشده توسط سرور پخش میشوند. ویجت جریان را خوانده و توکنها را بهصورت بیدرنگ به DOM اضافه میکند. اگر جریان در میانه راه با خطا مواجه شود (نوسان شبکه، زمانبندی هوش مصنوعی)، ویجت قبل از نشان دادن حالت خطا، تا ۳ بار بهطور خودکار تلاش مجدد میکند — و حتی در تلاشهای مجدد فقط یک حباب کاربر ظاهر میشود (commit a576e1c).
برندینگ
فوتر ویجت بهطور پیشفرض یک لینک "قدرت گرفته از Pitchbar" نشان میدهد. برای فضاهای کاری در پلنی با پرچم قابلیت remove_branding فعال، مخفی میشود — مشاهده کنید صورتحساب و پلنها.
برچسب برند، آدرس و لوگو همگی از پیکربندی مدیران پلتفرم میآیند (config('branding.*') + لغوهای اختیاری singleton app_settings)، بنابراین یک استقرار خودمیزبانی میتواند فوتر را بهطور کامل تغییر نام دهد.
ذخیرهسازی
ویجت از localStorage برای موارد زیر استفاده میکند:
anon_id— شناسه پایدار بازدیدکننده.- وضعیت پاکشده مکالمه (کدام شناسههای پیام را بازدیدکننده از طریق "پاک کردن" مخفی کرده است).
هیچ داده قابل شناسایی شخصی در سمت کلاینت ذخیره نمیشود. خود JWT در حافظه قرار دارد — در هر راهاندازی دوباره صادر میشود.