Skip to main content

Flametree Chat Widget: Integrate Your Agent into Web Application

Integrate your Flametree AI agent into any website with a powerful, customizable React chat widget. This widget provides seamless real-time chat functionality with extensive customization options and support for both floating and embedded deployment modes.

Prerequisites

  • Access to Flametree platform
  • A configured AI agent
  • Website with ability to edit HTML/add custom code
  • Basic understanding of HTML and JavaScript

Features

  • 💬 Real-time messaging - Instant chat functionality
  • 🎤 Audio recording - Voice message support with playback
  • 🗣️ Speech-to-text - Convert voice to text automatically
  • 🔊 Text-to-speech - Voice-over capabilities for accessibility
  • 🎯 Flexible deployment - Floating button or embedded widget
  • 📱 Responsive design - Optimized for all device sizes
  • ⌨️ RTL support - Right-to-left text compatibility
  • 🔄 Session management - Persistent conversation history
  • 🎨 UI customization - Extensive styling options

Widget Types

The widget supports two deployment modes:

ModeDescriptionUse Case
FloatingDisplays as a floating button that opens a modal chat windowCustomer support, help desk
EmbeddedOccupies full width/height of parent containerDedicated chat pages, integrated experiences

Integration Setup

Step 1: Get the Widget Code

  1. Navigate to Your Agent

    • Open the Flametree portal
    • Go to the AI Agents section
    • Click on the agent you want to configure
  2. Locate the HTML Code Section

    • On the right-hand configuration panel, scroll down to the HTML Code section
    • Next to the HTML Code label, you'll see two icon buttons:
      • 👁 View — to preview the code
      • 📋 Copy — to copy the code to clipboard
  3. Copy the Widget Code

    • Click the Copy (📋) icon to copy the generated HTML snippet

Step 2: Add Widget to Your Website

  1. Insert the Code

    • Paste the copied snippet at the end of your page, just before the closing </body> tag
    • For website builders (Tilda, Webflow, Wix, WordPress), paste into the custom HTML or script section
  2. Alternative Manual Setup

    • Add container element: <div id="chat-widget"></div>
    • Include widget script: <script src="https://portal.flametree.ai/public-storage/widget/bot-chat-widget.umd.js"></script>
    • Initialize widget with configuration

Step 3: Test the Integration

  1. Reload Your Website

    • The chat button should appear (floating mode) or widget should load (embedded mode)
  2. Test Functionality

    • Click the chat button or interact with embedded widget
    • Send a test message to verify agent response
    • Test voice features if enabled

Configuration Options

Required Parameters

ParameterTypeDescription
botRoutestringAPI endpoint URL for the chat bot
authorizationTokenstringAuthorization token for API requests

Core Settings

ParameterTypeDefaultDescription
elementIdstring'chat-widget'HTML element ID for widget mounting
userIdstring''Unique user identifier
userNamestring'Guest'Display name for the user
emailstring''User's email address
phonestring''User's phone number

Appearance & Behavior

ParameterTypeDefaultDescription
isFloatingBtnbooleanfalseEnable floating button mode
primaryColorstring#ff613ePrimary theme color
openByDefaultbooleanfalseAuto-open chat on load
headerTitlestring'Chat with the Agent'Chat header title
headerTitleColorstring'#000000'Header title color
showPoweredBybooleantrueShow "Powered by" footer
showWaitingMessagebooleanfalseShow typing indicators
voiceOverbooleanfalseEnable text-to-speech

Floating Button Customization

ParameterTypeDefaultDescription
floatingBtnSizenumber58Button size in pixels
floatingBtnOpennedIconUrlstring''Custom open icon URL
floatingBtnClosedIconUrlstring''Custom closed icon URL
floatingBtnIconClosedSizenumber58Closed icon size
floatingBtnIconOpenedSizenumber32Open icon size
floatingBtnMarginBottomnumber8Bottom margin
floatingBtnMarginRightnumber16Right margin
floatingBtnMobileMarginBottomnumber8Mobile bottom margin
floatingBtnMobileMarginRightnumber16Mobile right margin

Advanced Options

ParameterTypeDefaultDescription
disableSendingMessageWhileAwaitingResponsebooleanfalsePrevent messages during bot response
onError(error: Error) => voidError handling callback
avatarUrlstring''Custom agent avatar URL
tooltipTextstring''Floating button tooltip
giftTextstring''Gift button text
giftLinkstring''Gift button URL
multiAgentbooleanfalseEnable multi-agent support
versionstring'v1'Widget version

User ID Management

The userId parameter follows this priority order:

  1. Explicitly provided in widget parameters
  2. Retrieved from localStorage (flametree-widget-userId-v2)
  3. Auto-generated and saved to localStorage if not provided (when userId is empty)

Operation Modes

The widget supports three distinct operation modes:

Mode 1: Standard Chat (version: 'v1')

  • Creates new session on initialization
  • No chat history retrieval
  • Simple, straightforward chat experience

Mode 2: Session Management (version: 'v2', multiAgent: false)

  • Retrieves all active user sessions on initialization
  • Continues existing session if botRoute matches
  • Creates new session if no match found
  • No agent selection screen

Mode 3: Multi-Agent (version: 'v2', multiAgent: true)

  • Displays all active user sessions
  • Shows agent selection screen
  • Allows switching between different agent conversations
  • Supports multiple sessions per agent

Implementation Examples

Basic Floating Chat

BotChatWidget.createBotChat({
botRoute: 'https://api.example.com/bot',
authorizationToken: 'your-auth-token',
elementId: 'chat-widget',
isFloatingBtn: true,
primaryColor: '#007bff',
});

Embedded Chat with Voice Features

BotChatWidget.createBotChat({
botRoute: 'https://api.example.com/bot',
authorizationToken: 'your-auth-token',
elementId: 'embedded-chat',
isFloatingBtn: false,
voiceOver: true,
showWaitingMessage: true,
headerTitle: 'AI Assistant',
});

Advanced Multi-Agent Setup

BotChatWidget.createBotChat({
// Required
botRoute: 'https://api.example.com/bot',
authorizationToken: 'your-auth-token',

// Multi-agent configuration
version: 'v2',
multiAgent: true,

// Customization
elementId: 'chat-widget',
userId: 'user123',
userName: 'John Doe',
email: 'john@example.com',
isFloatingBtn: true,
primaryColor: '#ff613e',
openByDefault: false,

// UI Customization
headerTitle: 'Support Center',
headerTitleColor: '#ffffff',
showPoweredBy: false,
avatarUrl: 'https://example.com/bot-avatar.png',

// Floating button
floatingBtnSize: 64,
floatingBtnOpennedIconUrl: './assets/close-icon.svg',
floatingBtnClosedIconUrl: './assets/chat-icon.svg',
tooltipText: 'Need help? Chat with us!',

// Features
voiceOver: true,
showWaitingMessage: true,
disableSendingMessageWhileAwaitingResponse: true,

// Gift feature
giftText: 'Send Gift 🎁',
giftLink: 'https://example.com/gifts',

// Error handling
onError: (error) => {
console.error('Chat widget error:', error);
// Custom error handling logic
}
});

Testing Your Integration

Quick Test Steps

  1. Verify Widget Appearance

    • Check if floating button appears (floating mode)
    • Verify embedded widget loads correctly (embedded mode)
  2. Test Basic Functionality

    • Click the chat button or interact with widget
    • Send a test message like: "Hello, what services do you offer?"
    • Verify the agent responds appropriately
  3. Test Advanced Features

    • Voice messages (if audio recording enabled)
    • Text-to-speech playback (if voiceOver enabled)
    • Multi-agent switching (if multiAgent enabled)

Common Issues & Solutions

Widget not appearing

Possible causes:

  • HTML code placed incorrectly
  • JavaScript errors blocking execution
  • Website security policies blocking external scripts

Solutions:

  1. Check placement: Ensure code is in <head> or before closing </body> tag
  2. Console errors: Check browser console for JavaScript errors
  3. Script permissions: Verify website allows external scripts
  4. Cache issues: Clear browser cache and reload
Widget not responding

Possible causes:

  • Agent is in "Error" status
  • Invalid botRoute or authorizationToken
  • Network connectivity issues
  • Missing agent workflow configuration

Solutions:

  1. Check agent status: Confirm agent is running and not in error state
  2. Verify credentials: Check botRoute and authorizationToken are correct
  3. Network test: Verify connectivity to Flametree servers
  4. Agent config: Ensure agent has proper workflow configuration
Voice features not working

Possible causes:

  • Browser doesn't support MediaRecorder API
  • Microphone permissions denied
  • Voice features not enabled in agent

Solutions:

  1. Browser support: Use Chrome 60+, Firefox 55+, Safari 12+, or Edge 79+
  2. Permissions: Allow microphone access when prompted
  3. Agent settings: Enable voice features in agent configuration
  4. HTTPS required: Voice features require secure (HTTPS) connection
Styling conflicts

Possible causes:

  • CSS conflicts with existing website styles
  • Z-index issues with floating button
  • Responsive design problems

Solutions:

  1. CSS isolation: Use more specific selectors or !important declarations
  2. Z-index: Adjust floating button z-index values
  3. Responsive testing: Test on different screen sizes
  4. Custom styling: Override default styles with custom CSS

Browser Storage

localStorage

KeyPurpose
flametree-widget-userId-v2Auto-generated user ID when not explicitly provided
unreadConversationsArray of unread conversation IDs

sessionStorage

KeyPurpose
flametree-widget-defaultAuthorizationTokenInitial authorization token
flametree-widget-authorizationTokenCurrent active token (updated in multi-agent mode)
flametree-widget-defaultBotRouteInitial bot route URL
${botRoute}-sessionIdActive session ID for specific agent

Browser Support

The Flametree Chat Widget is compatible with all modern browsers that support:

  • ES6+ JavaScript features
  • MediaRecorder API (for audio recording)
  • Local/Session Storage
  • CSS Grid and Flexbox

Supported Browsers:

  • Chrome 60+
  • Firefox 55+
  • Safari 12+
  • Edge 79+

FAQ

Can I customize the widget appearance?

Yes, the widget offers extensive customization options including:

  • Primary colors and themes
  • Custom icons for floating button
  • Header titles and colors
  • Button sizes and positioning
  • Custom avatars and branding
Does the widget work on mobile devices?

Yes, the widget is fully responsive and optimized for mobile devices. It includes specific mobile margin settings and touch-friendly interactions.

Can I use multiple widgets on the same page?

Yes, you can embed multiple widgets by using different elementId values for each widget instance.

Is the chat history persistent?

Yes, when using version 'v2', the widget supports session management and can retrieve previous conversations based on user ID.

How do I handle widget errors?

Use the onError callback parameter to implement custom error handling:

onError: (error) => {
console.error('Widget error:', error);
// Your custom error handling logic
}

Security Considerations

Token Security

  • Protect authorization tokens - don't expose them in client-side code
  • Use environment variables for sensitive configuration
  • Rotate tokens regularly if compromised
  • Monitor usage for suspicious activity

Privacy Settings

  • Configure user data handling according to your privacy policy
  • Consider data retention settings in your Flametree account
  • Implement appropriate consent mechanisms for voice recording