@besales/mcp 0.43.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/instructions/server-instructions.d.ts +1 -1
- package/dist/instructions/server-instructions.js +5 -2
- package/dist/instructions/server-instructions.js.map +1 -1
- 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 +1098 -54
- 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 +17 -6
- package/dist/tools/definitions/broadcast-analytics.js.map +1 -1
- package/dist/tools/definitions/broadcast-mailing-variants.js +8 -4
- package/dist/tools/definitions/broadcast-mailing-variants.js.map +1 -1
- package/dist/tools/definitions/broadcast-scheduler.d.ts +82 -0
- package/dist/tools/definitions/broadcast-scheduler.js +317 -0
- package/dist/tools/definitions/broadcast-scheduler.js.map +1 -0
- 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-setup.d.ts +6 -0
- package/dist/tools/definitions/follow-up-setup.js +31 -0
- package/dist/tools/definitions/follow-up-setup.js.map +1 -1
- package/dist/tools/definitions/follow-up.d.ts +18 -1
- package/dist/tools/definitions/follow-up.js +80 -5
- package/dist/tools/definitions/follow-up.js.map +1 -1
- package/dist/tools/definitions/getcourse-cold-welcome.d.ts +11 -0
- package/dist/tools/definitions/getcourse-cold-welcome.js +77 -8
- package/dist/tools/definitions/getcourse-cold-welcome.js.map +1 -1
- package/dist/tools/definitions/getcourse-wave.d.ts +3 -3
- package/dist/tools/definitions/getcourse-wave.js +5 -5
- package/dist/tools/definitions/getcourse-wave.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 +38 -3
- package/dist/tools/definitions/platform-setup.js +52 -2
- package/dist/tools/definitions/platform-setup.js.map +1 -1
- package/dist/tools/definitions/shared.d.ts +127 -5
- package/dist/tools/definitions/shared.js +103 -5
- 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 +141 -7
- package/dist/tools/definitions.js +4 -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/registry-mapping-cases-platform.js +29 -0
- package/dist/tools/registry-mapping-cases-platform.js.map +1 -1
- package/dist/tools/trigger-action-config.d.ts +49 -0
- package/dist/tools/trigger-action-config.js +171 -0
- package/dist/tools/trigger-action-config.js.map +1 -0
- package/dist/types/api-contract.gen.d.ts +2285 -221
- package/docs/agent-usage-guide.full.ru.md +1 -0
- package/package.json +1 -1
|
@@ -42,9 +42,21 @@ export declare const reactivationConfigSchema: z.ZodObject<{
|
|
|
42
42
|
}>;
|
|
43
43
|
value: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
|
|
44
44
|
}, z.core.$loose>>>;
|
|
45
|
+
skipIfContactRepliedSincePreviousSlot: z.ZodOptional<z.ZodBoolean>;
|
|
45
46
|
delayHours: z.ZodOptional<z.ZodNumber>;
|
|
46
47
|
delayMinutes: z.ZodOptional<z.ZodNumber>;
|
|
47
|
-
messageConfig: z.ZodOptional<z.ZodObject<{
|
|
48
|
+
messageConfig: z.ZodOptional<z.ZodObject<{
|
|
49
|
+
type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
50
|
+
content: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
51
|
+
templateId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
52
|
+
templateValues: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodUnknown>>>;
|
|
53
|
+
contentMode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
54
|
+
generationContext: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
55
|
+
fallbackContent: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
56
|
+
attachments: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodUnknown>>>;
|
|
57
|
+
buttons: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodUnknown>>>;
|
|
58
|
+
crmNote: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
59
|
+
}, z.core.$loose>>;
|
|
48
60
|
getcourse: z.ZodOptional<z.ZodObject<{
|
|
49
61
|
delivery: z.ZodOptional<z.ZodObject<{
|
|
50
62
|
mode: z.ZodEnum<{
|
|
@@ -67,6 +79,9 @@ export declare const reactivationConfigSchema: z.ZodObject<{
|
|
|
67
79
|
}, z.core.$loose>>;
|
|
68
80
|
}, z.core.$loose>>;
|
|
69
81
|
}, z.core.$loose>>;
|
|
82
|
+
sessionTimeVariable: z.ZodOptional<z.ZodString>;
|
|
83
|
+
sessionDayOffsets: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
84
|
+
sessionDurationMinutes: z.ZodOptional<z.ZodNumber>;
|
|
70
85
|
}, z.core.$loose>;
|
|
71
86
|
/**
|
|
72
87
|
* Применяет типизированную схему к `config` ТОЛЬКО для реактивационных цепочек.
|
|
@@ -99,6 +114,7 @@ export declare const followUpReactionsSchema: z.ZodObject<{
|
|
|
99
114
|
to: z.ZodString;
|
|
100
115
|
sequence_id: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
101
116
|
horizon_minutes: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<30>, z.ZodLiteral<60>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<360>, z.ZodLiteral<720>, z.ZodLiteral<1440>]>>;
|
|
117
|
+
run_window_days: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<3>, z.ZodLiteral<5>, z.ZodLiteral<7>, z.ZodLiteral<14>]>>;
|
|
102
118
|
segment: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
103
119
|
product: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
104
120
|
channel: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -118,6 +134,7 @@ export declare const followUpTools: (import("./shared.js").ToolDefinition<{
|
|
|
118
134
|
to: string;
|
|
119
135
|
sequence_id?: string[] | undefined;
|
|
120
136
|
horizon_minutes?: 30 | 60 | 90 | 180 | 360 | 720 | 1440 | undefined;
|
|
137
|
+
run_window_days?: 3 | 1 | 5 | 7 | 14 | undefined;
|
|
121
138
|
segment?: string[] | undefined;
|
|
122
139
|
product?: string[] | undefined;
|
|
123
140
|
channel?: string[] | undefined;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
2
|
+
import { buildListQuery, defineTool, uuidSchema, withInstructions, } from './shared.js';
|
|
3
3
|
/**
|
|
4
4
|
* Схема конфига реактивационной цепочки.
|
|
5
5
|
*
|
|
@@ -22,6 +22,47 @@ const variableConditionSchema = z
|
|
|
22
22
|
.describe("Строка для eq/neq, непустой массив непустых строк для 'in'"),
|
|
23
23
|
})
|
|
24
24
|
.passthrough();
|
|
25
|
+
/**
|
|
26
|
+
* Сообщение шага. Поля перечислены поимённо не ради валидации, а ради ОБНАРУЖИМОСТИ: раньше
|
|
27
|
+
* здесь стоял безымянный объект, и «как задать в шаге WABA-шаблон вместо текста» неоткуда было
|
|
28
|
+
* узнать — форма не описана ни в схеме тула, ни в OpenAPI.
|
|
29
|
+
*
|
|
30
|
+
* `.passthrough()` обязателен: конфиги несут поля вне этого списка (wabaVariableMapping и др.),
|
|
31
|
+
* а схема живёт на машине оператора и обновляется независимо от бэкенда.
|
|
32
|
+
*/
|
|
33
|
+
const followUpMessageConfigSchema = z
|
|
34
|
+
.object({
|
|
35
|
+
type: z
|
|
36
|
+
.string()
|
|
37
|
+
.nullish()
|
|
38
|
+
.describe("'text' — обычный текст в content; 'template' — ШАБЛОН WABA (Wazzup), тогда обязателен " +
|
|
39
|
+
"templateId; 'media' — вложения. Шаблон уходит и при ЗАКРЫТОМ 24-часовом окне " +
|
|
40
|
+
'переписки, обычный текст — нет (шаг молча ждёт реплики клиента)'),
|
|
41
|
+
content: z.string().nullish().describe('Текст для type=text'),
|
|
42
|
+
templateId: z
|
|
43
|
+
.string()
|
|
44
|
+
.nullish()
|
|
45
|
+
.describe('ID шаблона WABA. Берётся из besales_wazzup_templates_list — это id шаблона канала, ' +
|
|
46
|
+
'а не его имя'),
|
|
47
|
+
templateValues: z
|
|
48
|
+
.array(z.unknown())
|
|
49
|
+
.nullish()
|
|
50
|
+
.describe('Значения подстановок шаблона по порядку ({{1}}, {{2}}, …). Поддерживают переменные ' +
|
|
51
|
+
'контакта — они резолвятся перед отправкой'),
|
|
52
|
+
contentMode: z
|
|
53
|
+
.string()
|
|
54
|
+
.nullish()
|
|
55
|
+
.describe("'static' (по умолчанию) либо 'dynamic' — текст генерирует LLM"),
|
|
56
|
+
generationContext: z.string().nullish().describe('Инструкция LLM при contentMode=dynamic'),
|
|
57
|
+
fallbackContent: z.string().nullish().describe('Запасной текст, если генерация не удалась'),
|
|
58
|
+
attachments: z
|
|
59
|
+
.array(z.unknown())
|
|
60
|
+
.nullish()
|
|
61
|
+
.describe('Вложения: [{ storedFileId, caption? }]'),
|
|
62
|
+
buttons: z.array(z.unknown()).nullish(),
|
|
63
|
+
crmNote: z.string().nullish(),
|
|
64
|
+
})
|
|
65
|
+
.passthrough();
|
|
25
66
|
const reactivationStepSchema = z
|
|
26
67
|
.object({
|
|
27
68
|
stepType: z.enum(['message', 'webhook']).optional(),
|
|
@@ -60,9 +101,10 @@ const reactivationStepSchema = z
|
|
|
60
101
|
.max(3)
|
|
61
102
|
.optional()
|
|
62
103
|
.describe('Условия на переменные контакта; не прошли — шаг пропускается'),
|
|
104
|
+
skipIfContactRepliedSincePreviousSlot: z.boolean().optional().describe("Не отправлять шаг, если клиент писал ПОСЛЕ предыдущего слота цепочки. Даёт правило «ответил — ближайшее касание пропускаем, через одно продолжаем»: ответ в 13:05 гасит касание в 16:00, а к 17:00 предыдущим слотом становится 16:00, ответ старше него — и цепочка идёт дальше. Прогресс при пропуске двигается, контакт не зависает. Только для календарного шага (scheduleMode=clock + anchorMode=variable): на остальных рантайм и так проверяет свежесть входящего, и флаг там отвергается."),
|
|
63
105
|
delayHours: z.number().optional(),
|
|
64
106
|
delayMinutes: z.number().optional(),
|
|
65
|
-
messageConfig:
|
|
107
|
+
messageConfig: followUpMessageConfigSchema.optional(),
|
|
66
108
|
getcourse: z
|
|
67
109
|
.object({
|
|
68
110
|
delivery: z
|
|
@@ -101,6 +143,23 @@ const reactivationStepSchema = z
|
|
|
101
143
|
// проверку, пользователь подтверждает запись, и только сервер отвечает 400 — самый дорогой
|
|
102
144
|
// момент, чтобы узнать про опечатку.
|
|
103
145
|
.superRefine((step, ctx) => {
|
|
146
|
+
const message = step.messageConfig;
|
|
147
|
+
const isDynamic = message?.contentMode === 'dynamic';
|
|
148
|
+
const hasAttachments = !!message?.attachments?.length;
|
|
149
|
+
if (message?.type === 'template' && !message.templateId) {
|
|
150
|
+
ctx.addIssue({
|
|
151
|
+
code: z.ZodIssueCode.custom,
|
|
152
|
+
path: ['messageConfig', 'templateId'],
|
|
153
|
+
message: 'Для type=template обязателен templateId (id шаблона из besales_wazzup_templates_list)',
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
if (message?.type === 'text' && !message.content && !isDynamic && !hasAttachments) {
|
|
157
|
+
ctx.addIssue({
|
|
158
|
+
code: z.ZodIssueCode.custom,
|
|
159
|
+
path: ['messageConfig', 'content'],
|
|
160
|
+
message: 'Для type=text обязателен content — кроме шага из одних вложений и contentMode=dynamic',
|
|
161
|
+
});
|
|
162
|
+
}
|
|
104
163
|
const delivery = step.getcourse?.delivery;
|
|
105
164
|
if (!delivery)
|
|
106
165
|
return;
|
|
@@ -167,6 +226,9 @@ export const reactivationConfigSchema = z
|
|
|
167
226
|
'отправку. Набор цепочек обязан быть строгим разбиением: eq A, eq B и fallback ' +
|
|
168
227
|
'neq A AND neq B (у контакта без переменной eq/in → false, neq → true)'),
|
|
169
228
|
steps: z.array(reactivationStepSchema).min(1),
|
|
229
|
+
sessionTimeVariable: z.string().min(1).optional().describe("ИМЯ переменной контакта с ЧАСОМ события (ЧЧ:ММ), парное к anchorVariable шага, который задаёт ДАТУ. Нужно потому, что поле-якорь во внешней CRM хранит только дату, а разбор нормализует её в служебный ПОЛДЕНЬ: без этого поля агент в своём промпте видит «Эфир: 21.08.2026 12:00» при эфире в 19:00. Задаётся НА ЦЕПОЧКУ (час слота одинаков для всех касаний и всех дней — dayOffset сдвигает дату, не час). Хранится ИМЯ, а не сам час: цепочка отбирает контактов условием по этой же переменной, и вторая копия значения разошлась бы с отбором молча. На расписание НЕ влияет — его задают atTime шагов; поле читает только промпт агента. Значение у контакта вне ЧЧ:ММ игнорируется: печатается одна дата, выдуманный час не подставляется."),
|
|
230
|
+
sessionDayOffsets: z.array(z.number().int().min(0).max(30)).min(1).optional().describe("На каких dayOffset цепочки проходят САМИ эфиры ([0,1,2] — три дня подряд от якоря). Вывести из шагов нельзя: касания стоят и на днях без эфира (у вебинарной цепочки шаги занимают дни 0–5, а эфиров три — дни 4 и 5 это продажа), поэтому дни объявляются явно, как явно объявлено время в sessionTimeVariable. На расписание НЕ влияет — его задают atTime/dayOffset шагов; поле читает только промпт агента. Без объявления блок печатает ОДИН эфир по якорю: якорь несёт дату лишь ПЕРВОГО эфира, и на второй день агент видел «был вчера», не зная, что сегодня вечером эфир есть. Порядок задаёт нумерацию («эфир 2 из 3») и нормализуется по возрастанию."),
|
|
231
|
+
sessionDurationMinutes: z.number().int().positive().max(1440).optional().describe("Сколько минут длится эфир. Объявляется, ТОЛЬКО если длительность действительно известна: с ней блок промпта утверждает «идёт сейчас» и перестаёт это утверждать по её истечении, без неё — только «уже начался», то есть факт, который нельзя опровергнуть временем. Дефолта нет намеренно: подставленная длительность это утверждение о мире, сделанное за клиента, а такие утверждения агент пересказывает человеку. Читается только при объявленном sessionDayOffsets."),
|
|
170
232
|
})
|
|
171
233
|
.passthrough();
|
|
172
234
|
/**
|
|
@@ -235,7 +297,13 @@ export const followUpReactionsSchema = z.object({
|
|
|
235
297
|
z.literal(REACTION_HORIZONS[6]),
|
|
236
298
|
])
|
|
237
299
|
.optional()
|
|
238
|
-
.describe('Горизонт сравнительной
|
|
300
|
+
.describe('Горизонт сравнительной метрики (на ШАГЕ). По умолчанию 90'),
|
|
301
|
+
run_window_days: z
|
|
302
|
+
.union([z.literal(1), z.literal(3), z.literal(5), z.literal(7), z.literal(14)])
|
|
303
|
+
.optional()
|
|
304
|
+
.describe('Окно ПРОХОЖДЕНИЯ цепочки для метрики runs: ответил ли человек хоть раз за N дней от ' +
|
|
305
|
+
'входа. По умолчанию 1. Не путать с horizon_minutes — там единица касание, здесь ' +
|
|
306
|
+
'прохождение.'),
|
|
239
307
|
segment: z
|
|
240
308
|
.array(z.string())
|
|
241
309
|
.optional()
|
|
@@ -297,16 +365,23 @@ export const followUpTools = [
|
|
|
297
365
|
to: input.to,
|
|
298
366
|
sequenceId: input.sequence_id,
|
|
299
367
|
horizonMinutes: input.horizon_minutes,
|
|
368
|
+
runWindowDays: input.run_window_days,
|
|
300
369
|
segment: input.segment,
|
|
301
370
|
product: input.product,
|
|
302
371
|
channel: input.channel,
|
|
303
372
|
})}`,
|
|
304
373
|
}),
|
|
305
374
|
enhanceResponse: (response) => withInstructions(response, [
|
|
306
|
-
'Метрик
|
|
375
|
+
'Метрик ТРИ и они НЕ взаимозаменяемы (третья — runs, см. ниже). `replied` — операционная: у каждого шага СВОЁ окно (до следующего касания), поэтому шаг с суточным интервалом почти всегда выглядит лучше часового. Сравнивать шаги по ней НЕЛЬЗЯ.',
|
|
307
376
|
'Сравнивать шаги можно ТОЛЬКО по `horizonReplied` (равный горизонт) и ТОЛЬКО там, где `comparableReliable: true`.',
|
|
308
|
-
'comparableReliable=false означает, что доля ЗАВЫШЕНА, а не просто шумна: цензурирование информативно — следующий шаг уходит лишь к промолчавшим, поэтому выжившие обогащены ответившими. Замер: 67 % вырезанных дали 20,8 % против настоящих 5,5 %.
|
|
377
|
+
'comparableReliable=false означает, что доля ЗАВЫШЕНА, а не просто шумна: цензурирование информативно — следующий шаг уходит лишь к промолчавшим, поэтому выжившие обогащены ответившими. Замер: 67 % вырезанных дали 20,8 % против настоящих 5,5 %. Первое лечение — horizon_minutes КОРОЧЕ интервала между шагами.',
|
|
378
|
+
'Но у частых цепочек подходящего горизонта НЕ СУЩЕСТВУЕТ: у вебинарной цепочки 35 % касаний имеют следующий шаг раньше 15 минут, то есть их вырезает даже минимальный горизонт 30. Не подбирай горизонт бесконечно — переходи на метрику runs.',
|
|
379
|
+
'runs — ТРЕТЬЯ метрика и ДРУГАЯ единица: прохождение цепочки, а не касание. «Ответил ли хоть раз за run_window_days от входа». Вырезать там некого (все шаги внутри окна принадлежат этому же прохождению), поэтому частота пингов на неё не влияет. Отвечает «работает ли цепочка», а НЕ «какой шаг сработал» — текст шага по ней не оптимизируется.',
|
|
380
|
+
'runs.immature — прохождения, у которых окно ещё не вышло. Они НЕ входят в runs.started, то есть доля считается от созревших. Растёт окно — растёт и число незрелых: это размен по ВРЕМЕНИ, а не по выборке.',
|
|
381
|
+
'Сравнивать ВЕРСИИ одного шага (A/B текста) надо по replied, а не по horizonReplied: у версий одного шага пауза до следующего касания одинаковая, значит окно равное и сравнение честное.',
|
|
309
382
|
'Знаменатели разные: `replied` считается от `resolvedSent` (без ещё открытых окон), `horizonReplied` — от `comparableSent`. От `sent` не считается НИ ОДНА доля.',
|
|
383
|
+
'`horizonEngaged` — отреагировали ХОТЬ КАК-ТО в том же горизонте: ответили ИЛИ перешли по ссылке касания. Знаменатель тот же (`comparableSent`), разность `horizonEngaged - horizonReplied` — те, кто НЕ ответил, но кликнул. Молчание на текст ещё не значит, что касание не сработало.',
|
|
384
|
+
'⚠️ НЕ складывай `horizonReplied` и `linkClicked`: ответивший часто ещё и кликает, и сумма задваивает его. Объединение уже посчитано — это `horizonEngaged`. `linkClicked` отвечает на другой вопрос (CTR ссылки) и считается от `linkIssued` бессрочно, без горизонта.',
|
|
310
385
|
'Ответ атрибутируется РОВНО ОДНОМУ касанию — ближайшему предшествующему. Окно закрывают шаг любой цепочки, волна рассылки и реплика живого оператора.',
|
|
311
386
|
'Цепочки с `measurable: false` шагов не записывают вообще (LOST_CLIENTS): их отсутствие в byStep означает «не меряем», а не «не работает».',
|
|
312
387
|
'Пустые массивы в `dimensions` — у канала нет рассылок, срезы по сегменту/продукту/мессенджеру там недоступны в принципе.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"follow-up.js","sourceRoot":"","sources":["../../../src/tools/definitions/follow-up.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"follow-up.js","sourceRoot":"","sources":["../../../src/tools/definitions/follow-up.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,8 @@ export declare const getcourseColdWelcomeTools: (import("./shared.js").ToolDefin
|
|
|
11
11
|
contacts?: {
|
|
12
12
|
contact_id: string;
|
|
13
13
|
deal_id?: string | undefined;
|
|
14
|
+
segment_entered_at?: string | undefined;
|
|
15
|
+
funnel?: string | undefined;
|
|
14
16
|
}[] | undefined;
|
|
15
17
|
mailing_variant_id?: string | undefined;
|
|
16
18
|
channels?: ("Site" | "Email" | "SMS" | "Telegram" | "Facebook" | "VK" | "Chatium" | "WhatsApp" | "Viber" | "MAX")[] | undefined;
|
|
@@ -23,6 +25,8 @@ export declare const getcourseColdWelcomeTools: (import("./shared.js").ToolDefin
|
|
|
23
25
|
contacts?: {
|
|
24
26
|
contact_id: string;
|
|
25
27
|
deal_id?: string | undefined;
|
|
28
|
+
segment_entered_at?: string | undefined;
|
|
29
|
+
funnel?: string | undefined;
|
|
26
30
|
}[] | undefined;
|
|
27
31
|
deal_fields?: Record<string, string | number | boolean | null> | undefined;
|
|
28
32
|
message?: string | undefined;
|
|
@@ -38,6 +42,8 @@ export declare const getcourseColdWelcomeTools: (import("./shared.js").ToolDefin
|
|
|
38
42
|
contacts: {
|
|
39
43
|
contact_id: string;
|
|
40
44
|
deal_id?: string | undefined;
|
|
45
|
+
segment_entered_at?: string | undefined;
|
|
46
|
+
funnel?: string | undefined;
|
|
41
47
|
}[];
|
|
42
48
|
segment?: string | undefined;
|
|
43
49
|
product_code?: string | undefined;
|
|
@@ -52,6 +58,11 @@ export declare const getcourseColdWelcomeTools: (import("./shared.js").ToolDefin
|
|
|
52
58
|
mailing_variant_id?: string | undefined;
|
|
53
59
|
channels?: ("Site" | "Email" | "SMS" | "Telegram" | "Facebook" | "VK" | "Chatium" | "WhatsApp" | "Viber" | "MAX")[] | undefined;
|
|
54
60
|
channels_mode?: "RESTRICT" | "ADD" | undefined;
|
|
61
|
+
guards?: {
|
|
62
|
+
active_series?: "OFF" | "WARN" | "BLOCK" | undefined;
|
|
63
|
+
active_application?: "OFF" | "WARN" | "BLOCK" | undefined;
|
|
64
|
+
paid?: "OFF" | "WARN" | "BLOCK" | undefined;
|
|
65
|
+
} | undefined;
|
|
55
66
|
}> | import("./shared.js").ToolDefinition<{
|
|
56
67
|
batch_id: string;
|
|
57
68
|
workspace_id?: string | undefined;
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { compactObject, defineTool, coldWelcomeChannelsModeEnum, getcourseTransportEnum, uuidSchema, withInstructions, } from './shared.js';
|
|
2
|
+
import { compactObject, defineTool, coldWelcomeChannelsModeEnum, getcourseTransportEnum, guardModeEnum, uuidSchema, withInstructions, } from './shared.js';
|
|
3
3
|
const MESSAGE_MAX_LENGTH = 4000;
|
|
4
4
|
const LABEL_MAX_LENGTH = 200;
|
|
5
5
|
const MAX_CONTACTS = 5000;
|
|
6
6
|
/** Потолок сегментов в пакете — паритет с бэкендом и с батчем волны. */
|
|
7
7
|
const MAX_BATCH_SEGMENTS = 10;
|
|
8
8
|
/**
|
|
9
|
-
* Строка предсписка: getcourseUserId
|
|
9
|
+
* Строка предсписка: getcourseUserId, опциональный пин сделки для штампа полей и — опционально —
|
|
10
|
+
* момент входа человека в когорту.
|
|
10
11
|
*
|
|
11
|
-
* Оба
|
|
12
|
+
* Оба ИДЕНТИФИКАТОРА — ЧИСЛА в строковом виде, и проверяется именно форма: паритет с сестринской
|
|
12
13
|
* `besales_getcourse_wave_run_start`. Непустоты мало — «AB-123» доезжал до штампа уже ПОСЛЕ
|
|
13
14
|
* доставки сообщения, а «user@mail.ru» молча выпадал в отбракованные строки.
|
|
14
15
|
*/
|
|
@@ -20,9 +21,43 @@ const contactSchema = z
|
|
|
20
21
|
.object({
|
|
21
22
|
contact_id: numericIdSchema('contact_id'),
|
|
22
23
|
deal_id: numericIdSchema('deal_id').optional(),
|
|
24
|
+
/**
|
|
25
|
+
* Момент входа контакта в когорту — на нём считается свежесть в «Аналитике рассылок».
|
|
26
|
+
*
|
|
27
|
+
* ⚠️⚠️ Заполняй его, когда предсписок собран ПРАВИЛОМ (события LeakEngine, выгрузка по
|
|
28
|
+
* сегменту): у каждой строки там свой момент, и он ФАКТ О ЧЕЛОВЕКЕ. Пока поле не принималось,
|
|
29
|
+
* все холодные строки уезжали без возраста и выпадали из любого непустого фильтра свежести.
|
|
30
|
+
*
|
|
31
|
+
* ⚠️⚠️ Дату запуска сюда подставлять НЕЛЬЗЯ. Разброс возраста в таких когортах — от часа до
|
|
32
|
+
* 294 дней при медиане 6,3 дня: общий момент схлопнул бы месяцы когорт в одну корзину, а
|
|
33
|
+
* разрез при этом выглядел бы наполненным. Не знаешь момента строки — не передавай ключ.
|
|
34
|
+
*
|
|
35
|
+
* `{ offset: true }` — зона обязательна (…Z либо ±ЧЧ:ММ), паритет с сестринской
|
|
36
|
+
* `besales_getcourse_wave_run_start`: без зоны момент читался бы по зоне процесса, и возраст
|
|
37
|
+
* разошёлся бы на часы между средами.
|
|
38
|
+
*/
|
|
39
|
+
segment_entered_at: z.string().datetime({ offset: true }).optional(),
|
|
40
|
+
/**
|
|
41
|
+
* Воронка ЭТОГО контакта — паритет со строкой волнового импорта (колонка
|
|
42
|
+
* `funnel | funnel_name | воронка | funnel_code`).
|
|
43
|
+
*
|
|
44
|
+
* ⚠️⚠️ Заполняй, когда файл собран из НЕСКОЛЬКИХ воронок: одна метка на запуск заставляла
|
|
45
|
+
* писать в поле воронки когорту («reg-no-show|дбо»), и ось «Воронка» переставала отвечать
|
|
46
|
+
* на свой вопрос — по f11 фильтр показывал НОЛЬ отправок за 30 дней при 3267 регистрациях
|
|
47
|
+
* и 1496 реально написанных людях (замер 02.09.2026). Когорта и продукт при этом уже лежат
|
|
48
|
+
* в своих полях `segment` и `product_code` — дублировать их в воронке нечем.
|
|
49
|
+
*
|
|
50
|
+
* Не передан — берётся воронка запуска (`funnel`), поведение прежнее.
|
|
51
|
+
*/
|
|
52
|
+
funnel: z.string().min(1).max(LABEL_MAX_LENGTH).optional(),
|
|
23
53
|
})
|
|
24
54
|
.strict();
|
|
25
|
-
const toContacts = (contacts) => contacts?.map((contact) => ({
|
|
55
|
+
const toContacts = (contacts) => contacts?.map((contact) => ({
|
|
56
|
+
contactId: contact.contact_id,
|
|
57
|
+
dealId: contact.deal_id,
|
|
58
|
+
segmentEnteredAt: contact.segment_entered_at,
|
|
59
|
+
funnel: contact.funnel,
|
|
60
|
+
}));
|
|
26
61
|
/**
|
|
27
62
|
* Пустая строка = поля НЕТ.
|
|
28
63
|
*
|
|
@@ -92,7 +127,7 @@ export const getcourseColdWelcomeTools = [
|
|
|
92
127
|
enhanceResponse: (response) => withInstructions(response, [
|
|
93
128
|
'totalContacts — сколько ЕЩЁ может получить первое сообщение; alreadyWelcomed — сколько уже получали его раньше (оно одноразово НА КОНТАКТ, не на рассылку).',
|
|
94
129
|
'⚠️⚠️ Если задано ограничение каналов, ФАКТИЧЕСКИЙ охват = totalContacts − narrowedOutByChannels (доказанно отсечённые каналами). Называй пользователю именно эту разность: сырой totalContacts завысит обещание, а отправку не отозвать. channelsUnknown вычитать НЕ надо — у этих контактов привязки просто ещё не проверены, при отправке их спросят у школы живьём.',
|
|
95
|
-
|
|
130
|
+
`⚠️ channels_mode УСТАРЕЛ и на поведение НЕ влияет (с 23.08.2026). Список channels значит «слать сюда», а судьбу КАЖДОГО канала решает сервер: мессенджер (Telegram/VK/MAX) уходит, только если школа подтвердила его наличие у контакта; SMS — только при известном телефоне; Email, WhatsApp, Viber, Сайт, Chatium уходят вслепую всем выбранным. Просят «написать ещё и на почту» — добавь Email в channels, а мессенджеры перечисли явно, иначе уедет только письмо. Поле принимается ради обратной совместимости и игнорируется.`,
|
|
96
131
|
'channelsNotAllowedByPlatform — выбранные каналы, не включённые на площадке: они не уедут ни в каком режиме. Назови их пользователю, это чинится в настройках площадки, а не повтором запуска.',
|
|
97
132
|
'Для аудитории по файлу дополнительно приходят alreadyInDialog и notInBase: контакты предсписка обязаны быть импортированы (Шаг 1) до запуска.',
|
|
98
133
|
'Всегда показывай пользователю фактический охват и alreadyWelcomed ДО старта: отправку нельзя отозвать.',
|
|
@@ -116,6 +151,12 @@ export const getcourseColdWelcomeTools = [
|
|
|
116
151
|
mailing_variant_id: uuidSchema.optional(),
|
|
117
152
|
segment: z.string().max(LABEL_MAX_LENGTH).optional(),
|
|
118
153
|
product_code: z.string().max(LABEL_MAX_LENGTH).optional(),
|
|
154
|
+
/**
|
|
155
|
+
* ⚠️⚠️ Воронка ШКОЛЫ («f11 — ДБО / NR / ВК / In Stream»), а НЕ когорта. Тип отбора идёт
|
|
156
|
+
* в `segment`, продукт в `product_code`, подпись запуска в `cohort_label`. Текст правила
|
|
157
|
+
* живёт в описании поля (`mcp-tools.json`) — его читает агент; здесь напоминание для
|
|
158
|
+
* того, кто правит схему.
|
|
159
|
+
*/
|
|
119
160
|
funnel: z.string().max(LABEL_MAX_LENGTH).optional(),
|
|
120
161
|
cohort_label: z.string().max(LABEL_MAX_LENGTH).optional(),
|
|
121
162
|
channels: z.array(getcourseTransportEnum).optional(),
|
|
@@ -156,8 +197,9 @@ export const getcourseColdWelcomeTools = [
|
|
|
156
197
|
'Повторный запуск по той же границе безопасен: уже получившие первое сообщение не получат второе.',
|
|
157
198
|
'platform_id и deal_fields можно опустить, если они заданы в рассылке как «по умолчанию» — сервер подставит их сам.',
|
|
158
199
|
'Пустой объект deal_fields — НЕ то же, что отсутствие ключа: он означает «на этом запуске без полей» и гасит дефолты рассылки.',
|
|
159
|
-
|
|
200
|
+
`⚠️ channels_mode УСТАРЕЛ и на поведение НЕ влияет (с 23.08.2026). Список channels значит «слать сюда», а судьбу КАЖДОГО канала решает сервер: мессенджер (Telegram/VK/MAX) уходит, только если школа подтвердила его наличие у контакта; SMS — только при известном телефоне; Email, WhatsApp, Viber, Сайт, Chatium уходят вслепую всем выбранным. Просят «написать ещё и на почту» — добавь Email в channels, а мессенджеры перечисли явно, иначе уедет только письмо. Поле принимается ради обратной совместимости и игнорируется.`,
|
|
160
201
|
'deal_fields штампуются ПОСЛЕ успешной отправки (пин из строки файла, иначе закреплённая сделка контакта); их отказ не отменяет отправку и виден счётчиком dealStamp.',
|
|
202
|
+
'contacts[].segment_entered_at — точный ISO-момент (с зоной) входа человека в когорту; на нём считается свежесть в «Аналитике рассылок». Передавай его, когда предсписок собран ПРАВИЛОМ и у каждой строки есть свой момент события. ⚠️ Дату запуска подставлять НЕЛЬЗЯ: разброс возраста бывает от часа до 294 дней, и общий момент схлопнул бы месяцы когорт в одну.',
|
|
161
203
|
'Контакт, у которого переменная текста осталась без значения, ПРОПУСКАЕТСЯ (outcome SKIPPED_UNRESOLVED_VARS) — сырые {скобки} живому человеку не уедут. Отметка приветствия при этом не сгорает: проставьте значение или перезапись у агента и запустите повторно, контакт доберётся.',
|
|
162
204
|
]),
|
|
163
205
|
}),
|
|
@@ -190,6 +232,17 @@ export const getcourseColdWelcomeTools = [
|
|
|
190
232
|
.strict())
|
|
191
233
|
.min(1)
|
|
192
234
|
.max(MAX_BATCH_SEGMENTS),
|
|
235
|
+
// Перекрытие предохранителей на ЭТОТ пакет. Не передано — настройки площадки.
|
|
236
|
+
// Ослабление здесь — аварийный обход одной отправки; постоянное решение принимается
|
|
237
|
+
// в настройках площадки, чтобы его было видно всем, а не только автору вызова.
|
|
238
|
+
guards: z
|
|
239
|
+
.object({
|
|
240
|
+
active_series: guardModeEnum.optional(),
|
|
241
|
+
active_application: guardModeEnum.optional(),
|
|
242
|
+
paid: guardModeEnum.optional(),
|
|
243
|
+
})
|
|
244
|
+
.strict()
|
|
245
|
+
.optional(),
|
|
193
246
|
explicit_confirmation: z.literal(true),
|
|
194
247
|
})
|
|
195
248
|
.strict()
|
|
@@ -213,16 +266,29 @@ export const getcourseColdWelcomeTools = [
|
|
|
213
266
|
dealFields: segment.deal_fields,
|
|
214
267
|
contacts: toContacts(segment.contacts),
|
|
215
268
|
})),
|
|
269
|
+
guards: input.guards
|
|
270
|
+
? compactObject({
|
|
271
|
+
activeSeries: input.guards.active_series,
|
|
272
|
+
activeApplication: input.guards.active_application,
|
|
273
|
+
paid: input.guards.paid,
|
|
274
|
+
})
|
|
275
|
+
: undefined,
|
|
216
276
|
}),
|
|
217
277
|
}),
|
|
218
278
|
enhanceResponse: (response) => withInstructions(response, [
|
|
219
279
|
'Пакет: несколько сегментов одним вызовом, у каждого свой список контактов, свои метки и свои поля сделки.',
|
|
220
280
|
'cohort_label задаётся ПОСЕГМЕНТНО: каждый сегмент — отдельный запуск со своей задачей и когортой, и общая на пакет подпись схлопнула бы их в отчёте в одну корзину.',
|
|
221
|
-
'Сегменты идут ПО ОЧЕРЕДИ — задачи импорта не могут выполняться параллельно. Прогресс смотри через besales_getcourse_cold_welcome_batch_status по batchId
|
|
281
|
+
'Сегменты идут ПО ОЧЕРЕДИ — задачи импорта не могут выполняться параллельно. Прогресс смотри через besales_getcourse_cold_welcome_batch_status по batchId; о ЗАВЕРШЕНИИ пакета платформа доложит сама в чат уведомлений воркспейса, поэтому опрашивать в цикле не нужно.',
|
|
282
|
+
'contacts[].segment_entered_at — точный ISO-момент (с зоной) входа человека в когорту; на нём считается свежесть в «Аналитике рассылок». Передавай его посегментно, когда предсписок собран ПРАВИЛОМ и у каждой строки есть свой момент события. ⚠️ Дату запуска подставлять НЕЛЬЗЯ: разброс возраста бывает от часа до 294 дней, и общий момент схлопнул бы месяцы когорт в одну.',
|
|
222
283
|
'Весь пакет проверяется ДО первой отправки: сегмент без текста ИЛИ текст с переменными, которые не подставляются его контактам, отменяет пакет целиком, пока никому ничего не ушло. В ошибке названы сами переменные, контакт проверки и агент — чинить надо значение переменной или перезапись у этого агента.',
|
|
223
284
|
'⚠️ Проверка переменных на плане ВЫБОРОЧНАЯ (несколько контактов сегмента) и не гарантирует, что подставится всем: агента выбирает роутер по контакту. Полноту держит гейт на самой отправке — контакт с сырыми скобками пропускается с outcome SKIPPED_UNRESOLVED_VARS.',
|
|
224
285
|
'⚠️ Переменные, которые отправка дочитывает из сделки (календарные поля замапленной площадки), план НЕ проверяет — судить по до-синковому снимку значило бы блокировать каждый пакет календарной площадки. Все остальные проверяются. Если пакет упал на календарной переменной — это баг, а не настройка.',
|
|
225
286
|
'Отказ одного сегмента НЕ останавливает остальные — смотри разбивку в статусе.',
|
|
287
|
+
'ПРЕДОХРАНИТЕЛИ. Перед отправкой каждый контакт проверяется по фактам школы: идёт ли у него вебинарная серия, есть ли действующая заявка (работает менеджер), оплачен ли этот продукт. Исходы: SKIPPED_ACTIVE_SERIES, SKIPPED_ACTIVE_DEAL, SKIPPED_GUARD_UNAVAILABLE.',
|
|
288
|
+
'⚠️ Правило серии видит только тех, кто ДЕЙСТВИТЕЛЬНО смотрел эфиры: серии школы строятся из фактов посещения. Зарегистрировавшийся и не пришедший под это правило не попадает — это не пробел проверки, а граница данных.',
|
|
289
|
+
'⚠️ Правило оплаты сверяет продукт запуска с оплаченными. Если у пакета не задан product_code, а у контакта есть оплата, отправка пропускается с SKIPPED_GUARD_UNAVAILABLE («сверять не с чем») — это чинится повторным запуском с продуктом, а не считается работой менеджера.',
|
|
290
|
+
'⚠️ Блокировка по серии — это ОТСРОЧКА, а не потеря: серия кончится, и контакт станет доступен следующему запуску (замер: из 55 контактов сегодня проходят 10, завтра 39, через трое суток 47). Не пытайся обойти гейт, чтобы «добрать объём».',
|
|
291
|
+
'⚠️ Поле guards ослабляет проверку на ОДИН пакет и предназначено для аварийного обхода. Постоянное решение принимается в настройках площадки (besales_platform_settings_update) — там его видно всей команде, а не только автору вызова.',
|
|
226
292
|
]),
|
|
227
293
|
}),
|
|
228
294
|
defineTool({
|
|
@@ -238,7 +304,10 @@ export const getcourseColdWelcomeTools = [
|
|
|
238
304
|
}),
|
|
239
305
|
enhanceResponse: (response) => withInstructions(response, [
|
|
240
306
|
'state — агрегат по пакету, segments[] — разбивка: у каждого свой статус, свой importJobId и своя причина отказа.',
|
|
241
|
-
'
|
|
307
|
+
'completedAt — момент, когда закрылись ВСЕ сегменты; null означает «пакет ещё идёт». Это и есть ответ на вопрос «закончилось ли»: лезть в import_jobs и chat_users не нужно.',
|
|
308
|
+
'summary — план, ДОКАЗАННЫЕ доставки (строки реестра рассылок) и слитая разбивка исходов; у каждого сегмента те же delivered/outcomes. SKIPPED_UNRESOLVED_VARS означает «переменные текста без значения»: такие контакты не приветствованы и доберутся повторным запуском.',
|
|
309
|
+
'⚠️ summary.segmentsWithoutOutcomes > 0 — у стольких сегментов прогон оборвался, не записав итог: их исходы в разбивку НЕ вошли, и судить о них можно только по delivered. outcomes=null у сегмента значит ровно это, а НЕ «все нули».',
|
|
310
|
+
'⚠️ Опрашивать в цикле не нужно: о завершении пакета и о его обрыве платформа сама докладывает в чат уведомлений воркспейса (там же batchId, доставлено/из скольких и разбивка исходов). Оборванный пакет крон-подметатель находит сам в пределах ~15 минут и освобождает задачу импорта, чтобы воркспейс не оставался заблокированным.',
|
|
242
311
|
'stalled=true означает, что драйвер оборвался (рестарт инстанса). НЕ запускай пакет заново — зови besales_getcourse_cold_welcome_batch_resume по тому же batch_id: источник текста хранится в плане, пересобирать списки не нужно, а уже отправленным контактам повтор не уйдёт (приветствие одноразово НА КОНТАКТ).',
|
|
243
312
|
]),
|
|
244
313
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getcourse-cold-welcome.js","sourceRoot":"","sources":["../../../src/tools/definitions/getcourse-cold-welcome.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"getcourse-cold-welcome.js","sourceRoot":"","sources":["../../../src/tools/definitions/getcourse-cold-welcome.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export declare const getCourseWaveTools: (import("./shared.js").ToolDefinition<{
|
|
2
2
|
platform_id: string;
|
|
3
3
|
crm_id: string;
|
|
4
|
-
channels:
|
|
4
|
+
channels: ("Site" | "Email" | "SMS" | "Telegram" | "Facebook" | "VK" | "Chatium" | "WhatsApp" | "Viber" | "MAX")[];
|
|
5
5
|
contacts: {
|
|
6
6
|
contact_id: string;
|
|
7
7
|
deal_id?: string | undefined;
|
|
@@ -46,7 +46,7 @@ export declare const getCourseWaveTools: (import("./shared.js").ToolDefinition<{
|
|
|
46
46
|
}> | import("./shared.js").ToolDefinition<{
|
|
47
47
|
platform_id: string;
|
|
48
48
|
crm_id: string;
|
|
49
|
-
channels:
|
|
49
|
+
channels: ("Site" | "Email" | "SMS" | "Telegram" | "Facebook" | "VK" | "Chatium" | "WhatsApp" | "Viber" | "MAX")[];
|
|
50
50
|
contacts: {
|
|
51
51
|
contact_id: string;
|
|
52
52
|
deal_id?: string | undefined;
|
|
@@ -113,7 +113,7 @@ export declare const getCourseWaveTools: (import("./shared.js").ToolDefinition<{
|
|
|
113
113
|
lead_last_active_at?: string | undefined;
|
|
114
114
|
segment_entered_at?: string | undefined;
|
|
115
115
|
}[];
|
|
116
|
-
channels:
|
|
116
|
+
channels: ("Site" | "Email" | "SMS" | "Telegram" | "Facebook" | "VK" | "Chatium" | "WhatsApp" | "Viber" | "MAX")[];
|
|
117
117
|
deal_fields: Record<string, string | number | boolean | null>;
|
|
118
118
|
launch_type?: "status" | undefined;
|
|
119
119
|
funnel?: string | undefined;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { compactObject, defineTool, uuidSchema, withInstructions } from './shared.js';
|
|
2
|
+
import { compactObject, defineTool, getcourseTransportEnum, uuidSchema, withInstructions, } from './shared.js';
|
|
3
3
|
const BROADCAST_SEGMENT_DESCRIPTION_MAX_LENGTH = 4000;
|
|
4
4
|
const UNCERTAIN_WAVE_OUTCOME_INSTRUCTION = 'UNKNOWN и FAILED с неопределённым внешним исходом жёстко блокируются между волнами: repeat-режим и dedup_window_days=0 их не обходят. Повтор допустим только для FAILED, который подтверждённо возник до внешней отправки; остальные случаи требуют отдельного ручного разбора исхода.';
|
|
5
5
|
const getCourseWaveContactSchema = z.object({
|
|
@@ -37,7 +37,7 @@ export const getCourseWaveTools = [
|
|
|
37
37
|
platform_id: uuidSchema,
|
|
38
38
|
crm_id: uuidSchema,
|
|
39
39
|
launch_type: z.enum(['status', 'board', 'group']).optional(),
|
|
40
|
-
channels: z.array(
|
|
40
|
+
channels: z.array(getcourseTransportEnum).min(1),
|
|
41
41
|
funnel: z.string().max(200).optional(),
|
|
42
42
|
segment: z.string().max(200).optional(),
|
|
43
43
|
segment_description: z.string().max(BROADCAST_SEGMENT_DESCRIPTION_MAX_LENGTH).optional(),
|
|
@@ -117,7 +117,7 @@ export const getCourseWaveTools = [
|
|
|
117
117
|
enhanceResponse: (response) => withInstructions(response, [
|
|
118
118
|
'Запуск outbound-волны GetCourse: Шаг 1 (импорт контактов + пин сделок) → Шаг 2 (отправка). По умолчанию launch_type=status (простановка полей → «Процесс» GetCourse шлёт welcome).',
|
|
119
119
|
'БЕЗ confirm=true — DRY-RUN: вернётся summary (totalContacts/withDeal/channels/dealFields/sample), НИЧЕГО не отправляется. Покажи summary пользователю и запускай реально только с confirm=true.',
|
|
120
|
-
'channels —
|
|
120
|
+
'channels — весь GetCourseTransport: Site, Email, SMS, Telegram, Facebook, VK, Chatium, WhatsApp, Viber, MAX (для аналитики «Канал волны»). Отправится только то, что разрешает allowlist площадки.',
|
|
121
121
|
'funnel — канонический ключ/название БИЗНЕС-воронки. Не передавай сюда имя файла, batch/resend или дату запуска. cohort_label — человекочитаемое имя конкретного запуска волны.',
|
|
122
122
|
'mailing_variant_id — ID именованного «Варианта рассылки» из besales_broadcast_mailing_variant_list/create. Backend tenant-scoped проверяет активность и сохраняет связь для фильтра аналитики.',
|
|
123
123
|
'segment_description — явное бизнес-правило отбора segment. Передавай только вместе с segment: новый сегмент создастся с описанием, существующий явно обновит его. Если описание не передать, сохранённый текст не изменится.',
|
|
@@ -159,7 +159,7 @@ export const getCourseWaveTools = [
|
|
|
159
159
|
launch_key: uuidSchema.optional(),
|
|
160
160
|
dry_run_hash: z.string().regex(/^[0-9a-f]{64}$/).optional(),
|
|
161
161
|
launch_type: z.literal('status').optional(),
|
|
162
|
-
channels: z.array(
|
|
162
|
+
channels: z.array(getcourseTransportEnum).min(1),
|
|
163
163
|
funnel: z.string().max(200).optional(),
|
|
164
164
|
segment: z.string().max(200).optional(),
|
|
165
165
|
segment_description: z.string().max(BROADCAST_SEGMENT_DESCRIPTION_MAX_LENGTH).optional(),
|
|
@@ -349,7 +349,7 @@ export const getCourseWaveTools = [
|
|
|
349
349
|
// включён forbidNonWhitelisted, поэтому лишний ключ роняет весь батч в 400.
|
|
350
350
|
launch_type: z.literal('status').optional(),
|
|
351
351
|
contacts: z.array(getCourseWaveContactSchema).min(1).max(2000),
|
|
352
|
-
channels: z.array(
|
|
352
|
+
channels: z.array(getcourseTransportEnum).min(1),
|
|
353
353
|
deal_fields: z.record(z.string(), z.union([z.string(), z.number(), z.boolean(), z.null()])),
|
|
354
354
|
funnel: z.string().max(200).optional(),
|
|
355
355
|
segment: z.string().max(200).optional(),
|