FAQ-чіпи і привітальна бульбашка
Для розробників, у коді: чіпи-підказки під привітанням, привітальна бульбашка на закритій кнопці запуску і проактивна знахідка, що важливіша за неї, — що й коли показується і події, щоб це виміряти.
Три речі запрошують відвідувача почати: FAQ-чіпи під привітанням, привітальний тизер на закритій кнопці запуску і — на екрані додатка, який налаштував власник, — проактивна знахідка. Власник налаштовує їх у панелі; сторінка може їх спостерігати, а для однієї з них — міряти, чи вона доречна.
У панелі: чіпи — Віджет → Вміст → Чіпи підказок FAQ, а тизер іде за Віджет → Лаунчер → Привернення уваги лаунчером (налаштування віджета).
FAQ-чіпи
До 3 запропонованих питань (faqs, задаються для кожного віджета на вкладці «Контент» панелі,
локалізовані мовою сторінки) малюються чіпами просто під привітанням у порожній розмові, на
будь-якому пристрої. Клік надсилає це питання точно як набране — відповідь приходить із бази знань,
тож заготовленої відповіді підтримувати не треба. Рядок зникає з першим повідомленням, новою
розмовою або ✕ на привітанні. Частини: companion-faqs, companion-faq.
Привітальний тизер
Коли launcherAttention не off (віддається як teaserEnabled) і greeting непорожнє, закрита
кнопка запуску через чотири секунди показує маленьку бульбашку: на мить крапки набору, потім
привітання, надруковане як справжнє повідомлення, потім до 2 FAQ-чіпів на десктопному екрані.
Відкриття чату після того, як тизер закінчив друкувати, показує привітання одразу, не друкуючи
знову. Закриття, як і відкриття чату, запам’ятовується на сесію: до 7 днів, але
забувається після 45 хвилин відсутності. prefers-reduced-motion
пропускає крапки й друк.
Частини: teaser-group (несе [hidden]), teaser (бульбашка, ціль кліку), teaser-faqs,
teaser-faq; токени --sa-teaser-bg, --sa-teaser-color, --sa-teaser-radius,
--sa-font-teaser, --sa-teaser-font-size. Події: shukai:teaser:shown, shukai:teaser:dismissed.
launcherAttention також задає анімацію привернення уваги закритої кнопки: off — ні анімації,
ні бульбашки; subtle і prominent різняться тим, наскільки вона рухається. Показується до
першого відкриття.
Проактивна знахідка
Другий вид тизера на тій самій бульбашці: на екрані, джерело якого називає проактивний
інструмент, віджет надсилає proactive_tick після 8 секунд на цьому екрані, сервер викликає
сервер власника без участі моделі, і лише на непорожній результат невеликий хід моделі вирішує, чи
є що сказати. Якщо є — бульбашка показує одне речення, персонаж піднімає руку, і таймер привітання
її не перекриває. FAQ-чіпів поруч немає: знахідка — це одна конкретна річ.
- Вмикається лише тоді, коли є що вмикати:
GET /widget/configкажеproactive: true, коли якийсь екран, який бачить помічник, має проактивний інструмент і тариф це дозволяє. Інакше віджет не запускає таймера, не стежить за адресою і не відкриває сокета. - На екран: URL (плюс маршрут із
setContext) перевіряється раз на секунду, і перехід перезапускає відлік. Відкритий віджет узагалі не дає питанню бути поставленим. - Пауза — серверна: віджет записує
{ at, codes }для кожного шляху у свої налаштування і надсилає вік якshown_ago_ms; сервер застосовує поточне вікно власника. Скорочення вікна в панелі діє одразу. - Клік робить те, що запропонував сервер:
{ kind: "navigate", url }іде через звичайну скасовувануshukai:action:navigate, тож SPA маршрутизує її сама;{ kind: "ask", text }відкриває чат і надсилає це питання.
Три події дозволяють хосту міряти частку відмов — справжній тест, чи піднята рука доречна, —
кожна з detail.codes, що називає знахідку:
Shukai.on("suggestion:shown", (e) => track("finding_shown", e.detail.codes));
Shukai.on("suggestion:accepted", (e) => track("finding_clicked", e.detail.codes));
Shukai.on("suggestion:dismissed", (e) => track("finding_dismissed", e.detail.codes));
Як знахідка виглядає з боку сервера власника — у Проактивних знахідках.
Що може змінити сторінка
teaserEnabled, teaserDelayMs, launcherAttention, faqs і greeting можна перевизначити в
ShukaiConfig; teaserDelayMs віддається фіксованим 4000, і значення на сторінці змінює лише цю
сторінку. proactive обчислюється сервером, і перевизначення на сторінці не вмикає нічого, на що
сервер відповів би.