From 92aeb4649c0e6f728283e7b78e3cde3bb00d5cc1 Mon Sep 17 00:00:00 2001 From: Brett Blue Date: Fri, 10 Apr 2026 15:56:48 -0600 Subject: [PATCH 1/2] Add RUM instrumentation for Docs AI leadership dashboard Add impression and conversation close events to enable reporting on chatbot adoption and engagement metrics. --- .../scripts/components/conversational-search/index.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/assets/scripts/components/conversational-search/index.js b/assets/scripts/components/conversational-search/index.js index fe0426942f9..2d5ffffb4ab 100644 --- a/assets/scripts/components/conversational-search/index.js +++ b/assets/scripts/components/conversational-search/index.js @@ -53,6 +53,9 @@ initializeFeatureFlags().then(async (client) => { if (IS_CONVERSATIONAL_SEARCH_ENABLED) { document.body.classList.add('conv-search-enabled'); + logAction('Conversational Search Impression', { + conversational_search: { action: 'impression', page: window.location.pathname } + }); initConversationalSearch(); } }); @@ -322,6 +325,14 @@ class ConversationalSearch { } close() { + const messageCount = this.chatHistory.filter(m => m.role === 'user').length; + if (messageCount > 0) { + this.logInteraction('conversation_close', { + messages_sent: messageCount, + responses_received: this.chatHistory.filter(m => m.role === 'assistant').length + }); + } + this.isOpen = false; this.sidebar.classList.remove('open'); this.overlay.classList.remove('open'); From 49c9203d93ccdcf9029aed3a1ef1459769b54715 Mon Sep 17 00:00:00 2001 From: Brett Blue Date: Fri, 10 Apr 2026 16:27:57 -0600 Subject: [PATCH 2/2] Label keyboard-enter AI suggestion trigger as search_suggestion The keyboard path in instantsearch.js was missing a source, defaulting to entry_button. Align with the click path. --- assets/scripts/components/instantsearch.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/scripts/components/instantsearch.js b/assets/scripts/components/instantsearch.js index c405fba1015..4bcdfaf4e41 100644 --- a/assets/scripts/components/instantsearch.js +++ b/assets/scripts/components/instantsearch.js @@ -358,7 +358,7 @@ function loadInstantSearch(currentPageWasAsyncLoaded) { if (selectedItem?.classList.contains('ais-Hits-ai-suggestion')) { const query = selectedItem.dataset.query || aisSearchBoxInput.value; if (window.askDocsAI) { - window.askDocsAI(query); + window.askDocsAI(query, { source: 'search_suggestion' }); // Hide the search dropdown hitsContainerContainer.classList.add('d-none'); searchBoxContainerContainer.classList.remove('active-search');