Skip to content

Web Interaction Interface

The Web Interaction Interface is a chat interface that you can embed on your website, enabling conversational interactions with Kindflow.

Overview

The Web Interaction Interface provides a conversational way for customers to interact with your business. It's an embeddable chat interface that creates interactions when customers engage with it.

What is the Web Interaction Interface?

The Web Interaction Interface is an embeddable chat widget that:

  • Integrates seamlessly into your website
  • Enables conversational interactions
  • Provides access to all Kindflow capabilities
  • Can be customized to match your brand
  • Works across all devices and screen sizes

How It Works

Customers click the chat interface on your website and start a conversation, creating an interaction. The intelligent agent responds using your FAQs, Resources, AOPs, and Tools to handle the interaction:

  • Answering questions
  • Executing workflows
  • Accessing information
  • Completing tasks
  • Escalating to humans when needed

Each message in the conversation is an interaction that triggers Kindflow to respond.

Features

  • Conversational UI: Natural chat-based interactions
  • Rich Responses: Support for text, links, and structured information
  • Session Management: Maintains context throughout the conversation
  • Customizable Appearance: Match your brand colors and style
  • Responsive Design: Works on desktop, tablet, and mobile

Getting Your API Key

Before integrating the Web Interaction Interface:

  1. Navigate to Settings → Team
  2. Go to the API Keys section
  3. Click "Create API Key"
  4. (Optional) Add a description for reference
  5. Copy and save the generated API key securely

Important: The API key is only shown once. Store it securely as you won't be able to view it again.

Integration

Basic Setup

Add the embed script to your website before the closing </body> tag:

html
<script src="https://kindflow.ai/api/embed.js?api_key=YOUR_API_KEY"></script>

Replace YOUR_API_KEY with your actual API key from the settings page.

Initialization

The interface automatically initializes when the page loads. The script:

  1. Creates an iframe at the bottom right of your page
  2. Loads the chat interface
  3. Displays as a small chat button (56x56px)
  4. Expands to a chat window (400x600px) when opened

Manual Initialization

For advanced use cases, you can initialize manually:

html
<script src="https://kindflow.ai/api/embed.js?api_key=YOUR_API_KEY"></script>
<script>
    // Initialize with custom configuration
    window.Kindflow.init({
        apiKey: "YOUR_API_KEY",
        baseUrl: "https://kindflow.ai",
    });
</script>

Using window.Kindflow

The global window.Kindflow object provides methods to control the interface and pass data.

setMetadata(metadata)

Add custom metadata to the conversation. This data is accessible in your Tools via metadata inputs.

Syntax:

javascript
window.Kindflow.setMetadata({
    userId: "user_123",
    plan: "premium",
    accountStatus: "active",
});

Example - E-commerce:

javascript
// Add customer and cart information
window.Kindflow.setMetadata({
    customerId: "cust_456",
    cartValue: 149.99,
    itemCount: 3,
    membershipTier: "gold",
});

Example - SaaS:

javascript
// Add user context
window.Kindflow.setMetadata({
    userId: "usr_789",
    organizationId: "org_123",
    subscription: "enterprise",
    lastLogin: new Date().toISOString(),
});

The metadata is merged with existing data and sent to the conversation, making it available for your Tools to use.

setUser(userData)

Set user information for the conversation.

Syntax:

javascript
window.Kindflow.setUser({
    email: "customer@example.com",
    name: "John Doe",
});

open()

Programmatically open the chat interface.

Syntax:

javascript
window.Kindflow.open();

Example:

javascript
// Open chat when user clicks a help button
document.getElementById("help-button").addEventListener("click", function () {
    window.Kindflow.open();
});

close()

Programmatically close the chat interface.

Syntax:

javascript
window.Kindflow.close();

remove()

Remove the chat interface from the page entirely.

Syntax:

javascript
window.Kindflow.remove();

How Interactions Work

When a user engages with the Web Interaction Interface:

  1. User Opens Chat: Clicking the chat button opens the interface
  2. Interaction Created: The first message creates a new interaction
  3. Message Processing: Each message triggers Kindflow to respond
  4. Response Generation: The system processes using AOPs, Tools, FAQs, and Resources
  5. Real-time Updates: Messages appear instantly via WebSocket connection

Each message in the conversation is an interaction that Kindflow processes and responds to.

Passing Dynamic Metadata

Update metadata dynamically based on user actions:

Example - Product Page:

javascript
// When user views a product
function onProductView(productId, productName, price) {
    window.Kindflow.setMetadata({
        currentProduct: productId,
        productName: productName,
        productPrice: price,
        pageType: "product",
    });
}

Example - After Login:

javascript
// Update metadata after user logs in
function onUserLogin(user) {
    window.Kindflow.setMetadata({
        userId: user.id,
        userEmail: user.email,
        accountType: user.accountType,
        isAuthenticated: true,
    });
}

Example - Shopping Cart:

javascript
// Update when cart changes
function onCartUpdate(cart) {
    window.Kindflow.setMetadata({
        cartTotal: cart.total,
        itemCount: cart.items.length,
        cartItems: cart.items.map(i => i.id),
    });
}

This metadata becomes available to your Tools, allowing them to provide personalized responses and actions.

Integration Examples

Single Page Application (React/Vue/Angular)

javascript
useEffect(() => {
    // Set metadata when component mounts or user state changes
    if (window.Kindflow && user) {
        window.Kindflow.setMetadata({
            userId: user.id,
            plan: user.subscription.plan,
            trialEndsAt: user.subscription.trialEndsAt,
        });
    }
}, [user]);

E-commerce Platform

html
<script src="https://kindflow.ai/api/embed.js?api_key=YOUR_API_KEY"></script>
<script>
    // Set initial metadata
    window.addEventListener("DOMContentLoaded", function () {
        window.Kindflow.setMetadata({
            storeId: "store_123",
            currency: "USD",
            country: "US",
        });
    });

    // Update on cart changes
    function updateCartMetadata(cart) {
        window.Kindflow.setMetadata({
            cartTotal: cart.total,
            itemCount: cart.items.length,
        });
    }
</script>

Best Practices

  • Set Metadata Early: Call setMetadata() as soon as user data is available
  • Keep It Relevant: Only include metadata that your Tools actually use
  • Update Dynamically: Update metadata when user state changes (login, cart update, etc.)
  • Secure Data: Don't include sensitive information (passwords, full credit cards)
  • Test Thoroughly: Verify metadata is correctly passed to your Tools
  • Use Descriptive Keys: Name metadata keys clearly (e.g., userId not uid)

Next Steps