Documentation Index
Fetch the complete documentation index at: https://docs.onsleek.ai/llms.txt
Use this file to discover all available pages before exploring further.
Overview
The AI Chat Extension SDK provides a comprehensive event system that notifies your extension about user interactions, query classifications, and UI state changes. Events enable you to track user behavior, trigger analytics, and respond to chat interactions.Registering event listeners
Use theregisterEventListener method to subscribe to SDK events:
Event structure
All events follow this structure:- type: The event type (see available events below)
- data: Event-specific payload
- tabDetails: Information about the tab where the event occurred
Chat panel events base payload
All chat panel events include achatSessionId in their data payload:
Available events
QUERY_CLASSIFIED
Emitted when a user’s query has been analyzed and classified. Event type:AiChatExtensionSdkEventType.QUERY_CLASSIFIED
Data payload:
CHAT_BADGE_SHOWN
Emitted when the chat badge becomes visible to the user. Event type:AiChatExtensionSdkEventType.CHAT_BADGE_SHOWN
Data payload:
CHAT_BADGE_CLICKED
Emitted when a user clicks on the chat badge or one of its suggested prompts. Event type:AiChatExtensionSdkEventType.CHAT_BADGE_CLICKED
Data payload:
CHAT_BADGE_CLOSED
Emitted when a user dismisses the chat badge. Event type:AiChatExtensionSdkEventType.CHAT_BADGE_CLOSED
Data payload:
CHAT_PANEL_OPENED
Emitted when the chat panel becomes visible to the user. Event type:AiChatExtensionSdkEventType.CHAT_PANEL_OPENED
Data payload:
CHAT_PANEL_CLOSED
Emitted when the user closes the chat panel. Event type:AiChatExtensionSdkEventType.CHAT_PANEL_CLOSED
Data payload:
CHAT_PANEL_MESSAGE_SENT
Emitted when the user sends a message in the chat panel. Event type:AiChatExtensionSdkEventType.CHAT_PANEL_MESSAGE_SENT
Data payload:
CHAT_PANEL_PROMPTS_SHOWN
Emitted when suggested prompts are displayed in the chat panel. Event type:AiChatExtensionSdkEventType.CHAT_PANEL_PROMPTS_SHOWN
Data payload:
CHAT_PANEL_PROMPT_CLICKED
Emitted when the user clicks a suggested prompt in the chat panel. Event type:AiChatExtensionSdkEventType.CHAT_PANEL_PROMPT_CLICKED
Data payload:
CHAT_PANEL_LINK_CLICKED
Emitted when the user clicks a link in a chat message. Event type:AiChatExtensionSdkEventType.CHAT_PANEL_LINK_CLICKED
Data payload:
CHAT_PANEL_TOP_MERCHANTS_SHOWN
Emitted when top merchants are displayed in the chat. Event type:AiChatExtensionSdkEventType.CHAT_PANEL_TOP_MERCHANTS_SHOWN
Data payload:
CHAT_PANEL_TOP_MERCHANTS_CLICKED
Emitted when the user clicks on a top merchant. Event type:AiChatExtensionSdkEventType.CHAT_PANEL_TOP_MERCHANTS_CLICKED
Data payload:
CHAT_PANEL_PRODUCTS_SHOWN
Emitted when products are displayed in the chat. Event type:AiChatExtensionSdkEventType.CHAT_PANEL_PRODUCTS_SHOWN
Data payload:
CHAT_PANEL_PRODUCTS_CLICKED
Emitted when the user clicks on a product. Event type:AiChatExtensionSdkEventType.CHAT_PANEL_PRODUCTS_CLICKED
Data payload:
CHAT_PANEL_PRODUCTS_PAGE_NEXT_CLICKED
Emitted when the user clicks to view the next page of products. Event type:AiChatExtensionSdkEventType.CHAT_PANEL_PRODUCTS_PAGE_NEXT_CLICKED
Data payload:
CHAT_PANEL_PRODUCTS_PAGE_PREVIOUS_CLICKED
Emitted when the user clicks to view the previous page of products. Event type:AiChatExtensionSdkEventType.CHAT_PANEL_PRODUCTS_PAGE_PREVIOUS_CLICKED
Data payload:
Event flow examples
Typical shopping query flow
Badge dismissal flow
Analytics integration example
Here’s a complete example of integrating SDK events with an analytics service:Debugging events
Enable debug mode to see all events logged to the console:Best practices
1. Track meaningful metrics
Focus on events that provide business value:- Conversion funnel:
QUERY_CLASSIFIED→CHAT_BADGE_SHOWN→CHAT_BADGE_CLICKED→CHAT_PANEL_OPENED - Engagement: Session durations, messages sent, products/merchants clicked
- Monetization: Track
CHAT_PANEL_LINK_CLICKED,CHAT_PANEL_PRODUCTS_CLICKED, andCHAT_PANEL_TOP_MERCHANTS_CLICKED - Friction points:
CHAT_BADGE_CLOSED(dismissals)
2. Handle errors gracefully
Wrap event handlers in try-catch to prevent one handler from breaking others:3. Avoid blocking operations
Event handlers should be fast and non-blocking. Use async operations carefully:4. Use chatSessionId for correlation
Use thechatSessionId field to correlate events within the same chat session:

