Documentation
  • English
  • Українська
  • English
  • Українська
  • Getting Started

    • ConnectiveOne Documentation
  • Channel Configuration

    • Channels

      • Integrator — Channels Configuration Hub
      • Explanations

        • What is ConnectiveOne Widget
        • Widget JavaScript API
      • Instructions

        • How to Configure IP Blocking Message?
        • How to Configure Widget in Settings
        • How to Connect Facebook Messenger and Instagram to ConnectiveOne
        • How to Connect Gmail to ConnectiveOne
        • How to Connect Outlook to ConnectiveOne
        • How to Connect Telegram to ConnectiveOne
        • How to Connect Numbered Viber, Telegram, and WhatsApp via e-chat
        • How to Connect Viber to ConnectiveOne
        • How to Connect WhatsApp to ConnectiveOne
        • How to Customize Widget Colors
        • How to Manage Widget from Website
        • How to Pass Parameters from Website to Scenario
        • How to Configure Sending SMS via Alpha SMS
        • How to Configure Sending Viber/SMS via Infobip
        • How to Connect Widget to Website
        • How to Use Custom Code for Widget
        • How to Work with Widget on SPA Applications
  • Request Processing

    • Operator Panel (OperatorLine)

      • Operator — OperatorLine Scenarios Hub
      • Supervisor — OperatorLine Scenarios Hub
      • Administrator — OperatorLine Scenarios Hub
      • Integrator — Operator Panel Hub for OperatorLine
      • Explanations

        • About Processing Requests in ConnectiveOne
        • About Auto-Distribution of Dialogs Between Operators
        • About Automatic Connection of Free Operator to New Dialog
        • About Connecting Chat with Operator Through Operator Panel
        • About Redistribution of Chats from Operator
      • Instructions

        • Change Request Status
        • Create Filter
        • Create Folder
        • Create Outbound Request
        • How to Create a Ticket?
        • How to Link Tickets to Each Other?
        • Manage Folders
        • How to Edit Ticket Fields?
        • How to Manage Ticket Watchers?
        • Monitor Operator Statuses
        • Open Request
        • Reorder Folders
        • How to Reply to a Client?
        • Set Topic and Tags
        • Use Copilot
        • Use Quick Replies
        • How to View Active Dialogs in Client Card?
        • View Chat List
        • View Chats in Table
        • View Request Queue
        • How to View Ticket Logs?
        • How to View Ticket SLA Metrics?
    • Profile

      • Operator — Profile Scenarios Hub
      • Administrator — Profile Scenarios Hub
      • Instructions

        • How to Change Interface Language?
        • Configure Folders
        • Configure Notifications
        • Configure Quick Replies
        • Configure Signature
    • BroadcastUsers (Clients)

      • Operator — BroadcastUsers Scenarios Hub
      • Integrator — BroadcastUsers Scenarios Hub
      • Administrator — BroadcastUsers Scenarios Hub
      • Instructions

        • Create Segment by Filters
        • Edit Client Data
        • Export Client Data
        • Filter Clients
        • Manage Subscription
        • How to Find a Client?
        • Search Clients by File
        • Send Broadcast to Selected Clients
        • How to View a Client Card?
        • View Client Channels
  • Broadcasts

    • Broadcast

      • Operator — Broadcast Hub
      • Integrator — Broadcast Settings Hub
      • Analyst — Broadcast Analytics Hub
      • Instructions

        • How to Activate a Scheduled Broadcast?
        • How to Add Images to Broadcasts?
        • How to Check Broadcast Status?
        • How to Configure an Automatic Broadcast?
        • How to Configure Alias in Broadcasts?
        • How to Configure Broadcast Limits?
        • How to Create a Broadcast Template?
        • How to Create a Broadcast?
        • How to Create a Broadcast Topic?
        • How to Deactivate a Broadcast Topic?
        • How to Edit a Broadcast Draft?
        • How to Edit a Broadcast Topic?
        • How to Export Broadcast Results?
        • How to Format Messages in Broadcasts?
        • How to Launch a Broadcast Immediately?
        • How to Save a Broadcast as a Draft?
        • How to Find Contacts by File?
        • How to Send a Broadcast from the Clients Module?
        • How to Configure a Scheduled Broadcast?
        • How to Configure Subscription to Broadcast Topics?
        • How to View a Broadcast Report?
        • How to View Broadcast Results?
        • How to View Click Statistics?
        • How to View Delivery Statistics?
        • How to View Open Statistics?
  • Automation

    • Scenario Dialog (Legacy)

      • Integrator — Scenario Dialog Scenarios Hub
      • Explanations

        • Actions in Scenarios — What They Are and How They Work
        • About Using autobroadcast__create Action in Scenarios
        • About Copying Existing Bot Scenario
        • About ConnectiveOne Integration with Corezoid Through Operator Panel
        • About Displaying Images to User
        • About Email Categorization Using AI
        • About Facebook Ads Referral Tags
        • About Launching Scenario from Facebook Ads
        • About HTML Text Formatting in Telegram and Widget
        • About Inline Keyboard in Telegram and Widget
        • About Configuring Alias for Outgoing Dialog
        • About Payment via Bot
        • About Telegram Group Bots
        • About Telegram WebApp in Scenarios
        • About Viber Keyboard Styling
        • About Viber Start Message
      • Instructions

        • How to Add Translations to a Scenario?
        • How to Create a New Bot Scenario?
        • How to Create a Scenario Section?
        • How to Edit an Existing Bot Scenario?
        • How to Export or Import a Scenario?
        • How to Use an Action in a Scenario?
        • How to View and Restore Scenario Versions?
    • ActionJail

      • Operator — ActionJail Scenarios Hub
      • Instructions

        • How to Create and Maintain an Action in ActionJail (Administrator)
        • How to Clone an Action in ActionJail
        • How to Quickly Find an Action in ActionJail
        • How to Connect an ActionJail Action to a Bot Scenario (Integrator)
      • Reference

        • Actions Reference — Actions Guide
    • Integrations

      • Integrator — ConnectiveOne Integrations Hub
      • Explanations

        • Launch Scenario via Deeplink
        • Transfer UTM Tags Through Messages
        • What are ConnectiveOne Integrations
      • Instructions

        • How to Integrate Operator Panel as Widget in CRM/ERP
        • How to Configure Product Name for Zoho CRM
        • How to Integrate External System via Custom Channel
        • How to Get Data from API Using send_request
        • How to Send Data from ConnectiveOne via send_request
        • How to Configure User Subscription to Notifications
        • How to Launch Bot Scenario via API call_node
        • How to Integrate ConnectiveOne with eSputnik
        • How to Send Phone Broadcast via Route
        • How to Use ConnectiveOne API
        • How to Configure Operator Panel Webhook
      • Reference

        • API Reference — ConnectiveOne API Reference
    • Custom Data

      • Integrator — Custom Data Scenarios Hub
      • Administrator — Custom Data Scenarios Hub
      • Analyst — Custom Data Scenarios Hub
      • Instructions

        • Add Field to Model
        • How to Configure Field Display in Custom Data?
        • Configure Field Type
        • How to Create an Association Between Tables in Custom Data?
        • Create Group
        • How to Create a Data Model?
        • Edit Model
        • Export Filtered Data
        • How to Export Model Data?
        • How to Extend Client Contacts Table Through Custom Data?
        • How to Find Records by Filters?
        • Import Data from File
        • How to Save Data from Scenario to Custom Data?
        • Sort Records
        • How to Use AI Magic to Create Custom Data Models?
        • How to Use custom_modules__get Action to Get a Record?
        • How to Use Autocomplete Search in Custom Data?
        • How to Use custom_modules__set Action to Create a Record?
        • Validate Data
        • View Model Records
    • FileManager

      • Operator — FileManager Scenarios Hub
      • Instructions

        • How to Create a Jira Task with a File?
        • How to Delete a File or Folder?
        • How to Navigate to a Folder?
        • How to Upload a New File?
        • How to View the File List?
  • Artificial Intelligence

    • FastLinePro

      • Integrator — FastLinePro Scenarios Hub
      • Administrator — FastLinePro Scenarios Hub
      • Instructions

        • Activate KB Plugin
        • How to Check AI Agent Response in Scenario?
        • Check Synchronization Status
        • Configure Agent Prompt
        • How to Configure Agent Variables in FastLinePro?
        • How to Configure Chunking in FastLinePro Knowledge Base?
        • Configure KB Plugin Synchronization
        • Configure Knowledge Synchronization
        • How to Connect Knowledge Base to AI Agent in FastLinePro?
        • Create Agent
        • How to Create a Chatbot?
        • How to Create a Knowledge Base?
        • Deactivate KB Plugin
        • How to Prepare a File for FastLinePro Knowledge Base?
        • Run KB Synchronization
        • Update KB Files
        • Upload Files to KB
        • How to Use action_fastline_pro Action in Scenario?
    • Quality Assurance

      • Supervisor — Quality Assurance Scenarios Hub
      • Administrator — Quality Assurance Scenarios Hub
      • Analyst — Quality Assurance Scenarios Hub
      • Instructions

        • How to Adjust AI Assessment Criteria?
        • How to Approve Assessment?
        • Assess Request
        • Conduct Quality Check
        • How to Create a New Dialogue Assessment?
        • Export Assessments
        • Filter Assessments
        • Use Checklist
        • View Assessment Details
        • How to View Assessments List and Find the Needed One?
        • View Quality Dashboard
        • View Quality Reports
  • Statistics

    • Statistics

      • Supervisor — Statistics Scenarios Hub
      • Administrator — Statistics Scenarios Hub
      • Analyst — Statistics Scenarios Hub
      • Instructions

        • Apply Filters to Report
        • How to Configure CSAT (Customer Satisfaction) in Statistics?
        • How to Create and Configure a Funnel in Statistics?
        • Create Detailed Report
        • Create Funnel
        • Export Report
        • How to Export Statistics Data?
        • Set Target Metrics
        • View Daily Report
        • View Dashboard
        • How to View Metabase Dashboards in Statistics Module?
        • How to View Operator Schedule in Statistics?
        • View Shift Report
      • Reference

        • Statistics Metrics — Reference
  • Administration

    • Settings

      • Supervisor — Operator Panel Settings Hub
      • Administrator — System Settings Hub
      • Instructions

        • How to Activate or Deactivate a Bot?
        • How to Configure Authentication and Access Management?
        • How to Configure a Bot?
        • How to Configure Operator Calendars?
        • How to Configure Chat Parameters?
        • How to Configure Client Card Fields?
        • How to Configure Client Fields?
        • How to Configure File Parameters?
        • How to Configure Hot Keys?
        • How to Configure Instance Parameters?
        • How to Configure Operators in Chats?
        • How to Configure Roles and Access Rights?
        • How to Configure Styles and Scripts?
        • How to Configure Ticket Topics?
        • How to Configure General System Settings?
        • How to Configure Ticket Parameters?
        • How to Configure Timers for Chats?
        • How to Configure User Fields?
        • How to Create a New Bot?
        • How to View Bots List?
        • How to View System Status?
        • How to View Users List?
      • Reference

        • What Are Server Requirements for Hosting ConnectiveOne?
    • Access Recovery

      • Access Recovery — Scenarios Hub
      • Instructions

        • How to Enable Password Recovery Flow (Administrator)
        • How to Generate a Password Reset Link Manually (Administrator)
        • How to Reset Password Through "Forgot Password?"

Widget JavaScript API

ConnectiveOne widget provides a JavaScript API for controlling widget behavior from your website. This allows programmatically opening/closing chat, changing parameters, passing events to the scenario, and integrating the widget with SPA applications.

Main Functions

Widget Initialization

kw('init', {...}) — initializes the widget with parameters.

Parameters:

  • bot_id — bot identifier (default 1)
  • user_id — user identifier (optional, generated automatically)
  • language_code — interface language (uk, ru, en, etc.)
  • params_from_site — additional parameters for the scenario
  • color — widget color scheme
  • open_on_msg — automatically open chat when receiving a message
  • recognize_user_meta — display IP, city, country in the operator panel

Example:

kw('init', {
  bot_id: 1,
  language_code: "uk",
  params_from_site: {
    utm_source: "widget",
    company_name: "TV123"
  }
});

Chat Control

kw_event('openchat', 1) — open chat

kw_event('openchat', 0) — close chat

Example:

// Open chat on button click
document.getElementById('open-chat-btn').addEventListener('click', function() {
  kw_event('openchat', 1);
});

Changing Title and Subtitle

kw_event('command', { title: '...', subtitle: '...' }) — change chat title and subtitle

Example:

kw_event('command', {
  title: "New Title",
  subtitle: "New Subtitle"
});

Navigate to Scenario Entry Point

kw_event('emitevent', { event: 'alias', alias: 'test-alias' }) — navigate to the specified alias in the scenario

Example:

kw_event('emitevent', {
  event: 'alias',
  alias: 'product-inquiry'
});

Pass Parameters from Website

kw_event('kwsetparamsfromsite', { params_from_site: {...} }) — change parameters during operation

Example:

kw_event('kwsetparamsfromsite', {
  params_from_site: {
    company_name: 'TV123123',
    page_url: window.location.href
  }
});

Change Colors

kw_event('kwcolor', { header: { bg: '#FF0000' } }) — change widget colors

Example:

kw_event('kwcolor', {
  header: {
    bg: "linear-gradient(130deg, #734FE1, #D14EE0)",
    text: "#ffffff"
  }
});

Working with SPA

kw_event('kwreinitwidget', {...}) — reinitialize widget (for SPA)

Parameters:

  • user_id — change user (or null for new chat)
  • params_from_site — update parameters
  • title, subtitle — change title

Example:

// Create new chat
kw_event('kwreinitwidget', { user_id: null });

// Change parameters
kw_event('kwreinitwidget', {
  params_from_site: { type: 'mobile' }
});

kw_event('kwvisiblelauncher', { visible: false }) — hide/show launcher

Example:

// Hide launcher
kw_event('kwvisiblelauncher', { visible: false });

// Show launcher
kw_event('kwvisiblelauncher', { visible: true });

Save State

kw_event('widgetstatus', 1) — save chat state in localStorage

After execution, the following is saved in localStorage:

  • isChatOpen — widget state (collapsed/expanded)
  • connectState — operator connection state

Widget Events

You can listen to widget events:

widgetChatOpened — chat opened

widgetChatClosed — chat closed

Example:

document.addEventListener("widgetChatOpened", function(event) {
  console.log('Chat opened', event);
  // Your handling code
});

document.addEventListener("widgetChatClosed", function(event) {
  console.log('Chat closed', event);
  // Your handling code
});

Custom Code

You can add custom JavaScript code that executes before widget initialization. The code has access to:

  • embed_state — widget state before initialization
  • kw_event() — function to call events
  • kw_event_trigger() — function to trigger events

Where to configure: Settings → Bots → select bot → Widget → Custom Code

Custom Code Example:

// Modify parameters before initialization
embed_state.params_from_site = {
  ...embed_state.params_from_site,
  page_url: window.location.href,
  user_agent: navigator.userAgent
};

// Integration with Google Analytics
if (window.gtag) {
  window.addEventListener('widgetChatOpened', function() {
    window.gtag('event', 'chat_opened');
  });
}

Limitations

  • Only one widget instance can be on one page
  • Widget works only through HTTPS (except localhost)
  • Domains for widget must be added to CORS settings
  • Spam protection: automatic blocking at 10+ messages in 5 seconds

Related Articles

  • What is a widget
  • Connect widget to website
  • Pass parameters from website to scenario
  • Manage widget from website
  • Work with SPA applications
  • Use Custom Code
  • Data exchange with widget
Prev
What is ConnectiveOne Widget