@besales/mcp 0.37.1 → 0.38.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/platforms.md +5 -1
- package/dist/schemas/mcp-tools.json +640 -19
- package/dist/tools/definitions/broadcast-analytics.d.ts +7 -0
- package/dist/tools/definitions/broadcast-analytics.js +39 -0
- package/dist/tools/definitions/broadcast-analytics.js.map +1 -1
- package/dist/tools/definitions/broadcast-mailing-variants.d.ts +18 -2
- package/dist/tools/definitions/broadcast-mailing-variants.js +66 -3
- package/dist/tools/definitions/broadcast-mailing-variants.js.map +1 -1
- package/dist/tools/definitions/follow-up.js +6 -2
- package/dist/tools/definitions/follow-up.js.map +1 -1
- package/dist/tools/definitions/getcourse-cold-welcome.d.ts +56 -0
- package/dist/tools/definitions/getcourse-cold-welcome.js +241 -0
- package/dist/tools/definitions/getcourse-cold-welcome.js.map +1 -0
- package/dist/tools/definitions/platform-setup.d.ts +1 -0
- package/dist/tools/definitions/shared.d.ts +1 -0
- package/dist/tools/definitions/shared.js +11 -0
- package/dist/tools/definitions/shared.js.map +1 -1
- package/dist/tools/definitions.d.ts +68 -2
- package/dist/tools/definitions.js +4 -1
- package/dist/tools/definitions.js.map +1 -1
- package/package.json +1 -1
|
@@ -3061,7 +3061,8 @@
|
|
|
3061
3061
|
"format": "uuid"
|
|
3062
3062
|
},
|
|
3063
3063
|
"explicit_confirmation": {
|
|
3064
|
-
"const": true
|
|
3064
|
+
"const": true,
|
|
3065
|
+
"type": "boolean"
|
|
3065
3066
|
},
|
|
3066
3067
|
"confirmation_reason": {
|
|
3067
3068
|
"type": "string"
|
|
@@ -3517,7 +3518,7 @@
|
|
|
3517
3518
|
}
|
|
3518
3519
|
}
|
|
3519
3520
|
},
|
|
3520
|
-
"description": "Условия принадлежности контакта цепочке, соединяются через И. Применяются при ЛЮБОМ filterMode (при variable обязателен и непуст, иначе цепочка не выберет никого).
|
|
3521
|
+
"description": "Условия принадлежности контакта цепочке, соединяются через И. Применяются при ЛЮБОМ filterMode (при variable обязателен и непуст, иначе цепочка не выберет никого). Ветвление по измерениям рассылки GetCourse: WAVE_MAILING_VARIANT — UUID варианта из каталога воркспейса, а НЕ его имя (first-ver будет отвергнут); WAVE_PRODUCT — код продукта строчными без пробелов (dbo); WAVE_FUNNEL — КЛЮЧ воронки (f-код f11, иначе вся строка строчными), а НЕ метка запуска (f11 — ВК NR ДБО будет отвергнут); WAVE_SEGMENT — имя сегмента. Значения проставляет запуск рассылки, у контакта без рассылки их нет. Отдельные цепочки НЕ взаимоисключающи: прогресс изолирован по sequenceId, поэтому безусловная ловящая цепочка рядом с eq A и eq B не подстрахует, а удвоит отправку. Набор обязан быть строгим разбиением: eq A, eq B и fallback neq A AND neq B (у контакта без переменной eq/in ложно, neq истинно)."
|
|
3521
3522
|
},
|
|
3522
3523
|
"steps": {
|
|
3523
3524
|
"type": "array",
|
|
@@ -3767,7 +3768,8 @@
|
|
|
3767
3768
|
"type": "object",
|
|
3768
3769
|
"properties": {
|
|
3769
3770
|
"is_active": {
|
|
3770
|
-
"type": "boolean"
|
|
3771
|
+
"type": "boolean",
|
|
3772
|
+
"description": "У Instagram это НАМЕРЕНИЕ держать канал включённым, а не факт работы. Эффективная активность = намерение И подтверждённая подписка на вебхуки, поэтому besales_platform_context_get может вернуть is_active=false сразу после успешного сохранения is_active=true — это не отказ операции, а неподтверждённая подписка (лечится повтором подписки в настройках канала). У остальных 12 каналов значение совпадает с фактом работы."
|
|
3771
3773
|
},
|
|
3772
3774
|
"is_ai_enabled": {
|
|
3773
3775
|
"type": "boolean"
|
|
@@ -3956,7 +3958,8 @@
|
|
|
3956
3958
|
"type": "string"
|
|
3957
3959
|
},
|
|
3958
3960
|
"is_active": {
|
|
3959
|
-
"type": "boolean"
|
|
3961
|
+
"type": "boolean",
|
|
3962
|
+
"description": "У Instagram это НАМЕРЕНИЕ держать канал включённым, а не факт работы. Эффективная активность = намерение И подтверждённая подписка на вебхуки, поэтому besales_platform_context_get может вернуть is_active=false сразу после успешного сохранения is_active=true — это не отказ операции, а неподтверждённая подписка (лечится повтором подписки в настройках канала). У остальных 12 каналов значение совпадает с фактом работы."
|
|
3960
3963
|
}
|
|
3961
3964
|
}
|
|
3962
3965
|
},
|
|
@@ -4326,6 +4329,13 @@
|
|
|
4326
4329
|
"null"
|
|
4327
4330
|
],
|
|
4328
4331
|
"description": "OPTIONAL GetCourse stage id inside the funnel above. Must be set together with create_missing_deal_funnel_id."
|
|
4332
|
+
},
|
|
4333
|
+
"revenue_offer_ids": {
|
|
4334
|
+
"type": "array",
|
|
4335
|
+
"items": {
|
|
4336
|
+
"type": "integer"
|
|
4337
|
+
},
|
|
4338
|
+
"description": "GetCourse offer ids whose paid orders are credited to us regardless of who created the order — the agent via GETCOURSE_CREATE_DEAL or a manager by hand in the GetCourse admin. Empty array turns the rule off. The set applies to the whole school (every platform sharing the GetCourse domain), not to a single platform. Changes money attribution retroactively — dangerous, requires explicit_confirmation."
|
|
4329
4339
|
}
|
|
4330
4340
|
}
|
|
4331
4341
|
},
|
|
@@ -6367,7 +6377,8 @@
|
|
|
6367
6377
|
"description": "Required when scope=CHANNEL"
|
|
6368
6378
|
},
|
|
6369
6379
|
"explicit_confirmation": {
|
|
6370
|
-
"const": true
|
|
6380
|
+
"const": true,
|
|
6381
|
+
"type": "boolean"
|
|
6371
6382
|
}
|
|
6372
6383
|
}
|
|
6373
6384
|
}
|
|
@@ -6462,7 +6473,8 @@
|
|
|
6462
6473
|
"description": "Required для GetCourse (manual funnel_id); ignored для AmoCRM/Bitrix24"
|
|
6463
6474
|
},
|
|
6464
6475
|
"acknowledge_external_side_effect": {
|
|
6465
|
-
"const": true
|
|
6476
|
+
"const": true,
|
|
6477
|
+
"type": "boolean"
|
|
6466
6478
|
}
|
|
6467
6479
|
}
|
|
6468
6480
|
}
|
|
@@ -6506,7 +6518,8 @@
|
|
|
6506
6518
|
"type": "boolean"
|
|
6507
6519
|
},
|
|
6508
6520
|
"acknowledge_external_side_effect": {
|
|
6509
|
-
"const": true
|
|
6521
|
+
"const": true,
|
|
6522
|
+
"type": "boolean"
|
|
6510
6523
|
}
|
|
6511
6524
|
}
|
|
6512
6525
|
}
|
|
@@ -6536,10 +6549,12 @@
|
|
|
6536
6549
|
"type": "integer"
|
|
6537
6550
|
},
|
|
6538
6551
|
"explicit_confirmation": {
|
|
6539
|
-
"const": true
|
|
6552
|
+
"const": true,
|
|
6553
|
+
"type": "boolean"
|
|
6540
6554
|
},
|
|
6541
6555
|
"acknowledge_external_side_effect": {
|
|
6542
|
-
"const": true
|
|
6556
|
+
"const": true,
|
|
6557
|
+
"type": "boolean"
|
|
6543
6558
|
}
|
|
6544
6559
|
}
|
|
6545
6560
|
}
|
|
@@ -6629,7 +6644,8 @@
|
|
|
6629
6644
|
"description": "Required для GetCourse (manual funnel_stage_id)"
|
|
6630
6645
|
},
|
|
6631
6646
|
"acknowledge_external_side_effect": {
|
|
6632
|
-
"const": true
|
|
6647
|
+
"const": true,
|
|
6648
|
+
"type": "boolean"
|
|
6633
6649
|
}
|
|
6634
6650
|
}
|
|
6635
6651
|
}
|
|
@@ -6696,7 +6712,8 @@
|
|
|
6696
6712
|
]
|
|
6697
6713
|
},
|
|
6698
6714
|
"acknowledge_external_side_effect": {
|
|
6699
|
-
"const": true
|
|
6715
|
+
"const": true,
|
|
6716
|
+
"type": "boolean"
|
|
6700
6717
|
}
|
|
6701
6718
|
}
|
|
6702
6719
|
}
|
|
@@ -6730,10 +6747,12 @@
|
|
|
6730
6747
|
"type": "integer"
|
|
6731
6748
|
},
|
|
6732
6749
|
"explicit_confirmation": {
|
|
6733
|
-
"const": true
|
|
6750
|
+
"const": true,
|
|
6751
|
+
"type": "boolean"
|
|
6734
6752
|
},
|
|
6735
6753
|
"acknowledge_external_side_effect": {
|
|
6736
|
-
"const": true
|
|
6754
|
+
"const": true,
|
|
6755
|
+
"type": "boolean"
|
|
6737
6756
|
}
|
|
6738
6757
|
}
|
|
6739
6758
|
}
|
|
@@ -6797,7 +6816,8 @@
|
|
|
6797
6816
|
"format": "uuid"
|
|
6798
6817
|
},
|
|
6799
6818
|
"explicit_confirmation": {
|
|
6800
|
-
"const": true
|
|
6819
|
+
"const": true,
|
|
6820
|
+
"type": "boolean"
|
|
6801
6821
|
}
|
|
6802
6822
|
}
|
|
6803
6823
|
}
|
|
@@ -6907,10 +6927,12 @@
|
|
|
6907
6927
|
"format": "uuid"
|
|
6908
6928
|
},
|
|
6909
6929
|
"explicit_confirmation": {
|
|
6910
|
-
"const": true
|
|
6930
|
+
"const": true,
|
|
6931
|
+
"type": "boolean"
|
|
6911
6932
|
},
|
|
6912
6933
|
"acknowledge_destructive_overwrite": {
|
|
6913
|
-
"const": true
|
|
6934
|
+
"const": true,
|
|
6935
|
+
"type": "boolean"
|
|
6914
6936
|
},
|
|
6915
6937
|
"idempotency_key": {
|
|
6916
6938
|
"type": "string",
|
|
@@ -7306,7 +7328,8 @@
|
|
|
7306
7328
|
"format": "uuid"
|
|
7307
7329
|
},
|
|
7308
7330
|
"replace_all_existing": {
|
|
7309
|
-
"const": true
|
|
7331
|
+
"const": true,
|
|
7332
|
+
"type": "boolean"
|
|
7310
7333
|
},
|
|
7311
7334
|
"enabled": {
|
|
7312
7335
|
"type": "boolean"
|
|
@@ -8190,6 +8213,30 @@
|
|
|
8190
8213
|
],
|
|
8191
8214
|
"description": "Один или несколько ID именованных вариантов рассылки."
|
|
8192
8215
|
},
|
|
8216
|
+
"mechanism": {
|
|
8217
|
+
"oneOf": [
|
|
8218
|
+
{
|
|
8219
|
+
"type": "string",
|
|
8220
|
+
"enum": [
|
|
8221
|
+
"wave",
|
|
8222
|
+
"cold_welcome"
|
|
8223
|
+
]
|
|
8224
|
+
},
|
|
8225
|
+
{
|
|
8226
|
+
"type": "array",
|
|
8227
|
+
"minItems": 1,
|
|
8228
|
+
"maxItems": 2,
|
|
8229
|
+
"items": {
|
|
8230
|
+
"type": "string",
|
|
8231
|
+
"enum": [
|
|
8232
|
+
"wave",
|
|
8233
|
+
"cold_welcome"
|
|
8234
|
+
]
|
|
8235
|
+
}
|
|
8236
|
+
}
|
|
8237
|
+
],
|
|
8238
|
+
"description": "Механизм запуска: wave — доставляет процесс школы (мы штампуем поля сделки), cold_welcome — пишем первыми сами. Оба значения = фильтра нет."
|
|
8239
|
+
},
|
|
8193
8240
|
"product": {
|
|
8194
8241
|
"oneOf": [
|
|
8195
8242
|
{
|
|
@@ -8506,6 +8553,30 @@
|
|
|
8506
8553
|
}
|
|
8507
8554
|
]
|
|
8508
8555
|
},
|
|
8556
|
+
"mechanism": {
|
|
8557
|
+
"oneOf": [
|
|
8558
|
+
{
|
|
8559
|
+
"type": "string",
|
|
8560
|
+
"enum": [
|
|
8561
|
+
"wave",
|
|
8562
|
+
"cold_welcome"
|
|
8563
|
+
]
|
|
8564
|
+
},
|
|
8565
|
+
{
|
|
8566
|
+
"type": "array",
|
|
8567
|
+
"minItems": 1,
|
|
8568
|
+
"maxItems": 2,
|
|
8569
|
+
"items": {
|
|
8570
|
+
"type": "string",
|
|
8571
|
+
"enum": [
|
|
8572
|
+
"wave",
|
|
8573
|
+
"cold_welcome"
|
|
8574
|
+
]
|
|
8575
|
+
}
|
|
8576
|
+
}
|
|
8577
|
+
],
|
|
8578
|
+
"description": "Механизм запуска: wave — доставляет процесс школы (мы штампуем поля сделки), cold_welcome — пишем первыми сами. Оба значения = фильтра нет."
|
|
8579
|
+
},
|
|
8509
8580
|
"product": {
|
|
8510
8581
|
"oneOf": [
|
|
8511
8582
|
{
|
|
@@ -9012,13 +9083,108 @@
|
|
|
9012
9083
|
"description": {
|
|
9013
9084
|
"type": "string",
|
|
9014
9085
|
"maxLength": 4000
|
|
9086
|
+
},
|
|
9087
|
+
"message_text": {
|
|
9088
|
+
"type": [
|
|
9089
|
+
"string",
|
|
9090
|
+
"null"
|
|
9091
|
+
],
|
|
9092
|
+
"maxLength": 4000,
|
|
9093
|
+
"description": "Текст рассылки для механизма «Первое сообщение»: {firstName}, переменные платформы/воркспейса и {{link:slug}} позволены. null = очистить."
|
|
9094
|
+
},
|
|
9095
|
+
"message_text_by_segment": {
|
|
9096
|
+
"type": [
|
|
9097
|
+
"object",
|
|
9098
|
+
"null"
|
|
9099
|
+
],
|
|
9100
|
+
"description": "Тексты по сегментам: ключ — имя сегмента из справочника воркспейса, значение — текст для него. Запуск с меткой такого сегмента отправит его текст вместо message_text. Работает только при аудитории по файлу: когорта по дате сегментом не отбирается. null или {} — убрать посегментные тексты.",
|
|
9101
|
+
"propertyNames": {
|
|
9102
|
+
"type": "string",
|
|
9103
|
+
"minLength": 1,
|
|
9104
|
+
"maxLength": 200
|
|
9105
|
+
},
|
|
9106
|
+
"additionalProperties": {
|
|
9107
|
+
"type": "string",
|
|
9108
|
+
"minLength": 1,
|
|
9109
|
+
"maxLength": 4000
|
|
9110
|
+
},
|
|
9111
|
+
"maxProperties": 50
|
|
9112
|
+
},
|
|
9113
|
+
"default_segment": {
|
|
9114
|
+
"type": [
|
|
9115
|
+
"string",
|
|
9116
|
+
"null"
|
|
9117
|
+
],
|
|
9118
|
+
"maxLength": 200,
|
|
9119
|
+
"description": "Метка аналитики по умолчанию; аудиторию НЕ фильтрует."
|
|
9120
|
+
},
|
|
9121
|
+
"default_product_code": {
|
|
9122
|
+
"type": [
|
|
9123
|
+
"string",
|
|
9124
|
+
"null"
|
|
9125
|
+
],
|
|
9126
|
+
"maxLength": 200,
|
|
9127
|
+
"description": "Метка аналитики по умолчанию."
|
|
9128
|
+
},
|
|
9129
|
+
"default_funnel": {
|
|
9130
|
+
"type": [
|
|
9131
|
+
"string",
|
|
9132
|
+
"null"
|
|
9133
|
+
],
|
|
9134
|
+
"maxLength": 200,
|
|
9135
|
+
"description": "Метка аналитики по умолчанию."
|
|
9136
|
+
},
|
|
9137
|
+
"default_channels": {
|
|
9138
|
+
"type": "array",
|
|
9139
|
+
"items": {
|
|
9140
|
+
"type": "string",
|
|
9141
|
+
"enum": [
|
|
9142
|
+
"Site",
|
|
9143
|
+
"Email",
|
|
9144
|
+
"SMS",
|
|
9145
|
+
"Telegram",
|
|
9146
|
+
"Facebook",
|
|
9147
|
+
"VK",
|
|
9148
|
+
"Chatium",
|
|
9149
|
+
"WhatsApp",
|
|
9150
|
+
"Viber",
|
|
9151
|
+
"MAX"
|
|
9152
|
+
]
|
|
9153
|
+
},
|
|
9154
|
+
"description": "Каналы Шага 2 волны по файлу по умолчанию; подставляются в запуск волны."
|
|
9155
|
+
},
|
|
9156
|
+
"default_deal_fields": {
|
|
9157
|
+
"type": [
|
|
9158
|
+
"object",
|
|
9159
|
+
"null"
|
|
9160
|
+
],
|
|
9161
|
+
"additionalProperties": {
|
|
9162
|
+
"type": [
|
|
9163
|
+
"string",
|
|
9164
|
+
"number",
|
|
9165
|
+
"boolean",
|
|
9166
|
+
"null"
|
|
9167
|
+
]
|
|
9168
|
+
},
|
|
9169
|
+
"description": "Поля сделки Шага 2 по умолчанию: ключ — числовой fieldId GetCourse. null = очистить.",
|
|
9170
|
+
"propertyNames": {
|
|
9171
|
+
"pattern": "^\\d+$"
|
|
9172
|
+
}
|
|
9173
|
+
},
|
|
9174
|
+
"default_platform_id": {
|
|
9175
|
+
"type": [
|
|
9176
|
+
"string",
|
|
9177
|
+
"null"
|
|
9178
|
+
],
|
|
9179
|
+
"format": "uuid",
|
|
9180
|
+
"description": "Платформа запуска по умолчанию; подставляется, если на запуске не передана."
|
|
9015
9181
|
}
|
|
9016
9182
|
}
|
|
9017
9183
|
}
|
|
9018
9184
|
},
|
|
9019
9185
|
{
|
|
9020
9186
|
"name": "besales_broadcast_mailing_variant_update",
|
|
9021
|
-
"description": "Изменить название, описание или архивный статус «Варианта рассылки».",
|
|
9187
|
+
"description": "Изменить название, описание или архивный статус «Варианта рассылки». Теперь вариант несёт и ТЕКСТ рассылки с дефолтами запуска.",
|
|
9022
9188
|
"inputSchema": {
|
|
9023
9189
|
"type": "object",
|
|
9024
9190
|
"required": [
|
|
@@ -9054,6 +9220,101 @@
|
|
|
9054
9220
|
"type": "boolean",
|
|
9055
9221
|
"const": true,
|
|
9056
9222
|
"description": "Обязательно true при archived=true после явного подтверждения пользователя."
|
|
9223
|
+
},
|
|
9224
|
+
"message_text": {
|
|
9225
|
+
"type": [
|
|
9226
|
+
"string",
|
|
9227
|
+
"null"
|
|
9228
|
+
],
|
|
9229
|
+
"maxLength": 4000,
|
|
9230
|
+
"description": "Текст рассылки для механизма «Первое сообщение»: {firstName}, переменные платформы/воркспейса и {{link:slug}} позволены. null = очистить."
|
|
9231
|
+
},
|
|
9232
|
+
"message_text_by_segment": {
|
|
9233
|
+
"type": [
|
|
9234
|
+
"object",
|
|
9235
|
+
"null"
|
|
9236
|
+
],
|
|
9237
|
+
"description": "Тексты по сегментам: ключ — имя сегмента из справочника воркспейса, значение — текст для него. Запуск с меткой такого сегмента отправит его текст вместо message_text. Работает только при аудитории по файлу: когорта по дате сегментом не отбирается. null или {} — убрать посегментные тексты.",
|
|
9238
|
+
"propertyNames": {
|
|
9239
|
+
"type": "string",
|
|
9240
|
+
"minLength": 1,
|
|
9241
|
+
"maxLength": 200
|
|
9242
|
+
},
|
|
9243
|
+
"additionalProperties": {
|
|
9244
|
+
"type": "string",
|
|
9245
|
+
"minLength": 1,
|
|
9246
|
+
"maxLength": 4000
|
|
9247
|
+
},
|
|
9248
|
+
"maxProperties": 50
|
|
9249
|
+
},
|
|
9250
|
+
"default_segment": {
|
|
9251
|
+
"type": [
|
|
9252
|
+
"string",
|
|
9253
|
+
"null"
|
|
9254
|
+
],
|
|
9255
|
+
"maxLength": 200,
|
|
9256
|
+
"description": "Метка аналитики по умолчанию; аудиторию НЕ фильтрует."
|
|
9257
|
+
},
|
|
9258
|
+
"default_product_code": {
|
|
9259
|
+
"type": [
|
|
9260
|
+
"string",
|
|
9261
|
+
"null"
|
|
9262
|
+
],
|
|
9263
|
+
"maxLength": 200,
|
|
9264
|
+
"description": "Метка аналитики по умолчанию."
|
|
9265
|
+
},
|
|
9266
|
+
"default_funnel": {
|
|
9267
|
+
"type": [
|
|
9268
|
+
"string",
|
|
9269
|
+
"null"
|
|
9270
|
+
],
|
|
9271
|
+
"maxLength": 200,
|
|
9272
|
+
"description": "Метка аналитики по умолчанию."
|
|
9273
|
+
},
|
|
9274
|
+
"default_channels": {
|
|
9275
|
+
"type": "array",
|
|
9276
|
+
"items": {
|
|
9277
|
+
"type": "string",
|
|
9278
|
+
"enum": [
|
|
9279
|
+
"Site",
|
|
9280
|
+
"Email",
|
|
9281
|
+
"SMS",
|
|
9282
|
+
"Telegram",
|
|
9283
|
+
"Facebook",
|
|
9284
|
+
"VK",
|
|
9285
|
+
"Chatium",
|
|
9286
|
+
"WhatsApp",
|
|
9287
|
+
"Viber",
|
|
9288
|
+
"MAX"
|
|
9289
|
+
]
|
|
9290
|
+
},
|
|
9291
|
+
"description": "Каналы Шага 2 волны по файлу по умолчанию; подставляются в запуск волны."
|
|
9292
|
+
},
|
|
9293
|
+
"default_deal_fields": {
|
|
9294
|
+
"type": [
|
|
9295
|
+
"object",
|
|
9296
|
+
"null"
|
|
9297
|
+
],
|
|
9298
|
+
"additionalProperties": {
|
|
9299
|
+
"type": [
|
|
9300
|
+
"string",
|
|
9301
|
+
"number",
|
|
9302
|
+
"boolean",
|
|
9303
|
+
"null"
|
|
9304
|
+
]
|
|
9305
|
+
},
|
|
9306
|
+
"description": "Поля сделки Шага 2 по умолчанию: ключ — числовой fieldId GetCourse. null = очистить.",
|
|
9307
|
+
"propertyNames": {
|
|
9308
|
+
"pattern": "^\\d+$"
|
|
9309
|
+
}
|
|
9310
|
+
},
|
|
9311
|
+
"default_platform_id": {
|
|
9312
|
+
"type": [
|
|
9313
|
+
"string",
|
|
9314
|
+
"null"
|
|
9315
|
+
],
|
|
9316
|
+
"format": "uuid",
|
|
9317
|
+
"description": "Платформа запуска по умолчанию; подставляется, если на запуске не передана."
|
|
9057
9318
|
}
|
|
9058
9319
|
},
|
|
9059
9320
|
"if": {
|
|
@@ -9101,6 +9362,366 @@
|
|
|
9101
9362
|
}
|
|
9102
9363
|
}
|
|
9103
9364
|
},
|
|
9365
|
+
{
|
|
9366
|
+
"name": "besales_getcourse_cold_welcome_preview",
|
|
9367
|
+
"description": "Охват рассылки «Первое сообщение» БЕЗ отправки: totalContacts (ещё могут получить), alreadyWelcomed (уже получали — первое сообщение одноразово на контакт), foundContacts.",
|
|
9368
|
+
"inputSchema": {
|
|
9369
|
+
"type": "object",
|
|
9370
|
+
"required": [
|
|
9371
|
+
"platform_id"
|
|
9372
|
+
],
|
|
9373
|
+
"additionalProperties": false,
|
|
9374
|
+
"properties": {
|
|
9375
|
+
"workspace_id": {
|
|
9376
|
+
"type": "string",
|
|
9377
|
+
"format": "uuid",
|
|
9378
|
+
"description": "Optional override. Normally omit — defaults to the workspace bound to this session."
|
|
9379
|
+
},
|
|
9380
|
+
"platform_id": {
|
|
9381
|
+
"type": "string",
|
|
9382
|
+
"format": "uuid"
|
|
9383
|
+
},
|
|
9384
|
+
"created_after": {
|
|
9385
|
+
"type": "string",
|
|
9386
|
+
"format": "date-time",
|
|
9387
|
+
"description": "Аудитория «по дате»: нижняя граница по дате создания контакта. Ровно одна аудитория — created_after ЛИБО contacts."
|
|
9388
|
+
},
|
|
9389
|
+
"contacts": {
|
|
9390
|
+
"type": "array",
|
|
9391
|
+
"minItems": 1,
|
|
9392
|
+
"maxItems": 5000,
|
|
9393
|
+
"description": "Аудитория «по файлу»: контакты предсписка. Ровно одна аудитория на запуск — created_after ЛИБО contacts.",
|
|
9394
|
+
"items": {
|
|
9395
|
+
"type": "object",
|
|
9396
|
+
"required": [
|
|
9397
|
+
"contact_id"
|
|
9398
|
+
],
|
|
9399
|
+
"additionalProperties": false,
|
|
9400
|
+
"properties": {
|
|
9401
|
+
"contact_id": {
|
|
9402
|
+
"type": "string",
|
|
9403
|
+
"pattern": "^\\d+$",
|
|
9404
|
+
"description": "getcourseUserId контакта (число в строковом виде)"
|
|
9405
|
+
},
|
|
9406
|
+
"deal_id": {
|
|
9407
|
+
"type": "string",
|
|
9408
|
+
"pattern": "^\\d+$",
|
|
9409
|
+
"description": "Пин сделки для штампа полей (число в строковом виде)"
|
|
9410
|
+
}
|
|
9411
|
+
}
|
|
9412
|
+
}
|
|
9413
|
+
}
|
|
9414
|
+
}
|
|
9415
|
+
}
|
|
9416
|
+
},
|
|
9417
|
+
{
|
|
9418
|
+
"name": "besales_getcourse_cold_welcome_start",
|
|
9419
|
+
"description": "Запустить рассылку «Первое сообщение» (мы пишем первыми контактам без диалога). НЕОБРАТИМО: у GetCourse нет идемпотентности, отправку нельзя отозвать. Всегда сначала preview и подтверждение пользователя. Аудитория: по дате (created_after) или по файлу (contacts). Поля сделки штампуются после отправки. Если у рассылки заданы тексты по сегментам, значение segment ВЫБИРАЕТ текст: назови пользователю выбранный текст ДО подтверждения и не запускай посегментный текст по created_after.",
|
|
9420
|
+
"inputSchema": {
|
|
9421
|
+
"type": "object",
|
|
9422
|
+
"required": [
|
|
9423
|
+
"explicit_confirmation"
|
|
9424
|
+
],
|
|
9425
|
+
"additionalProperties": false,
|
|
9426
|
+
"properties": {
|
|
9427
|
+
"workspace_id": {
|
|
9428
|
+
"type": "string",
|
|
9429
|
+
"format": "uuid",
|
|
9430
|
+
"description": "Optional override. Normally omit — defaults to the workspace bound to this session."
|
|
9431
|
+
},
|
|
9432
|
+
"platform_id": {
|
|
9433
|
+
"type": "string",
|
|
9434
|
+
"format": "uuid",
|
|
9435
|
+
"description": "Можно опустить, если у рассылки задана «Платформа по умолчанию»."
|
|
9436
|
+
},
|
|
9437
|
+
"created_after": {
|
|
9438
|
+
"type": "string",
|
|
9439
|
+
"format": "date-time"
|
|
9440
|
+
},
|
|
9441
|
+
"message": {
|
|
9442
|
+
"type": "string",
|
|
9443
|
+
"minLength": 1,
|
|
9444
|
+
"maxLength": 4000,
|
|
9445
|
+
"description": "Разовый текст. Ровно один источник: message ЛИБО mailing_variant_id."
|
|
9446
|
+
},
|
|
9447
|
+
"mailing_variant_id": {
|
|
9448
|
+
"type": "string",
|
|
9449
|
+
"format": "uuid",
|
|
9450
|
+
"description": "Сохранённая рассылка: текст берётся из неё, метки — из её дефолтов."
|
|
9451
|
+
},
|
|
9452
|
+
"segment": {
|
|
9453
|
+
"type": "string",
|
|
9454
|
+
"maxLength": 200,
|
|
9455
|
+
"description": "Сегмент запуска. ⚠️ Аудиторию НЕ отбирает: когорту задают платформа и граница даты. ⚠️⚠️ Если у рассылки есть текст ИМЕННО для этого сегмента (message_text_by_segment), он выбирает текст запуска — и тогда аудитория обязана быть файловой (contacts): с created_after такой запуск отвергается 400, потому что текст ушёл бы всей базе после границы."
|
|
9456
|
+
},
|
|
9457
|
+
"product_code": {
|
|
9458
|
+
"type": "string",
|
|
9459
|
+
"maxLength": 200
|
|
9460
|
+
},
|
|
9461
|
+
"funnel": {
|
|
9462
|
+
"type": "string",
|
|
9463
|
+
"maxLength": 200
|
|
9464
|
+
},
|
|
9465
|
+
"explicit_confirmation": {
|
|
9466
|
+
"type": "boolean",
|
|
9467
|
+
"const": true,
|
|
9468
|
+
"description": "Подтверждение пользователя, полученное ПОСЛЕ показа охвата из preview."
|
|
9469
|
+
},
|
|
9470
|
+
"contacts": {
|
|
9471
|
+
"type": "array",
|
|
9472
|
+
"minItems": 1,
|
|
9473
|
+
"maxItems": 5000,
|
|
9474
|
+
"description": "Аудитория «по файлу»: контакты предсписка. Ровно одна аудитория на запуск — created_after ЛИБО contacts.",
|
|
9475
|
+
"items": {
|
|
9476
|
+
"type": "object",
|
|
9477
|
+
"required": [
|
|
9478
|
+
"contact_id"
|
|
9479
|
+
],
|
|
9480
|
+
"additionalProperties": false,
|
|
9481
|
+
"properties": {
|
|
9482
|
+
"contact_id": {
|
|
9483
|
+
"type": "string",
|
|
9484
|
+
"pattern": "^\\d+$",
|
|
9485
|
+
"description": "getcourseUserId контакта (число в строковом виде)"
|
|
9486
|
+
},
|
|
9487
|
+
"deal_id": {
|
|
9488
|
+
"type": "string",
|
|
9489
|
+
"pattern": "^\\d+$",
|
|
9490
|
+
"description": "Пин сделки для штампа полей (число в строковом виде)"
|
|
9491
|
+
}
|
|
9492
|
+
}
|
|
9493
|
+
}
|
|
9494
|
+
},
|
|
9495
|
+
"deal_fields": {
|
|
9496
|
+
"type": "object",
|
|
9497
|
+
"propertyNames": {
|
|
9498
|
+
"pattern": "^\\d+$"
|
|
9499
|
+
},
|
|
9500
|
+
"additionalProperties": {
|
|
9501
|
+
"type": [
|
|
9502
|
+
"string",
|
|
9503
|
+
"number",
|
|
9504
|
+
"boolean",
|
|
9505
|
+
"null"
|
|
9506
|
+
]
|
|
9507
|
+
},
|
|
9508
|
+
"description": "Поля сделки, проставляемые ПОСЛЕ успешной отправки (ключ — числовой fieldId). Ключ не передан — берутся дефолты рассылки; передан ПУСТОЙ объект — явное «на этом запуске без полей»."
|
|
9509
|
+
}
|
|
9510
|
+
}
|
|
9511
|
+
}
|
|
9512
|
+
},
|
|
9513
|
+
{
|
|
9514
|
+
"name": "besales_getcourse_cold_welcome_batch_start",
|
|
9515
|
+
"description": "Запустить ПАКЕТ сегментов «Первого сообщения»: несколько сегментов одним вызовом, у каждого свой список контактов, свои метки и свои поля сделки. НЕОБРАТИМО. Сегменты идут ПО ОЧЕРЕДИ — задачи импорта не могут выполняться параллельно. Весь пакет проверяется ДО первой отправки: сегмент без текста отменяет пакет целиком. Если у рассылки заданы посегментные тексты, каждый сегмент отправит СВОЙ текст.",
|
|
9516
|
+
"inputSchema": {
|
|
9517
|
+
"type": "object",
|
|
9518
|
+
"required": [
|
|
9519
|
+
"segments",
|
|
9520
|
+
"explicit_confirmation"
|
|
9521
|
+
],
|
|
9522
|
+
"additionalProperties": false,
|
|
9523
|
+
"properties": {
|
|
9524
|
+
"workspace_id": {
|
|
9525
|
+
"type": "string",
|
|
9526
|
+
"format": "uuid",
|
|
9527
|
+
"description": "Optional override. Normally omit — defaults to the workspace bound to this session."
|
|
9528
|
+
},
|
|
9529
|
+
"platform_id": {
|
|
9530
|
+
"type": "string",
|
|
9531
|
+
"format": "uuid"
|
|
9532
|
+
},
|
|
9533
|
+
"message": {
|
|
9534
|
+
"type": "string",
|
|
9535
|
+
"minLength": 1,
|
|
9536
|
+
"maxLength": 4000
|
|
9537
|
+
},
|
|
9538
|
+
"mailing_variant_id": {
|
|
9539
|
+
"type": "string",
|
|
9540
|
+
"format": "uuid"
|
|
9541
|
+
},
|
|
9542
|
+
"segments": {
|
|
9543
|
+
"type": "array",
|
|
9544
|
+
"minItems": 1,
|
|
9545
|
+
"maxItems": 10,
|
|
9546
|
+
"items": {
|
|
9547
|
+
"type": "object",
|
|
9548
|
+
"additionalProperties": false,
|
|
9549
|
+
"required": [
|
|
9550
|
+
"contacts"
|
|
9551
|
+
],
|
|
9552
|
+
"properties": {
|
|
9553
|
+
"segment": {
|
|
9554
|
+
"type": "string",
|
|
9555
|
+
"maxLength": 200,
|
|
9556
|
+
"description": "Сегмент блока. Он же выбирает текст рассылки, если у неё есть посегментные тексты."
|
|
9557
|
+
},
|
|
9558
|
+
"product_code": {
|
|
9559
|
+
"type": "string",
|
|
9560
|
+
"maxLength": 200
|
|
9561
|
+
},
|
|
9562
|
+
"funnel": {
|
|
9563
|
+
"type": "string",
|
|
9564
|
+
"maxLength": 200
|
|
9565
|
+
},
|
|
9566
|
+
"deal_fields": {
|
|
9567
|
+
"type": "object",
|
|
9568
|
+
"propertyNames": {
|
|
9569
|
+
"type": "string",
|
|
9570
|
+
"pattern": "^\\d+$"
|
|
9571
|
+
}
|
|
9572
|
+
},
|
|
9573
|
+
"contacts": {
|
|
9574
|
+
"type": "array",
|
|
9575
|
+
"minItems": 1,
|
|
9576
|
+
"maxItems": 5000,
|
|
9577
|
+
"items": {
|
|
9578
|
+
"type": "object",
|
|
9579
|
+
"additionalProperties": false,
|
|
9580
|
+
"required": [
|
|
9581
|
+
"contact_id"
|
|
9582
|
+
],
|
|
9583
|
+
"properties": {
|
|
9584
|
+
"contact_id": {
|
|
9585
|
+
"type": "string",
|
|
9586
|
+
"pattern": "^\\d+$"
|
|
9587
|
+
},
|
|
9588
|
+
"deal_id": {
|
|
9589
|
+
"type": "string",
|
|
9590
|
+
"pattern": "^\\d+$"
|
|
9591
|
+
}
|
|
9592
|
+
}
|
|
9593
|
+
}
|
|
9594
|
+
}
|
|
9595
|
+
}
|
|
9596
|
+
}
|
|
9597
|
+
},
|
|
9598
|
+
"explicit_confirmation": {
|
|
9599
|
+
"type": "boolean",
|
|
9600
|
+
"const": true,
|
|
9601
|
+
"description": "Подтверждение пользователя. Обязательно: отправку нельзя отозвать."
|
|
9602
|
+
}
|
|
9603
|
+
}
|
|
9604
|
+
}
|
|
9605
|
+
},
|
|
9606
|
+
{
|
|
9607
|
+
"name": "besales_getcourse_cold_welcome_batch_status",
|
|
9608
|
+
"description": "Состояние пакета: агрегат state и разбивка segments[] со своим статусом, importJobId и причиной отказа у каждого. stalled=true — драйвер оборвался, остаток пакета надо запустить заново.",
|
|
9609
|
+
"inputSchema": {
|
|
9610
|
+
"type": "object",
|
|
9611
|
+
"required": [
|
|
9612
|
+
"batch_id"
|
|
9613
|
+
],
|
|
9614
|
+
"additionalProperties": false,
|
|
9615
|
+
"properties": {
|
|
9616
|
+
"workspace_id": {
|
|
9617
|
+
"type": "string",
|
|
9618
|
+
"format": "uuid",
|
|
9619
|
+
"description": "Optional override. Normally omit — defaults to the workspace bound to this session."
|
|
9620
|
+
},
|
|
9621
|
+
"batch_id": {
|
|
9622
|
+
"type": "string",
|
|
9623
|
+
"format": "uuid"
|
|
9624
|
+
}
|
|
9625
|
+
}
|
|
9626
|
+
}
|
|
9627
|
+
},
|
|
9628
|
+
{
|
|
9629
|
+
"name": "besales_getcourse_cold_welcome_batch_resume",
|
|
9630
|
+
"description": "Возобновить остаток пакета «Первого сообщения» после обрыва драйвера (stalled). Источник текста хранится в плане — пересобирать списки контактов не нужно. Повтора отправки не будет: приветствие одноразово НА КОНТАКТ.",
|
|
9631
|
+
"inputSchema": {
|
|
9632
|
+
"type": "object",
|
|
9633
|
+
"required": [
|
|
9634
|
+
"batch_id"
|
|
9635
|
+
],
|
|
9636
|
+
"additionalProperties": false,
|
|
9637
|
+
"properties": {
|
|
9638
|
+
"workspace_id": {
|
|
9639
|
+
"type": "string",
|
|
9640
|
+
"format": "uuid",
|
|
9641
|
+
"description": "Optional override. Normally omit — defaults to the workspace bound to this session."
|
|
9642
|
+
},
|
|
9643
|
+
"batch_id": {
|
|
9644
|
+
"type": "string",
|
|
9645
|
+
"format": "uuid"
|
|
9646
|
+
}
|
|
9647
|
+
}
|
|
9648
|
+
}
|
|
9649
|
+
},
|
|
9650
|
+
{
|
|
9651
|
+
"name": "besales_getcourse_cold_welcome_batch_cancel",
|
|
9652
|
+
"description": "Отменить ОСТАТОК пакета: не начатые сегменты и идущую задачу. Уже отправленное не отзывается.",
|
|
9653
|
+
"inputSchema": {
|
|
9654
|
+
"type": "object",
|
|
9655
|
+
"required": [
|
|
9656
|
+
"batch_id",
|
|
9657
|
+
"explicit_confirmation"
|
|
9658
|
+
],
|
|
9659
|
+
"additionalProperties": false,
|
|
9660
|
+
"properties": {
|
|
9661
|
+
"workspace_id": {
|
|
9662
|
+
"type": "string",
|
|
9663
|
+
"format": "uuid",
|
|
9664
|
+
"description": "Optional override. Normally omit — defaults to the workspace bound to this session."
|
|
9665
|
+
},
|
|
9666
|
+
"batch_id": {
|
|
9667
|
+
"type": "string",
|
|
9668
|
+
"format": "uuid"
|
|
9669
|
+
},
|
|
9670
|
+
"explicit_confirmation": {
|
|
9671
|
+
"type": "boolean",
|
|
9672
|
+
"const": true,
|
|
9673
|
+
"description": "Подтверждение пользователя. Обязательно: отправку нельзя отозвать."
|
|
9674
|
+
}
|
|
9675
|
+
}
|
|
9676
|
+
}
|
|
9677
|
+
},
|
|
9678
|
+
{
|
|
9679
|
+
"name": "besales_getcourse_cold_welcome_cancel",
|
|
9680
|
+
"description": "Остановить идущую рассылку «Первое сообщение»: действует на остаток когорты (~10 секунд), уже отправленное не отзывается.",
|
|
9681
|
+
"inputSchema": {
|
|
9682
|
+
"type": "object",
|
|
9683
|
+
"required": [
|
|
9684
|
+
"job_id"
|
|
9685
|
+
],
|
|
9686
|
+
"additionalProperties": false,
|
|
9687
|
+
"properties": {
|
|
9688
|
+
"workspace_id": {
|
|
9689
|
+
"type": "string",
|
|
9690
|
+
"format": "uuid",
|
|
9691
|
+
"description": "Optional override. Normally omit — defaults to the workspace bound to this session."
|
|
9692
|
+
},
|
|
9693
|
+
"job_id": {
|
|
9694
|
+
"type": "string",
|
|
9695
|
+
"format": "uuid"
|
|
9696
|
+
}
|
|
9697
|
+
}
|
|
9698
|
+
}
|
|
9699
|
+
},
|
|
9700
|
+
{
|
|
9701
|
+
"name": "besales_broadcast_launches_list",
|
|
9702
|
+
"description": "История запусков рассылок одним списком: наша отправка (cold_welcome, со снимком текста и разбивкой исходов) и волны по файлу (wave).",
|
|
9703
|
+
"inputSchema": {
|
|
9704
|
+
"type": "object",
|
|
9705
|
+
"required": [],
|
|
9706
|
+
"additionalProperties": false,
|
|
9707
|
+
"properties": {
|
|
9708
|
+
"workspace_id": {
|
|
9709
|
+
"type": "string",
|
|
9710
|
+
"format": "uuid",
|
|
9711
|
+
"description": "Optional override. Normally omit — defaults to the workspace bound to this session."
|
|
9712
|
+
},
|
|
9713
|
+
"mailing_variant_id": {
|
|
9714
|
+
"type": "string",
|
|
9715
|
+
"format": "uuid"
|
|
9716
|
+
},
|
|
9717
|
+
"limit": {
|
|
9718
|
+
"type": "integer",
|
|
9719
|
+
"minimum": 1,
|
|
9720
|
+
"maximum": 50
|
|
9721
|
+
}
|
|
9722
|
+
}
|
|
9723
|
+
}
|
|
9724
|
+
},
|
|
9104
9725
|
{
|
|
9105
9726
|
"name": "besales_dialogue_audit_config_get",
|
|
9106
9727
|
"description": "Read-only настройки «Ревизора диалогов» на канале: включён ли плановый разбор, модель, час запуска, инструкции. isConfigured=false — строки конфига ещё нет, значения дефолтные. Запись настроек через MCP не выведена. Scope: read:analytics.",
|
|
@@ -9449,7 +10070,7 @@
|
|
|
9449
10070
|
}
|
|
9450
10071
|
],
|
|
9451
10072
|
"summary": {
|
|
9452
|
-
"total_tools":
|
|
10073
|
+
"total_tools": 185,
|
|
9453
10074
|
"tools_by_category": {
|
|
9454
10075
|
"getcourse_wave": 10,
|
|
9455
10076
|
"files_upload": 3,
|