
Entegrasyonlar
FlowHunt, favori müşteri hizmetleri ve üretkenlik araçlarınızla entegre olur, böylece her yerde yapay zeka sohbet botları ve otomasyonun keyfini çıkarabilirsini...

FlowHunt JS API v2 entegrasyonu icin eksiksiz referans. Chatbot’u nasil gomecegini, tum 10 olaya nasil abone olacagini, akis degiskenlerini nasil kullanacagini, URL parametreleriyle etkilesimleri nasil takip edecegini ve sohbet penceresini programatik olarak nasil kontrol edecegini ogrenin.
FlowHunt JS API, chatbot’unuzun web sitenizle nasil entegre oldugu uzerinde tam kontrol saglar. v2 entegrasyon kodunu kullanarak chatbot’u gomebilir, yasam dongusu ve etkilesim olaylarina abone olabilir, akis degiskenleri araciligiyla dinamik veriler gonderebilir, URL parametreleriyle etkilesimleri takip edebilir ve sohbet penceresini programatik olarak kontrol edebilirsiniz.
Bu rehber, projenize kopyalayip uyarlayabileceginiz kod ornekleriyle JS API’nin her yonunu kapsar.
FlowHunt’ta bir chatbot olusturdugununzda, bir entegrasyon snippet’i alirsiniz. Bunu kopyalayin ve HTML’inizde kapanist </body> etiketinden hemen once yapisitirin:
<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>
YOUR_CHATBOT_ID ve YOUR_WORKSPACE_ID degerlerini FlowHunt panelinizden alinan degerlerle degistirin. Global degisken adindaki chatbot kimlligi (window.FHChatbot_YOUR_CHATBOT_ID) tire yerine alt cizgi kullanir.
init() cagirmadan once, setConfig() kullanarak varsayilan chatbot ayarlarini gecersiz kilabilirsiniz:
<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 | Description |
|---|---|---|
headerTitle | string | Ozel baslik metni |
maxWindowWidth | string | Maksimum sohbet penceresi genisligi (ornegin '700px') |
maxWindowHeight | string | Maksimum sohbet penceresi yuksekligi |
inputPlaceholder | string | Mesaj giris alani icin yer tutucu metin |
showChatButton | boolean | Varsayilan kayan sohbet butonunu goster veya gizle |
openChatPanel | boolean | Sayfa yuklendiginde sohbet panelini otomatik olarak ac |
flowVariables | object | Akisa gonderilen ozel verilerin anahtar-deger ciftleri |
urlSuffix | string | Chatbot tarafindan olusturulan tum URL’lere eklenen sorgu dizesi |
cookieConsent | boolean | Cerezler araciligiyla oturum kalicilgini etkinlestir |
embedded | string | Gomulu modu etkinlestirmek icin ayarlayin (kapatma butonu yok) |
theme | string | Tema modu |
Akis degiskenleri, web sitenizden chatbot akisina ozel veriler gondermenizi saglar. Bu, kullanici baglamina dayali kisisellestirilmis konusmalar olusturmanizi mumkun kilar.
window.FHChatbot_YOUR_CHATBOT_ID.setConfig({
flowVariables: {
userId: getCurrentUserId(),
userEmail: getCurrentUserEmail(),
currentPage: window.location.pathname,
plan: 'enterprise'
}
});
Ayarlandiktan sonra, bu degiskenler chatbot akis mantginiz icerisinde erisilebilir hale gelir ve yanitlari kisisellesirmenize, konusmalari yonlendirmenize veya AI ajanlarina baglam aktarmaniza olanak tanir.
urlSuffix parametresi, chatbot tarafindan olusturulan her URL’ye bir sorgu dizesi ekler. Bu, analitik araclarinda chatbot kaynakli trafigi takip etmek icin faydalidir:
window.FHChatbot_YOUR_CHATBOT_ID.setConfig({
urlSuffix: '?utm_source=chatbot&utm_medium=widget'
});
Kullanim alanlari:
FlowHunt JS API, window nesnesi uzerinde 10 ozel olay gonderir. Tum olaylar bubbles: true ve composed: true ile CustomEvent
API’sini kullanir.
Chatbot widget’i tamamen olusturuldugunda ve kullanima hazir oldugunda tetiklenir.
Sunucuda yeni bir sohbet oturumu olusturuldugunda tetiklenir. Oturum yeniden baslatildiginda da tetiklenir.
Kullanici sohbet penceresini actiginda tetiklenir.
Kullanici sohbet penceresini kapattiginda tetiklenir.
Kullanici bir mesaj gonderdiginde tetiklenir.
event.detail.metadata):{
"content": "Hello, I need help with...",
"createdAt": "2026-02-19T10:30:00.000Z"
}
Chatbot bir yanit alip gosterdiginde tetiklenir.
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"
}
}
sender alani istege baglidir ve yalnizca bir insan ajan dahil oldugunda mevcuttur.
Kullanici chatbot araciligiyla form verisi gonderdiginde tetiklenir.
event.detail.metadata):{
"objectData": { "name": "John", "email": "john@example.com" },
"createdAt": "2026-02-19T10:31:00.000Z"
}
Bir kullanici chatbot mesajina begeni veya begenmeme geri bildirimi verdiginde tetiklenir.
event.detail.metadata):{
"message_id": "msg_456",
"content": "Optional feedback text",
"feedback": "P"
}
feedback degeri olumlu (begeni) icin "P" veya olumsuz (begenmeme) icin "N" olur.
Akis isleme sirasinda bir arac veya eylem yurutuldugunde tetiklenir.
event.detail.metadata):{
"metadata": {
"flow_id": "abc123",
"message_id": "msg_789",
"message": "Calling search API..."
},
"createdAt": "2026-02-19T10:32:00.000Z"
}
Not: Yalnizca flowAssistant ve flowAssistantV3 modlarinda tetiklenir, standart chatbot modunda tetiklenmez.
Chatbot isletimi sirasinda bir hata olustugunda tetiklenir.
event.detail.metadata):{
"metadata": {
"flow_id": "abc123",
"message_id": "msg_err",
"message": "Flow execution failed"
},
"createdAt": "2026-02-19T10:33:00.000Z"
}
Chatbot olaylarina abone olmanin iki yolu vardir.
Sayfanizda herhangi bir yerde window.addEventListener kullanin. Bu, chatbot yuklenmeden once bile calisir:
<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>
Bir olayi dinlemeyi durdurmak icin, ayni fonksiyon referansiyla removeEventListener kullanin:
var handleMessage = function(event) {
console.log(event.detail.metadata);
};
window.addEventListener('onFHMessageReceived', handleMessage);
// Later, when you want to stop listening:
window.removeEventListener('onFHMessageReceived', handleMessage);
init() callback’i icerisinde, chatbot yoneticisinin yerlesik metodlarini kullanin:
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 | Description |
|---|---|---|
onSessionCreated(fn) | fn: () => void | Oturum olusturulmasini dinle |
onWindowOpened(fn) | fn: () => void | Pencere acilmasini dinle |
onWindowClosed(fn) | fn: () => void | Pencere kapanmasini dinle |
onMessageSent(fn) | fn: (event) => void | Kullanici mesajlarini dinle |
onMessageReceived(fn) | fn: (event) => void | Bot yanitlarini dinle |
onFormDataSent(fn) | fn: (event) => void | Form gonderimlerini dinle |
onFeedback(fn) | fn: (event) => void | Kullanici geri bildirimini dinle |
onToolCall(fn) | fn: (event) => void | Arac yurutmelerini dinle |
onError(fn) | fn: (event) => void | Hatalari dinle |
openChat() | — | Sohbet panelini acar |
closeChat() | — | Sohbet panelini kapatir |
Chatbot’un ne zaman gorunecegini tamamen kontrol etmek icin, varsayilan kayan butonu gizleyin ve sohbeti programatik olarak acin — ornegin, kendi ozel butonunuzdan.
<!-- 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>
Gelismis etkilesimler olusturmak icin gizli aktivasyonu olay dinleyicileriyle birlestirebilirsiniz:
<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>
Yapilandirma gecersiz kilma, olay takibi ve ozel sohbet aktivasyonunu birlikte gosteren tam calisir bir ornek:
<!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>

FlowHunt, favori müşteri hizmetleri ve üretkenlik araçlarınızla entegre olur, böylece her yerde yapay zeka sohbet botları ve otomasyonun keyfini çıkarabilirsini...

FlowHunt'u interactive-mcp ile entegre ederek büyük dil modelleri ve kullanıcılar arasında yerel makinelerde güvenli, gerçek zamanlı iletişim sağlayın. Kullanıc...

FlowHunt'u, ClojureScript ile geliştirilmiş kendi kendini değiştiren Model Context Protocol sunucusu MCP-PIF-CLJS ile entegre edin. Yapay zeka ajanlarının güven...
Çerez Onayı
Göz atma deneyiminizi geliştirmek ve trafiğimizi analiz etmek için çerezleri kullanıyoruz. See our privacy policy.