
interactive-mcp
Integreer FlowHunt met interactive-mcp om veilige, realtime communicatie mogelijk te maken tussen grote taalmodellen en gebruikers op lokale machines. Leg gebru...

Volledige referentie voor de FlowHunt JS API v2-integratie. Sluit de chatbot in, abonneer op alle 11 events, gebruik flow-variabelen, activeer de Chat Hook trigger midden in een gesprek met sendHook(), volg interacties met URL-parameters en bestuur het chatvenster programmatisch.
De FlowHunt JS API geeft u volledige controle over hoe uw chatbot integreert met uw website. Met de v2-integratiecode kunt u de chatbot insluiten, zich abonneren op levenscyclus- en interactie-events, dynamische gegevens doorgeven via flow-variabelen, de Chat Hook trigger midden in een gesprek activeren met sendHook(), interacties bijhouden met URL-parameters en het chatvenster programmatisch besturen.
Deze gids behandelt elk aspect van de JS API met codevoorbeelden die u kunt kopiëren en aanpassen aan uw project.
Kopieer en plak het onderstaande fragment in uw HTML vlak voor de afsluitende </body>-tag. Vervang YOUR_CHATBOT_ID en YOUR_WORKSPACE_ID door de waarden uit uw FlowHunt-chatbotinstellingen.
<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>
Het chatbot-ID in de globale variabelenaam (window.FHChatbot_YOUR_CHATBOT_ID) gebruikt underscores in plaats van koppeltekens.
setConfig()Voordat u init() aanroept, kunt u de standaard chatbot-instellingen overschrijven met 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 initialised with custom config
});
};
if (currentScript && currentScript.parentNode) {
currentScript.parentNode.insertBefore(script, currentScript.nextSibling);
} else {
document.head.appendChild(script);
}
</script>
| Optie | Type | Beschrijving |
|---|---|---|
headerTitle | string | Aangepaste koptekst |
maxWindowWidth | string | Maximale breedte van het chatvenster (bijv. "700px") |
maxWindowHeight | string | Maximale hoogte van het chatvenster |
inputPlaceholder | string | Plaatsaanduidingstekst voor het berichtinvoerveld |
showChatButton | boolean | De standaard zwevende chatknop tonen of verbergen |
openChatPanel | boolean | Het chatpaneel automatisch openen bij het laden van de pagina |
flowVariables | object | Sleutel-waardeparen van aangepaste gegevens die aan de flow worden doorgegeven. Waarden mogen elk JSON-serialiseerbaar type zijn (string, number, boolean, object, array). |
urlSuffix | string | Querystring die wordt toegevoegd aan alle door de chatbot gegenereerde URL’s |
cookieConsent | boolean | Sessiepersistentie via cookies inschakelen |
embedded | string | Instellen om de ingesloten modus in te schakelen (geen sluitknop) |
theme | string | Themamodus |
flowVariables worden samengevoegd in elke sessie die de chatbot aanmaakt. Ze worden doorgaans gebruikt als statische context (bekend bij het laden van de pagina): de gebruikers-ID, het abonnement, de huidige locale, enz.
window.FHChatbot_YOUR_CHATBOT_ID.setConfig({
flowVariables: {
userId: getCurrentUserId(),
userEmail: getCurrentUserEmail(),
currentPage: window.location.pathname,
plan: 'enterprise',
},
});
Als de gebruiker navigeert nadat de chat is geopend, worden de hier doorgegeven waarden verouderd. Om ze midden in een gesprek bij te werken, roept u
chatbotManager.sendHook()aan metoptions.flowVariables— zie Communicatie van host → flow midden in gesprek hieronder.
De parameter urlSuffix voegt een querystring toe aan elke URL die door de chatbot wordt gegenereerd. Dit is handig om chatbot-afkomstig verkeer bij te houden in analysetools:
window.FHChatbot_YOUR_CHATBOT_ID.setConfig({
urlSuffix: '?utm_source=chatbot&utm_medium=widget',
});
Gebruiksscenario’s:
Toegevoegd in april 2026 als onderdeel van de FlowHunt Chat Hook-functie.
In single-page applicaties blijft het chatvenster doorgaans open terwijl de gebruiker tussen schermen navigeert. Zodra de chat actief is, worden flowVariables die via setConfig() zijn doorgegeven verouderd, en is er geen manier om de flow op de hoogte te stellen van iets dat is gebeurd op de hostpagina. Eén enkele manager-methode — sendHook(name, payload, options?) — dekt zowel de “trigger activeren”- als de “alleen context bijwerken”-gebruiksscenario’s:
name en (optioneel) een payload door om de Chat Hook-trigger van de flow te activeren. De flow-auteur plaatst één Chat Hook-node op het canvas en vertakt op {ChatHook.hook_name} om te beslissen wat te doen.options.flowVariables door om sessievariabelen tegelijkertijd samen te voegen — de waarden worden bewaard voordat de trigger wordt geactiveerd en blijven beschikbaar voor de rest van de sessie.options.flowVariables wordt nog steeds samengevoegd, maar er wordt geen trigger uitgevoerd en er worden geen credits in rekening gebracht. Dit betekent dat hostpagina’s sendHook() optimistisch kunnen aanroepen zonder te weten of de flow-auteur al een trigger heeft aangesloten.sendHook() is een veilige no-op voordat de sessie bestaat (intern gebufferd en doorgestuurd zodra de sessie is aangemaakt) en gooit nooit een fout naar de hostpagina — netwerkfouten worden alleen gelogd via console.warn.
Server- en clientzijdige grenzen die van toepassing zijn op sendHook(). Het overtreden ervan is geen crash — de backend retourneert HTTP 422 en de manager logt via console.warn zonder een fout te gooien.
| Beperking | Limiet | Waar afgedwongen | Bij overtreding |
|---|---|---|---|
Lengte van sendHook name | 1–256 tekens | Backend (Pydantic) | HTTP 422, trigger wordt niet geactiveerd |
Aantal sleutels in options.flowVariables | ≤ 64 | Backend (Pydantic) | HTTP 422, niets wordt bewaard |
Lengte van elke sleutel in options.flowVariables | ≤ 128 tekens | Backend (Pydantic) | HTTP 422, niets wordt bewaard |
| Pre-sessie aanroepen gebufferd door de manager | 50 | Widget (in browser) | Oudste wachtende aanroep wordt verwijderd en een console.warn wordt gelogd |
De pre-sessie buffer-limiet is alleen relevant op pagina’s waar het aanmaken van een sessie voor onbepaalde tijd mislukt (bijv. een permanente netwerkfout). Onder normale omstandigheden wordt de wachtrij doorgestuurd zodra onFHChatbotSessionCreated wordt geactiveerd.
onFHError).hook_name, payload, flow_variables) met de downstream-stappen die u wilt activeren (Generator, Chat Output, Tool Calls, conditionele vertakkingen op hook_name, enz.).De name die de hostpagina doorgeeft aan sendHook() is een label voor uw flow om op te vertakken, geen routeringssleutel — de backend vergelijkt namen niet met nodes. In plaats daarvan wordt de enkele Chat Hook-trigger van de flow geactiveerd en stelt de naam beschikbaar als {ChatHook.hook_name}, waarnaar u in uw flow-logica verwijst om te beslissen wat te doen.
Voorbeeld systeemprompt:
If {ChatHook.hook_name} is "screen_changed", briefly summarise the page at
{ChatHook.payload.url}. If it is "user_action", acknowledge the action and
update memory. Otherwise, continue the conversation normally.
Voor complexere routering kunt u een conditionele stap aansluiten op {ChatHook.hook_name} en vertakken naar meerdere downstream-paden.
chatbotManager.sendHook(name, payload, options?)chatbotManager.sendHook(
name: string,
payload?: Record<string, unknown>,
options?: { flowVariables?: Record<string, unknown> }
): Promise<void>;
Argumenten
| Argument | Type | Vereist | Beschrijving |
|---|---|---|---|
name | string | ja | Label dat aan de flow wordt doorgegeven als {ChatHook.hook_name}. De trigger wordt ongeacht de waarde geactiveerd; uw flow-logica vertakt erop. |
payload | object | nee | JSON-payload die aan de trigger wordt overhandigd als {ChatHook.payload}. Wordt gevalideerd tegen het schema van de node indien ingeschakeld. Standaard {}. |
options.flowVariables | object | nee | Sessievariabelen die voor het activeren van de trigger worden samengevoegd. Beschikbaar voor downstream-stappen en toekomstige gebruikersberichten. |
Gedrag
onFHChatbotSessionCreated is veilig; de aanroep wordt gebufferd en doorgestuurd zodra de sessie bestaat. De buffer is begrensd — zie Invoerlimieten hierboven.sendHook() optimistisch kunnen aanroepen voordat de flow-auteur een trigger heeft aangesloten. options.flowVariables wordt zelfs in dat geval bewaard, dus dezelfde aanroep dient als een alleen-context-update.onFHError).name en options.flowVariables zijn begrensd — zie Invoerlimieten hierboven. Overtredingen retourneren HTTP 422 en niets wordt bewaard.onFHChatbotFlowVariablesUpdate-event uit als options.flowVariables is meegegeven (zie Event-referentie).console.warn.Voorbeeld — proactieve suggestie bij SPA-navigatie
window.FHChatbot_YOUR_CHATBOT_ID.init(function (chatbotManager) {
window.addEventListener('hashchange', function () {
chatbotManager.sendHook('screen_changed', {
url: window.location.href,
screen_name: getScreenName(),
}, {
flowVariables: { current_page_url: window.location.href },
});
});
});
Voorbeeld — alleen-context-update (geen Chat Hook aangesloten)
Als de flow geen Chat Hook-trigger heeft, is de aanroep een stille 200 — dus dezelfde API kan flow_variables synchroon houden zonder iets te activeren:
window.FHChatbot_YOUR_CHATBOT_ID.init(function (chatbotManager) {
window.addEventListener('hashchange', function () {
chatbotManager.sendHook('navigate', {}, {
flowVariables: {
current_page_url: window.location.href,
screen_name: getScreenName(),
},
});
});
});
{ChatHook.hook_name} en {ChatHook.payload.foo} — waarden die zijn doorgegeven via sendHook('x', { foo: 1 }) worden weergegeven op het uitvoeringspad van de Chat Hook-trigger. Alleen beschikbaar op het pad dat door de hook-activering is gestart.{flow_variables.foo} — waarden die zijn doorgegeven via options.flowVariables worden samengevoegd in de variabelenset van de sessie voordat de trigger wordt geactiveerd. Elk uitvoeringspad (inclusief normale Chat Input-getriggerde gebruikersberichten) kan ze lezen.Als u wilt dat het volgende gebruikersbericht een nieuwe waarde ziet, plaats deze dan in options.flowVariables — alleen de payload heeft alleen invloed op de uitvoeringsrun die door die hook is gestart.
De FlowHunt JS API verzendt 11 aangepaste events op het window-object. Alle events gebruiken de CustomEvent
API met bubbles: true en composed: true.
onFHChatbotReadyWordt geactiveerd wanneer de chatbot-widget volledig is weergegeven en klaar is voor gebruik.
onFHChatbotSessionCreatedWordt geactiveerd wanneer een nieuwe chatsessie op de server wordt aangemaakt.
event.detail.sessionId — het ID van de zojuist aangemaakte sessie.onFHChatbotWindowOpenedWordt geactiveerd wanneer de gebruiker het chatvenster opent. Wordt niet geactiveerd in de ingesloten modus.
onFHChatbotWindowClosedWordt geactiveerd wanneer de gebruiker het chatvenster sluit. Wordt niet geactiveerd in de ingesloten modus.
onFHMessageSentWordt geactiveerd wanneer de gebruiker een bericht verzendt.
event.detail.metadata = {
content: 'Hello, I need help with...',
createdAt: '2026-02-19T10:30:00.000Z',
};
onFHMessageReceivedWordt geactiveerd wanneer de chatbot een antwoord ontvangt en weergeeft.
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 is optioneel en alleen aanwezig wanneer een menselijke agent betrokken is.
onFHFormDataSentWordt geactiveerd wanneer de gebruiker formuliergegevens indient via de chatbot.
event.detail.metadata = {
objectData: { name: 'John', email: 'john@example.com' },
createdAt: '2026-02-19T10:31:00.000Z',
};
onFHFeedbackWordt geactiveerd wanneer een gebruiker duim-omhoog of duim-omlaag feedback geeft op een chatbot-bericht.
event.detail.metadata = {
message_id: 'msg_456',
content: 'Optional feedback text',
feedback: 'P', // 'P' = positive, 'N' = negative
};
onFHToolCallWordt geactiveerd wanneer een tool of actie wordt uitgevoerd tijdens de verwerking van de flow. Wordt alleen geactiveerd in de modi flowAssistant en flowAssistantV3.
event.detail.metadata = {
metadata: {
flow_id: 'abc123',
message_id: 'msg_789',
message: 'Calling search API...',
},
createdAt: '2026-02-19T10:32:00.000Z',
};
onFHErrorWordt geactiveerd wanneer er een fout optreedt tijdens de werking van de chatbot.
event.detail.metadata = {
metadata: {
flow_id: 'abc123',
message_id: 'msg_err',
message: 'Flow execution failed',
},
createdAt: '2026-02-19T10:33:00.000Z',
};
onFHChatbotFlowVariablesUpdateToegevoegd in april 2026.
Wordt geactiveerd na een succesvolle chatbotManager.sendHook(...)-aanroep waarbij options.flowVariables werd meegegeven. Wordt niet geactiveerd voor sendHook()-aanroepen die flowVariables weglaten.
event.detail = {
variables: {
current_page_url: 'https://example.com/products',
screen_name: 'products',
},
};
Gebruik het om samengevoegde variabelen te observeren (bijv. om uw eigen host-side state te synchroniseren, voor debugging, of om een UI-element opnieuw te renderen dat afhankelijk is van dezelfde gegevens).
Er zijn twee manieren om u te abonneren op chatbot-events.
Gebruik window.addEventListener overal op uw pagina. Dit werkt zelfs voordat de chatbot is geladen:
<script>
document.addEventListener('DOMContentLoaded', function () {
window.addEventListener('onFHChatbotReady', function () {
console.log('Chatbot is ready');
});
window.addEventListener('onFHChatbotSessionCreated', function (event) {
console.log('Session created:', event.detail.sessionId);
});
window.addEventListener('onFHChatbotWindowOpened', function () {
console.log('Chat window opened');
});
window.addEventListener('onFHChatbotWindowClosed', function () {
console.log('Chat window closed');
});
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);
});
window.addEventListener('onFHFeedback', function (event) {
var fb = event.detail.metadata;
console.log('Feedback on message', fb.message_id, ':', fb.feedback);
});
window.addEventListener('onFHToolCall', function (event) {
console.log('Tool called:', event.detail.metadata);
});
window.addEventListener('onFHError', function (event) {
console.error('Chatbot error:', event.detail.metadata);
});
window.addEventListener('onFHChatbotFlowVariablesUpdate', function (event) {
console.log('Variables merged:', event.detail.variables);
});
});
</script>
Om een listener te verwijderen, houdt u de handler-referentie vast:
var handleMessage = function (event) {
console.log(event.detail.metadata);
};
window.addEventListener('onFHMessageReceived', handleMessage);
// Later …
window.removeEventListener('onFHMessageReceived', handleMessage);
Binnen de init()-callback gebruikt u de ingebouwde methoden van de chatbot manager:
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);
});
});
| Methode | Parameters | Beschrijving |
|---|---|---|
onSessionCreated(fn) | fn: () => void | Luisteren naar sessie-aanmaak |
onWindowOpened(fn) | fn: () => void | Luisteren naar het openen van het venster |
onWindowClosed(fn) | fn: () => void | Luisteren naar het sluiten van het venster |
onMessageSent(fn) | fn: (event) => void | Luisteren naar gebruikersberichten |
onMessageReceived(fn) | fn: (event) => void | Luisteren naar bot-antwoorden |
onFormDataSent(fn) | fn: (event) => void | Luisteren naar formulierinzendingen |
onFeedback(fn) | fn: (event) => void | Luisteren naar gebruikersfeedback |
onToolCall(fn) | fn: (event) => void | Luisteren naar tool-uitvoeringen |
onError(fn) | fn: (event) => void | Luisteren naar fouten |
openChat() | — | Het chatpaneel openen |
closeChat() | — | Het chatpaneel sluiten |
sendHook(name, payload?, options?) (nieuw) | name: string, payload?: object, options?: { flowVariables?: object } | De Chat Hook-trigger in de actieve flow activeren (of options.flowVariables stilletjes samenvoegen als geen trigger is aangesloten) |
Om volledig te bepalen wanneer de chatbot verschijnt, verbergt u de standaard zwevende knop en opent u de chat programmatisch — bijvoorbeeld via uw eigen aangepaste knop.
<button id="my-chat-button">Chat with us</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) {
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>
U kunt verborgen activering combineren met event listeners om geavanceerde interacties te creëren:
<button id="open-chat" style="display:none;">Need help?</button>
<script>
window.addEventListener('onFHChatbotReady', function () {
document.getElementById('open-chat').style.display = 'block';
});
</script>
<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>
Een volledig werkend voorbeeld dat configuratie-overschrijvingen, event-tracking, aangepaste chat-activering en de nieuwe sendHook()-methode samen demonstreert:
<!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 (event) {
console.log('New chat session started:', event.detail.sessionId);
});
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('onFHChatbotFlowVariablesUpdate', function (event) {
console.log('Context updated:', event.detail.variables);
});
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',
current_page_url: window.location.href,
},
urlSuffix: '?utm_source=chatbot',
});
window.FHChatbot_YOUR_CHATBOT_ID.init(function (chatbotManager) {
// Open / close from custom buttons
document.getElementById('open-chat-btn')
.addEventListener('click', function () {
chatbotManager.openChat();
});
document.getElementById('close-chat-btn')
.addEventListener('click', function () {
chatbotManager.closeChat();
});
// Keep the flow's context in sync with SPA navigation and
// optionally fire the Chat Hook trigger (if the flow has one wired).
// If the flow has no Chat Hook, the call is a silent 200 — the
// flow_variables still get merged, so the same line covers both
// "notify the flow" and "just update context".
window.addEventListener('hashchange', function () {
chatbotManager.sendHook('screen_changed', {
url: window.location.href,
}, {
flowVariables: { current_page_url: window.location.href },
});
});
});
};
if (currentScript && currentScript.parentNode) {
currentScript.parentNode.insertBefore(script, currentScript.nextSibling);
} else {
document.head.appendChild(script);
}
</script>
</body>
</html>

Integreer FlowHunt met interactive-mcp om veilige, realtime communicatie mogelijk te maken tussen grote taalmodellen en gebruikers op lokale machines. Leg gebru...

Integreer FlowHunt AI-chatbots met Tawk.to voor intelligente overdracht naar mensen. Laat AI routinevragen afhandelen en draag gebruikers naadloos over naar liv...

FlowHunt 2.6.12 introduceert de Slack-integratie, intentieclassificatie en het Gemini-model, waarmee de functionaliteit van AI-chatbots, klantinzichten en teamw...