
Jak vytvořit webového chatbota za pár minut: Kompletní průvodce FlowHunt
Naučte se, jak během 10 minut postavit výkonného AI chatbota pro váš web pomocí FlowHunt. Průvodce pokrývá nastavení, konfiguraci znalostní báze i nasazení....

Kompletni reference pro integraci FlowHunt JS API v2. Naucte se, jak vlozit chatbota, odebrat vsech 10 udalosti, pouzivat promenne toku, sledovat interakce pomoci URL parametru a programove ovladat okno chatu.
FlowHunt JS API vam dava plnou kontrolu nad tim, jak se chatbot integruje s vasim webem. Pomoci integracniho kodu v2 muzete vlozit chatbota, odebrat udalosti zivotniho cyklu a interakci, predavat dynamicka data prostrednictvim promennych toku, sledovat interakce pomoci URL parametru a programove ovladat okno chatu.
Tento pruvodce pokryva vsechny aspekty JS API s priklady kodu, ktere muzete zkopirovat a prizpusobit svemu projektu.
Kdyz v FlowHunt vytvorite chatbota, ziskate integracni fragment kodu. Zkopirujte ho a vlozte do vaseho HTML tesne pred uzaviraci tag </body>:
<script id="fh-chatbot-script-YOUR_CHATBOT_ID">
var currentScript = document.currentScript
|| document.getElementById('fh-chatbot-script-YOUR_CHATBOT_ID');
var script = document.createElement('script');
script.async = true;
script.src = 'https://app.flowhunt.io/api/chatbot/YOUR_CHATBOT_ID'
+ '?workspace_id=YOUR_WORKSPACE_ID&v=2';
script.onload = function() {
window.FHChatbot_YOUR_CHATBOT_ID.init(function(chatbotManager) {
// The chatbot is ready — use chatbotManager here
});
};
if (currentScript && currentScript.parentNode) {
currentScript.parentNode.insertBefore(script, currentScript.nextSibling);
} else {
document.head.appendChild(script);
}
</script>
Nahradte YOUR_CHATBOT_ID a YOUR_WORKSPACE_ID hodnotami z vaseho panelu FlowHunt. ID chatbota v nazvu globalni promenne (window.FHChatbot_YOUR_CHATBOT_ID) pouziva podtrzitka misto pomlcek.
Pred volanim init() muzete prepsat vychozi nastaveni chatbota pomoci setConfig():
<script id="fh-chatbot-script-YOUR_CHATBOT_ID">
var currentScript = document.currentScript
|| document.getElementById('fh-chatbot-script-YOUR_CHATBOT_ID');
var script = document.createElement('script');
script.async = true;
script.src = 'https://app.flowhunt.io/api/chatbot/YOUR_CHATBOT_ID'
+ '?workspace_id=YOUR_WORKSPACE_ID&v=2';
script.onload = function() {
window.FHChatbot_YOUR_CHATBOT_ID.setConfig({
headerTitle: 'Support Assistant',
maxWindowWidth: '700px',
showChatButton: false,
flowVariables: {
userId: '12345',
plan: 'enterprise'
},
urlSuffix: '?utm_source=chatbot'
});
window.FHChatbot_YOUR_CHATBOT_ID.init(function(chatbotManager) {
// Chatbot initialized with custom config
});
};
if (currentScript && currentScript.parentNode) {
currentScript.parentNode.insertBefore(script, currentScript.nextSibling);
} else {
document.head.appendChild(script);
}
</script>
| Option | Type | Popis |
|---|---|---|
headerTitle | string | Vlastni text zahlavi |
maxWindowWidth | string | Maximalni sirka okna chatu (napr. '700px') |
maxWindowHeight | string | Maximalni vyska okna chatu |
inputPlaceholder | string | Zastupny text pole pro zadavani zprav |
showChatButton | boolean | Zobrazit nebo skryt vychozi plovouci tlacitko chatu |
openChatPanel | boolean | Automaticky otevrit panel chatu pri nacteni stranky |
flowVariables | object | Pary klic-hodnota s vlastnimi daty predavanymi do toku |
urlSuffix | string | Retezec dotazu pripojeny ke vsem URL adresam generovanym chatbotem |
cookieConsent | boolean | Povolit uchovavani relace pomoci cookies |
embedded | string | Nastavte pro povoleni vlozeneho rezimu (bez tlacitka zavreni) |
theme | string | Rezim motivu |
Promenne toku vam umoznuji odesilat vlastni data z vaseho webu do toku chatbota. To umoznuje personalizovane konverzace na zaklade kontextu uzivatele.
window.FHChatbot_YOUR_CHATBOT_ID.setConfig({
flowVariables: {
userId: getCurrentUserId(),
userEmail: getCurrentUserEmail(),
currentPage: window.location.pathname,
plan: 'enterprise'
}
});
Po nastaveni jsou tyto promenne dostupne v logice toku chatbota, coz umoznuje personalizovat odpovedi, smerovat konverzace nebo predavat kontext AI agentum.
Parametr urlSuffix pripoji retezec dotazu ke kazde URL adrese generovane chatbotem. To je uzitecne pro sledovani provozu generovaneho chatbotem v analytickych nastrojich:
window.FHChatbot_YOUR_CHATBOT_ID.setConfig({
urlSuffix: '?utm_source=chatbot&utm_medium=widget'
});
Pripady pouziti:
FlowHunt JS API odesila 10 vlastnich udalosti na objektu window. Vsechny udalosti pouzivaji API CustomEvent
s nastavenim bubbles: true a composed: true.
Spustena, kdyz je widget chatbota plne vyrenderovan a pripraven k pouziti.
Spustena, kdyz je na serveru vytvorena nova relace chatu. Spusti se take pri restartovani relace.
Spustena, kdyz uzivatel otevre okno chatu.
Spustena, kdyz uzivatel zavre okno chatu.
Spustena, kdyz uzivatel odesle zpravu.
event.detail.metadata):{
"content": "Hello, I need help with...",
"createdAt": "2026-02-19T10:30:00.000Z"
}
Spustena, kdyz chatbot prijme a zobrazi odpoved.
event.detail.metadata):{
"flow_id": "abc123",
"message_id": "msg_456",
"message": "Sure, I can help you with that!",
"sender": {
"sender_name": "Support Agent",
"sender_avatar": "https://example.com/avatar.png"
}
}
Pole sender je volitelne a je pritomno pouze tehdy, kdyz je zapojen lidsky agent.
Spustena, kdyz uzivatel odesle data formulare prostrednictvim chatbota.
event.detail.metadata):{
"objectData": { "name": "John", "email": "john@example.com" },
"createdAt": "2026-02-19T10:31:00.000Z"
}
Spustena, kdyz uzivatel da palec nahoru nebo palec dolu na zpravu chatbota.
event.detail.metadata):{
"message_id": "msg_456",
"content": "Optional feedback text",
"feedback": "P"
}
Hodnota feedback je "P" pro pozitivni hodnoceni (palec nahoru) nebo "N" pro negativni (palec dolu).
Spustena, kdyz je behem zpracovani toku proveden nastroj nebo akce.
event.detail.metadata):{
"metadata": {
"flow_id": "abc123",
"message_id": "msg_789",
"message": "Calling search API..."
},
"createdAt": "2026-02-19T10:32:00.000Z"
}
Poznamka: Spousti se pouze v rezimech flowAssistant a flowAssistantV3, nikoli ve standardnim rezimu chatbota.
Spustena, kdyz behem provozu chatbota dojde k chybe.
event.detail.metadata):{
"metadata": {
"flow_id": "abc123",
"message_id": "msg_err",
"message": "Flow execution failed"
},
"createdAt": "2026-02-19T10:33:00.000Z"
}
Existuji dva zpusoby odberu udalosti chatbota.
Pouzijte window.addEventListener kdekoli na sve strance. Funguje to i pred nactenim chatbota:
<script>
document.addEventListener('DOMContentLoaded', function() {
// Chatbot lifecycle events
window.addEventListener('onFHChatbotReady', function(event) {
console.log('Chatbot is ready');
});
window.addEventListener('onFHChatbotSessionCreated', function(event) {
console.log('Session created');
});
window.addEventListener('onFHChatbotWindowOpened', function(event) {
console.log('Chat window opened');
});
window.addEventListener('onFHChatbotWindowClosed', function(event) {
console.log('Chat window closed');
});
// Message events
window.addEventListener('onFHMessageSent', function(event) {
console.log('User sent:', event.detail.metadata.content);
});
window.addEventListener('onFHMessageReceived', function(event) {
console.log('Bot replied:', event.detail.metadata.message);
});
window.addEventListener('onFHFormDataSent', function(event) {
console.log('Form submitted:', event.detail.metadata.objectData);
});
// Feedback
window.addEventListener('onFHFeedback', function(event) {
var feedback = event.detail.metadata;
console.log('Feedback on message', feedback.message_id, ':',
feedback.feedback);
});
// Tool calls (flowAssistant modes only)
window.addEventListener('onFHToolCall', function(event) {
console.log('Tool called:', event.detail.metadata);
});
// Errors
window.addEventListener('onFHError', function(event) {
console.error('Chatbot error:', event.detail.metadata);
});
});
</script>
Pro ukonceni naslouchani udalosti pouzijte removeEventListener se stejnou referenci funkce:
var handleMessage = function(event) {
console.log(event.detail.metadata);
};
window.addEventListener('onFHMessageReceived', handleMessage);
// Later, when you want to stop listening:
window.removeEventListener('onFHMessageReceived', handleMessage);
Uvnitr callbacku init() pouzijte vestavenych metod spravce chatbota:
window.FHChatbot_YOUR_CHATBOT_ID.init(function(chatbotManager) {
chatbotManager.onSessionCreated(function() {
console.log('Session created');
});
chatbotManager.onWindowOpened(function() {
console.log('Window opened');
});
chatbotManager.onWindowClosed(function() {
console.log('Window closed');
});
chatbotManager.onMessageSent(function(event) {
console.log('User sent:', event.metadata);
});
chatbotManager.onMessageReceived(function(event) {
console.log('Bot replied:', event.metadata);
});
chatbotManager.onFormDataSent(function(event) {
console.log('Form data:', event.metadata);
});
chatbotManager.onFeedback(function(event) {
console.log('Feedback:', event.metadata);
});
chatbotManager.onToolCall(function(event) {
console.log('Tool call:', event.metadata);
});
chatbotManager.onError(function(event) {
console.error('Error:', event.metadata);
});
});
| Method | Parameters | Popis |
|---|---|---|
onSessionCreated(fn) | fn: () => void | Naslouchejte vytvoreni relace |
onWindowOpened(fn) | fn: () => void | Naslouchejte otevreni okna |
onWindowClosed(fn) | fn: () => void | Naslouchejte zavreni okna |
onMessageSent(fn) | fn: (event) => void | Naslouchejte uzivatelskym zpravam |
onMessageReceived(fn) | fn: (event) => void | Naslouchejte odpovedim bota |
onFormDataSent(fn) | fn: (event) => void | Naslouchejte odeslani formularu |
onFeedback(fn) | fn: (event) => void | Naslouchejte zpetne vazbe uzivatelu |
onToolCall(fn) | fn: (event) => void | Naslouchejte spusteni nastroju |
onError(fn) | fn: (event) => void | Naslouchejte chybam |
openChat() | — | Otevre panel chatu |
closeChat() | — | Zavre panel chatu |
Pro uplnou kontrolu nad tim, kdy se chatbot zobrazi, skryjte vychozi plovouci tlacitko a otevrete chat programove — napriklad z vlastniho tlacitka.
<!-- Your custom chat button -->
<button id="my-chat-button">Chat with us</button>
<!-- FlowHunt integration with hidden default button -->
<script id="fh-chatbot-script-YOUR_CHATBOT_ID">
var currentScript = document.currentScript
|| document.getElementById('fh-chatbot-script-YOUR_CHATBOT_ID');
var script = document.createElement('script');
script.async = true;
script.src = 'https://app.flowhunt.io/api/chatbot/YOUR_CHATBOT_ID'
+ '?workspace_id=YOUR_WORKSPACE_ID&v=2';
script.onload = function() {
window.FHChatbot_YOUR_CHATBOT_ID.setConfig({
showChatButton: false
});
window.FHChatbot_YOUR_CHATBOT_ID.init(function(chatbotManager) {
// Open chat when your custom button is clicked
document.getElementById('my-chat-button')
.addEventListener('click', function() {
chatbotManager.openChat();
});
});
};
if (currentScript && currentScript.parentNode) {
currentScript.parentNode.insertBefore(script, currentScript.nextSibling);
} else {
document.head.appendChild(script);
}
</script>
Muzete kombinovat skrytou aktivaci s naslouchaci udalosti pro vytvoreni pokrocilych interakci:
<button id="open-chat" style="display:none;">Need help?</button>
<script>
// Show a custom button only when the chatbot is ready
window.addEventListener('onFHChatbotReady', function() {
document.getElementById('open-chat').style.display = 'block';
});
</script>
<!-- FlowHunt integration -->
<script id="fh-chatbot-script-YOUR_CHATBOT_ID">
var currentScript = document.currentScript
|| document.getElementById('fh-chatbot-script-YOUR_CHATBOT_ID');
var script = document.createElement('script');
script.async = true;
script.src = 'https://app.flowhunt.io/api/chatbot/YOUR_CHATBOT_ID'
+ '?workspace_id=YOUR_WORKSPACE_ID&v=2';
script.onload = function() {
window.FHChatbot_YOUR_CHATBOT_ID.setConfig({
showChatButton: false
});
window.FHChatbot_YOUR_CHATBOT_ID.init(function(chatbotManager) {
document.getElementById('open-chat')
.addEventListener('click', function() {
chatbotManager.openChat();
});
});
};
if (currentScript && currentScript.parentNode) {
currentScript.parentNode.insertBefore(script, currentScript.nextSibling);
} else {
document.head.appendChild(script);
}
</script>
Uplny funkcni priklad demonstrujici prepisy konfigurace, sledovani udalosti a vlastni aktivaci chatu dohromady:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>FlowHunt Chatbot Integration</title>
</head>
<body>
<h1>My Website</h1>
<button id="open-chat-btn">Talk to our AI assistant</button>
<button id="close-chat-btn">Close chat</button>
<!-- Subscribe to events before the chatbot loads -->
<script>
document.addEventListener('DOMContentLoaded', function() {
window.addEventListener('onFHChatbotReady', function() {
console.log('Chatbot widget is ready');
});
window.addEventListener('onFHChatbotSessionCreated', function() {
console.log('New chat session started');
});
window.addEventListener('onFHMessageSent', function(event) {
console.log('User message:', event.detail.metadata.content);
});
window.addEventListener('onFHMessageReceived', function(event) {
console.log('Bot response:', event.detail.metadata.message);
});
window.addEventListener('onFHFeedback', function(event) {
var fb = event.detail.metadata;
if (fb.feedback === 'P') {
console.log('Positive feedback on message', fb.message_id);
} else {
console.log('Negative feedback on message', fb.message_id);
}
});
window.addEventListener('onFHError', function(event) {
console.error('Chatbot error:', event.detail.metadata);
});
});
</script>
<!-- FlowHunt integration -->
<script id="fh-chatbot-script-YOUR_CHATBOT_ID">
var currentScript = document.currentScript
|| document.getElementById('fh-chatbot-script-YOUR_CHATBOT_ID');
var script = document.createElement('script');
script.async = true;
script.src = 'https://app.flowhunt.io/api/chatbot/YOUR_CHATBOT_ID'
+ '?workspace_id=YOUR_WORKSPACE_ID&v=2';
script.onload = function() {
window.FHChatbot_YOUR_CHATBOT_ID.setConfig({
showChatButton: false,
headerTitle: 'AI Assistant',
maxWindowWidth: '600px',
flowVariables: {
source: 'website',
page: window.location.pathname
},
urlSuffix: '?utm_source=chatbot'
});
window.FHChatbot_YOUR_CHATBOT_ID.init(function(chatbotManager) {
document.getElementById('open-chat-btn')
.addEventListener('click', function() {
chatbotManager.openChat();
});
document.getElementById('close-chat-btn')
.addEventListener('click', function() {
chatbotManager.closeChat();
});
});
};
if (currentScript && currentScript.parentNode) {
currentScript.parentNode.insertBefore(script, currentScript.nextSibling);
} else {
document.head.appendChild(script);
}
</script>
</body>
</html>

Naučte se, jak během 10 minut postavit výkonného AI chatbota pro váš web pomocí FlowHunt. Průvodce pokrývá nastavení, konfiguraci znalostní báze i nasazení....

Integrujte FlowHunt s interactive-mcp a umožněte bezpečnou, interaktivní komunikaci v reálném čase mezi velkými jazykovými modely a uživateli na lokálních stroj...

Chatboti jsou digitální nástroje, které simulují lidskou konverzaci pomocí AI a NLP, nabízejí nepřetržitou podporu, škálovatelnost a cenovou efektivitu. Objevte...