@besales/mcp 0.45.0 → 0.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/resources/docs/crm-integration.md +3 -1
- package/dist/resources/workflows/compare-models.md +4 -3
- package/dist/resources/workflows/connect-crm-from-scratch.md +8 -0
- package/dist/schemas/mcp-tools.json +431 -30
- package/dist/tools/definitions/agent-design.d.ts +8 -0
- package/dist/tools/definitions/agent-design.js +3 -0
- package/dist/tools/definitions/agent-design.js.map +1 -1
- package/dist/tools/definitions/broadcast-analytics.d.ts +5 -4
- package/dist/tools/definitions/broadcast-analytics.js +14 -4
- package/dist/tools/definitions/broadcast-analytics.js.map +1 -1
- package/dist/tools/definitions/broadcast-scheduler.d.ts +14 -1
- package/dist/tools/definitions/broadcast-scheduler.js +64 -5
- package/dist/tools/definitions/broadcast-scheduler.js.map +1 -1
- package/dist/tools/definitions/crm-platform.js +20 -0
- package/dist/tools/definitions/crm-platform.js.map +1 -1
- package/dist/tools/definitions/follow-up.js +2 -0
- package/dist/tools/definitions/follow-up.js.map +1 -1
- package/dist/tools/definitions/getcourse-cold-welcome.d.ts +8 -0
- package/dist/tools/definitions/getcourse-cold-welcome.js +49 -3
- package/dist/tools/definitions/getcourse-cold-welcome.js.map +1 -1
- package/dist/tools/definitions/link-tracking.js +22 -0
- package/dist/tools/definitions/link-tracking.js.map +1 -1
- package/dist/tools/definitions/model-comparison.js +6 -3
- package/dist/tools/definitions/model-comparison.js.map +1 -1
- package/dist/tools/definitions/platform-setup.d.ts +29 -0
- package/dist/tools/definitions/platform-setup.js +14 -1
- package/dist/tools/definitions/platform-setup.js.map +1 -1
- package/dist/tools/definitions/shared.d.ts +120 -0
- package/dist/tools/definitions/shared.js +96 -0
- package/dist/tools/definitions/shared.js.map +1 -1
- package/dist/tools/definitions/trigger-contact-claims.d.ts +7 -0
- package/dist/tools/definitions/trigger-contact-claims.js +58 -0
- package/dist/tools/definitions/trigger-contact-claims.js.map +1 -0
- package/dist/tools/definitions.d.ts +70 -5
- package/dist/tools/definitions.js +2 -0
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/registry-mapping-cases-core.js +11 -2
- package/dist/tools/registry-mapping-cases-core.js.map +1 -1
- package/dist/tools/trigger-action-config.js +4 -0
- package/dist/tools/trigger-action-config.js.map +1 -1
- package/dist/types/api-contract.gen.d.ts +976 -37
- package/docs/agent-usage-guide.full.ru.md +1 -0
- package/package.json +1 -1
|
@@ -5018,8 +5018,13 @@ export interface paths {
|
|
|
5018
5018
|
/**
|
|
5019
5019
|
* S3.8: Apply batch patch operations + reset activity TTL (24h)
|
|
5020
5020
|
* @description Применяет операции к draft.currentContent через `applyPromptPatchOperations`.
|
|
5021
|
-
* Resets TTL на каждом вызове (activity-based 24h). Возвращает
|
|
5022
|
-
* `
|
|
5021
|
+
* Resets TTL на каждом вызове (activity-based 24h). Возвращает `appliedCount` +
|
|
5022
|
+
* `skippedCount` (anchor не нашёлся → ops пропущены) и `diff` — построчную
|
|
5023
|
+
* разницу «до → после».
|
|
5024
|
+
*
|
|
5025
|
+
* Текст черновика в ответе НЕ отдаётся: клиент прочитал промпт целиком при создании
|
|
5026
|
+
* черновика, а здесь ждёт подтверждения правки. Перечитать полностью —
|
|
5027
|
+
* `GET /prompt/drafts/{draftId}`.
|
|
5023
5028
|
*
|
|
5024
5029
|
* Growth guard: операции, увеличивающие размер >30% от baseContent → пропускаются
|
|
5025
5030
|
* с skippedCount > 0.
|
|
@@ -5084,6 +5089,10 @@ export interface paths {
|
|
|
5084
5089
|
*
|
|
5085
5090
|
* Idempotency: повторный commit того же draft возвращает existing newVersion
|
|
5086
5091
|
* (детектируется через 410 Gone + GET draft → COMMITTED).
|
|
5092
|
+
*
|
|
5093
|
+
* Ответ несёт только адресацию новой версии (`id` + `version`) и метаданные
|
|
5094
|
+
* черновика: `draft.currentContent` и `newVersion.content` — две копии одного
|
|
5095
|
+
* текста, который клиент сам и собрал.
|
|
5087
5096
|
*/
|
|
5088
5097
|
post: {
|
|
5089
5098
|
parameters: {
|
|
@@ -9315,6 +9324,118 @@ export interface paths {
|
|
|
9315
9324
|
patch?: never;
|
|
9316
9325
|
trace?: never;
|
|
9317
9326
|
};
|
|
9327
|
+
"/api/v2/contacts/{contactId}/trigger-claims": {
|
|
9328
|
+
parameters: {
|
|
9329
|
+
query?: never;
|
|
9330
|
+
header?: never;
|
|
9331
|
+
path?: never;
|
|
9332
|
+
cookie?: never;
|
|
9333
|
+
};
|
|
9334
|
+
/**
|
|
9335
|
+
* List burnt one-time trigger claims for contact
|
|
9336
|
+
* @description Права одноразовых триггеров (AgentTrigger.runOncePerContact), уже занятые этим контактом. canReset=false означает, что право держит идущий прогон.
|
|
9337
|
+
*/
|
|
9338
|
+
get: {
|
|
9339
|
+
parameters: {
|
|
9340
|
+
query?: never;
|
|
9341
|
+
header?: never;
|
|
9342
|
+
path: {
|
|
9343
|
+
contactId: string;
|
|
9344
|
+
};
|
|
9345
|
+
cookie?: never;
|
|
9346
|
+
};
|
|
9347
|
+
requestBody?: never;
|
|
9348
|
+
responses: {
|
|
9349
|
+
200: {
|
|
9350
|
+
headers: {
|
|
9351
|
+
[name: string]: unknown;
|
|
9352
|
+
};
|
|
9353
|
+
content: {
|
|
9354
|
+
"application/json": components["schemas"]["TriggerContactClaimsPage"];
|
|
9355
|
+
};
|
|
9356
|
+
};
|
|
9357
|
+
/** @description Контакт не найден в воркспейсе */
|
|
9358
|
+
404: {
|
|
9359
|
+
headers: {
|
|
9360
|
+
[name: string]: unknown;
|
|
9361
|
+
};
|
|
9362
|
+
content?: never;
|
|
9363
|
+
};
|
|
9364
|
+
};
|
|
9365
|
+
};
|
|
9366
|
+
put?: never;
|
|
9367
|
+
post?: never;
|
|
9368
|
+
delete?: never;
|
|
9369
|
+
options?: never;
|
|
9370
|
+
head?: never;
|
|
9371
|
+
patch?: never;
|
|
9372
|
+
trace?: never;
|
|
9373
|
+
};
|
|
9374
|
+
"/api/v2/contacts/{contactId}/trigger-claims/{triggerId}": {
|
|
9375
|
+
parameters: {
|
|
9376
|
+
query?: never;
|
|
9377
|
+
header?: never;
|
|
9378
|
+
path?: never;
|
|
9379
|
+
cookie?: never;
|
|
9380
|
+
};
|
|
9381
|
+
get?: never;
|
|
9382
|
+
put?: never;
|
|
9383
|
+
post?: never;
|
|
9384
|
+
/**
|
|
9385
|
+
* Allow a one-time trigger to fire for the contact again
|
|
9386
|
+
* @description Возвращает контакту сожжённое право. Снимается ТОЛЬКО status=COMPLETED: право со status=IN_PROGRESS держит владелец, а его finalize адресует пару «триггер+контакт», и удаление такой строки дало бы двух владельцев и повторные необратимые действия.
|
|
9387
|
+
*/
|
|
9388
|
+
delete: {
|
|
9389
|
+
parameters: {
|
|
9390
|
+
query?: never;
|
|
9391
|
+
header?: never;
|
|
9392
|
+
path: {
|
|
9393
|
+
contactId: string;
|
|
9394
|
+
triggerId: string;
|
|
9395
|
+
};
|
|
9396
|
+
cookie?: never;
|
|
9397
|
+
};
|
|
9398
|
+
requestBody: {
|
|
9399
|
+
content: {
|
|
9400
|
+
"application/json": components["schemas"]["ResetTriggerClaimRequest"];
|
|
9401
|
+
};
|
|
9402
|
+
};
|
|
9403
|
+
responses: {
|
|
9404
|
+
/** @description Право возвращено */
|
|
9405
|
+
204: {
|
|
9406
|
+
headers: {
|
|
9407
|
+
[name: string]: unknown;
|
|
9408
|
+
};
|
|
9409
|
+
content?: never;
|
|
9410
|
+
};
|
|
9411
|
+
/** @description Нет explicitConfirmation */
|
|
9412
|
+
400: {
|
|
9413
|
+
headers: {
|
|
9414
|
+
[name: string]: unknown;
|
|
9415
|
+
};
|
|
9416
|
+
content?: never;
|
|
9417
|
+
};
|
|
9418
|
+
/** @description Контакт не найден либо право не занято */
|
|
9419
|
+
404: {
|
|
9420
|
+
headers: {
|
|
9421
|
+
[name: string]: unknown;
|
|
9422
|
+
};
|
|
9423
|
+
content?: never;
|
|
9424
|
+
};
|
|
9425
|
+
/** @description Право держит прогон триггера */
|
|
9426
|
+
409: {
|
|
9427
|
+
headers: {
|
|
9428
|
+
[name: string]: unknown;
|
|
9429
|
+
};
|
|
9430
|
+
content?: never;
|
|
9431
|
+
};
|
|
9432
|
+
};
|
|
9433
|
+
};
|
|
9434
|
+
options?: never;
|
|
9435
|
+
head?: never;
|
|
9436
|
+
patch?: never;
|
|
9437
|
+
trace?: never;
|
|
9438
|
+
};
|
|
9318
9439
|
"/api/v2/contacts/{contactId}/merge-history": {
|
|
9319
9440
|
parameters: {
|
|
9320
9441
|
query?: never;
|
|
@@ -9933,7 +10054,7 @@ export interface paths {
|
|
|
9933
10054
|
parameters: {
|
|
9934
10055
|
query?: {
|
|
9935
10056
|
includeArchived?: boolean;
|
|
9936
|
-
/** @description Глубина сводки в
|
|
10057
|
+
/** @description Глубина сводки в днях. НЕ ЗАДАН — за всё время. Прежде подставлялось окно 60 дней, и оно расходилось само с собой: выданное раньше него показывалось как «выдано 0», тогда как выручка в той же строке считалась за всё время. */
|
|
9937
10058
|
days?: number;
|
|
9938
10059
|
limit?: number;
|
|
9939
10060
|
offset?: number;
|
|
@@ -10099,6 +10220,7 @@ export interface paths {
|
|
|
10099
10220
|
get: {
|
|
10100
10221
|
parameters: {
|
|
10101
10222
|
query?: {
|
|
10223
|
+
/** @description Глубина разреза в днях; не задан — за всё время */
|
|
10102
10224
|
days?: number;
|
|
10103
10225
|
};
|
|
10104
10226
|
header?: never;
|
|
@@ -10129,6 +10251,51 @@ export interface paths {
|
|
|
10129
10251
|
patch?: never;
|
|
10130
10252
|
trace?: never;
|
|
10131
10253
|
};
|
|
10254
|
+
"/api/v2/workspaces/{workspaceId}/tracked-links/{linkId}/reach": {
|
|
10255
|
+
parameters: {
|
|
10256
|
+
query?: never;
|
|
10257
|
+
header?: never;
|
|
10258
|
+
path?: never;
|
|
10259
|
+
cookie?: never;
|
|
10260
|
+
};
|
|
10261
|
+
/**
|
|
10262
|
+
* Разрез ссылки по месту применения
|
|
10263
|
+
* @description Где ссылка работала: площадка и агент, через которых она уходила людям. Отвечает на «где», тогда как /breakdown — на «после какого касания». Оси независимые: одна выдача принадлежит ровно одной площадке и одному агенту, а тип источника — отдельное измерение. ⚠️ null в оси — это «не определён», отдельная строка, а не ноль: у контакта могло не быть ни одного ответа агента. ⚠️ Пустое имя при заполненном id значит, что площадку или агента удалили: id хранится снимком без внешнего ключа, чтобы история кликов пережила удаление.
|
|
10264
|
+
*/
|
|
10265
|
+
get: {
|
|
10266
|
+
parameters: {
|
|
10267
|
+
query?: {
|
|
10268
|
+
/** @description Глубина разреза в днях; не задан — за всё время */
|
|
10269
|
+
days?: number;
|
|
10270
|
+
};
|
|
10271
|
+
header?: never;
|
|
10272
|
+
path: {
|
|
10273
|
+
workspaceId: components["parameters"]["BroadcastWorkspaceId"];
|
|
10274
|
+
linkId: components["parameters"]["TrackedLinkIdPath"];
|
|
10275
|
+
};
|
|
10276
|
+
cookie?: never;
|
|
10277
|
+
};
|
|
10278
|
+
requestBody?: never;
|
|
10279
|
+
responses: {
|
|
10280
|
+
/** @description OK */
|
|
10281
|
+
200: {
|
|
10282
|
+
headers: {
|
|
10283
|
+
[name: string]: unknown;
|
|
10284
|
+
};
|
|
10285
|
+
content: {
|
|
10286
|
+
"application/json": components["schemas"]["TrackedLinkReachBreakdown"][];
|
|
10287
|
+
};
|
|
10288
|
+
};
|
|
10289
|
+
};
|
|
10290
|
+
};
|
|
10291
|
+
put?: never;
|
|
10292
|
+
post?: never;
|
|
10293
|
+
delete?: never;
|
|
10294
|
+
options?: never;
|
|
10295
|
+
head?: never;
|
|
10296
|
+
patch?: never;
|
|
10297
|
+
trace?: never;
|
|
10298
|
+
};
|
|
10132
10299
|
"/api/v2/workspaces/{workspaceId}/tracked-links/{linkId}/clicks": {
|
|
10133
10300
|
parameters: {
|
|
10134
10301
|
query?: never;
|
|
@@ -10143,6 +10310,7 @@ export interface paths {
|
|
|
10143
10310
|
get: {
|
|
10144
10311
|
parameters: {
|
|
10145
10312
|
query?: {
|
|
10313
|
+
/** @description Глубина разреза в днях; не задан — за всё время */
|
|
10146
10314
|
days?: number;
|
|
10147
10315
|
page?: number;
|
|
10148
10316
|
pageSize?: number;
|
|
@@ -10290,6 +10458,8 @@ export interface paths {
|
|
|
10290
10458
|
mailingVariantId?: components["parameters"]["BroadcastMailingVariantId"];
|
|
10291
10459
|
/** @description Механизм запуска: `wave` — доставляет процесс школы (мы штампуем поля сделки), `cold_welcome` — пишем первыми сами. Мультивыбор; ОБА значения = фильтра нет. У строки получателя механизм берётся из её собственного режима, у сделки и кандидата — из когорты по import job (нет метки и нет холодных получателей = wave). */
|
|
10292
10460
|
mechanism?: components["parameters"]["BroadcastMechanism"];
|
|
10461
|
+
/** @description ЧТО ЗАПУСТИЛО отправку: `manual` — оператор нажал «Запустить», `registration` — автоприём регистрации по order-вебхуку школы, `schedule` — ночной прогон планировщика. Мультивыбор; выбраны все = фильтра нет. Это ДРУГАЯ ось, а не уточнение механизма: механизм отвечает «чем доставляли». Любой выбор ИСКЛЮЧАЕТ волны школы целиком — у них запускающего в этом смысле нет. */
|
|
10462
|
+
launchSource?: components["parameters"]["BroadcastLaunchSource"];
|
|
10293
10463
|
/** @description Мультивыбор: повторяйте параметр (`?x=A&x=B`). Одиночное значение остаётся валидным. */
|
|
10294
10464
|
product?: components["parameters"]["BroadcastProduct"];
|
|
10295
10465
|
/** @description Добавляет строки без продукта. Можно сочетать с product: значения и NULL объединяются через OR. */
|
|
@@ -10298,8 +10468,10 @@ export interface paths {
|
|
|
10298
10468
|
freshness?: components["parameters"]["BroadcastFreshness"];
|
|
10299
10469
|
/** @description Мессенджеры волны (транспорты GetCourse + UNKNOWN — канал не определён), мультивыбор. Деньги фильтруются по скалярному каналу сделки. */
|
|
10300
10470
|
channels?: components["parameters"]["BroadcastChannels"];
|
|
10301
|
-
/** @description cohort — дата запуска; period — дата
|
|
10302
|
-
view?: "cohort" | "period";
|
|
10471
|
+
/** @description cohort — дата запуска; period — дата события; entry — дата входа в сегмент (segment_entered_at). В entry строки без даты входа выпадают всегда, включая mode=all. */
|
|
10472
|
+
view?: "cohort" | "period" | "entry";
|
|
10473
|
+
/** @description day — календарные бакеты; period — один компактный бакет __period__ за весь диапазон. */
|
|
10474
|
+
granularity?: "day" | "period";
|
|
10303
10475
|
};
|
|
10304
10476
|
header?: never;
|
|
10305
10477
|
path: {
|
|
@@ -10590,6 +10762,8 @@ export interface paths {
|
|
|
10590
10762
|
mailingVariantId?: components["parameters"]["BroadcastMailingVariantId"];
|
|
10591
10763
|
/** @description Механизм запуска: `wave` — доставляет процесс школы (мы штампуем поля сделки), `cold_welcome` — пишем первыми сами. Мультивыбор; ОБА значения = фильтра нет. У строки получателя механизм берётся из её собственного режима, у сделки и кандидата — из когорты по import job (нет метки и нет холодных получателей = wave). */
|
|
10592
10764
|
mechanism?: components["parameters"]["BroadcastMechanism"];
|
|
10765
|
+
/** @description ЧТО ЗАПУСТИЛО отправку: `manual` — оператор нажал «Запустить», `registration` — автоприём регистрации по order-вебхуку школы, `schedule` — ночной прогон планировщика. Мультивыбор; выбраны все = фильтра нет. Это ДРУГАЯ ось, а не уточнение механизма: механизм отвечает «чем доставляли». Любой выбор ИСКЛЮЧАЕТ волны школы целиком — у них запускающего в этом смысле нет. */
|
|
10766
|
+
launchSource?: components["parameters"]["BroadcastLaunchSource"];
|
|
10593
10767
|
/** @description Мультивыбор: повторяйте параметр (`?x=A&x=B`). Одиночное значение остаётся валидным. */
|
|
10594
10768
|
product?: components["parameters"]["BroadcastProduct"];
|
|
10595
10769
|
/** @description Добавляет строки без продукта. Можно сочетать с product: значения и NULL объединяются через OR. */
|
|
@@ -10654,6 +10828,8 @@ export interface paths {
|
|
|
10654
10828
|
mailingVariantId?: components["parameters"]["BroadcastMailingVariantId"];
|
|
10655
10829
|
/** @description Механизм запуска: `wave` — доставляет процесс школы (мы штампуем поля сделки), `cold_welcome` — пишем первыми сами. Мультивыбор; ОБА значения = фильтра нет. У строки получателя механизм берётся из её собственного режима, у сделки и кандидата — из когорты по import job (нет метки и нет холодных получателей = wave). */
|
|
10656
10830
|
mechanism?: components["parameters"]["BroadcastMechanism"];
|
|
10831
|
+
/** @description ЧТО ЗАПУСТИЛО отправку: `manual` — оператор нажал «Запустить», `registration` — автоприём регистрации по order-вебхуку школы, `schedule` — ночной прогон планировщика. Мультивыбор; выбраны все = фильтра нет. Это ДРУГАЯ ось, а не уточнение механизма: механизм отвечает «чем доставляли». Любой выбор ИСКЛЮЧАЕТ волны школы целиком — у них запускающего в этом смысле нет. */
|
|
10832
|
+
launchSource?: components["parameters"]["BroadcastLaunchSource"];
|
|
10657
10833
|
/** @description Мультивыбор: повторяйте параметр (`?x=A&x=B`). Одиночное значение остаётся валидным. */
|
|
10658
10834
|
product?: components["parameters"]["BroadcastProduct"];
|
|
10659
10835
|
/** @description Добавляет строки без продукта. Можно сочетать с product: значения и NULL объединяются через OR. */
|
|
@@ -10662,7 +10838,7 @@ export interface paths {
|
|
|
10662
10838
|
freshness?: components["parameters"]["BroadcastFreshness"];
|
|
10663
10839
|
/** @description Мессенджеры волны (транспорты GetCourse + UNKNOWN — канал не определён), мультивыбор. Деньги фильтруются по скалярному каналу сделки. */
|
|
10664
10840
|
channels?: components["parameters"]["BroadcastChannels"];
|
|
10665
|
-
/** @description cohort — дата запуска; period — дата
|
|
10841
|
+
/** @description cohort — дата запуска; period — дата события; entry — дата входа в сегмент (segment_entered_at: регистрация, конец серии, предсписок). В entry строки без даты входа выпадают всегда, включая mode=all, а события атрибутируются когортно. */
|
|
10666
10842
|
view?: components["parameters"]["BroadcastView"];
|
|
10667
10843
|
/** @description Конкретный день кликнутой ячейки (МСК). */
|
|
10668
10844
|
date?: components["parameters"]["BroadcastDate"];
|
|
@@ -10696,6 +10872,154 @@ export interface paths {
|
|
|
10696
10872
|
patch?: never;
|
|
10697
10873
|
trace?: never;
|
|
10698
10874
|
};
|
|
10875
|
+
"/api/v2/workspaces/{workspaceId}/broadcast-analytics/unique-contacts": {
|
|
10876
|
+
parameters: {
|
|
10877
|
+
query?: never;
|
|
10878
|
+
header?: never;
|
|
10879
|
+
path?: never;
|
|
10880
|
+
cookie?: never;
|
|
10881
|
+
};
|
|
10882
|
+
/**
|
|
10883
|
+
* Уникальных контактов за период (НЕ аддитивно)
|
|
10884
|
+
* @description Сколько РАЗНЫХ людей стоит за «Отправлено» той же выборки. Периметр совпадает с тоталом
|
|
10885
|
+
* sent; отличие только в единице счёта: строка реестра это «волна × контакт», а тут считается
|
|
10886
|
+
* контакт. Складывать по дням/сегментам/продуктам НЕЛЬЗЯ — один человек живёт в каждой группе,
|
|
10887
|
+
* куда ему уходила волна.
|
|
10888
|
+
*/
|
|
10889
|
+
get: {
|
|
10890
|
+
parameters: {
|
|
10891
|
+
query?: {
|
|
10892
|
+
mode?: components["parameters"]["BroadcastPeriodMode"];
|
|
10893
|
+
days?: components["parameters"]["BroadcastDays"];
|
|
10894
|
+
/** @description Начальная календарная дата МСК для mode=range. */
|
|
10895
|
+
from?: components["parameters"]["BroadcastFrom"];
|
|
10896
|
+
/** @description Конечная календарная дата МСК для mode=range. */
|
|
10897
|
+
to?: components["parameters"]["BroadcastTo"];
|
|
10898
|
+
platformId?: components["parameters"]["BroadcastPlatformId"];
|
|
10899
|
+
/** @description Мультивыбор: повторяйте параметр (`?x=A&x=B`). Одиночное значение остаётся валидным. */
|
|
10900
|
+
funnel?: components["parameters"]["BroadcastFunnel"];
|
|
10901
|
+
/** @description Добавляет строки без воронки. Можно сочетать с funnel: значения и NULL объединяются через OR. */
|
|
10902
|
+
funnelMode?: components["parameters"]["BroadcastFunnelMode"];
|
|
10903
|
+
/** @description Мультивыбор: повторяйте параметр (`?x=A&x=B`). Одиночное значение остаётся валидным. */
|
|
10904
|
+
segment?: components["parameters"]["BroadcastSegment"];
|
|
10905
|
+
/** @description Один или несколько ID именованных вариантов рассылки. */
|
|
10906
|
+
mailingVariantId?: components["parameters"]["BroadcastMailingVariantId"];
|
|
10907
|
+
/** @description Механизм запуска: `wave` — доставляет процесс школы (мы штампуем поля сделки), `cold_welcome` — пишем первыми сами. Мультивыбор; ОБА значения = фильтра нет. У строки получателя механизм берётся из её собственного режима, у сделки и кандидата — из когорты по import job (нет метки и нет холодных получателей = wave). */
|
|
10908
|
+
mechanism?: components["parameters"]["BroadcastMechanism"];
|
|
10909
|
+
/** @description ЧТО ЗАПУСТИЛО отправку: `manual` — оператор нажал «Запустить», `registration` — автоприём регистрации по order-вебхуку школы, `schedule` — ночной прогон планировщика. Мультивыбор; выбраны все = фильтра нет. Это ДРУГАЯ ось, а не уточнение механизма: механизм отвечает «чем доставляли». Любой выбор ИСКЛЮЧАЕТ волны школы целиком — у них запускающего в этом смысле нет. */
|
|
10910
|
+
launchSource?: components["parameters"]["BroadcastLaunchSource"];
|
|
10911
|
+
/** @description Мультивыбор: повторяйте параметр (`?x=A&x=B`). Одиночное значение остаётся валидным. */
|
|
10912
|
+
product?: components["parameters"]["BroadcastProduct"];
|
|
10913
|
+
/** @description Добавляет строки без продукта. Можно сочетать с product: значения и NULL объединяются через OR. */
|
|
10914
|
+
productMode?: components["parameters"]["BroadcastProductMode"];
|
|
10915
|
+
/** @description Корзины свежести лида (мультивыбор). Под фильтром из ВСЕХ метрик выпадают контакты с неизвестным возрастом. Выбраны все корзины = фильтра нет. */
|
|
10916
|
+
freshness?: components["parameters"]["BroadcastFreshness"];
|
|
10917
|
+
/** @description Мессенджеры волны (транспорты GetCourse + UNKNOWN — канал не определён), мультивыбор. Деньги фильтруются по скалярному каналу сделки. */
|
|
10918
|
+
channels?: components["parameters"]["BroadcastChannels"];
|
|
10919
|
+
/** @description cohort — дата запуска; period — дата события; entry — дата входа в сегмент (segment_entered_at: регистрация, конец серии, предсписок). В entry строки без даты входа выпадают всегда, включая mode=all, а события атрибутируются когортно. */
|
|
10920
|
+
view?: components["parameters"]["BroadcastView"];
|
|
10921
|
+
};
|
|
10922
|
+
header?: never;
|
|
10923
|
+
path: {
|
|
10924
|
+
workspaceId: components["parameters"]["BroadcastWorkspaceId"];
|
|
10925
|
+
};
|
|
10926
|
+
cookie?: never;
|
|
10927
|
+
};
|
|
10928
|
+
requestBody?: never;
|
|
10929
|
+
responses: {
|
|
10930
|
+
/** @description OK */
|
|
10931
|
+
200: {
|
|
10932
|
+
headers: {
|
|
10933
|
+
[name: string]: unknown;
|
|
10934
|
+
};
|
|
10935
|
+
content: {
|
|
10936
|
+
"application/json": components["schemas"]["BroadcastUniqueContacts"];
|
|
10937
|
+
};
|
|
10938
|
+
};
|
|
10939
|
+
};
|
|
10940
|
+
};
|
|
10941
|
+
put?: never;
|
|
10942
|
+
post?: never;
|
|
10943
|
+
delete?: never;
|
|
10944
|
+
options?: never;
|
|
10945
|
+
head?: never;
|
|
10946
|
+
patch?: never;
|
|
10947
|
+
trace?: never;
|
|
10948
|
+
};
|
|
10949
|
+
"/api/v2/workspaces/{workspaceId}/broadcast-analytics/per-person": {
|
|
10950
|
+
parameters: {
|
|
10951
|
+
query?: never;
|
|
10952
|
+
header?: never;
|
|
10953
|
+
path?: never;
|
|
10954
|
+
cookie?: never;
|
|
10955
|
+
};
|
|
10956
|
+
/**
|
|
10957
|
+
* Итоги верхних карточек по уникальным контактам за период
|
|
10958
|
+
* @description Счётчики верхних карточек «Обзора», дедуплицированные по chat_user_id за весь выбранный
|
|
10959
|
+
* период. Ручная историческая статистика не входит: её агрегированные строки не несут
|
|
10960
|
+
* идентификатора контакта. Денежные суммы не пересчитываются и в этот ответ не включены.
|
|
10961
|
+
* Результат НЕ аддитивен — складывать его по дням или измерениям нельзя.
|
|
10962
|
+
*/
|
|
10963
|
+
get: {
|
|
10964
|
+
parameters: {
|
|
10965
|
+
query?: {
|
|
10966
|
+
mode?: components["parameters"]["BroadcastPeriodMode"];
|
|
10967
|
+
days?: components["parameters"]["BroadcastDays"];
|
|
10968
|
+
/** @description Начальная календарная дата МСК для mode=range. */
|
|
10969
|
+
from?: components["parameters"]["BroadcastFrom"];
|
|
10970
|
+
/** @description Конечная календарная дата МСК для mode=range. */
|
|
10971
|
+
to?: components["parameters"]["BroadcastTo"];
|
|
10972
|
+
platformId?: components["parameters"]["BroadcastPlatformId"];
|
|
10973
|
+
/** @description Мультивыбор: повторяйте параметр (`?x=A&x=B`). Одиночное значение остаётся валидным. */
|
|
10974
|
+
funnel?: components["parameters"]["BroadcastFunnel"];
|
|
10975
|
+
/** @description Добавляет строки без воронки. Можно сочетать с funnel: значения и NULL объединяются через OR. */
|
|
10976
|
+
funnelMode?: components["parameters"]["BroadcastFunnelMode"];
|
|
10977
|
+
/** @description Мультивыбор: повторяйте параметр (`?x=A&x=B`). Одиночное значение остаётся валидным. */
|
|
10978
|
+
segment?: components["parameters"]["BroadcastSegment"];
|
|
10979
|
+
/** @description Один или несколько ID именованных вариантов рассылки. */
|
|
10980
|
+
mailingVariantId?: components["parameters"]["BroadcastMailingVariantId"];
|
|
10981
|
+
/** @description Механизм запуска: `wave` — доставляет процесс школы (мы штампуем поля сделки), `cold_welcome` — пишем первыми сами. Мультивыбор; ОБА значения = фильтра нет. У строки получателя механизм берётся из её собственного режима, у сделки и кандидата — из когорты по import job (нет метки и нет холодных получателей = wave). */
|
|
10982
|
+
mechanism?: components["parameters"]["BroadcastMechanism"];
|
|
10983
|
+
/** @description ЧТО ЗАПУСТИЛО отправку: `manual` — оператор нажал «Запустить», `registration` — автоприём регистрации по order-вебхуку школы, `schedule` — ночной прогон планировщика. Мультивыбор; выбраны все = фильтра нет. Это ДРУГАЯ ось, а не уточнение механизма: механизм отвечает «чем доставляли». Любой выбор ИСКЛЮЧАЕТ волны школы целиком — у них запускающего в этом смысле нет. */
|
|
10984
|
+
launchSource?: components["parameters"]["BroadcastLaunchSource"];
|
|
10985
|
+
/** @description Мультивыбор: повторяйте параметр (`?x=A&x=B`). Одиночное значение остаётся валидным. */
|
|
10986
|
+
product?: components["parameters"]["BroadcastProduct"];
|
|
10987
|
+
/** @description Добавляет строки без продукта. Можно сочетать с product: значения и NULL объединяются через OR. */
|
|
10988
|
+
productMode?: components["parameters"]["BroadcastProductMode"];
|
|
10989
|
+
/** @description Корзины свежести лида (мультивыбор). Под фильтром из ВСЕХ метрик выпадают контакты с неизвестным возрастом. Выбраны все корзины = фильтра нет. */
|
|
10990
|
+
freshness?: components["parameters"]["BroadcastFreshness"];
|
|
10991
|
+
/** @description Мессенджеры волны (транспорты GetCourse + UNKNOWN — канал не определён), мультивыбор. Деньги фильтруются по скалярному каналу сделки. */
|
|
10992
|
+
channels?: components["parameters"]["BroadcastChannels"];
|
|
10993
|
+
/** @description cohort — дата запуска; period — дата события; entry — дата входа в сегмент (segment_entered_at: регистрация, конец серии, предсписок). В entry строки без даты входа выпадают всегда, включая mode=all, а события атрибутируются когортно. */
|
|
10994
|
+
view?: components["parameters"]["BroadcastView"];
|
|
10995
|
+
};
|
|
10996
|
+
header?: never;
|
|
10997
|
+
path: {
|
|
10998
|
+
workspaceId: components["parameters"]["BroadcastWorkspaceId"];
|
|
10999
|
+
};
|
|
11000
|
+
cookie?: never;
|
|
11001
|
+
};
|
|
11002
|
+
requestBody?: never;
|
|
11003
|
+
responses: {
|
|
11004
|
+
/** @description OK */
|
|
11005
|
+
200: {
|
|
11006
|
+
headers: {
|
|
11007
|
+
[name: string]: unknown;
|
|
11008
|
+
};
|
|
11009
|
+
content: {
|
|
11010
|
+
"application/json": components["schemas"]["BroadcastPerPersonMetrics"];
|
|
11011
|
+
};
|
|
11012
|
+
};
|
|
11013
|
+
};
|
|
11014
|
+
};
|
|
11015
|
+
put?: never;
|
|
11016
|
+
post?: never;
|
|
11017
|
+
delete?: never;
|
|
11018
|
+
options?: never;
|
|
11019
|
+
head?: never;
|
|
11020
|
+
patch?: never;
|
|
11021
|
+
trace?: never;
|
|
11022
|
+
};
|
|
10699
11023
|
"/api/v2/workspaces/{workspaceId}/broadcast-analytics/recipients": {
|
|
10700
11024
|
parameters: {
|
|
10701
11025
|
query?: never;
|
|
@@ -10724,6 +11048,8 @@ export interface paths {
|
|
|
10724
11048
|
mailingVariantId?: components["parameters"]["BroadcastMailingVariantId"];
|
|
10725
11049
|
/** @description Механизм запуска: `wave` — доставляет процесс школы (мы штампуем поля сделки), `cold_welcome` — пишем первыми сами. Мультивыбор; ОБА значения = фильтра нет. У строки получателя механизм берётся из её собственного режима, у сделки и кандидата — из когорты по import job (нет метки и нет холодных получателей = wave). */
|
|
10726
11050
|
mechanism?: components["parameters"]["BroadcastMechanism"];
|
|
11051
|
+
/** @description ЧТО ЗАПУСТИЛО отправку: `manual` — оператор нажал «Запустить», `registration` — автоприём регистрации по order-вебхуку школы, `schedule` — ночной прогон планировщика. Мультивыбор; выбраны все = фильтра нет. Это ДРУГАЯ ось, а не уточнение механизма: механизм отвечает «чем доставляли». Любой выбор ИСКЛЮЧАЕТ волны школы целиком — у них запускающего в этом смысле нет. */
|
|
11052
|
+
launchSource?: components["parameters"]["BroadcastLaunchSource"];
|
|
10727
11053
|
/** @description Мультивыбор: повторяйте параметр (`?x=A&x=B`). Одиночное значение остаётся валидным. */
|
|
10728
11054
|
product?: components["parameters"]["BroadcastProduct"];
|
|
10729
11055
|
/** @description Добавляет строки без продукта. Можно сочетать с product: значения и NULL объединяются через OR. */
|
|
@@ -10732,7 +11058,7 @@ export interface paths {
|
|
|
10732
11058
|
freshness?: components["parameters"]["BroadcastFreshness"];
|
|
10733
11059
|
/** @description Мессенджеры волны (транспорты GetCourse + UNKNOWN — канал не определён), мультивыбор. Деньги фильтруются по скалярному каналу сделки. */
|
|
10734
11060
|
channels?: components["parameters"]["BroadcastChannels"];
|
|
10735
|
-
/** @description cohort — дата запуска; period — дата
|
|
11061
|
+
/** @description cohort — дата запуска; period — дата события; entry — дата входа в сегмент (segment_entered_at: регистрация, конец серии, предсписок). В entry строки без даты входа выпадают всегда, включая mode=all, а события атрибутируются когортно. */
|
|
10736
11062
|
view?: components["parameters"]["BroadcastView"];
|
|
10737
11063
|
/** @description Конкретный день кликнутой ячейки (МСК). */
|
|
10738
11064
|
date?: components["parameters"]["BroadcastDate"];
|
|
@@ -10749,7 +11075,10 @@ export interface paths {
|
|
|
10749
11075
|
/** @description Сузить выборку одной отслеживаемой ссылкой. Уточнение оператора внутри окна: применяется и к списку, и к счётчику — «показано N из M» обязано сходиться. */
|
|
10750
11076
|
linkId?: string;
|
|
10751
11077
|
metric: "sent" | "delivered" | "entered" | "deepDialog" | "linkIssued" | "clicked" | "handedOff" | "notDelivered" | "notSent";
|
|
10752
|
-
|
|
11078
|
+
/** @description Откуда брать неотправленных при metric=notSent: preflight — проверка волны школы, schedule — журнал подач авторассылки, ownSend — след отсева ручной холодной отправки. Причины трёх источников живут в разных таблицах. У ownSend список бывает короче числа причины: число — агрегат задачи и полно за всю историю, а построчный след начинается с выкатки (см. tracedCount у причины). */
|
|
11079
|
+
reasonSource?: "preflight" | "schedule" | "ownSend";
|
|
11080
|
+
/** @description Код причины неотправки. Словарь выбирает reasonSource: у preflight это GetCourseWavePreflightReason (NO_MESSENGER, ALREADY_SENT, USER_NOT_FOUND и т.д. — другой код там отвергается, потому что значение кастуется в enum прямо в SQL); у schedule это исход подачи, у ownSend — исход прогона (SKIPPED_BOT_SILENCED и т.д.), и у этих двух проверяется только форма кода: заглавные латинские буквы, цифры и подчёркивания. */
|
|
11081
|
+
reason?: string;
|
|
10753
11082
|
};
|
|
10754
11083
|
header?: never;
|
|
10755
11084
|
path: {
|
|
@@ -10806,6 +11135,8 @@ export interface paths {
|
|
|
10806
11135
|
mailingVariantId?: components["parameters"]["BroadcastMailingVariantId"];
|
|
10807
11136
|
/** @description Механизм запуска: `wave` — доставляет процесс школы (мы штампуем поля сделки), `cold_welcome` — пишем первыми сами. Мультивыбор; ОБА значения = фильтра нет. У строки получателя механизм берётся из её собственного режима, у сделки и кандидата — из когорты по import job (нет метки и нет холодных получателей = wave). */
|
|
10808
11137
|
mechanism?: components["parameters"]["BroadcastMechanism"];
|
|
11138
|
+
/** @description ЧТО ЗАПУСТИЛО отправку: `manual` — оператор нажал «Запустить», `registration` — автоприём регистрации по order-вебхуку школы, `schedule` — ночной прогон планировщика. Мультивыбор; выбраны все = фильтра нет. Это ДРУГАЯ ось, а не уточнение механизма: механизм отвечает «чем доставляли». Любой выбор ИСКЛЮЧАЕТ волны школы целиком — у них запускающего в этом смысле нет. */
|
|
11139
|
+
launchSource?: components["parameters"]["BroadcastLaunchSource"];
|
|
10809
11140
|
/** @description Мультивыбор: повторяйте параметр (`?x=A&x=B`). Одиночное значение остаётся валидным. */
|
|
10810
11141
|
product?: components["parameters"]["BroadcastProduct"];
|
|
10811
11142
|
/** @description Добавляет строки без продукта. Можно сочетать с product: значения и NULL объединяются через OR. */
|
|
@@ -10814,7 +11145,7 @@ export interface paths {
|
|
|
10814
11145
|
freshness?: components["parameters"]["BroadcastFreshness"];
|
|
10815
11146
|
/** @description Мессенджеры волны (транспорты GetCourse + UNKNOWN — канал не определён), мультивыбор. Деньги фильтруются по скалярному каналу сделки. */
|
|
10816
11147
|
channels?: components["parameters"]["BroadcastChannels"];
|
|
10817
|
-
/** @description cohort — дата запуска; period — дата
|
|
11148
|
+
/** @description cohort — дата запуска; period — дата события; entry — дата входа в сегмент (segment_entered_at: регистрация, конец серии, предсписок). В entry строки без даты входа выпадают всегда, включая mode=all, а события атрибутируются когортно. */
|
|
10818
11149
|
view?: components["parameters"]["BroadcastView"];
|
|
10819
11150
|
/** @description Конкретный день кликнутой ячейки (МСК). */
|
|
10820
11151
|
date?: components["parameters"]["BroadcastDate"];
|
|
@@ -10885,6 +11216,8 @@ export interface paths {
|
|
|
10885
11216
|
mailingVariantId?: components["parameters"]["BroadcastMailingVariantId"];
|
|
10886
11217
|
/** @description Механизм запуска: `wave` — доставляет процесс школы (мы штампуем поля сделки), `cold_welcome` — пишем первыми сами. Мультивыбор; ОБА значения = фильтра нет. У строки получателя механизм берётся из её собственного режима, у сделки и кандидата — из когорты по import job (нет метки и нет холодных получателей = wave). */
|
|
10887
11218
|
mechanism?: components["parameters"]["BroadcastMechanism"];
|
|
11219
|
+
/** @description ЧТО ЗАПУСТИЛО отправку: `manual` — оператор нажал «Запустить», `registration` — автоприём регистрации по order-вебхуку школы, `schedule` — ночной прогон планировщика. Мультивыбор; выбраны все = фильтра нет. Это ДРУГАЯ ось, а не уточнение механизма: механизм отвечает «чем доставляли». Любой выбор ИСКЛЮЧАЕТ волны школы целиком — у них запускающего в этом смысле нет. */
|
|
11220
|
+
launchSource?: components["parameters"]["BroadcastLaunchSource"];
|
|
10888
11221
|
/** @description Мультивыбор: повторяйте параметр (`?x=A&x=B`). Одиночное значение остаётся валидным. */
|
|
10889
11222
|
product?: components["parameters"]["BroadcastProduct"];
|
|
10890
11223
|
/** @description Добавляет строки без продукта. Можно сочетать с product: значения и NULL объединяются через OR. */
|
|
@@ -10893,7 +11226,7 @@ export interface paths {
|
|
|
10893
11226
|
freshness?: components["parameters"]["BroadcastFreshness"];
|
|
10894
11227
|
/** @description Мессенджеры волны (транспорты GetCourse + UNKNOWN — канал не определён), мультивыбор. Деньги фильтруются по скалярному каналу сделки. */
|
|
10895
11228
|
channels?: components["parameters"]["BroadcastChannels"];
|
|
10896
|
-
/** @description cohort — дата запуска; period — дата
|
|
11229
|
+
/** @description cohort — дата запуска; period — дата события; entry — дата входа в сегмент (segment_entered_at: регистрация, конец серии, предсписок). В entry строки без даты входа выпадают всегда, включая mode=all, а события атрибутируются когортно. */
|
|
10897
11230
|
view?: components["parameters"]["BroadcastView"];
|
|
10898
11231
|
/** @description Конкретный день кликнутой ячейки (МСК). */
|
|
10899
11232
|
date?: components["parameters"]["BroadcastDate"];
|
|
@@ -10961,6 +11294,8 @@ export interface paths {
|
|
|
10961
11294
|
mailingVariantId?: components["parameters"]["BroadcastMailingVariantId"];
|
|
10962
11295
|
/** @description Механизм запуска: `wave` — доставляет процесс школы (мы штампуем поля сделки), `cold_welcome` — пишем первыми сами. Мультивыбор; ОБА значения = фильтра нет. У строки получателя механизм берётся из её собственного режима, у сделки и кандидата — из когорты по import job (нет метки и нет холодных получателей = wave). */
|
|
10963
11296
|
mechanism?: components["parameters"]["BroadcastMechanism"];
|
|
11297
|
+
/** @description ЧТО ЗАПУСТИЛО отправку: `manual` — оператор нажал «Запустить», `registration` — автоприём регистрации по order-вебхуку школы, `schedule` — ночной прогон планировщика. Мультивыбор; выбраны все = фильтра нет. Это ДРУГАЯ ось, а не уточнение механизма: механизм отвечает «чем доставляли». Любой выбор ИСКЛЮЧАЕТ волны школы целиком — у них запускающего в этом смысле нет. */
|
|
11298
|
+
launchSource?: components["parameters"]["BroadcastLaunchSource"];
|
|
10964
11299
|
/** @description Мультивыбор: повторяйте параметр (`?x=A&x=B`). Одиночное значение остаётся валидным. */
|
|
10965
11300
|
product?: components["parameters"]["BroadcastProduct"];
|
|
10966
11301
|
/** @description Добавляет строки без продукта. Можно сочетать с product: значения и NULL объединяются через OR. */
|
|
@@ -10969,7 +11304,7 @@ export interface paths {
|
|
|
10969
11304
|
freshness?: components["parameters"]["BroadcastFreshness"];
|
|
10970
11305
|
/** @description Мессенджеры волны (транспорты GetCourse + UNKNOWN — канал не определён), мультивыбор. Деньги фильтруются по скалярному каналу сделки. */
|
|
10971
11306
|
channels?: components["parameters"]["BroadcastChannels"];
|
|
10972
|
-
/** @description cohort — дата запуска; period — дата
|
|
11307
|
+
/** @description cohort — дата запуска; period — дата события; entry — дата входа в сегмент (segment_entered_at: регистрация, конец серии, предсписок). В entry строки без даты входа выпадают всегда, включая mode=all, а события атрибутируются когортно. */
|
|
10973
11308
|
view?: components["parameters"]["BroadcastView"];
|
|
10974
11309
|
/** @description Конкретный день кликнутой ячейки (МСК). */
|
|
10975
11310
|
date?: components["parameters"]["BroadcastDate"];
|
|
@@ -11039,6 +11374,8 @@ export interface paths {
|
|
|
11039
11374
|
mailingVariantId?: components["parameters"]["BroadcastMailingVariantId"];
|
|
11040
11375
|
/** @description Механизм запуска: `wave` — доставляет процесс школы (мы штампуем поля сделки), `cold_welcome` — пишем первыми сами. Мультивыбор; ОБА значения = фильтра нет. У строки получателя механизм берётся из её собственного режима, у сделки и кандидата — из когорты по import job (нет метки и нет холодных получателей = wave). */
|
|
11041
11376
|
mechanism?: components["parameters"]["BroadcastMechanism"];
|
|
11377
|
+
/** @description ЧТО ЗАПУСТИЛО отправку: `manual` — оператор нажал «Запустить», `registration` — автоприём регистрации по order-вебхуку школы, `schedule` — ночной прогон планировщика. Мультивыбор; выбраны все = фильтра нет. Это ДРУГАЯ ось, а не уточнение механизма: механизм отвечает «чем доставляли». Любой выбор ИСКЛЮЧАЕТ волны школы целиком — у них запускающего в этом смысле нет. */
|
|
11378
|
+
launchSource?: components["parameters"]["BroadcastLaunchSource"];
|
|
11042
11379
|
/** @description Мультивыбор: повторяйте параметр (`?x=A&x=B`). Одиночное значение остаётся валидным. */
|
|
11043
11380
|
product?: components["parameters"]["BroadcastProduct"];
|
|
11044
11381
|
/** @description Добавляет строки без продукта. Можно сочетать с product: значения и NULL объединяются через OR. */
|
|
@@ -11047,7 +11384,7 @@ export interface paths {
|
|
|
11047
11384
|
freshness?: components["parameters"]["BroadcastFreshness"];
|
|
11048
11385
|
/** @description Мессенджеры волны (транспорты GetCourse + UNKNOWN — канал не определён), мультивыбор. Деньги фильтруются по скалярному каналу сделки. */
|
|
11049
11386
|
channels?: components["parameters"]["BroadcastChannels"];
|
|
11050
|
-
/** @description cohort — дата запуска; period — дата
|
|
11387
|
+
/** @description cohort — дата запуска; period — дата события; entry — дата входа в сегмент (segment_entered_at: регистрация, конец серии, предсписок). В entry строки без даты входа выпадают всегда, включая mode=all, а события атрибутируются когортно. */
|
|
11051
11388
|
view?: components["parameters"]["BroadcastView"];
|
|
11052
11389
|
/** @description Конкретный день кликнутой ячейки (МСК). */
|
|
11053
11390
|
date?: components["parameters"]["BroadcastDate"];
|
|
@@ -11113,6 +11450,8 @@ export interface paths {
|
|
|
11113
11450
|
mailingVariantId?: components["parameters"]["BroadcastMailingVariantId"];
|
|
11114
11451
|
/** @description Механизм запуска: `wave` — доставляет процесс школы (мы штампуем поля сделки), `cold_welcome` — пишем первыми сами. Мультивыбор; ОБА значения = фильтра нет. У строки получателя механизм берётся из её собственного режима, у сделки и кандидата — из когорты по import job (нет метки и нет холодных получателей = wave). */
|
|
11115
11452
|
mechanism?: components["parameters"]["BroadcastMechanism"];
|
|
11453
|
+
/** @description ЧТО ЗАПУСТИЛО отправку: `manual` — оператор нажал «Запустить», `registration` — автоприём регистрации по order-вебхуку школы, `schedule` — ночной прогон планировщика. Мультивыбор; выбраны все = фильтра нет. Это ДРУГАЯ ось, а не уточнение механизма: механизм отвечает «чем доставляли». Любой выбор ИСКЛЮЧАЕТ волны школы целиком — у них запускающего в этом смысле нет. */
|
|
11454
|
+
launchSource?: components["parameters"]["BroadcastLaunchSource"];
|
|
11116
11455
|
/** @description Мультивыбор: повторяйте параметр (`?x=A&x=B`). Одиночное значение остаётся валидным. */
|
|
11117
11456
|
product?: components["parameters"]["BroadcastProduct"];
|
|
11118
11457
|
/** @description Добавляет строки без продукта. Можно сочетать с product: значения и NULL объединяются через OR. */
|
|
@@ -11121,7 +11460,7 @@ export interface paths {
|
|
|
11121
11460
|
freshness?: components["parameters"]["BroadcastFreshness"];
|
|
11122
11461
|
/** @description Мессенджеры волны (транспорты GetCourse + UNKNOWN — канал не определён), мультивыбор. Деньги фильтруются по скалярному каналу сделки. */
|
|
11123
11462
|
channels?: components["parameters"]["BroadcastChannels"];
|
|
11124
|
-
/** @description cohort — дата запуска; period — дата
|
|
11463
|
+
/** @description cohort — дата запуска; period — дата события; entry — дата входа в сегмент (segment_entered_at: регистрация, конец серии, предсписок). В entry строки без даты входа выпадают всегда, включая mode=all, а события атрибутируются когортно. */
|
|
11125
11464
|
view?: components["parameters"]["BroadcastView"];
|
|
11126
11465
|
};
|
|
11127
11466
|
header?: never;
|
|
@@ -11179,6 +11518,8 @@ export interface paths {
|
|
|
11179
11518
|
mailingVariantId?: components["parameters"]["BroadcastMailingVariantId"];
|
|
11180
11519
|
/** @description Механизм запуска: `wave` — доставляет процесс школы (мы штампуем поля сделки), `cold_welcome` — пишем первыми сами. Мультивыбор; ОБА значения = фильтра нет. У строки получателя механизм берётся из её собственного режима, у сделки и кандидата — из когорты по import job (нет метки и нет холодных получателей = wave). */
|
|
11181
11520
|
mechanism?: components["parameters"]["BroadcastMechanism"];
|
|
11521
|
+
/** @description ЧТО ЗАПУСТИЛО отправку: `manual` — оператор нажал «Запустить», `registration` — автоприём регистрации по order-вебхуку школы, `schedule` — ночной прогон планировщика. Мультивыбор; выбраны все = фильтра нет. Это ДРУГАЯ ось, а не уточнение механизма: механизм отвечает «чем доставляли». Любой выбор ИСКЛЮЧАЕТ волны школы целиком — у них запускающего в этом смысле нет. */
|
|
11522
|
+
launchSource?: components["parameters"]["BroadcastLaunchSource"];
|
|
11182
11523
|
/** @description Мультивыбор: повторяйте параметр (`?x=A&x=B`). Одиночное значение остаётся валидным. */
|
|
11183
11524
|
product?: components["parameters"]["BroadcastProduct"];
|
|
11184
11525
|
/** @description Добавляет строки без продукта. Можно сочетать с product: значения и NULL объединяются через OR. */
|
|
@@ -11187,7 +11528,7 @@ export interface paths {
|
|
|
11187
11528
|
freshness?: components["parameters"]["BroadcastFreshness"];
|
|
11188
11529
|
/** @description Мессенджеры волны (транспорты GetCourse + UNKNOWN — канал не определён), мультивыбор. Деньги фильтруются по скалярному каналу сделки. */
|
|
11189
11530
|
channels?: components["parameters"]["BroadcastChannels"];
|
|
11190
|
-
/** @description cohort — дата запуска; period — дата
|
|
11531
|
+
/** @description cohort — дата запуска; period — дата события; entry — дата входа в сегмент (segment_entered_at: регистрация, конец серии, предсписок). В entry строки без даты входа выпадают всегда, включая mode=all, а события атрибутируются когортно. */
|
|
11191
11532
|
view?: components["parameters"]["BroadcastView"];
|
|
11192
11533
|
};
|
|
11193
11534
|
header?: never;
|
|
@@ -11245,6 +11586,8 @@ export interface paths {
|
|
|
11245
11586
|
mailingVariantId?: components["parameters"]["BroadcastMailingVariantId"];
|
|
11246
11587
|
/** @description Механизм запуска: `wave` — доставляет процесс школы (мы штампуем поля сделки), `cold_welcome` — пишем первыми сами. Мультивыбор; ОБА значения = фильтра нет. У строки получателя механизм берётся из её собственного режима, у сделки и кандидата — из когорты по import job (нет метки и нет холодных получателей = wave). */
|
|
11247
11588
|
mechanism?: components["parameters"]["BroadcastMechanism"];
|
|
11589
|
+
/** @description ЧТО ЗАПУСТИЛО отправку: `manual` — оператор нажал «Запустить», `registration` — автоприём регистрации по order-вебхуку школы, `schedule` — ночной прогон планировщика. Мультивыбор; выбраны все = фильтра нет. Это ДРУГАЯ ось, а не уточнение механизма: механизм отвечает «чем доставляли». Любой выбор ИСКЛЮЧАЕТ волны школы целиком — у них запускающего в этом смысле нет. */
|
|
11590
|
+
launchSource?: components["parameters"]["BroadcastLaunchSource"];
|
|
11248
11591
|
/** @description Мультивыбор: повторяйте параметр (`?x=A&x=B`). Одиночное значение остаётся валидным. */
|
|
11249
11592
|
product?: components["parameters"]["BroadcastProduct"];
|
|
11250
11593
|
/** @description Добавляет строки без продукта. Можно сочетать с product: значения и NULL объединяются через OR. */
|
|
@@ -11253,7 +11596,7 @@ export interface paths {
|
|
|
11253
11596
|
freshness?: components["parameters"]["BroadcastFreshness"];
|
|
11254
11597
|
/** @description Мессенджеры волны (транспорты GetCourse + UNKNOWN — канал не определён), мультивыбор. Деньги фильтруются по скалярному каналу сделки. */
|
|
11255
11598
|
channels?: components["parameters"]["BroadcastChannels"];
|
|
11256
|
-
/** @description cohort — дата запуска; period — дата
|
|
11599
|
+
/** @description cohort — дата запуска; period — дата события; entry — дата входа в сегмент (segment_entered_at: регистрация, конец серии, предсписок). В entry строки без даты входа выпадают всегда, включая mode=all, а события атрибутируются когортно. */
|
|
11257
11600
|
view?: components["parameters"]["BroadcastView"];
|
|
11258
11601
|
};
|
|
11259
11602
|
header?: never;
|
|
@@ -11311,6 +11654,8 @@ export interface paths {
|
|
|
11311
11654
|
mailingVariantId?: components["parameters"]["BroadcastMailingVariantId"];
|
|
11312
11655
|
/** @description Механизм запуска: `wave` — доставляет процесс школы (мы штампуем поля сделки), `cold_welcome` — пишем первыми сами. Мультивыбор; ОБА значения = фильтра нет. У строки получателя механизм берётся из её собственного режима, у сделки и кандидата — из когорты по import job (нет метки и нет холодных получателей = wave). */
|
|
11313
11656
|
mechanism?: components["parameters"]["BroadcastMechanism"];
|
|
11657
|
+
/** @description ЧТО ЗАПУСТИЛО отправку: `manual` — оператор нажал «Запустить», `registration` — автоприём регистрации по order-вебхуку школы, `schedule` — ночной прогон планировщика. Мультивыбор; выбраны все = фильтра нет. Это ДРУГАЯ ось, а не уточнение механизма: механизм отвечает «чем доставляли». Любой выбор ИСКЛЮЧАЕТ волны школы целиком — у них запускающего в этом смысле нет. */
|
|
11658
|
+
launchSource?: components["parameters"]["BroadcastLaunchSource"];
|
|
11314
11659
|
/** @description Мультивыбор: повторяйте параметр (`?x=A&x=B`). Одиночное значение остаётся валидным. */
|
|
11315
11660
|
product?: components["parameters"]["BroadcastProduct"];
|
|
11316
11661
|
/** @description Добавляет строки без продукта. Можно сочетать с product: значения и NULL объединяются через OR. */
|
|
@@ -11319,7 +11664,7 @@ export interface paths {
|
|
|
11319
11664
|
freshness?: components["parameters"]["BroadcastFreshness"];
|
|
11320
11665
|
/** @description Мессенджеры волны (транспорты GetCourse + UNKNOWN — канал не определён), мультивыбор. Деньги фильтруются по скалярному каналу сделки. */
|
|
11321
11666
|
channels?: components["parameters"]["BroadcastChannels"];
|
|
11322
|
-
/** @description cohort — дата запуска; period — дата
|
|
11667
|
+
/** @description cohort — дата запуска; period — дата события; entry — дата входа в сегмент (segment_entered_at: регистрация, конец серии, предсписок). В entry строки без даты входа выпадают всегда, включая mode=all, а события атрибутируются когортно. */
|
|
11323
11668
|
view?: components["parameters"]["BroadcastView"];
|
|
11324
11669
|
};
|
|
11325
11670
|
header?: never;
|
|
@@ -11380,6 +11725,8 @@ export interface paths {
|
|
|
11380
11725
|
mailingVariantId?: components["parameters"]["BroadcastMailingVariantId"];
|
|
11381
11726
|
/** @description Механизм запуска: `wave` — доставляет процесс школы (мы штампуем поля сделки), `cold_welcome` — пишем первыми сами. Мультивыбор; ОБА значения = фильтра нет. У строки получателя механизм берётся из её собственного режима, у сделки и кандидата — из когорты по import job (нет метки и нет холодных получателей = wave). */
|
|
11382
11727
|
mechanism?: components["parameters"]["BroadcastMechanism"];
|
|
11728
|
+
/** @description ЧТО ЗАПУСТИЛО отправку: `manual` — оператор нажал «Запустить», `registration` — автоприём регистрации по order-вебхуку школы, `schedule` — ночной прогон планировщика. Мультивыбор; выбраны все = фильтра нет. Это ДРУГАЯ ось, а не уточнение механизма: механизм отвечает «чем доставляли». Любой выбор ИСКЛЮЧАЕТ волны школы целиком — у них запускающего в этом смысле нет. */
|
|
11729
|
+
launchSource?: components["parameters"]["BroadcastLaunchSource"];
|
|
11383
11730
|
/** @description Мультивыбор: повторяйте параметр (`?x=A&x=B`). Одиночное значение остаётся валидным. */
|
|
11384
11731
|
product?: components["parameters"]["BroadcastProduct"];
|
|
11385
11732
|
/** @description Добавляет строки без продукта. Можно сочетать с product: значения и NULL объединяются через OR. */
|
|
@@ -11457,6 +11804,8 @@ export interface paths {
|
|
|
11457
11804
|
mailingVariantId?: components["parameters"]["BroadcastMailingVariantId"];
|
|
11458
11805
|
/** @description Механизм запуска: `wave` — доставляет процесс школы (мы штампуем поля сделки), `cold_welcome` — пишем первыми сами. Мультивыбор; ОБА значения = фильтра нет. У строки получателя механизм берётся из её собственного режима, у сделки и кандидата — из когорты по import job (нет метки и нет холодных получателей = wave). */
|
|
11459
11806
|
mechanism?: components["parameters"]["BroadcastMechanism"];
|
|
11807
|
+
/** @description ЧТО ЗАПУСТИЛО отправку: `manual` — оператор нажал «Запустить», `registration` — автоприём регистрации по order-вебхуку школы, `schedule` — ночной прогон планировщика. Мультивыбор; выбраны все = фильтра нет. Это ДРУГАЯ ось, а не уточнение механизма: механизм отвечает «чем доставляли». Любой выбор ИСКЛЮЧАЕТ волны школы целиком — у них запускающего в этом смысле нет. */
|
|
11808
|
+
launchSource?: components["parameters"]["BroadcastLaunchSource"];
|
|
11460
11809
|
/** @description Мультивыбор: повторяйте параметр (`?x=A&x=B`). Одиночное значение остаётся валидным. */
|
|
11461
11810
|
product?: components["parameters"]["BroadcastProduct"];
|
|
11462
11811
|
/** @description Добавляет строки без продукта. Можно сочетать с product: значения и NULL объединяются через OR. */
|
|
@@ -15681,6 +16030,26 @@ export interface paths {
|
|
|
15681
16030
|
patch?: never;
|
|
15682
16031
|
trace?: never;
|
|
15683
16032
|
};
|
|
16033
|
+
"/api/v2/workspaces/{workspaceId}/amocrm/channel-registration": {
|
|
16034
|
+
parameters: {
|
|
16035
|
+
query?: never;
|
|
16036
|
+
header?: never;
|
|
16037
|
+
path?: never;
|
|
16038
|
+
cookie?: never;
|
|
16039
|
+
};
|
|
16040
|
+
/**
|
|
16041
|
+
* AmoCRM chat-channel registration request (webhook URL + support email template)
|
|
16042
|
+
* @description Чтобы переписка бота появлялась в карточке сделки AmoCRM, их поддержка должна ЗАРЕГИСТРИРОВАТЬ канал по письму заданной формы; channelId/channelSecretKey выдают только так. Текст письма и адрес вебхука собирает бэкенд (канон ai-aniomaly/src/core/application/crms/amocrm/constants/amocrm-channel-registration.constants.ts) — тем же ответом пользуется страница AmoCRM в интерфейсе. Копий у клиентов нет намеренно: письмо регистрирует адрес, на который потом идут входящие, и разошедшийся текст дал бы канал, смотрящий не туда, — это обнаружилось бы только пропажей сообщений.
|
|
16043
|
+
*/
|
|
16044
|
+
get: operations["getAmoCrmChannelRegistration"];
|
|
16045
|
+
put?: never;
|
|
16046
|
+
post?: never;
|
|
16047
|
+
delete?: never;
|
|
16048
|
+
options?: never;
|
|
16049
|
+
head?: never;
|
|
16050
|
+
patch?: never;
|
|
16051
|
+
trace?: never;
|
|
16052
|
+
};
|
|
15684
16053
|
"/api/v2/workspaces/{workspaceId}/crms/{crmId}/field-mapping": {
|
|
15685
16054
|
parameters: {
|
|
15686
16055
|
query?: never;
|
|
@@ -18983,10 +19352,201 @@ export interface paths {
|
|
|
18983
19352
|
patch?: never;
|
|
18984
19353
|
trace?: never;
|
|
18985
19354
|
};
|
|
19355
|
+
"/api/v2/workspaces/{workspaceId}/custom-reports/{reportId}/report": {
|
|
19356
|
+
parameters: {
|
|
19357
|
+
query?: never;
|
|
19358
|
+
header?: never;
|
|
19359
|
+
path?: never;
|
|
19360
|
+
cookie?: never;
|
|
19361
|
+
};
|
|
19362
|
+
/**
|
|
19363
|
+
* Живой расчёт сохранённой таблицы за период
|
|
19364
|
+
* @description Для источника «Перс воронка» дополнительно возвращает единый snapshot: calculatedAt, executionDbSnapshot, currentStepsFingerprint и reportUpdatedAt. Все четыре значения нужно без изменений передать в drill-down; у legacy-источников snapshot-поля отсутствуют.
|
|
19365
|
+
*/
|
|
19366
|
+
get: operations["getCustomReportData"];
|
|
19367
|
+
put?: never;
|
|
19368
|
+
post?: never;
|
|
19369
|
+
delete?: never;
|
|
19370
|
+
options?: never;
|
|
19371
|
+
head?: never;
|
|
19372
|
+
patch?: never;
|
|
19373
|
+
trace?: never;
|
|
19374
|
+
};
|
|
19375
|
+
"/api/v2/workspaces/{workspaceId}/custom-reports/{reportId}/drilldown": {
|
|
19376
|
+
parameters: {
|
|
19377
|
+
query?: never;
|
|
19378
|
+
header?: never;
|
|
19379
|
+
path?: never;
|
|
19380
|
+
cookie?: never;
|
|
19381
|
+
};
|
|
19382
|
+
/**
|
|
19383
|
+
* Контакты и сделки за числом сохранённой таблицы
|
|
19384
|
+
* @description Возвращает конкретные исполнения, контакты или сделки за числовой ячейкой источников «Обзор», «Фоллоу-апы» и «Перс воронка». Сервер перечитывает определение отчёта и проверяет updatedAt; сводная передаёт полный путь строки. Snapshot и fingerprint обязательны только для personalized-источника. Для процентной колонки раскрывается фактический числитель.
|
|
19385
|
+
*/
|
|
19386
|
+
get: operations["getCustomReportDrilldown"];
|
|
19387
|
+
put?: never;
|
|
19388
|
+
post?: never;
|
|
19389
|
+
delete?: never;
|
|
19390
|
+
options?: never;
|
|
19391
|
+
head?: never;
|
|
19392
|
+
patch?: never;
|
|
19393
|
+
trace?: never;
|
|
19394
|
+
};
|
|
18986
19395
|
}
|
|
18987
19396
|
export type webhooks = Record<string, never>;
|
|
18988
19397
|
export interface components {
|
|
18989
19398
|
schemas: {
|
|
19399
|
+
TriggerContactClaim: {
|
|
19400
|
+
/** Format: uuid */
|
|
19401
|
+
triggerId: string;
|
|
19402
|
+
triggerName: string;
|
|
19403
|
+
/** Format: uuid */
|
|
19404
|
+
agentId: string;
|
|
19405
|
+
agentName: string | null;
|
|
19406
|
+
/** @enum {string} */
|
|
19407
|
+
status: "IN_PROGRESS" | "COMPLETED";
|
|
19408
|
+
/** Format: date-time */
|
|
19409
|
+
claimedAt: string;
|
|
19410
|
+
/** @description false у status=IN_PROGRESS — право держит владелец */
|
|
19411
|
+
canReset: boolean;
|
|
19412
|
+
/** @enum {string|null} */
|
|
19413
|
+
blockedReason: "RUNNING" | null;
|
|
19414
|
+
triggerIsEnabled: boolean;
|
|
19415
|
+
/** @description Осталась ли включённой настройка «сработать один раз». Право переживает её выключение: тогда строка висит, но триггер срабатывает как обычный. */
|
|
19416
|
+
stillOneTime: boolean;
|
|
19417
|
+
};
|
|
19418
|
+
TriggerContactClaimsPage: {
|
|
19419
|
+
claims: components["schemas"]["TriggerContactClaim"][];
|
|
19420
|
+
truncated: boolean;
|
|
19421
|
+
};
|
|
19422
|
+
ResetTriggerClaimRequest: {
|
|
19423
|
+
/**
|
|
19424
|
+
* @description Обязательное подтверждение: триггер сможет повторить необратимые действия во внешних системах. Проверяется на сервере, а не только в MCP-клиенте.
|
|
19425
|
+
* @enum {boolean}
|
|
19426
|
+
*/
|
|
19427
|
+
explicitConfirmation: true;
|
|
19428
|
+
};
|
|
19429
|
+
CustomReportMetricValues: {
|
|
19430
|
+
[key: string]: number | null;
|
|
19431
|
+
};
|
|
19432
|
+
CustomReportBucket: {
|
|
19433
|
+
/** Format: date */
|
|
19434
|
+
key: string;
|
|
19435
|
+
/** Format: date */
|
|
19436
|
+
from: string;
|
|
19437
|
+
/** Format: date */
|
|
19438
|
+
to: string;
|
|
19439
|
+
partial: boolean;
|
|
19440
|
+
rows: {
|
|
19441
|
+
[key: string]: components["schemas"]["CustomReportMetricValues"];
|
|
19442
|
+
};
|
|
19443
|
+
total: components["schemas"]["CustomReportMetricValues"];
|
|
19444
|
+
comparableReliable?: boolean;
|
|
19445
|
+
};
|
|
19446
|
+
CustomReportGrandTotal: {
|
|
19447
|
+
/** Format: date */
|
|
19448
|
+
from: string;
|
|
19449
|
+
/** Format: date */
|
|
19450
|
+
to: string;
|
|
19451
|
+
rows: {
|
|
19452
|
+
[key: string]: components["schemas"]["CustomReportMetricValues"];
|
|
19453
|
+
};
|
|
19454
|
+
total: components["schemas"]["CustomReportMetricValues"];
|
|
19455
|
+
comparableReliable?: boolean;
|
|
19456
|
+
};
|
|
19457
|
+
CustomReportDrilldownSnapshot: {
|
|
19458
|
+
/** Format: date-time */
|
|
19459
|
+
calculatedAt: string;
|
|
19460
|
+
executionDbSnapshot: string;
|
|
19461
|
+
currentStepsFingerprint: string;
|
|
19462
|
+
/** Format: date-time */
|
|
19463
|
+
reportUpdatedAt: string;
|
|
19464
|
+
};
|
|
19465
|
+
CustomReportStepSchedule: {
|
|
19466
|
+
/** @enum {string} */
|
|
19467
|
+
kind: "offset" | "clock" | "beforeMeeting" | "unknown";
|
|
19468
|
+
minutes?: number;
|
|
19469
|
+
dayOffset?: number;
|
|
19470
|
+
atTime?: string;
|
|
19471
|
+
};
|
|
19472
|
+
CustomReportDataResponse: {
|
|
19473
|
+
metricKeys: string[];
|
|
19474
|
+
dimensionValues: string[];
|
|
19475
|
+
buckets: components["schemas"]["CustomReportBucket"][];
|
|
19476
|
+
grandTotal: components["schemas"]["CustomReportGrandTotal"] | null;
|
|
19477
|
+
availableDimensionValues: string[];
|
|
19478
|
+
availableMetricKeys: string[];
|
|
19479
|
+
dimensionLabels?: {
|
|
19480
|
+
[key: string]: string;
|
|
19481
|
+
};
|
|
19482
|
+
rowSequenceNames?: {
|
|
19483
|
+
[key: string]: string;
|
|
19484
|
+
};
|
|
19485
|
+
/** @description Только personalized-funnel: безопасное расписание шага по адресу строки. Текст сообщения, условия, variable hints и вложения не возвращаются. */
|
|
19486
|
+
rowStepSchedules?: {
|
|
19487
|
+
[key: string]: components["schemas"]["CustomReportStepSchedule"];
|
|
19488
|
+
};
|
|
19489
|
+
/** Format: date-time */
|
|
19490
|
+
historyStartsAt?: string | null;
|
|
19491
|
+
nestedRows?: {
|
|
19492
|
+
[key: string]: unknown;
|
|
19493
|
+
}[];
|
|
19494
|
+
nestedTruncated?: boolean;
|
|
19495
|
+
nestedTotalRowCount?: number;
|
|
19496
|
+
/** Format: date-time */
|
|
19497
|
+
calculatedAt?: string;
|
|
19498
|
+
executionDbSnapshot?: string;
|
|
19499
|
+
currentStepsFingerprint?: string;
|
|
19500
|
+
/** Format: date-time */
|
|
19501
|
+
reportUpdatedAt?: string;
|
|
19502
|
+
};
|
|
19503
|
+
CustomReportDrilldownLink: {
|
|
19504
|
+
/** @description Идентификатор выдачи ссылки; для агрегированных источников может быть составным. */
|
|
19505
|
+
issueId: string;
|
|
19506
|
+
name: string;
|
|
19507
|
+
/** Format: uri */
|
|
19508
|
+
targetUrl: string;
|
|
19509
|
+
/** Format: date-time */
|
|
19510
|
+
clickedAt: string | null;
|
|
19511
|
+
};
|
|
19512
|
+
CustomReportDrilldownRow: {
|
|
19513
|
+
id: string;
|
|
19514
|
+
/** Format: uuid */
|
|
19515
|
+
chatUserId: string | null;
|
|
19516
|
+
contactName: string | null;
|
|
19517
|
+
contactPhone: string | null;
|
|
19518
|
+
/** Format: date-time */
|
|
19519
|
+
happenedAt: string | null;
|
|
19520
|
+
status: string | null;
|
|
19521
|
+
failedCondition: string | null;
|
|
19522
|
+
failedValue: string | null;
|
|
19523
|
+
/** Format: uri */
|
|
19524
|
+
getcourseUserUrl: string | null;
|
|
19525
|
+
/** Format: uri */
|
|
19526
|
+
getcourseDealUrl: string | null;
|
|
19527
|
+
/**
|
|
19528
|
+
* Format: uri
|
|
19529
|
+
* @description Сделка/лид в активной AmoCRM или Bitrix24.
|
|
19530
|
+
*/
|
|
19531
|
+
crmUrl: string | null;
|
|
19532
|
+
links: components["schemas"]["CustomReportDrilldownLink"][];
|
|
19533
|
+
};
|
|
19534
|
+
CustomReportDrilldownResponse: {
|
|
19535
|
+
items: components["schemas"]["CustomReportDrilldownRow"][];
|
|
19536
|
+
total: number;
|
|
19537
|
+
/** @description Фактический числитель для процентной колонки. */
|
|
19538
|
+
resolvedMetricKey: string;
|
|
19539
|
+
};
|
|
19540
|
+
/**
|
|
19541
|
+
* @description Минимальная длина включительного period-окна, на котором считаются доли исходов custom-reports и карточек «Обзора». Литеральный тип механически связывает backend и frontend через сгенерированный API-контракт.
|
|
19542
|
+
* @enum {integer}
|
|
19543
|
+
*/
|
|
19544
|
+
CustomReportOutcomeRateMinWindowDays: 21;
|
|
19545
|
+
/**
|
|
19546
|
+
* @description Канонические доли исходов, которые в period-режиме доступны только на окне не короче CustomReportOutcomeRateMinWindowDays. Исчерпывающие backend/frontend-реестры типизированы этим enum, поэтому удаление или добавление ключа только на одной стороне ломает компиляцию.
|
|
19547
|
+
* @enum {string}
|
|
19548
|
+
*/
|
|
19549
|
+
CustomReportOutcomeRateMetric: "clickedRate" | "enteredDialogRate" | "replyRate" | "deepDialogRate" | "handedRate" | "paidRate";
|
|
18990
19550
|
UpdateDialogScriptRequest: {
|
|
18991
19551
|
/** @description Вводная проза §6 до первой ветки (опц.) */
|
|
18992
19552
|
preamble?: string;
|
|
@@ -19103,6 +19663,10 @@ export interface components {
|
|
|
19103
19663
|
*/
|
|
19104
19664
|
launchType: "status";
|
|
19105
19665
|
channels: components["schemas"]["GetCourseTransport"][];
|
|
19666
|
+
/**
|
|
19667
|
+
* @description Воронка ШКОЛЫ в форме «f11 — ДБО / NR / ВК / In Stream» — код fNN обязателен. ⚠️ Это НЕ когорта и НЕ подпись запуска: «reg-no-show», «post-web|дбо» сюда класть нельзя — тип отбора идёт в segment, продукт в productCode, подпись запуска в cohortLabel. Ось «Воронка» сравнивается по коду, поэтому значение без кода становится отдельной «воронкой» и засоряет фильтр аналитики.
|
|
19668
|
+
* @example f11 — ДБО / NR / ВК / In Stream
|
|
19669
|
+
*/
|
|
19106
19670
|
funnel?: string;
|
|
19107
19671
|
segment?: string;
|
|
19108
19672
|
/** @description Явное бизнес-правило отбора; требует segment. */
|
|
@@ -19168,6 +19732,8 @@ export interface components {
|
|
|
19168
19732
|
* @description Точный момент входа контакта в когорту (ISO 8601, зона ОБЯЗАТЕЛЬНА — …Z либо ±ЧЧ:ММ). На нём считается свежесть в «Аналитике рассылок»: возраст = время отправки минус segmentEnteredAt. Заполняется, когда предсписок собран ПРАВИЛОМ и у каждой строки есть свой момент события (например eventAt регистрации). Не передан — возраст строки остаётся неизвестным. Дату запуска сюда подставлять нельзя: она схлопнула бы месяцы когорт в одну корзину.
|
|
19169
19733
|
*/
|
|
19170
19734
|
segmentEnteredAt?: string;
|
|
19735
|
+
/** @description Воронка ЭТОГО контакта (например «f11 — ДБО / NR / ВК / In Stream»). Заполняется, когда файл собран из НЕСКОЛЬКИХ воронок: одна метка на запуск заставляла писать в поле воронки когорту («reg-no-show|дбо»), и фильтр по воронке переставал отвечать на свой вопрос — по f11 он показывал ноль отправок за 30 дней при 3267 регистрациях (замер 02.09.2026). Когорта и продукт лежат в своих полях segment и productCode. Не передана — берётся воронка запуска (funnel). */
|
|
19736
|
+
funnel?: string;
|
|
19171
19737
|
};
|
|
19172
19738
|
/** @description Ровно одна аудитория — createdAfter ЛИБО contacts. */
|
|
19173
19739
|
GetCourseColdWelcomePreviewRequest: {
|
|
@@ -19203,6 +19769,8 @@ export interface components {
|
|
|
19203
19769
|
alreadyWelcomed: number;
|
|
19204
19770
|
/** @description Всего найдено под границей. */
|
|
19205
19771
|
foundContacts: number;
|
|
19772
|
+
/** @description Строк файла БЕЗ момента входа в сегмент (segment_entered_at). Такой контакт не попадёт ни в один период оси «вход в сегмент» на «Аналитике коммуникации» — он невидим ровно там, где спрашивают «сколько людей пришло за месяц». Предупреждение, а не запрет: у аудитории, заданной границей даты или файлом без события, момента входа нет вовсе. Считается по СЫРЫМ строкам запроса, чтобы число сходилось с файлом. */
|
|
19773
|
+
rowsWithoutSegmentEntry?: number;
|
|
19206
19774
|
};
|
|
19207
19775
|
/** @description Не больше ОДНОЙ аудитории: contacts (поимённый список) ЛИБО currentAnchorValue (когорта). Без обеих — вся площадка (все контакты с непустым якорем). */
|
|
19208
19776
|
GetCourseAnchorRefreshRequest: {
|
|
@@ -19265,6 +19833,10 @@ export interface components {
|
|
|
19265
19833
|
/** @description Метка сегмента. Аудиторию НЕ отбирает. Если у рассылки есть текст именно для этого сегмента, он выбирает текст запуска — и тогда аудитория обязана быть файловой. */
|
|
19266
19834
|
segment?: string;
|
|
19267
19835
|
productCode?: string;
|
|
19836
|
+
/**
|
|
19837
|
+
* @description Воронка ШКОЛЫ в форме «f11 — ДБО / NR / ВК / In Stream» — код fNN обязателен. ⚠️ Это НЕ когорта и НЕ подпись запуска: «reg-no-show», «post-web|дбо» сюда класть нельзя — тип отбора идёт в segment, продукт в productCode, подпись запуска в cohortLabel. Ось «Воронка» сравнивается по коду, поэтому значение без кода становится отдельной «воронкой» и засоряет фильтр аналитики.
|
|
19838
|
+
* @example f11 — ДБО / NR / ВК / In Stream
|
|
19839
|
+
*/
|
|
19268
19840
|
funnel?: string;
|
|
19269
19841
|
/** @description Человекочитаемое имя ЭТОГО запуска — подпись когорты в «Аналитике рассылок». Не имя рассылки и не метка сегмента: те одинаковы у всех запусков, а разрез «по запускам» строится именно по подписи. Пусто — подпись собирается из даты запуска, имени рассылки и меток, так что запуски всё равно остаются различимыми. */
|
|
19270
19842
|
cohortLabel?: string;
|
|
@@ -19281,6 +19853,10 @@ export interface components {
|
|
|
19281
19853
|
/** @description Он же выбирает текст, если у рассылки есть посегментные тексты. */
|
|
19282
19854
|
segment?: string;
|
|
19283
19855
|
productCode?: string;
|
|
19856
|
+
/**
|
|
19857
|
+
* @description Воронка ШКОЛЫ в форме «f11 — ДБО / NR / ВК / In Stream» — код fNN обязателен. ⚠️ Это НЕ когорта и НЕ подпись запуска: «reg-no-show», «post-web|дбо» сюда класть нельзя — тип отбора идёт в segment, продукт в productCode, подпись запуска в cohortLabel. Ось «Воронка» сравнивается по коду, поэтому значение без кода становится отдельной «воронкой» и засоряет фильтр аналитики.
|
|
19858
|
+
* @example f11 — ДБО / NR / ВК / In Stream
|
|
19859
|
+
*/
|
|
19284
19860
|
funnel?: string;
|
|
19285
19861
|
/** @description Подпись запуска ЭТОГО блока. У пакета каждый сегмент — отдельный запуск со своей задачей и когортой, поэтому подпись задаётся посегментно; общая на пакет схлопнула бы их в отчёте в одну корзину. */
|
|
19286
19862
|
cohortLabel?: string;
|
|
@@ -19301,12 +19877,27 @@ export interface components {
|
|
|
19301
19877
|
channels?: components["schemas"]["GetCourseTransport"][];
|
|
19302
19878
|
/** @deprecated */
|
|
19303
19879
|
channelsMode?: components["schemas"]["ColdWelcomeChannelsMode"];
|
|
19880
|
+
/** @description Перекрытие предохранителей на ЭТОТ пакет (аварийный обход). Ключ не передан — берётся настройка площадки. Снимок кладётся в строку durable-плана, поэтому resume после рестарта едет с тем же решением. */
|
|
19881
|
+
guards?: components["schemas"]["OutboundGuardModes"];
|
|
19882
|
+
};
|
|
19883
|
+
/** @description Предохранители холодных отправок. Не писать, пока идёт вебинарная серия человека, пока с ним работает менеджер по действующей заявке и если он уже оплатил ЭТОТ продукт. Пропуск ключа = не трогать; null = «не настраивали» (действует дефолт: activeSeries BLOCK, остальные WARN). Подробности — docs/features/outbound-guards.md. */
|
|
19884
|
+
OutboundGuardModes: {
|
|
19885
|
+
activeSeries?: components["schemas"]["OutboundGuardMode"];
|
|
19886
|
+
activeApplication?: components["schemas"]["OutboundGuardMode"];
|
|
19887
|
+
paid?: components["schemas"]["OutboundGuardMode"];
|
|
19304
19888
|
};
|
|
19889
|
+
/**
|
|
19890
|
+
* @description OFF — правило не работает; WARN — причина пишется в аудит, отправка идёт; BLOCK — отправка останавливается.
|
|
19891
|
+
* @enum {string|null}
|
|
19892
|
+
*/
|
|
19893
|
+
OutboundGuardMode: "OFF" | "WARN" | "BLOCK" | null;
|
|
19305
19894
|
GetCourseColdWelcomeBatchResponse: {
|
|
19306
19895
|
/** Format: uuid */
|
|
19307
19896
|
batchId: string;
|
|
19308
19897
|
/** @description Сколько сегментов поставлено в очередь */
|
|
19309
19898
|
segments: number;
|
|
19899
|
+
/** @description Строк файла БЕЗ момента входа в сегмент (segment_entered_at). Такой контакт не попадёт ни в один период оси «вход в сегмент» на «Аналитике коммуникации» — он невидим ровно там, где спрашивают «сколько людей пришло за месяц». Предупреждение, а не запрет: у аудитории, заданной границей даты или файлом без события, момента входа нет вовсе. Считается по СЫРЫМ строкам запроса, чтобы число сходилось с файлом. */
|
|
19900
|
+
rowsWithoutSegmentEntry?: number;
|
|
19310
19901
|
};
|
|
19311
19902
|
GetCourseColdWelcomeBatchSegmentStatus: {
|
|
19312
19903
|
position: number;
|
|
@@ -19389,6 +19980,10 @@ export interface components {
|
|
|
19389
19980
|
outcomes?: {
|
|
19390
19981
|
[key: string]: number;
|
|
19391
19982
|
} | null;
|
|
19983
|
+
/** @description Сколько контактов каждого исхода разбирается ПОИМЁННО — по построчному следу отсева. Ключи те же, что в outcomes, но только у неотправленных: у SENT след это строка реестра получателей. Числа исходов остаются в outcomes (агрегат полон за всю историю), а след начинается с 02.09.2026, поэтому у прежних запусков здесь пусто — витрина по этому полю решает, открывать ли список. Null у волны и у прогона расписания: у них свои носители. */
|
|
19984
|
+
tracedOutcomes?: {
|
|
19985
|
+
[key: string]: number;
|
|
19986
|
+
} | null;
|
|
19392
19987
|
/** @description Сколько отправок ушло ВСЛЕПУЮ: канал взят резервным транспортом площадки, а не доказан привязками контакта или его ответом. Это ПОДМНОЖЕСТВО sentCount, а не отдельный исход — сообщение ушло. Без него «доставлено в мессенджер» и «упало в личный кабинет сайта» в истории неразличимы. null — у волн (отправляет процесс школы) и у запусков до появления счётчика; это НЕ то же, что 0. */
|
|
19393
19988
|
sentWithoutChannelEvidence?: number | null;
|
|
19394
19989
|
/** Format: date-time */
|
|
@@ -19471,6 +20066,10 @@ export interface components {
|
|
|
19471
20066
|
*/
|
|
19472
20067
|
launchType: "status";
|
|
19473
20068
|
channels: components["schemas"]["GetCourseTransport"][];
|
|
20069
|
+
/**
|
|
20070
|
+
* @description Воронка ШКОЛЫ в форме «f11 — ДБО / NR / ВК / In Stream» — код fNN обязателен. ⚠️ Это НЕ когорта и НЕ подпись запуска: «reg-no-show», «post-web|дбо» сюда класть нельзя — тип отбора идёт в segment, продукт в productCode, подпись запуска в cohortLabel. Ось «Воронка» сравнивается по коду, поэтому значение без кода становится отдельной «воронкой» и засоряет фильтр аналитики.
|
|
20071
|
+
* @example f11 — ДБО / NR / ВК / In Stream
|
|
20072
|
+
*/
|
|
19474
20073
|
funnel?: string;
|
|
19475
20074
|
segment?: string;
|
|
19476
20075
|
/** @description Явное бизнес-правило отбора; требует segment. */
|
|
@@ -19977,6 +20576,14 @@ export interface components {
|
|
|
19977
20576
|
comparableSent: number;
|
|
19978
20577
|
/** @description Ответили в пределах равного горизонта */
|
|
19979
20578
|
horizonReplied: number;
|
|
20579
|
+
/**
|
|
20580
|
+
* @description Отреагировали ХОТЬ КАК-ТО в том же горизонте: ответили ИЛИ перешли по ссылке
|
|
20581
|
+
* этого касания. Всегда >= horizonReplied, разность — те, кто НЕ ответил, но кликнул.
|
|
20582
|
+
* ⚠️ Складывать horizonReplied и linkClicked вместо этого нельзя: ответивший часто
|
|
20583
|
+
* ещё и кликает, и сумма задваивала бы его. Знаменатель тот же (comparableSent),
|
|
20584
|
+
* включая касания без ссылки: это доля отреагировавших на касание, а не CTR ссылки.
|
|
20585
|
+
*/
|
|
20586
|
+
horizonEngaged: number;
|
|
19980
20587
|
/** @description Прервано чужим касанием до конца горизонта */
|
|
19981
20588
|
censored: number;
|
|
19982
20589
|
/** @description Доля вырезанных от СОЗРЕВШЕГО пула (comparableSent + censored) */
|
|
@@ -20172,6 +20779,34 @@ export interface components {
|
|
|
20172
20779
|
} | null;
|
|
20173
20780
|
replyToStoryMentions?: boolean;
|
|
20174
20781
|
};
|
|
20782
|
+
funnelAnalytics?: {
|
|
20783
|
+
/** @description Тройка стадий «отправлено → одобрено | отклонено» (у Aslzar — скоринг рассрочки). null — сбросить ворота: блок перестаёт рисоваться. */
|
|
20784
|
+
decisionGate?: {
|
|
20785
|
+
submitted: {
|
|
20786
|
+
pipelineCrmId: string;
|
|
20787
|
+
pipelineId: number;
|
|
20788
|
+
statusId: number;
|
|
20789
|
+
};
|
|
20790
|
+
approved: {
|
|
20791
|
+
pipelineCrmId: string;
|
|
20792
|
+
pipelineId: number;
|
|
20793
|
+
statusId: number;
|
|
20794
|
+
};
|
|
20795
|
+
rejected: {
|
|
20796
|
+
pipelineCrmId: string;
|
|
20797
|
+
pipelineId: number;
|
|
20798
|
+
statusId: number;
|
|
20799
|
+
};
|
|
20800
|
+
} | null;
|
|
20801
|
+
/** @description Целевая стадия карточки «Путь до стадии». null — сбросить выбор. */
|
|
20802
|
+
pathTargetStage?: {
|
|
20803
|
+
pipelineCrmId: string;
|
|
20804
|
+
pipelineId: number;
|
|
20805
|
+
statusId: number;
|
|
20806
|
+
} | null;
|
|
20807
|
+
engagedInboundCount?: number | null;
|
|
20808
|
+
stuckThresholdHours?: number | null;
|
|
20809
|
+
};
|
|
20175
20810
|
/** @description Closes Phase B gap для name/offMessage/timezone/isActive. Any channel type. */
|
|
20176
20811
|
generalSettings?: {
|
|
20177
20812
|
name?: string | null;
|
|
@@ -20226,6 +20861,9 @@ export interface components {
|
|
|
20226
20861
|
channels?: components["schemas"]["GetCourseWaveFieldBinding"];
|
|
20227
20862
|
} | null;
|
|
20228
20863
|
deliveryCheckEnabled?: boolean;
|
|
20864
|
+
guardActiveSeries?: components["schemas"]["OutboundGuardMode"];
|
|
20865
|
+
guardActiveApplication?: components["schemas"]["OutboundGuardMode"];
|
|
20866
|
+
guardPaid?: components["schemas"]["OutboundGuardMode"];
|
|
20229
20867
|
/** @description Transport → exact deal custom field NAME (read API returns no field ids). Clear with {}. */
|
|
20230
20868
|
deliveryFieldMap?: {
|
|
20231
20869
|
[key: string]: string;
|
|
@@ -20925,6 +21563,20 @@ export interface components {
|
|
|
20925
21563
|
pipelineTransitionsLog?: Record<string, never>[];
|
|
20926
21564
|
toolCallLog?: Record<string, never>[];
|
|
20927
21565
|
ragTestResults?: Record<string, never>[];
|
|
21566
|
+
/** @description Рубрика прогона: `TestScenario.situations` сценариев этого прогона, как их написал автор. Строки role=agent — ОЖИДАЕМОЕ поведение агента; рантайм их не исполняет (`extractTurns` берёт только role=client/user), и `passRate` их не измеряет — он считает лишь долю turn-ов с непустым ответом. Заполняется только на findings-instructions (`/sandbox/runs/{runId}/findings/instructions`); `GET /sandbox-runs/{runId}` поле не отдаёт. Отсутствие поля = «рубрика не читалась», пустой `situations` = «у сценария нет реплик». Сценария, удалённого после прогона, здесь нет вовсе — хотя в `perScenarioMetrics` он остаётся. */
|
|
21567
|
+
scenarioExpectations?: {
|
|
21568
|
+
/** Format: uuid */
|
|
21569
|
+
scenarioId: string;
|
|
21570
|
+
scenarioName?: string;
|
|
21571
|
+
/** @description Что именно проверяет сценарий — часть рубрики, а не подпись. */
|
|
21572
|
+
description?: string | null;
|
|
21573
|
+
/** @description Реплики в исходном порядке (role=client — вход, role=agent — ожидание). Порядок и есть привязка ожидания к turn-у: индекс транскрипта смещается при OUTBOUND-seeding, поэтому готового номера turn-а здесь нет намеренно. */
|
|
21574
|
+
situations: {
|
|
21575
|
+
/** @enum {string} */
|
|
21576
|
+
role?: "client" | "agent";
|
|
21577
|
+
text?: string;
|
|
21578
|
+
}[];
|
|
21579
|
+
}[];
|
|
20928
21580
|
};
|
|
20929
21581
|
/** @description A single router decision recorded for one turn of a sandbox run. */
|
|
20930
21582
|
SandboxRoutingLogEntry: {
|
|
@@ -21459,8 +22111,65 @@ export interface components {
|
|
|
21459
22111
|
PatchDraftOperationsRequest: {
|
|
21460
22112
|
operations: components["schemas"]["PromptPatchOperation"][];
|
|
21461
22113
|
};
|
|
22114
|
+
/**
|
|
22115
|
+
* @description Черновик БЕЗ `currentContent` и без истории `operations[]`.
|
|
22116
|
+
*
|
|
22117
|
+
* Полный текст отдают `POST /prompt/drafts` (первое чтение промпта) и
|
|
22118
|
+
* `GET /prompt/drafts/{draftId}` (перечитать по требованию). Эхо текста в ответе
|
|
22119
|
+
* КАЖДОГО `_apply`/`_commit` — накладные расходы: клиент уже прочитал промпт на
|
|
22120
|
+
* старте, а история операций повторяет то, что он сам же и отправил.
|
|
22121
|
+
*/
|
|
22122
|
+
PromptDraftMeta: {
|
|
22123
|
+
/** Format: uuid */
|
|
22124
|
+
id: string;
|
|
22125
|
+
/** Format: uuid */
|
|
22126
|
+
agentId: string;
|
|
22127
|
+
status: components["schemas"]["PromptDraftStatus"];
|
|
22128
|
+
/** Format: uuid */
|
|
22129
|
+
baseVersionId: string;
|
|
22130
|
+
baseContentHash: string;
|
|
22131
|
+
/** Format: uuid */
|
|
22132
|
+
committedVersionId?: string | null;
|
|
22133
|
+
/**
|
|
22134
|
+
* @description Длина `currentContent`. Сверяется с остатком `GET /prompt/headroom`
|
|
22135
|
+
* без чтения самого текста.
|
|
22136
|
+
*/
|
|
22137
|
+
characters: number;
|
|
22138
|
+
/** @description Сколько patch-операций накоплено черновиком за всю жизнь. */
|
|
22139
|
+
operationsCount: number;
|
|
22140
|
+
/** Format: date-time */
|
|
22141
|
+
expiresAt: string;
|
|
22142
|
+
/** Format: date-time */
|
|
22143
|
+
updatedAt: string;
|
|
22144
|
+
};
|
|
22145
|
+
/** @description Построчная разница состояния черновика ДО и ПОСЛЕ применённых операций. */
|
|
22146
|
+
PromptPatchDiff: {
|
|
22147
|
+
/**
|
|
22148
|
+
* @description Текст черновика реально изменился.
|
|
22149
|
+
*
|
|
22150
|
+
* Отдельный признак обязателен: `removedLines`/`addedLines` — multiset-разность
|
|
22151
|
+
* строк, и `move_text_after_text` (как и правка одних пробелов) даёт ПУСТОЙ дифф
|
|
22152
|
+
* при изменившемся тексте. Без этого поля пустые списки читались бы как
|
|
22153
|
+
* «ничего не применилось».
|
|
22154
|
+
*/
|
|
22155
|
+
contentChanged: boolean;
|
|
22156
|
+
/**
|
|
22157
|
+
* @description Насколько вырос (отрицательное — сжался) черновик, в символах.
|
|
22158
|
+
* Абсолютная длина — `draft.characters`, чтобы одно число не жило в двух полях.
|
|
22159
|
+
*/
|
|
22160
|
+
charactersDelta: number;
|
|
22161
|
+
/** @description Строки, исчезнувшие из черновика. */
|
|
22162
|
+
removedLines: components["schemas"]["PromptDiffLine"][];
|
|
22163
|
+
/** @description Строки, появившиеся в черновике. */
|
|
22164
|
+
addedLines: components["schemas"]["PromptDiffLine"][];
|
|
22165
|
+
/**
|
|
22166
|
+
* @description Списки обрезаны по потолку строк на сторону (`PROMPT_PATCH_DIFF_MAX_LINES`).
|
|
22167
|
+
* Полный текст читать через `GET /prompt/drafts/{draftId}`.
|
|
22168
|
+
*/
|
|
22169
|
+
truncated: boolean;
|
|
22170
|
+
};
|
|
21462
22171
|
PromptDraftPatchResponse: {
|
|
21463
|
-
draft: components["schemas"]["
|
|
22172
|
+
draft: components["schemas"]["PromptDraftMeta"];
|
|
21464
22173
|
/** @description Сколько ops успешно применились */
|
|
21465
22174
|
appliedCount: number;
|
|
21466
22175
|
/**
|
|
@@ -21468,15 +22177,23 @@ export interface components {
|
|
|
21468
22177
|
* Клиент должен показать warning если > 0.
|
|
21469
22178
|
*/
|
|
21470
22179
|
skippedCount: number;
|
|
22180
|
+
diff: components["schemas"]["PromptPatchDiff"];
|
|
21471
22181
|
};
|
|
21472
22182
|
PromptDraftCommitResponse: {
|
|
21473
|
-
draft: components["schemas"]["
|
|
22183
|
+
draft: components["schemas"]["PromptDraftMeta"];
|
|
22184
|
+
/**
|
|
22185
|
+
* @description Только адресация новой версии. `content` намеренно НЕ отдаётся: это была бы
|
|
22186
|
+
* вторая копия текста, который клиент сам и собрал.
|
|
22187
|
+
*/
|
|
21474
22188
|
newVersion: {
|
|
21475
22189
|
/** Format: uuid */
|
|
21476
22190
|
id: string;
|
|
21477
|
-
/**
|
|
21478
|
-
|
|
21479
|
-
|
|
22191
|
+
/**
|
|
22192
|
+
* @description `null` — идемпотентный повтор commit'а (draft уже был COMMITTED): номер версии
|
|
22193
|
+
* на этом пути неизвестен, черновик его не несёт. Внутренний сентинел `-1` наружу
|
|
22194
|
+
* НЕ выпускается: в JSON он неотличим от настоящего номера версии.
|
|
22195
|
+
*/
|
|
22196
|
+
version: number | null;
|
|
21480
22197
|
};
|
|
21481
22198
|
};
|
|
21482
22199
|
/** @enum {string} */
|
|
@@ -21762,9 +22479,11 @@ export interface components {
|
|
|
21762
22479
|
[key: string]: unknown;
|
|
21763
22480
|
} | null;
|
|
21764
22481
|
/** @enum {string|null} */
|
|
21765
|
-
llmProvider?: "openai" | "yandex-gpt" | "deepseek" | "xai" | "zai" | "moonshot" | "alibaba" | "anthropic" | "cerebras" | null;
|
|
22482
|
+
llmProvider?: "openai" | "yandex-gpt" | "deepseek" | "groq" | "openrouter" | "xai" | "zai" | "moonshot" | "alibaba" | "anthropic" | "cerebras" | null;
|
|
21766
22483
|
llmModel?: string | null;
|
|
21767
22484
|
/** @enum {string|null} */
|
|
22485
|
+
llmReasoningEffort?: "none" | "low" | "medium" | "high" | null;
|
|
22486
|
+
/** @enum {string|null} */
|
|
21768
22487
|
realtimeProvider?: "openai" | "yandex" | "google" | "phonic" | "xai" | null;
|
|
21769
22488
|
realtimeModel?: string | null;
|
|
21770
22489
|
realtimeVoice?: string | null;
|
|
@@ -21785,10 +22504,8 @@ export interface components {
|
|
|
21785
22504
|
fillerStatus?: string | null;
|
|
21786
22505
|
vadProvider?: string | null;
|
|
21787
22506
|
turnDetector?: string | null;
|
|
21788
|
-
/** @description
|
|
21789
|
-
turnTakingConfig?:
|
|
21790
|
-
[key: string]: unknown;
|
|
21791
|
-
} | null;
|
|
22507
|
+
/** @description Typed ручки turn-taking/barge-in (A2) */
|
|
22508
|
+
turnTakingConfig?: components["schemas"]["VoiceProfileTurnTakingConfig"] | null;
|
|
21792
22509
|
sentimentAnalysisEnabled: boolean;
|
|
21793
22510
|
ttsFailoverEnabled: boolean;
|
|
21794
22511
|
recordingCopyEnabled: boolean;
|
|
@@ -22363,6 +23080,11 @@ export interface components {
|
|
|
22363
23080
|
/** @description Ручки turn-taking/barge-in (A2): typed-схема входа (незнакомые ключи отвергаются, диапазоны зеркалят клампы воркера). Время — мс. */
|
|
22364
23081
|
VoiceProfileTurnTakingConfig: {
|
|
22365
23082
|
allowInterruptions?: boolean;
|
|
23083
|
+
/**
|
|
23084
|
+
* @description CASCADE: adaptive требует STT с aligned transcript и LiveKit Cloud/dev runtime; внешний production worker использует VAD. REALTIME использует нативный turn detection
|
|
23085
|
+
* @enum {string}
|
|
23086
|
+
*/
|
|
23087
|
+
interruptionMode?: "vad" | "adaptive";
|
|
22366
23088
|
minInterruptionDuration?: number;
|
|
22367
23089
|
minInterruptionWords?: number;
|
|
22368
23090
|
minEndpointingDelay?: number;
|
|
@@ -22411,8 +23133,10 @@ export interface components {
|
|
|
22411
23133
|
ttsPronunciationCaseSensitive?: boolean;
|
|
22412
23134
|
ttsProviderSettings?: components["schemas"]["VoiceProfileTtsProviderSettings"];
|
|
22413
23135
|
/** @enum {string} */
|
|
22414
|
-
llmProvider?: "openai" | "yandex-gpt" | "deepseek" | "xai" | "zai" | "moonshot" | "alibaba" | "anthropic" | "cerebras";
|
|
23136
|
+
llmProvider?: "openai" | "yandex-gpt" | "deepseek" | "groq" | "openrouter" | "xai" | "zai" | "moonshot" | "alibaba" | "anthropic" | "cerebras";
|
|
22415
23137
|
llmModel?: string;
|
|
23138
|
+
/** @enum {string|null} */
|
|
23139
|
+
llmReasoningEffort?: "none" | "low" | "medium" | "high" | null;
|
|
22416
23140
|
/** @enum {string} */
|
|
22417
23141
|
realtimeProvider?: "openai" | "yandex" | "google" | "phonic" | "xai";
|
|
22418
23142
|
realtimeModel?: string;
|
|
@@ -22500,9 +23224,11 @@ export interface components {
|
|
|
22500
23224
|
[key: string]: unknown;
|
|
22501
23225
|
} | null;
|
|
22502
23226
|
/** @enum {string|null} */
|
|
22503
|
-
llmProvider?: "openai" | "yandex-gpt" | "deepseek" | "xai" | "zai" | "moonshot" | "alibaba" | "anthropic" | "cerebras" | null;
|
|
23227
|
+
llmProvider?: "openai" | "yandex-gpt" | "deepseek" | "groq" | "openrouter" | "xai" | "zai" | "moonshot" | "alibaba" | "anthropic" | "cerebras" | null;
|
|
22504
23228
|
llmModel?: string | null;
|
|
22505
23229
|
/** @enum {string|null} */
|
|
23230
|
+
llmReasoningEffort?: "none" | "low" | "medium" | "high" | null;
|
|
23231
|
+
/** @enum {string|null} */
|
|
22506
23232
|
realtimeProvider?: "openai" | "yandex" | "google" | "phonic" | "xai" | null;
|
|
22507
23233
|
realtimeModel?: string | null;
|
|
22508
23234
|
realtimeVoice?: string | null;
|
|
@@ -22524,10 +23250,8 @@ export interface components {
|
|
|
22524
23250
|
telephonyFilterEnabled: boolean;
|
|
22525
23251
|
vadProvider?: string | null;
|
|
22526
23252
|
turnDetector?: string | null;
|
|
22527
|
-
/** @description
|
|
22528
|
-
turnTakingConfig?:
|
|
22529
|
-
[key: string]: unknown;
|
|
22530
|
-
} | null;
|
|
23253
|
+
/** @description Typed ручки turn-taking/barge-in (A2) */
|
|
23254
|
+
turnTakingConfig?: components["schemas"]["VoiceProfileTurnTakingConfig"] | null;
|
|
22531
23255
|
/** @description Сентимент-анализ user-реплик (A1) */
|
|
22532
23256
|
sentimentAnalysisEnabled: boolean;
|
|
22533
23257
|
/** @description false (дефолт) — отказ TTS завершает звонок, голос не подменяется */
|
|
@@ -22681,6 +23405,8 @@ export interface components {
|
|
|
22681
23405
|
/** Format: uuid */
|
|
22682
23406
|
platformId?: string;
|
|
22683
23407
|
inputTokens?: number;
|
|
23408
|
+
/** @description Часть inputTokens, прочитанная из provider prompt cache */
|
|
23409
|
+
cacheReadTokens?: number;
|
|
22684
23410
|
outputTokens?: number;
|
|
22685
23411
|
totalTokens?: number;
|
|
22686
23412
|
inputAudioSeconds?: number;
|
|
@@ -23062,7 +23788,7 @@ export interface components {
|
|
|
23062
23788
|
isBotActive?: boolean;
|
|
23063
23789
|
isFollowUpActive?: boolean;
|
|
23064
23790
|
/** @enum {string|null} */
|
|
23065
|
-
lastWorkLogEvent?: "START" | "IN_PROCESS" | "FINISH_WIN" | "FINISH_LOST" | "FAILED" | "OPERATOR_TAKEOVER" | "FINISH_AUTO" | null;
|
|
23791
|
+
lastWorkLogEvent?: "START" | "IN_PROCESS" | "FINISH_WIN" | "FINISH_LOST" | "FAILED" | "OPERATOR_TAKEOVER" | "FINISH_AUTO" | "FINISH_RESOLVED" | null;
|
|
23066
23792
|
/**
|
|
23067
23793
|
* Format: date-time
|
|
23068
23794
|
* @description Время последней отправки волны/рассылки этому контакту (BroadcastRecipient.receivedAt). Опорная точка атрибуции: от неё считается «сколько прошло до ответа клиента и до оплаты». null — контакт в волны не попадал.
|
|
@@ -23352,6 +24078,18 @@ export interface components {
|
|
|
23352
24078
|
paid: number;
|
|
23353
24079
|
paidAmount: number;
|
|
23354
24080
|
};
|
|
24081
|
+
TrackedLinkReachBreakdown: {
|
|
24082
|
+
platformId: string | null;
|
|
24083
|
+
platformName: string | null;
|
|
24084
|
+
/** @description Площадка удалена. Отдельный признак, а не пустое имя: Platform.name nullable, и живая безымянная площадка существует. */
|
|
24085
|
+
platformDeleted: boolean;
|
|
24086
|
+
agentId: string | null;
|
|
24087
|
+
agentName: string | null;
|
|
24088
|
+
/** @description Агент удалён; выдачи и клики сохранены */
|
|
24089
|
+
agentDeleted: boolean;
|
|
24090
|
+
issued: number;
|
|
24091
|
+
clicked: number;
|
|
24092
|
+
};
|
|
23355
24093
|
TrackedLinkClickEvents: {
|
|
23356
24094
|
items: components["schemas"]["TrackedLinkClickEvent"][];
|
|
23357
24095
|
total: number;
|
|
@@ -23404,11 +24142,82 @@ export interface components {
|
|
|
23404
24142
|
data: components["schemas"]["BroadcastMetricRow"][];
|
|
23405
24143
|
/** @description Итоги без channel-unnest; использовать для общей цифры вместо суммы data по каналам. */
|
|
23406
24144
|
totals: components["schemas"]["BroadcastMetricRow"][];
|
|
24145
|
+
/** @description Разрез по площадкам за ВЕСЬ период (без дней). Считается третьим набором тех же GROUPING SETS, что и totals, поэтому сходится с ними по построению. Дней тут нет намеренно: sent/received client-distinct и по дням не аддитивны. Ручная историческая статистика не входит — площадки у неё нет. */
|
|
24146
|
+
platformTotals?: components["schemas"]["BroadcastPlatformTotal"][];
|
|
23407
24147
|
channels: string[];
|
|
23408
24148
|
funnels: string[];
|
|
23409
24149
|
segments: string[];
|
|
23410
24150
|
products: string[];
|
|
23411
24151
|
};
|
|
24152
|
+
BroadcastPlatformTotal: {
|
|
24153
|
+
/**
|
|
24154
|
+
* Format: uuid
|
|
24155
|
+
* @description ID площадки рассылки; null — у строки площадка не проставлена.
|
|
24156
|
+
*/
|
|
24157
|
+
platformId: string | null;
|
|
24158
|
+
/** @description Воронка волны. Разрез несёт её, потому что страница фильтрует воронки клиентски. */
|
|
24159
|
+
funnel: string | null;
|
|
24160
|
+
sent: number;
|
|
24161
|
+
received: number;
|
|
24162
|
+
enteredDialog: number;
|
|
24163
|
+
handedOff: number;
|
|
24164
|
+
paid: number;
|
|
24165
|
+
paidAmount: number;
|
|
24166
|
+
};
|
|
24167
|
+
BroadcastUniqueContacts: {
|
|
24168
|
+
/**
|
|
24169
|
+
* @description Уникальных контактов (DISTINCT chat_user_id) в периметре «Отправлено». НЕ аддитивно —
|
|
24170
|
+
* сумма по группам больше правды (замер 26.08.2026: по дням +43 %, по сегментам +27 %).
|
|
24171
|
+
*/
|
|
24172
|
+
uniqueContacts: number;
|
|
24173
|
+
/**
|
|
24174
|
+
* @description Только при view=entry. Сколько строк за тот же период было ОТПРАВЛЕНО и сколько из них
|
|
24175
|
+
* не имеет даты входа в сегмент — эти строки не попадают ни в один период режима.
|
|
24176
|
+
* Отсутствие поля означает «вопрос не задавался», а не «все даты известны».
|
|
24177
|
+
*/
|
|
24178
|
+
entryCoverage?: {
|
|
24179
|
+
sentRows: number;
|
|
24180
|
+
rowsWithoutEntry: number;
|
|
24181
|
+
};
|
|
24182
|
+
};
|
|
24183
|
+
BroadcastPerPersonMetrics: {
|
|
24184
|
+
/**
|
|
24185
|
+
* @description Уникальные контакты, которым отправляли.
|
|
24186
|
+
* @example 32737
|
|
24187
|
+
*/
|
|
24188
|
+
sent: number;
|
|
24189
|
+
/**
|
|
24190
|
+
* @description Уникальные контакты с засчитанной доставкой.
|
|
24191
|
+
* @example 29825
|
|
24192
|
+
*/
|
|
24193
|
+
received: number;
|
|
24194
|
+
/**
|
|
24195
|
+
* @description Уникальные контакты, вступившие в диалог.
|
|
24196
|
+
* @example 4430
|
|
24197
|
+
*/
|
|
24198
|
+
enteredDialog: number;
|
|
24199
|
+
/** @description Уникальные контакты с глубоким диалогом. */
|
|
24200
|
+
deepDialog: number;
|
|
24201
|
+
/** @description Уникальные контакты с выданной отслеживаемой ссылкой. */
|
|
24202
|
+
linkIssued: number;
|
|
24203
|
+
/** @description Уникальные контакты, кликнувшие по отслеживаемой ссылке. */
|
|
24204
|
+
clicked: number;
|
|
24205
|
+
/** @description Уникальные контакты, переданные менеджеру. */
|
|
24206
|
+
handedOff: number;
|
|
24207
|
+
/** @description Уникальные контакты с выставленным счётом. */
|
|
24208
|
+
issued: number;
|
|
24209
|
+
/**
|
|
24210
|
+
* @description Уникальные контакты с прямой оплатой.
|
|
24211
|
+
* @example 71
|
|
24212
|
+
*/
|
|
24213
|
+
paid: number;
|
|
24214
|
+
/** @description Уникальные контакты с оплатой, подтверждённой оператором. */
|
|
24215
|
+
confirmedByOperator: number;
|
|
24216
|
+
/** @description Уникальные контакты с косвенной оплатой. */
|
|
24217
|
+
indirect: number;
|
|
24218
|
+
/** @description Уникальные контакты с возможной оплатой, ожидающей решения. */
|
|
24219
|
+
potential: number;
|
|
24220
|
+
};
|
|
23412
24221
|
BroadcastSegmentCatalogItem: {
|
|
23413
24222
|
/** Format: uuid */
|
|
23414
24223
|
id: string;
|
|
@@ -23469,8 +24278,16 @@ export interface components {
|
|
|
23469
24278
|
items: components["schemas"]["BroadcastCohortRow"][];
|
|
23470
24279
|
};
|
|
23471
24280
|
BroadcastSkipReason: {
|
|
24281
|
+
/** @description Код причины из словаря СВОЕГО источника: у preflight это GetCourseWavePreflightReason, у наших отправок — ColdWelcomeOutcome и собственные исходы прогона. Словари не пересекаются, подпись ищется по source. */
|
|
23472
24282
|
reason: string;
|
|
24283
|
+
/**
|
|
24284
|
+
* @description Чем отсеян: preflight — проверка волны школы, ownSend — ручная холодная отправка, schedule — авторассылка.
|
|
24285
|
+
* @enum {string}
|
|
24286
|
+
*/
|
|
24287
|
+
source: "preflight" | "ownSend" | "schedule";
|
|
23473
24288
|
count: number;
|
|
24289
|
+
/** @description Сколько из count разбирается ПОИМЁННО. Есть только у ownSend: его число — агрегат задачи (полон за всю историю), а построчный след начинается с выкатки, поэтому у старых запусков он законно 0. Витрина открывает список только там, где значение больше нуля, и подписывает «поимённо N из M», когда след неполон. У preflight и schedule поля нет: у них само число и есть сумма построчных строк. */
|
|
24290
|
+
tracedCount?: number;
|
|
23474
24291
|
};
|
|
23475
24292
|
BroadcastSkipDayProduct: {
|
|
23476
24293
|
/** Format: date */
|
|
@@ -23737,7 +24554,7 @@ export interface components {
|
|
|
23737
24554
|
/** @enum {string} */
|
|
23738
24555
|
PaymentCandidateStatus: "PENDING" | "CONFIRMED" | "CONFIRMED_INDIRECT" | "REJECTED";
|
|
23739
24556
|
/**
|
|
23740
|
-
* @description Корзина доказательности возможной оплаты — чем подтверждается участие агента в окне «отправка волны → оплата». DEEP_DIALOG: 3+ реплики клиента и
|
|
24557
|
+
* @description Корзина доказательности возможной оплаты — чем подтверждается участие агента в окне «отправка волны → оплата». DEEP_DIALOG: 3+ реплики клиента и минимум два доставленных ответа AI-агента именно на реплику клиента. SHORT_DIALOG: клиент писал и агент отвечал на реплику, но порог глубокого диалога не достигнут. NO_AGENT_REPLY: клиент писал, доставленного ответа AI-агента на его реплику не зафиксировано. SILENT: клиент не отвечал. UNKNOWN: сигналы ещё не посчитаны.
|
|
23741
24558
|
* @enum {string}
|
|
23742
24559
|
*/
|
|
23743
24560
|
PaymentEvidenceBucket: "DEEP_DIALOG" | "SHORT_DIALOG" | "NO_AGENT_REPLY" | "SILENT" | "UNKNOWN";
|
|
@@ -23949,6 +24766,7 @@ export interface components {
|
|
|
23949
24766
|
clientRepliedBeforePayment: boolean | null;
|
|
23950
24767
|
dialogueInboundCount: number | null;
|
|
23951
24768
|
dialogueAgentReplyCount: number | null;
|
|
24769
|
+
dialogueAgentResponsiveCount: number | null;
|
|
23952
24770
|
dialogueOperatorMessageCount: number | null;
|
|
23953
24771
|
dialogueOtherOutgoingCount: number | null;
|
|
23954
24772
|
evidenceBucket: components["schemas"]["PaymentEvidenceBucket"];
|
|
@@ -24182,6 +25000,24 @@ export interface components {
|
|
|
24182
25000
|
/** Format: date-time */
|
|
24183
25001
|
created_at: string;
|
|
24184
25002
|
};
|
|
25003
|
+
AmoCrmChannelRegistrationResponse: {
|
|
25004
|
+
/**
|
|
25005
|
+
* @description Адрес вебхука канала для этого воркспейса (пункт 2 письма)
|
|
25006
|
+
* @example https://core.besales.ai/api/webhook/amocrm/055a9626-548b-42bd-8132-afb17925f168
|
|
25007
|
+
*/
|
|
25008
|
+
webhookUrl: string;
|
|
25009
|
+
/** @description Текст письма в поддержку AmoCRM целиком, с местами под данные аккаунта */
|
|
25010
|
+
emailTemplate: string;
|
|
25011
|
+
/**
|
|
25012
|
+
* @description Места в письме, которые заполняет человек: их знает только владелец аккаунта. Отдаются списком, чтобы клиент предупредил о них явно, а не надеялся, что человек заметит угловые скобки.
|
|
25013
|
+
* @example [
|
|
25014
|
+
* "<номер учётной записи>",
|
|
25015
|
+
* "<картинку прикладываю>",
|
|
25016
|
+
* "<Id интеграции>"
|
|
25017
|
+
* ]
|
|
25018
|
+
*/
|
|
25019
|
+
placeholders: string[];
|
|
25020
|
+
};
|
|
24185
25021
|
CrmListResponse: {
|
|
24186
25022
|
crms: components["schemas"]["CrmListItem"][];
|
|
24187
25023
|
};
|
|
@@ -25531,16 +26367,18 @@ export interface components {
|
|
|
25531
26367
|
BroadcastMailingVariantId: string[];
|
|
25532
26368
|
/** @description Механизм запуска: `wave` — доставляет процесс школы (мы штампуем поля сделки), `cold_welcome` — пишем первыми сами. Мультивыбор; ОБА значения = фильтра нет. У строки получателя механизм берётся из её собственного режима, у сделки и кандидата — из когорты по import job (нет метки и нет холодных получателей = wave). */
|
|
25533
26369
|
BroadcastMechanism: ("wave" | "cold_welcome")[];
|
|
26370
|
+
/** @description ЧТО ЗАПУСТИЛО отправку: `manual` — оператор нажал «Запустить», `registration` — автоприём регистрации по order-вебхуку школы, `schedule` — ночной прогон планировщика. Мультивыбор; выбраны все = фильтра нет. Это ДРУГАЯ ось, а не уточнение механизма: механизм отвечает «чем доставляли». Любой выбор ИСКЛЮЧАЕТ волны школы целиком — у них запускающего в этом смысле нет. */
|
|
26371
|
+
BroadcastLaunchSource: ("manual" | "registration" | "schedule")[];
|
|
25534
26372
|
/** @description Мультивыбор: повторяйте параметр (`?x=A&x=B`). Одиночное значение остаётся валидным. */
|
|
25535
26373
|
BroadcastProduct: string[];
|
|
25536
26374
|
/** @description Добавляет строки без продукта. Можно сочетать с product: значения и NULL объединяются через OR. */
|
|
25537
26375
|
BroadcastProductMode: "none";
|
|
25538
26376
|
/** @description Корзины свежести лида (мультивыбор). Под фильтром из ВСЕХ метрик выпадают контакты с неизвестным возрастом. Выбраны все корзины = фильтра нет. */
|
|
25539
|
-
BroadcastFreshness: ("0-7" | "8-14" | "15-30" | "31+")[];
|
|
26377
|
+
BroadcastFreshness: ("0-7" | "8-14" | "15-30" | "31-45" | "46-60" | "61+")[];
|
|
25540
26378
|
/** @description Мессенджеры волны (транспорты GetCourse + UNKNOWN — канал не определён), мультивыбор. Деньги фильтруются по скалярному каналу сделки. */
|
|
25541
26379
|
BroadcastChannels: string[];
|
|
25542
|
-
/** @description cohort — дата запуска; period — дата
|
|
25543
|
-
BroadcastView: "cohort" | "period";
|
|
26380
|
+
/** @description cohort — дата запуска; period — дата события; entry — дата входа в сегмент (segment_entered_at: регистрация, конец серии, предсписок). В entry строки без даты входа выпадают всегда, включая mode=all, а события атрибутируются когортно. */
|
|
26381
|
+
BroadcastView: "cohort" | "period" | "entry";
|
|
25544
26382
|
/** @description Конкретный день кликнутой ячейки (МСК). */
|
|
25545
26383
|
BroadcastDate: string;
|
|
25546
26384
|
/** @description Канал кликнутой ячейки; пусто = общий итог. */
|
|
@@ -25806,4 +26644,105 @@ export interface operations {
|
|
|
25806
26644
|
};
|
|
25807
26645
|
};
|
|
25808
26646
|
};
|
|
26647
|
+
getAmoCrmChannelRegistration: {
|
|
26648
|
+
parameters: {
|
|
26649
|
+
query?: never;
|
|
26650
|
+
header?: never;
|
|
26651
|
+
path: {
|
|
26652
|
+
workspaceId: components["parameters"]["WorkspaceIdPath"];
|
|
26653
|
+
};
|
|
26654
|
+
cookie?: never;
|
|
26655
|
+
};
|
|
26656
|
+
requestBody?: never;
|
|
26657
|
+
responses: {
|
|
26658
|
+
200: {
|
|
26659
|
+
headers: {
|
|
26660
|
+
[name: string]: unknown;
|
|
26661
|
+
};
|
|
26662
|
+
content: {
|
|
26663
|
+
"application/json": components["schemas"]["AmoCrmChannelRegistrationResponse"];
|
|
26664
|
+
};
|
|
26665
|
+
};
|
|
26666
|
+
};
|
|
26667
|
+
};
|
|
26668
|
+
getCustomReportData: {
|
|
26669
|
+
parameters: {
|
|
26670
|
+
query: {
|
|
26671
|
+
from: string;
|
|
26672
|
+
to: string;
|
|
26673
|
+
granularity?: "day" | "week" | "month" | "total";
|
|
26674
|
+
};
|
|
26675
|
+
header?: never;
|
|
26676
|
+
path: {
|
|
26677
|
+
workspaceId: components["parameters"]["WorkspaceIdPath"];
|
|
26678
|
+
reportId: string;
|
|
26679
|
+
};
|
|
26680
|
+
cookie?: never;
|
|
26681
|
+
};
|
|
26682
|
+
requestBody?: never;
|
|
26683
|
+
responses: {
|
|
26684
|
+
/** @description Данные таблицы и snapshot точного drill-down, если источник его поддерживает. */
|
|
26685
|
+
200: {
|
|
26686
|
+
headers: {
|
|
26687
|
+
[name: string]: unknown;
|
|
26688
|
+
};
|
|
26689
|
+
content: {
|
|
26690
|
+
"application/json": components["schemas"]["CustomReportDataResponse"];
|
|
26691
|
+
};
|
|
26692
|
+
};
|
|
26693
|
+
400: components["responses"]["ValidationError"];
|
|
26694
|
+
401: components["responses"]["Unauthorized"];
|
|
26695
|
+
403: components["responses"]["Forbidden"];
|
|
26696
|
+
404: components["responses"]["NotFound"];
|
|
26697
|
+
};
|
|
26698
|
+
};
|
|
26699
|
+
getCustomReportDrilldown: {
|
|
26700
|
+
parameters: {
|
|
26701
|
+
query: {
|
|
26702
|
+
/** @description Начало бакета, YYYY-MM-DD, включительно. */
|
|
26703
|
+
bucketFrom: string;
|
|
26704
|
+
/** @description Конец бакета, YYYY-MM-DD, включительно. */
|
|
26705
|
+
bucketTo: string;
|
|
26706
|
+
/** @description Сохранённая колонка таблицы. */
|
|
26707
|
+
metricKey: string;
|
|
26708
|
+
/** @description Сохранённая строка; отсутствие означает итог бакета. */
|
|
26709
|
+
dimensionValue?: string;
|
|
26710
|
+
/** @description Снимок из ответа живого отчёта; обязателен для источников дожимов. */
|
|
26711
|
+
calculatedAt?: string;
|
|
26712
|
+
/** @description JSON-путь строки сводной; отсутствие означает общий итог. */
|
|
26713
|
+
rowPath?: string;
|
|
26714
|
+
/** @description Непрозрачный MVCC-снимок PostgreSQL из ответа живого отчёта. */
|
|
26715
|
+
executionDbSnapshot?: string;
|
|
26716
|
+
/** @description Fingerprint актуальных шагов и атрибуции из ответа живого отчёта. */
|
|
26717
|
+
expectedCurrentStepsFingerprint?: string;
|
|
26718
|
+
/** @description updatedAt определения из ответа живого отчёта. */
|
|
26719
|
+
expectedReportUpdatedAt: string;
|
|
26720
|
+
limit?: number;
|
|
26721
|
+
offset?: number;
|
|
26722
|
+
};
|
|
26723
|
+
header?: never;
|
|
26724
|
+
path: {
|
|
26725
|
+
workspaceId: components["parameters"]["WorkspaceIdPath"];
|
|
26726
|
+
reportId: string;
|
|
26727
|
+
};
|
|
26728
|
+
cookie?: never;
|
|
26729
|
+
};
|
|
26730
|
+
requestBody?: never;
|
|
26731
|
+
responses: {
|
|
26732
|
+
/** @description Страница исполнений за выбранной ячейкой. */
|
|
26733
|
+
200: {
|
|
26734
|
+
headers: {
|
|
26735
|
+
[name: string]: unknown;
|
|
26736
|
+
};
|
|
26737
|
+
content: {
|
|
26738
|
+
"application/json": components["schemas"]["CustomReportDrilldownResponse"];
|
|
26739
|
+
};
|
|
26740
|
+
};
|
|
26741
|
+
400: components["responses"]["ValidationError"];
|
|
26742
|
+
401: components["responses"]["Unauthorized"];
|
|
26743
|
+
403: components["responses"]["Forbidden"];
|
|
26744
|
+
404: components["responses"]["NotFound"];
|
|
26745
|
+
409: components["responses"]["Conflict"];
|
|
26746
|
+
};
|
|
26747
|
+
};
|
|
25809
26748
|
}
|