[{"data":1,"prerenderedAt":1432},["ShallowReactive",2],{"navigation":3,"/ru/product/analytics":268,"/ru/product/analytics-surround":1427},[4,150],{"title":5,"path":6,"stem":7,"children":8,"page":61},"EN","/en","en",[9,16,62,70,95,110],{"title":10,"path":11,"stem":12,"children":13,"icon":15},"API","/en/api","en/api/index",[14],{"title":10,"path":11,"stem":12,"icon":15},"i-lucide-code",{"title":17,"path":18,"stem":19,"children":20,"page":61},"Use cases","/en/cases","en/cases",[21,26,31,36,41,46,51,56],{"title":22,"path":23,"stem":24,"icon":25},"Call from your site using the SDK","/en/cases/call-from-site-sdk","en/cases/call-from-site-sdk","i-lucide-phone-call",{"title":27,"path":28,"stem":29,"icon":30},"Connect Voximplant","/en/cases/connect-voximplant","en/cases/connect-voximplant","i-lucide-plug",{"title":32,"path":33,"stem":34,"icon":35},"Embed the widget","/en/cases/embed-widget","en/cases/embed-widget","i-lucide-layout-template",{"title":37,"path":38,"stem":39,"icon":40},"Inbound Call Handling with Telegram Notifications","/en/cases/inbound-telegram","en/cases/inbound-telegram","i-lucide-phone-incoming",{"title":42,"path":43,"stem":44,"icon":45},"Prompting","/en/cases/prompting","en/cases/prompting","i-lucide-pencil-line",{"title":47,"path":48,"stem":49,"icon":50},"Monitor agent quality","/en/cases/quality-monitoring","en/cases/quality-monitoring","i-lucide-activity",{"title":52,"path":53,"stem":54,"icon":55},"Build a sales agent","/en/cases/sales-agent","en/cases/sales-agent","i-lucide-shopping-bag",{"title":57,"path":58,"stem":59,"icon":60},"State, context, secrets","/en/cases/state-context-secrets","en/cases/state-context-secrets","i-lucide-key-round",false,{"title":63,"path":64,"stem":65,"children":66,"icon":69},"Getting Started","/en/getting-started","en/getting-started/index",[67],{"title":68,"path":64,"stem":65,"icon":69},"Getting started","i-lucide-rocket",{"title":71,"path":72,"stem":73,"children":74,"page":61},"Legal","/en/legal","en/legal",[75,80,85,90],{"title":76,"path":77,"stem":78,"icon":79},"Contacts","/en/legal/contacts","en/legal/contacts","i-lucide-mail",{"title":81,"path":82,"stem":83,"icon":84},"Offer","/en/legal/offer","en/legal/offer","i-lucide-file-text",{"title":86,"path":87,"stem":88,"icon":89},"Privacy policy","/en/legal/privacy","en/legal/privacy","i-lucide-lock",{"title":91,"path":92,"stem":93,"icon":94},"Terms of service","/en/legal/terms","en/legal/terms","i-lucide-scale",{"title":96,"path":97,"stem":98,"children":99,"page":61},"Pricing","/en/pricing","en/pricing",[100,105],{"title":101,"path":102,"stem":103,"icon":104},"Model pricing","/en/pricing/model-prices","en/pricing/model-prices","i-lucide-dollar-sign",{"title":106,"path":107,"stem":108,"icon":109},"Plans","/en/pricing/plans","en/pricing/plans","i-lucide-badge-dollar-sign",{"title":111,"path":112,"stem":113,"children":114,"page":61},"Product","/en/product","en/product",[115,120,125,130,135,140,145],{"title":116,"path":117,"stem":118,"icon":119},"Agent","/en/product/agent","en/product/agent","i-lucide-bot",{"title":121,"path":122,"stem":123,"icon":124},"Charts","/en/product/analytics","en/product/analytics","i-lucide-line-chart",{"title":126,"path":127,"stem":128,"icon":129},"Companies","/en/product/companies","en/product/companies","i-lucide-building-2",{"title":131,"path":132,"stem":133,"icon":134},"Procedures","/en/product/procedures","en/product/procedures","i-lucide-list-checks",{"title":136,"path":137,"stem":138,"icon":139},"RBAC","/en/product/rbac","en/product/rbac","i-lucide-shield",{"title":141,"path":142,"stem":143,"icon":144},"Simulations","/en/product/simulations","en/product/simulations","i-lucide-flask-conical",{"title":146,"path":147,"stem":148,"icon":149},"Tools","/en/product/tools","en/product/tools","i-lucide-wrench",{"title":151,"path":152,"stem":153,"children":154,"page":61},"RU","/ru","ru",[155,160,196,202,223,236],{"title":10,"path":156,"stem":157,"children":158,"icon":15},"/ru/api","ru/api/index",[159],{"title":10,"path":156,"stem":157,"icon":15},{"title":161,"path":162,"stem":163,"children":164,"page":61},"Кейсы","/ru/cases","ru/cases",[165,169,173,177,181,185,189,193],{"title":166,"path":167,"stem":168,"icon":25},"Звоним с сайта с помощью SDK","/ru/cases/call-from-site-sdk","ru/cases/call-from-site-sdk",{"title":170,"path":171,"stem":172,"icon":30},"Подключаем Voximplant","/ru/cases/connect-voximplant","ru/cases/connect-voximplant",{"title":174,"path":175,"stem":176,"icon":35},"Встраиваем виджет","/ru/cases/embed-widget","ru/cases/embed-widget",{"title":178,"path":179,"stem":180,"icon":40},"Входящие звонки с уведомлениями в Telegram","/ru/cases/inbound-telegram","ru/cases/inbound-telegram",{"title":182,"path":183,"stem":184,"icon":45},"Пишем успешные промты","/ru/cases/prompting","ru/cases/prompting",{"title":186,"path":187,"stem":188,"icon":50},"Контролируем качество агентов","/ru/cases/quality-monitoring","ru/cases/quality-monitoring",{"title":190,"path":191,"stem":192,"icon":55},"Делаем агента по продажам","/ru/cases/sales-agent","ru/cases/sales-agent",{"title":57,"path":194,"stem":195,"icon":60},"/ru/cases/state-context-secrets","ru/cases/state-context-secrets",{"title":197,"path":198,"stem":199,"children":200,"icon":69},"Начало работы","/ru/getting-started","ru/getting-started/index",[201],{"title":197,"path":198,"stem":199,"icon":69},{"title":203,"path":204,"stem":205,"children":206,"page":61},"Юридические документы","/ru/legal","ru/legal",[207,211,215,219],{"title":208,"path":209,"stem":210,"icon":79},"Контакты","/ru/legal/contacts","ru/legal/contacts",{"title":212,"path":213,"stem":214,"icon":84},"Оферта","/ru/legal/offer","ru/legal/offer",{"title":216,"path":217,"stem":218,"icon":89},"Политика конфиденциальности","/ru/legal/privacy","ru/legal/privacy",{"title":220,"path":221,"stem":222,"icon":94},"Пользовательское соглашение","/ru/legal/terms","ru/legal/terms",{"title":224,"path":225,"stem":226,"children":227,"page":61},"Цены","/ru/pricing","ru/pricing",[228,232],{"title":229,"path":230,"stem":231,"icon":104},"Цены на модели","/ru/pricing/model-prices","ru/pricing/model-prices",{"title":233,"path":234,"stem":235,"icon":109},"Тарифные планы","/ru/pricing/plans","ru/pricing/plans",{"title":237,"path":238,"stem":239,"children":240,"page":61},"Продукт","/ru/product","ru/product",[241,245,249,253,257,260,264],{"title":242,"path":243,"stem":244,"icon":119},"Агент","/ru/product/agent","ru/product/agent",{"title":246,"path":247,"stem":248,"icon":124},"Графики","/ru/product/analytics","ru/product/analytics",{"title":250,"path":251,"stem":252,"icon":129},"Компании","/ru/product/companies","ru/product/companies",{"title":254,"path":255,"stem":256,"icon":134},"Процедуры","/ru/product/procedures","ru/product/procedures",{"title":136,"path":258,"stem":259,"icon":139},"/ru/product/rbac","ru/product/rbac",{"title":261,"path":262,"stem":263,"icon":144},"Симуляции","/ru/product/simulations","ru/product/simulations",{"title":265,"path":266,"stem":267,"icon":149},"Инструменты","/ru/product/tools","ru/product/tools",{"id":269,"title":246,"body":270,"description":1420,"extension":1421,"links":1422,"meta":1423,"navigation":1424,"path":247,"seo":1425,"stem":248,"__hash__":1426},"docs/ru/product/analytics.md",{"type":271,"value":272,"toc":1397},"minimark",[273,282,287,377,381,421,425,514,519,566,570,617,621,625,710,714,829,833,837,894,898,1000,1004,1089,1093,1208,1212,1256,1260,1264,1293,1297,1328,1332,1376,1393],[274,275,276,277,281],"p",{},"На экране \"Графики\" вы можете создавать детальную аналитику работы ваших агентов, используя вью ",[278,279,280],"code",{},"actions",". Рассмотрим структуру данных и научиться строить эффективные запросы для графиков.",[283,284,286],"h3",{"id":285},"основные-идентификаторы","Основные идентификаторы",[288,289,290,306],"table",{},[291,292,293],"thead",{},[294,295,296,300,303],"tr",{},[297,298,299],"th",{},"Столбец",[297,301,302],{},"Тип",[297,304,305],{},"Описание",[307,308,309,323,340,352,364],"tbody",{},[294,310,311,317,320],{},[312,313,314],"td",{},[278,315,316],{},"action_id",[312,318,319],{},"bigint",[312,321,322],{},"Уникальный идентификатор действия",[294,324,325,330,333],{},[312,326,327],{},[278,328,329],{},"interaction_id",[312,331,332],{},"int",[312,334,335,336],{},"Идентификатор диалога/симуляции. ",[337,338,339],"strong",{},"Используйте для группировки диалогов",[294,341,342,347,349],{},[312,343,344],{},[278,345,346],{},"agent_id",[312,348,332],{},[312,350,351],{},"ID агента",[294,353,354,359,361],{},[312,355,356],{},[278,357,358],{},"agent_version_id",[312,360,332],{},[312,362,363],{},"ID версии агента",[294,365,366,371,374],{},[312,367,368],{},[278,369,370],{},"agent_version_name",[312,372,373],{},"text",[312,375,376],{},"Имя агента",[283,378,380],{"id":379},"временные-метки","Временные метки",[288,382,383,393],{},[291,384,385],{},[294,386,387,389,391],{},[297,388,299],{},[297,390,302],{},[297,392,305],{},[307,394,395,408],{},[294,396,397,402,405],{},[312,398,399],{},[278,400,401],{},"action_time",[312,403,404],{},"timestamp with time zone",[312,406,407],{},"Точное время действия (например: 2025-03-22 12:35:32.3861+00)",[294,409,410,415,418],{},[312,411,412],{},[278,413,414],{},"interaction_date",[312,416,417],{},"date",[312,419,420],{},"Дата взаимодействия в формате YYYY-MM-DD",[283,422,424],{"id":423},"типы-действий-и-контент","Типы действий и контент",[288,426,427,437],{},[291,428,429],{},[294,430,431,433,435],{},[297,432,299],{},[297,434,302],{},[297,436,305],{},[307,438,439,452,465,477,490,502],{},[294,440,441,446,449],{},[312,442,443],{},[278,444,445],{},"action_role",[312,447,448],{},"character varying",[312,450,451],{},"Роль выполняющего действие",[294,453,454,459,462],{},[312,455,456],{},[278,457,458],{},"action_type",[312,460,461],{},"char(255)",[312,463,464],{},"Тип действия",[294,466,467,472,474],{},[312,468,469],{},[278,470,471],{},"action_content",[312,473,373],{},[312,475,476],{},"Содержимое действия (текст или JSON)",[294,478,479,484,487],{},[312,480,481],{},[278,482,483],{},"action_content_is_json",[312,485,486],{},"bool",[312,488,489],{},"Указывает, что content содержит JSON",[294,491,492,497,499],{},[312,493,494],{},[278,495,496],{},"tool_code_name",[312,498,373],{},[312,500,501],{},"Название инструмента (если действие - вызов инструмента)",[294,503,504,509,511],{},[312,505,506],{},[278,507,508],{},"interaction_type",[312,510,448],{},[312,512,513],{},"Тип взаимодействия (\"simulation\" или \"dialogue\")",[515,516,518],"h2",{"id":517},"типы-ролей-action_role","🎭 Типы ролей (action_role)",[520,521,526],"pre",{"className":522,"code":523,"language":524,"meta":525,"style":525},"language-sql shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","-- Enum значения для action_role:\n\"assistant\"     -- Действие ассистента\n\"user\"          -- Действие пользователя  \n\"system\"        -- Системное сообщение (инструкции, данные, завершения)\n\"tool_call\"     -- Вызов инструмента агентом\n\"tool_response\" -- Ответ инструмента\n","sql","",[278,527,528,536,542,548,554,560],{"__ignoreMap":525},[529,530,533],"span",{"class":531,"line":532},"line",1,[529,534,535],{},"-- Enum значения для action_role:\n",[529,537,539],{"class":531,"line":538},2,[529,540,541],{},"\"assistant\"     -- Действие ассистента\n",[529,543,545],{"class":531,"line":544},3,[529,546,547],{},"\"user\"          -- Действие пользователя  \n",[529,549,551],{"class":531,"line":550},4,[529,552,553],{},"\"system\"        -- Системное сообщение (инструкции, данные, завершения)\n",[529,555,557],{"class":531,"line":556},5,[529,558,559],{},"\"tool_call\"     -- Вызов инструмента агентом\n",[529,561,563],{"class":531,"line":562},6,[529,564,565],{},"\"tool_response\" -- Ответ инструмента\n",[515,567,569],{"id":568},"типы-действий-action_type","🔧 Типы действий (action_type)",[520,571,573],{"className":522,"code":572,"language":524,"meta":525,"style":525},"-- Enum значения для action_type:\n\"action\"        -- Вызовы инструментов и их ответы\n\"data\"          -- Входящие данные\n\"error\"         -- Ошибки во время разговора\n\"history\"       -- Принудительно добавленные в историю сообщения\n\"instruction\"   -- Инструкция агенту\n\"line\"          -- Реплика в диалоге (от агента или пользователя)\n\"termination\"   -- Завершение диалога\n",[278,574,575,580,585,590,595,600,605,611],{"__ignoreMap":525},[529,576,577],{"class":531,"line":532},[529,578,579],{},"-- Enum значения для action_type:\n",[529,581,582],{"class":531,"line":538},[529,583,584],{},"\"action\"        -- Вызовы инструментов и их ответы\n",[529,586,587],{"class":531,"line":544},[529,588,589],{},"\"data\"          -- Входящие данные\n",[529,591,592],{"class":531,"line":550},[529,593,594],{},"\"error\"         -- Ошибки во время разговора\n",[529,596,597],{"class":531,"line":556},[529,598,599],{},"\"history\"       -- Принудительно добавленные в историю сообщения\n",[529,601,602],{"class":531,"line":562},[529,603,604],{},"\"instruction\"   -- Инструкция агенту\n",[529,606,608],{"class":531,"line":607},7,[529,609,610],{},"\"line\"          -- Реплика в диалоге (от агента или пользователя)\n",[529,612,614],{"class":531,"line":613},8,[529,615,616],{},"\"termination\"   -- Завершение диалога\n",[515,618,620],{"id":619},"структура-json-в-action_content","📝 Структура JSON в action_content",[283,622,624],{"id":623},"вызов-инструмента-tool_call","Вызов инструмента (tool_call):",[520,626,630],{"className":627,"code":628,"language":629,"meta":525,"style":525},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"tool\": \"tool_name\",\n  \"args\": {\n    \"some_argument\": \"Значение аргумента\"\n  }\n}\n","json",[278,631,632,638,665,679,700,705],{"__ignoreMap":525},[529,633,634],{"class":531,"line":532},[529,635,637],{"class":636},"sMK4o","{\n",[529,639,640,643,647,650,653,656,660,662],{"class":531,"line":538},[529,641,642],{"class":636},"  \"",[529,644,646],{"class":645},"spNyl","tool",[529,648,649],{"class":636},"\"",[529,651,652],{"class":636},":",[529,654,655],{"class":636}," \"",[529,657,659],{"class":658},"sfazB","tool_name",[529,661,649],{"class":636},[529,663,664],{"class":636},",\n",[529,666,667,669,672,674,676],{"class":531,"line":544},[529,668,642],{"class":636},[529,670,671],{"class":645},"args",[529,673,649],{"class":636},[529,675,652],{"class":636},[529,677,678],{"class":636}," {\n",[529,680,681,684,688,690,692,694,697],{"class":531,"line":550},[529,682,683],{"class":636},"    \"",[529,685,687],{"class":686},"sBMFI","some_argument",[529,689,649],{"class":636},[529,691,652],{"class":636},[529,693,655],{"class":636},[529,695,696],{"class":658},"Значение аргумента",[529,698,699],{"class":636},"\"\n",[529,701,702],{"class":531,"line":556},[529,703,704],{"class":636},"  }\n",[529,706,707],{"class":531,"line":562},[529,708,709],{"class":636},"}\n",[283,711,713],{"id":712},"ответ-инструмента-tool_response","Ответ инструмента (tool_response)",[520,715,717],{"className":627,"code":716,"language":629,"meta":525,"style":525},"{\n    \"tool\": \"tool_name\", \n    \"response\": {\n        \"output\": \"Ответ функции\", \n        \"action\": \"continue|terminate|transfer\",\n        \"target\": \"Цель перевода, если action = transfer\"\n        }\n}\n",[278,718,719,723,746,759,782,802,820,825],{"__ignoreMap":525},[529,720,721],{"class":531,"line":532},[529,722,637],{"class":636},[529,724,725,727,729,731,733,735,737,739,742],{"class":531,"line":538},[529,726,683],{"class":636},[529,728,646],{"class":645},[529,730,649],{"class":636},[529,732,652],{"class":636},[529,734,655],{"class":636},[529,736,659],{"class":658},[529,738,649],{"class":636},[529,740,741],{"class":636},",",[529,743,745],{"class":744},"sTEyZ"," \n",[529,747,748,750,753,755,757],{"class":531,"line":544},[529,749,683],{"class":636},[529,751,752],{"class":645},"response",[529,754,649],{"class":636},[529,756,652],{"class":636},[529,758,678],{"class":636},[529,760,761,764,767,769,771,773,776,778,780],{"class":531,"line":550},[529,762,763],{"class":636},"        \"",[529,765,766],{"class":686},"output",[529,768,649],{"class":636},[529,770,652],{"class":636},[529,772,655],{"class":636},[529,774,775],{"class":658},"Ответ функции",[529,777,649],{"class":636},[529,779,741],{"class":636},[529,781,745],{"class":744},[529,783,784,786,789,791,793,795,798,800],{"class":531,"line":556},[529,785,763],{"class":636},[529,787,788],{"class":686},"action",[529,790,649],{"class":636},[529,792,652],{"class":636},[529,794,655],{"class":636},[529,796,797],{"class":658},"continue|terminate|transfer",[529,799,649],{"class":636},[529,801,664],{"class":636},[529,803,804,806,809,811,813,815,818],{"class":531,"line":562},[529,805,763],{"class":636},[529,807,808],{"class":686},"target",[529,810,649],{"class":636},[529,812,652],{"class":636},[529,814,655],{"class":636},[529,816,817],{"class":658},"Цель перевода, если action = transfer",[529,819,699],{"class":636},[529,821,822],{"class":531,"line":607},[529,823,824],{"class":636},"        }\n",[529,826,827],{"class":531,"line":613},[529,828,709],{"class":636},[515,830,832],{"id":831},"примеры-запросов-для-графиков","📈 Примеры запросов для графиков",[283,834,836],{"id":835},"_1-количество-обращений-по-часам-за-день","1. Количество обращений по часам за день",[520,838,840],{"className":522,"code":839,"language":524,"meta":525,"style":525},"SELECT \n    DATE_TRUNC('hour', action_time) AS hour,\n    COUNT(DISTINCT interaction_id) AS dialogue_count\nFROM dialogues\nWHERE \n    agent_id = 147 \n    AND interaction_date = '2025-04-30' \n    AND interaction_type = 'dialogue'\nGROUP BY hour \nORDER BY hour;\n",[278,841,842,847,852,857,862,867,872,877,882,888],{"__ignoreMap":525},[529,843,844],{"class":531,"line":532},[529,845,846],{},"SELECT \n",[529,848,849],{"class":531,"line":538},[529,850,851],{},"    DATE_TRUNC('hour', action_time) AS hour,\n",[529,853,854],{"class":531,"line":544},[529,855,856],{},"    COUNT(DISTINCT interaction_id) AS dialogue_count\n",[529,858,859],{"class":531,"line":550},[529,860,861],{},"FROM dialogues\n",[529,863,864],{"class":531,"line":556},[529,865,866],{},"WHERE \n",[529,868,869],{"class":531,"line":562},[529,870,871],{},"    agent_id = 147 \n",[529,873,874],{"class":531,"line":607},[529,875,876],{},"    AND interaction_date = '2025-04-30' \n",[529,878,879],{"class":531,"line":613},[529,880,881],{},"    AND interaction_type = 'dialogue'\n",[529,883,885],{"class":531,"line":884},9,[529,886,887],{},"GROUP BY hour \n",[529,889,891],{"class":531,"line":890},10,[529,892,893],{},"ORDER BY hour;\n",[283,895,897],{"id":896},"_2-средняя-продолжительность-диалогов-по-дням","2. Средняя продолжительность диалогов по дням",[520,899,901],{"className":522,"code":900,"language":524,"meta":525,"style":525},"WITH dialogue_durations AS (\n    SELECT \n        interaction_id,\n        toUInt64(MAX(action_time) - MIN(action_time)) AS duration_seconds,\n        interaction_date\n    FROM dialogues\n    WHERE \n        agent_id = 147\n        AND interaction_type = 'dialogue'\n        AND interaction_date >= today() - INTERVAL 7 DAY\n    GROUP BY interaction_id, interaction_date\n)\nSELECT \n    interaction_date,\n    ROUND(AVG(duration_seconds), 1) AS average_duration_seconds\nFROM dialogue_durations\nGROUP BY interaction_date\nORDER BY interaction_date;\n",[278,902,903,908,913,918,923,928,933,938,943,948,953,959,965,970,976,982,988,994],{"__ignoreMap":525},[529,904,905],{"class":531,"line":532},[529,906,907],{},"WITH dialogue_durations AS (\n",[529,909,910],{"class":531,"line":538},[529,911,912],{},"    SELECT \n",[529,914,915],{"class":531,"line":544},[529,916,917],{},"        interaction_id,\n",[529,919,920],{"class":531,"line":550},[529,921,922],{},"        toUInt64(MAX(action_time) - MIN(action_time)) AS duration_seconds,\n",[529,924,925],{"class":531,"line":556},[529,926,927],{},"        interaction_date\n",[529,929,930],{"class":531,"line":562},[529,931,932],{},"    FROM dialogues\n",[529,934,935],{"class":531,"line":607},[529,936,937],{},"    WHERE \n",[529,939,940],{"class":531,"line":613},[529,941,942],{},"        agent_id = 147\n",[529,944,945],{"class":531,"line":884},[529,946,947],{},"        AND interaction_type = 'dialogue'\n",[529,949,950],{"class":531,"line":890},[529,951,952],{},"        AND interaction_date >= today() - INTERVAL 7 DAY\n",[529,954,956],{"class":531,"line":955},11,[529,957,958],{},"    GROUP BY interaction_id, interaction_date\n",[529,960,962],{"class":531,"line":961},12,[529,963,964],{},")\n",[529,966,968],{"class":531,"line":967},13,[529,969,846],{},[529,971,973],{"class":531,"line":972},14,[529,974,975],{},"    interaction_date,\n",[529,977,979],{"class":531,"line":978},15,[529,980,981],{},"    ROUND(AVG(duration_seconds), 1) AS average_duration_seconds\n",[529,983,985],{"class":531,"line":984},16,[529,986,987],{},"FROM dialogue_durations\n",[529,989,991],{"class":531,"line":990},17,[529,992,993],{},"GROUP BY interaction_date\n",[529,995,997],{"class":531,"line":996},18,[529,998,999],{},"ORDER BY interaction_date;\n",[283,1001,1003],{"id":1002},"_3-диалоги-без-перевода-на-оператора","3. Диалоги без перевода на оператора",[520,1005,1007],{"className":522,"code":1006,"language":524,"meta":525,"style":525},"WITH interaction_transfer_status AS (\n    SELECT \n        interaction_date,\n        interaction_id,\n        MAX(CASE WHEN action_content LIKE '%\"action\": \"transfer\"%' THEN 1 ELSE 0 END) AS has_transfer\n    FROM dialogues\n    WHERE \n        agent_id = 147\n        AND interaction_date >= today() - 7\n    GROUP BY interaction_date, interaction_id\n)\nSELECT \n    interaction_date,\n    COUNT(DISTINCT CASE WHEN has_transfer = 0 THEN interaction_id END) AS dialogs_without_transfer,\n    COUNT(DISTINCT CASE WHEN has_transfer = 1 THEN interaction_id END) AS dialogs_with_transfer\nFROM interaction_transfer_status\nGROUP BY interaction_date\nORDER BY interaction_date;\n",[278,1008,1009,1014,1018,1023,1027,1032,1036,1040,1044,1049,1054,1058,1062,1066,1071,1076,1081,1085],{"__ignoreMap":525},[529,1010,1011],{"class":531,"line":532},[529,1012,1013],{},"WITH interaction_transfer_status AS (\n",[529,1015,1016],{"class":531,"line":538},[529,1017,912],{},[529,1019,1020],{"class":531,"line":544},[529,1021,1022],{},"        interaction_date,\n",[529,1024,1025],{"class":531,"line":550},[529,1026,917],{},[529,1028,1029],{"class":531,"line":556},[529,1030,1031],{},"        MAX(CASE WHEN action_content LIKE '%\"action\": \"transfer\"%' THEN 1 ELSE 0 END) AS has_transfer\n",[529,1033,1034],{"class":531,"line":562},[529,1035,932],{},[529,1037,1038],{"class":531,"line":607},[529,1039,937],{},[529,1041,1042],{"class":531,"line":613},[529,1043,942],{},[529,1045,1046],{"class":531,"line":884},[529,1047,1048],{},"        AND interaction_date >= today() - 7\n",[529,1050,1051],{"class":531,"line":890},[529,1052,1053],{},"    GROUP BY interaction_date, interaction_id\n",[529,1055,1056],{"class":531,"line":955},[529,1057,964],{},[529,1059,1060],{"class":531,"line":961},[529,1061,846],{},[529,1063,1064],{"class":531,"line":967},[529,1065,975],{},[529,1067,1068],{"class":531,"line":972},[529,1069,1070],{},"    COUNT(DISTINCT CASE WHEN has_transfer = 0 THEN interaction_id END) AS dialogs_without_transfer,\n",[529,1072,1073],{"class":531,"line":978},[529,1074,1075],{},"    COUNT(DISTINCT CASE WHEN has_transfer = 1 THEN interaction_id END) AS dialogs_with_transfer\n",[529,1077,1078],{"class":531,"line":984},[529,1079,1080],{},"FROM interaction_transfer_status\n",[529,1082,1083],{"class":531,"line":990},[529,1084,993],{},[529,1086,1087],{"class":531,"line":996},[529,1088,999],{},[283,1090,1092],{"id":1091},"_4-доля-диалогов-без-использования-инструментов","4. Доля диалогов без использования инструментов",[520,1094,1096],{"className":522,"code":1095,"language":524,"meta":525,"style":525},"WITH interaction_tool_usage AS (\n    SELECT \n        interaction_date,\n        interaction_id,\n        CASE WHEN EXISTS (\n            SELECT 1 \n            FROM dialogues AS sub\n            WHERE sub.interaction_id = actions.interaction_id\n            AND sub.tool_code_name IS NOT NULL\n            AND sub.tool_code_name != 'None'\n        ) THEN 1 ELSE 0 END AS has_tool_calls\n    FROM dialogues\n    WHERE interaction_date >= today() - INTERVAL 7 DAY\n    GROUP BY interaction_date, interaction_id\n)\nSELECT \n    interaction_date,\n    COUNT(*) AS total_dialogs,\n    COUNT(*) - SUM(has_tool_calls) AS dialogs_without_tools,\n    ROUND(((COUNT(*) - SUM(has_tool_calls)) * 100.0) / COUNT(*), 2) AS percentage_without_tools\nFROM interaction_tool_usage\nGROUP BY interaction_date\nORDER BY interaction_date;\n",[278,1097,1098,1103,1107,1111,1115,1120,1125,1130,1135,1140,1145,1150,1154,1159,1163,1167,1171,1175,1180,1186,1192,1198,1203],{"__ignoreMap":525},[529,1099,1100],{"class":531,"line":532},[529,1101,1102],{},"WITH interaction_tool_usage AS (\n",[529,1104,1105],{"class":531,"line":538},[529,1106,912],{},[529,1108,1109],{"class":531,"line":544},[529,1110,1022],{},[529,1112,1113],{"class":531,"line":550},[529,1114,917],{},[529,1116,1117],{"class":531,"line":556},[529,1118,1119],{},"        CASE WHEN EXISTS (\n",[529,1121,1122],{"class":531,"line":562},[529,1123,1124],{},"            SELECT 1 \n",[529,1126,1127],{"class":531,"line":607},[529,1128,1129],{},"            FROM dialogues AS sub\n",[529,1131,1132],{"class":531,"line":613},[529,1133,1134],{},"            WHERE sub.interaction_id = actions.interaction_id\n",[529,1136,1137],{"class":531,"line":884},[529,1138,1139],{},"            AND sub.tool_code_name IS NOT NULL\n",[529,1141,1142],{"class":531,"line":890},[529,1143,1144],{},"            AND sub.tool_code_name != 'None'\n",[529,1146,1147],{"class":531,"line":955},[529,1148,1149],{},"        ) THEN 1 ELSE 0 END AS has_tool_calls\n",[529,1151,1152],{"class":531,"line":961},[529,1153,932],{},[529,1155,1156],{"class":531,"line":967},[529,1157,1158],{},"    WHERE interaction_date >= today() - INTERVAL 7 DAY\n",[529,1160,1161],{"class":531,"line":972},[529,1162,1053],{},[529,1164,1165],{"class":531,"line":978},[529,1166,964],{},[529,1168,1169],{"class":531,"line":984},[529,1170,846],{},[529,1172,1173],{"class":531,"line":990},[529,1174,975],{},[529,1176,1177],{"class":531,"line":996},[529,1178,1179],{},"    COUNT(*) AS total_dialogs,\n",[529,1181,1183],{"class":531,"line":1182},19,[529,1184,1185],{},"    COUNT(*) - SUM(has_tool_calls) AS dialogs_without_tools,\n",[529,1187,1189],{"class":531,"line":1188},20,[529,1190,1191],{},"    ROUND(((COUNT(*) - SUM(has_tool_calls)) * 100.0) / COUNT(*), 2) AS percentage_without_tools\n",[529,1193,1195],{"class":531,"line":1194},21,[529,1196,1197],{},"FROM interaction_tool_usage\n",[529,1199,1201],{"class":531,"line":1200},22,[529,1202,993],{},[529,1204,1206],{"class":531,"line":1205},23,[529,1207,999],{},[283,1209,1211],{"id":1210},"_5-анализ-аргументов-функций-пример-с-nps","5. Анализ аргументов функций (пример с NPS)",[520,1213,1215],{"className":522,"code":1214,"language":524,"meta":525,"style":525},"SELECT \n    interaction_date,\n    AVG(CAST(JSONExtractString(action_content, 'arguments', 'nps_mark') AS Int)) AS average_nps_mark\nFROM dialogues\nWHERE \n    tool_code_name = 'result_of_nps_survey'\n    AND JSONExtractString(action_content, 'arguments', 'nps_mark') != ''\nGROUP BY interaction_date\nORDER BY interaction_date;\n",[278,1216,1217,1221,1225,1230,1234,1238,1243,1248,1252],{"__ignoreMap":525},[529,1218,1219],{"class":531,"line":532},[529,1220,846],{},[529,1222,1223],{"class":531,"line":538},[529,1224,975],{},[529,1226,1227],{"class":531,"line":544},[529,1228,1229],{},"    AVG(CAST(JSONExtractString(action_content, 'arguments', 'nps_mark') AS Int)) AS average_nps_mark\n",[529,1231,1232],{"class":531,"line":550},[529,1233,861],{},[529,1235,1236],{"class":531,"line":556},[529,1237,866],{},[529,1239,1240],{"class":531,"line":562},[529,1241,1242],{},"    tool_code_name = 'result_of_nps_survey'\n",[529,1244,1245],{"class":531,"line":607},[529,1246,1247],{},"    AND JSONExtractString(action_content, 'arguments', 'nps_mark') != ''\n",[529,1249,1250],{"class":531,"line":613},[529,1251,993],{},[529,1253,1254],{"class":531,"line":884},[529,1255,999],{},[515,1257,1259],{"id":1258},"️-важные-правила-и-ограничения","⚠️ Важные правила и ограничения",[283,1261,1263],{"id":1262},"рекомендуемые-практики","Рекомендуемые практики:",[1265,1266,1267,1274,1280,1283,1290],"ul",{},[1268,1269,1270,1271,1273],"li",{},"✅ Используйте ",[278,1272,329],{}," для группировки по диалогам",[1268,1275,1276,1277,1279],{},"✅ Проверяйте ",[278,1278,483],{}," перед работой с JSON",[1268,1281,1282],{},"✅ Используйте функции ClickHouse для работы с датами",[1268,1284,1285,1286,1289],{},"✅ Применяйте ",[278,1287,1288],{},"EXISTS"," для проверки наличия инструментов",[1268,1291,1292],{},"✅ Группируйте по дате для статистики по дням",[283,1294,1296],{"id":1295},"работа-с-json","Работа с JSON:",[520,1298,1300],{"className":522,"code":1299,"language":524,"meta":525,"style":525},"-- Для извлечения вложенных значений:\nJSONExtractString(action_content, 'arguments', 'parameter_name')\n\n-- Проверка типа действия:\naction_content LIKE '%\"action\": \"transfer\"%'\n",[278,1301,1302,1307,1312,1318,1323],{"__ignoreMap":525},[529,1303,1304],{"class":531,"line":532},[529,1305,1306],{},"-- Для извлечения вложенных значений:\n",[529,1308,1309],{"class":531,"line":538},[529,1310,1311],{},"JSONExtractString(action_content, 'arguments', 'parameter_name')\n",[529,1313,1314],{"class":531,"line":544},[529,1315,1317],{"emptyLinePlaceholder":1316},true,"\n",[529,1319,1320],{"class":531,"line":550},[529,1321,1322],{},"-- Проверка типа действия:\n",[529,1324,1325],{"class":531,"line":556},[529,1326,1327],{},"action_content LIKE '%\"action\": \"transfer\"%'\n",[515,1329,1331],{"id":1330},"терминология","🔍 Терминология",[1265,1333,1334,1347,1355,1364],{},[1268,1335,1336,1339,1340,1343,1344,1346],{},[337,1337,1338],{},"Функция"," = ",[337,1341,1342],{},"Инструмент"," - используйте ",[278,1345,496],{}," для анализа",[1268,1348,1349,1352,1353],{},[337,1350,1351],{},"Диалог"," - группируется по ",[278,1354,329],{},[1268,1356,1357,1360,1361],{},[337,1358,1359],{},"Реплика"," - отдельное действие с ",[278,1362,1363],{},"action_type = 'line'",[1268,1365,1366,1369,1370,1373,1374],{},[337,1367,1368],{},"Перевод на оператора"," - ищите ",[278,1371,1372],{},"\"action\": \"transfer\""," в ",[278,1375,471],{},[274,1377,1378,1379,1386,1387,1392],{},"Эта структура данных позволяет создавать мощную аналитику для мониторинга производительности ваших агентов. Присоединяйтесь к нашему ",[1380,1381,1385],"a",{"href":1382,"rel":1383},"https://t.me/+QFTjIgf70NFmN2My",[1384],"nofollow","tg-каналу"," и ",[1380,1388,1391],{"href":1389,"rel":1390},"https://t.me/+n20MsKSZzzMwNDgy",[1384],"чату"," для обсуждения и поддержки.",[1394,1395,1396],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}",{"title":525,"searchDepth":532,"depth":538,"links":1398},[1399,1400,1401,1402,1403,1404,1408,1415,1419],{"id":285,"depth":544,"text":286},{"id":379,"depth":544,"text":380},{"id":423,"depth":544,"text":424},{"id":517,"depth":538,"text":518},{"id":568,"depth":538,"text":569},{"id":619,"depth":538,"text":620,"children":1405},[1406,1407],{"id":623,"depth":544,"text":624},{"id":712,"depth":544,"text":713},{"id":831,"depth":538,"text":832,"children":1409},[1410,1411,1412,1413,1414],{"id":835,"depth":544,"text":836},{"id":896,"depth":544,"text":897},{"id":1002,"depth":544,"text":1003},{"id":1091,"depth":544,"text":1092},{"id":1210,"depth":544,"text":1211},{"id":1258,"depth":538,"text":1259,"children":1416},[1417,1418],{"id":1262,"depth":544,"text":1263},{"id":1295,"depth":544,"text":1296},{"id":1330,"depth":538,"text":1331},"Аналитика работы агентов","md",null,{},{"icon":124},{"title":246,"description":1420},"lwEh4LyV-aX50iZ-bDthqIIOLxg_uiBR3Eq-1H4sPUA",[1428,1430],{"title":242,"path":243,"stem":244,"description":1429,"icon":119,"children":-1},"Создание и настройка агентов",{"title":250,"path":251,"stem":252,"description":1431,"icon":129,"children":-1},"Управление компаниями, балансом и группами компаний",1778099773298]