Спросите команду, как она решает, какую документацию писать следующей, и обычно услышите смесь из трёх ответов: то, на что громче всех жаловалась поддержка в этом месяце, то, что попросил последний крупный клиент, и то, что интересно самому автору.
А если в вашем центре помощи работает ИИ-ассистент, идеальный список уже лежит под рукой. Каждый вопрос, на который ваши статьи не ответили, — это ТЗ на статью, написанное тем, кому она нужна, его собственными словами.
Просто раньше я не показывал вам этот список как следует. Теперь показываю.
Диалоги
На странице «Виджет для сайта» появилась вкладка Диалоги: все разговоры посетителей с вашим ассистентом за последние 90 дней.
Поиск идёт по тексту сообщений, а не только по заголовкам: запрос refund найдёт диалоги, где кто-то написал «refund», даже если автоматический заголовок совсем о другом. В каждой строке видно, сколько было вопросов, во скольких ответах есть ссылка на статью и запускались ли инструменты.
Главный фильтр — Без ссылок на статьи. Это диалоги, в которых ни один ответ не сослался на статью справки: ассистент ничего не нашёл или даже не искал. Это и есть ваша очередь на написание, и каждый вопрос в ней прошёл единственный отбор, который имеет значение: кто-то действительно хотел это узнать.
Откройте диалог, и вы увидите переписку, какие инструменты запускались и с какими аргументами, а ещё — это оказалось важнее, чем я ожидал, — страницу, на которой был посетитель, когда задал вопрос. Вопрос, который сам по себе ставит в тупик, часто становится понятным, когда знаешь, что человек в этот момент смотрел на вашу таблицу цен.
Метрика, которая показала 157%
Пока я это делал, заметил, что плитка «Не удалось ответить» на той же странице показывает 157,1%.
Причина — честная ошибка, к тому же частая. Числитель считал ответы: каждый ответ ассистента без ссылки добавлял единицу. Знаменатель считал диалоги: множество уникальных id сессий.
Это разные единицы. Один раздражённый посетитель, который задал за сессию одиннадцать вопросов и не получил ответа ни на один, — это одиннадцать промахов и один диалог. Делим и получаем 1100%.
Теперь числитель и знаменатель считают одно и то же: ответы, для которых ассистент действительно искал в центре помощи. И это вскрыло вторую, менее заметную ошибку.
Не каждый вопрос без ответа — провал
Старый счётчик увеличивался всякий раз, когда в ответе не было ссылки на статью. Но системный промпт прямо велит ассистенту отвечать на некоторые вещи без поиска: на приветствия, на «что ты умеешь?», на уточняющие вопросы посетителю. Это правильное поведение. Ошибкой был бы как раз поиск по центру помощи по слову «привет».
И всё это записывалось как пробелы в контенте.
Поэтому исправление состоит из двух частей: считать числитель и знаменатель в одних единицах и учитывать только ответы, для которых ассистент действительно искал. Приветствие больше не считается провалом документации. В списке «Пробелы в контенте» теперь только вопросы, которые заслуживали ответа и не получили его.
Общий урок такой: когда процент неверный, интересная ошибка редко сидит в арифметике. Обычно два числа с самого начала измеряли разное, и никто этого не замечал, пока одно из них не выросло настолько, что сломало отображение.
Цикл
Он достаточно короткий, чтобы пройти его за чашкой кофе:
Включите фильтр Без ссылок на статьи.
Прочитайте несколько диалогов. Ищите один и тот же вопрос, заданный тремя разными способами.
Напишите статью, которой не хватало. Опубликуйте её.
Ассистент сразу её подхватывает, без переиндексации и пересборки.
Через две недели загляните снова и проверьте, перестал ли появляться этот вопрос. Это единственный известный мне цикл обратной связи для документации, который замыкается сам.
Что Kookee хранит, а что нет
Это те же входящие обращения в поддержку, только под другим названием, поэтому границы важны.
Хранится: сообщения посетителя, ответы ассистента, какие инструменты запускались и с какими аргументами, на какие статьи были ссылки, а также URL и заголовок страницы, с которой пришёл каждый вопрос. Всё это автоматически удаляется через 90 дней.
Не хранится: текст страницы, который прочитал ассистент, всё, что передано как контекст приложения, и результаты ваших собственных инструментов. Они нужны, чтобы ответить на текущий вопрос, и после этого отбрасываются.
Посетители анонимны, если ваш сайт их не идентифицирует. Диалог привязан к сессии браузера: виджет никогда не спрашивает имя или email, но ваша страница может подписать диалог через identify(). При этом люди пишут в чаты личное, поэтому читать переписку может любой участник проекта, а удалять — только владельцы и админы.
Уже работает на странице «Виджет для сайта». Если виджет у вас стоит давно, там уже накопился список, и о вашей документации он, скорее всего, говорит честнее, чем последний контент-аудит.