Негізгі мазмұнға өту

Сайт виджеттері

Келушілер дауыстық сөйлесуді тікелей браузерден бастай алатындай дауыстық агентіңізді кез келген веб-сайтқа кірістіріңіз. Widgets қойындысы embed кодтарын, теңшеу опцияларын және домен қауіпсіздігі параметрлерін ұсынады.

Callback виджетін іздеп жүрсіз бе?

Callback Widget осы беттегі виджеттерден мүлдем басқаша жұмыс істейді — браузердегі дауыстық қоңырауды бастаудың орнына, ол келушінің телефон нөмірін жинап, агентіңізге оларға кері қоңырау шалдырады. Арнайы Callback Widget бетін қараңыз.

Виджет түрлері

Hanc.AI төрт браузердегі виджет түрін ұсынады, оған қоса телефон кері қоңыраулары үшін бөлек Callback Widget:

ВиджетТег атауыСипаттамаНенің үшін жақсы
Floating Widgethanc-ai-floating-callБетіңіздің үстінде қалқып тұратын шар батырмаӘрдайым көрінетін әрекетке шақыру
Pill Widgethanc-ai-pill-callМазмұныңызда жолшыбай орналастырылған ықшам пилюля пішінді батырмаБар макет ішіндегі минималды із
Pill Floating Widgethanc-ai-pill-floating-callPill сияқты ықшам пилюля пішіні, бірақ Floating виджеті сияқты бетпен бірге қалқидыКелуші айналдырғанда оны ертіп жүретін пилюля эстетикасын қалағанда
Inline Widgethanc-ai-inline-callБет мазмұнына кірістірілген толық өлшемді қоңырау батырмасыАрнайы "Talk to Us" бөлімдері
Callback Widgethanc-ai-callbackТелефон нөмірі формасы; агент келушіге кері қоңырау шаладыЛид жинайтын беттер, жоғары ниетті лендинг беттер — Callback Widget қараңыз

Ортақ атрибуттар

Барлық виджет түрлері мына негізгі атрибуттарды қолдайды:

АтрибутМіндеттіСипаттамаӘдепкі
agent-idИәАгентіңіздің бірегей идентификаторы
voice-service-urlЖоқДауыс қызметінің URL-ін қайта анықтауАвто-анықталады
api-base-urlЖоқAPI базалық URL-ін қайта анықтауАвто-анықталады

Дисплей атрибуттары

АтрибутСипаттамаМәндерӘдепкі
positionБеттегі виджет орныbottom-right, bottom-left, top-right, top-left, staticbottom-right
sizeВиджет өлшемі пиксельменСан120
themeТүс тақырыбының атауыТүс тақырыптары қараңызdefault

Батырма мәтіні атрибуттары

АтрибутСипаттамаӘдепкі
button-start-textКүту режиміндегі батырмада көрсетілетін мәтін"Call"
button-connecting-textҚосылу кезінде көрсетілетін мәтін"Connecting..."
button-end-textБелсенді қоңырау кезінде көрсетілетін мәтін

Terms атрибуттары

АтрибутСипаттамаӘдепкі
terms-enabledҚоңырау алдында келісім диалогын қосуfalse
terms-contentMarkdown пішіміндегі келісім мәтіні""
terms-urlTerms & Conditions бетіне сілтеме"https://hanc.ai/terms"
privacy-urlPrivacy Policy бетіне сілтеме"https://hanc.ai/privacy"
ақпарат

HTML элементінде орнатылған Terms атрибуттарын, skip-fetch true мәніне орнатылмаған болса, API-дан алынған агенттің виджет параметрлері қайта анықтайды.

Дыбыс атрибуттары

АтрибутСипаттамаӘдепкі
sound-enabledҚоңырау басталу/аяқталу дыбыстарын қосуtrue
sound-volumeДыбыстық эффект дауысы0.25
sound-presetДыбыс алдын ала орнату идентификаторы"1"

Түс тақырыптары

Виджет көрінісін 11 кіріктірілген түс тақырыбымен теңшеңіз:

ТақырыпМәні
Defaultdefault
Purplepurple
Blueblue
Cyancyan
Emeraldemerald
Amberamber
Tangerinetangerine
Roserose
Emberember
Blackblack
Whitewhite

Әр тақырыптың қараңғы да, ашық та нұсқалары бар. Тақырыпты embed кодындағы theme атрибуты арқылы орнатыңыз немесе оны агенттің виджет параметрлерінде конфигурациялаңыз.


Кірістіру мысалдары

Floating Widget

<hanc-ai-floating-call agent-id="YOUR_AGENT_ID"></hanc-ai-floating-call>
<script src="https://unpkg.com/hanc-webrtc-widgets" async type="text/javascript"></script>

Тақырыбы мен орны бар Floating Widget

<hanc-ai-floating-call
agent-id="YOUR_AGENT_ID"
theme="emerald"
position="bottom-left"
size="140"
></hanc-ai-floating-call>
<script src="https://unpkg.com/hanc-webrtc-widgets" async type="text/javascript"></script>

Pill Widget

<hanc-ai-pill-call agent-id="YOUR_AGENT_ID"></hanc-ai-pill-call>
<script src="https://unpkg.com/hanc-webrtc-widgets" async type="text/javascript"></script>

Inline Widget

<hanc-ai-inline-call agent-id="YOUR_AGENT_ID"></hanc-ai-inline-call>
<script src="https://unpkg.com/hanc-webrtc-widgets" async type="text/javascript"></script>
Виджет нұсқасын бекіту

Жоғарыдағы скрипт URL-і әрдайым соңғы шығарылған виджетті жүктейді — сайтыңыз жақсартуларды автоматты түрде қабылдайды, ал нұсқа көрсетілмегенде @latest әдепкі болады. Тұрақты шығарылымға бекіту қажет болса, қалаған нұсқаны қосу арқылы нақты бекітіңіз, мысалы https://unpkg.com/hanc-webrtc-widgets@X.Y.Z.


Виджет оқиғалары

Виджеттер JavaScript-те тыңдай алатын оқиғаларды шығарады:

ОқиғаСипаттама
status-changedҚоңырау мәртебесі өзгергенде іске қосылады
connectingҚоңырау орнатылып жатыр
connectedҚоңырау белсенді
idleБелсенді қоңырау жоқ
errorҚате орын алды
audio-trackҚашықтағы аудио трек алынды (визуализация үшін)
local-audio-trackЖергілікті микрофон аудио трегі (визуализация үшін)
microphone-enabledМикрофон қосылды
microphone-disabledМикрофон өшірілді
call-startҚоңырау сәтті басталғанда іске қосылады
call-endҚоңырау аяқталғанда іске қосылады

Мысал: Оқиғаларды тыңдау

const widget = document.querySelector('hanc-ai-floating-call');

widget.addEventListener('call-start', () => {
console.log('Call started');
});

widget.addEventListener('call-end', () => {
console.log('Call ended');
});

Агентке беттерді ашуға рұқсат беру

Браузерден қоңырау кезінде агент сіздің сайтыңыздан бетті ашуды сұрай алады — «тарифтерді көрсетейін» — және келуші мұны әңгімені үзбей көреді.

Шешім сіздің бетіңізде қалады. Агент сұрау жібереді, оның нені білдіретінін кодыңыз шешеді. Мекенжайды ашу, қойындыны ауыстыру, бөлімге жылжу, аккордеонды жаю — бәрі жарамды жауап.

Үш қадам қажет, олардың ешқайсысы жеке жұмыс істемейді.

1-қадам — Агентке қандай беттер бар екенін айтыңыз

Агент сайтыңыздың картасын көрмейді. Ол тек өзіңіз берген жолды сұрайды — оларды агенттің промптында немесе білім базасында тізіп беріңіз:

Сайтымыздың беттері:
/pricing — тарифтер мен бағалар
/contact — байланыс формасы және телефон
/product/crm — CRM

Бұл қадамды өткізіп жіберсеңіз, агенттің сұрайтыны болмайды, сондықтан ол тіпті әрекет жасамайды.

2-қадам — Сұрауды өз бетіңізде өңдеңіз

Мұны бір рет, виджет скриптінен кейін кез келген жерге қосыңыз. Оқиға бет бойымен жоғары көтеріледі, сондықтан document — қолайлы орын:

<script>
document.addEventListener('agent-command', (event) => {
const { type, payload } = event.detail;

if (type === 'navigate') {
// SPA: қайта жүктеусіз өту — қоңырау жалғасады.
router.push(payload.path);

// Кәдімгі сайт: екінші қойынды ашыңыз, бұл (және қоңырау) тірі қалады.
// window.open(payload.path, '_blank');

event.preventDefault(); // ← агентке «қабылданды» дейтін осы
}
});
</script>
Беттің толық қайта жүктелуі қоңырауды үзеді

Қоңырау осы беттің ішінде тұр. window.location.href = … құжатты жүктеуден шығарады, әңгіме де онымен бірге кетеді — келушіні сөз ортасында үзеді. Роутеріңіз болса, клиент жағында өтіңіз; болмаса, бетті жаңа қойындыда ашыңыз. Қайта қосылу жоқ: қайта жүктеуден ештеңе аман қалмайды.

preventDefault() міндетті

Бұл «мен өңдедім» деудің жалғыз жолы. Онсыз агентке сайт навигацияны қолдамайды деп хабарланады: қоңыраудың соңына дейін ол әрекетті тоқтатады және қайда басу керегін айтуға қайта оралады. Консольде ештеңе шықпайды — бет жай ғана сұрауды елемегендей көрінеді, өйткені солай болды.

3-қадам — Тексеріңіз

Сайттан агентіңізге қоңырау шалып, бетті атымен сұраңыз. Екі нәрсе болуы тиіс: бет ашылады және агент «мәзірден табасыз» дегеннің орнына «міне, бағалар» дейді.


Агентке деректермен жауап беру

Кейбір командалар — нұсқау емес, сұрақ. Олар да солай келеді, бірақ жауап respond() арқылы беріледі:

КомандаАгент нені сұрайдыНемен жауап бересіз
navigate«осы жолды аш»ештеңемен — preventDefault() жеткілікті
page_context«келуші не көріп тұр?»пайдалы кез келген нәрсемен: жол, тақырып, тауар
cart_state«себетінде не бар?»позициялар, сомалар, валюта
<script>
document.addEventListener('agent-command', (event) => {
const { type, respond } = event.detail;

if (type === 'page_context') {
event.preventDefault();
respond({ path: location.pathname, title: document.title });
}
});
</script>

preventDefault() кейін жауап беруге шамамен бір секунд бар: await жарайды, баяу API шақыруы жарамайды. Қолда барымен жауап беріңіз.


Агент нені сұрай алады, нені сұрай алмайды

  • Тек өз сайтыңыздың ішіндегі жолдар. Жол / таңбасынан басталуы керек. Доменнен шығуы мүмкін кез келген нәрсе — //evil.com, https://…, кері қиғаш сызықтар — бетке жетпей тұрып қабылданбайды. Агент келушілеріңізді басқа жаққа жібере алмайды.
  • Тек браузерден қоңыраулар. Телефон қоңырауында ашатын бет жоқ, сондықтан онда бұл командалар болмайды.
  • Бір бас тарту жеткілікті. Бетіңіз бірінші сұрауды растамаса, агент қоңыраудың соңына дейін сұрауды қояды. Ол қайта әрекеттенбейді және — ең бастысы — келушіге ашпаған нәрсесін аштым демейді.
Ештеңе болмай жатыр ма?

Сүзгіден өткізбес бұрын әр команданы журналға жазыңыз: document.addEventListener('agent-command', e => console.log(e.detail)). Консольде navigate көрсеңіз, агент өз ісін атқарған, демек preventDefault() немесе өз өңдеушіңіз жетіспейді. Ештеңе көрмесеңіз, агентке мұндай жолдың бар екені айтылмаған — 1-қадамға оралыңыз.


Техникалық талаптар

Виджеттер келушінің браузерінен мыналарды қолдауды талап етеді:

  • WebGL 2.0 — рендерлеу үшін
  • Web Audio API — аудио өңдеу үшін
  • WebRTC — нақты уақыттағы дауыстық байланыс үшін

Барлық заманауи браузерлер (Chrome, Firefox, Safari, Edge) осы технологияларды қолдайды.


Домен шектеулері

Агент виджетіңізді қай веб-сайттар кірістіре алатынын басқарыңыз.

Әрдайым рұқсат етілген домендер

Мына домендер конфигурацияға қарамастан әрдайым рұқсат етіледі:

  • hanc.ai (және субдомендер)
  • hanc.me (және субдомендер)
  • localhost

Барлық домендерге рұқсат ету

Әдепкі бойынша виджетіңізді кез келген веб-сайтқа кірістіруге болады. Мұны шектеу үшін виджет параметрлерінде "Allow all domains" ауыстырғышын қолданыңыз.

Нақты домендермен шектеу

Шектелген кезде рұқсат етілуі тиіс әр доменді қосыңыз:

  • Домен атауларын https:// жоқ енгізіңіз (мысалы, example.com)
  • Субдомендерге бөлек жазбалар қажет (мысалы, www.example.com, shop.example.com)
  • Порттарды көрсетуге болады (мысалы, localhost:3000)
  • Ең көбі 50 домен ақ тізімге енгізуге болады
Қауіпсіздік

Өндірістік агенттер үшін рұқсатсыз кірістіруді болдырмас үшін виджеттерді өз домендеріңізбен шектеңіз.


Terms & Conditions

Қоңырау шалушылар сөйлесуді бастамас бұрын келісім диалогын қосыңыз.

Конфигурация

ПараметрСипаттама
Enable TermsTerms диалогын қосу/өшіру
Terms ContentПайдаланушыларға көрсетілетін Markdown пішіміндегі келісім мәтіні (ең көбі 5,000 таңба)
Terms URLТолық Terms & Conditions бетіне сілтеме
Privacy URLPrivacy Policy бетіне сілтеме

Қосылған кезде:

  • Пайдаланушылар қоңырауды бастамас бұрын келісім диалогын көреді
  • Жалғастыру үшін олар "Agree" батырмасын басуы керек
  • Келісім браузерде жергілікті сақталады
  • Reset Consent батырмасы сынау үшін сақталған келісімді тазалайды

Мазмұнды пішімдеу

Terms мазмұны Markdown пішімдеуін қолдайды:

  • Тақырыптар үшін #### қолданыңыз
  • Ерекшелеу үшін **bold** қолданыңыз
  • Оқуға ыңғайлылық үшін жол ауыстыруларды қолданыңыз

Қатысты