AgentConfig
Europe/MoscowPossible values: [ru, en, pt, es]
rugender object
Необязательные метаданные о гендере персонажа агента; если указаны, добавляются в пользовательские LLM-запуски для человекочитаемых формулировок.
- string
- null
Possible values: [male, female]
Строки, которые pii-guard должен передавать модели дословно, даже если они похожи на имя человека — названия продуктов и брендов, имя персонажа агента. Читается только когда pii_mode компании не off.
true30message_debounce_guard_pre_cooldown_seconds object
- integer
- null
truecommunication_context_config object
Управляет передачей агенту общего контекста из предыдущих эпизодов общения, сопоставленных с тем же лидом или клиентом.
Собирать ли и передавать общий контекст общения текстовым и голосовым агентам. По умолчанию true.
trueВыполнять ли автоматический поиск общего контекста также для лидов с признаком тестовых. По умолчанию false.
falsetrueredirect_to_agent_id object
- integer
- null
redirect_message_source object
- MessageSource
- null
text object
- string
- null
prompt_id object
- integer
- null
prompt_version_id object
- integer
- null
prepared_message_id object
- integer
- null
waba_template_id object
- integer
- null
caption object
- string
- null
falsetruefalsePossible values: >= 0 and <= 100
25truequote_replies_probability_percent object
- integer
- null
Possible values: >= 0 and <= 100
falsedelay_messages_symbols_per_second object
- integer
- null
delay_messages_seconds object
- integer
- null
true336rag_config object
Possible values: >= 1
10Possible values: >= 1
20Possible values: >= 1
16000per_mode_limits object
lead_research_config object
falsellm_model_config object
- LLMModelConfig
- null
Possible values: [chatgpt, gemini, anthropic, grok, sber, openrouter]
0.7falsePossible values: >= 1 and <= 100
5Possible values: >= 256 and <= 20000
5000Possible values: >= 512 and <= 10000
1800truetruecurrency_rates_config object
Актуальные курсы валют, передаваемые агенту, чтобы он называл цены в валюте клиента, а не придумывал курс сам. Курсы загружаются из выбранного источника по расписанию и общие для всей платформы; здесь выбирается только то, какие пары называет этот агент и как он должен о них говорить. Пара, для которой актуального курса нет, не передаётся агенту — курс не подставляется приблизительно.
Получает ли агент курсы валют. Требуется хотя бы одна включённая пара.
falseИсточник, из которого загружаются курсы.
Possible values: [cbr, open_er_api]
cbrПроизвольная инструкция для агента, показываемая над списком курсов и действующая для всех пар (например, «прайс в долларах, всегда называйте цену также в рублях»).
max_staleness_minutes object
Максимальный возраст загруженного курса в минутах. Курс, загруженный раньше этого срока, не передаётся агенту. Null — использовать любой сохранённый курс.
- integer
- null
Possible values: >= 1
pairs object[]
Курсы валют, которые может называть этот агент.
Исходная валюта. Курс выражается как «1 base = N quote».
Possible values: [usd, eur, rub]
Валюта, в которую переводится сумма. Должна отличаться от base.
Possible values: [usd, eur, rub]
Используется ли эта пара. Отключённые пары сохраняются, но агенту не передаются.
trueКоличество знаков после запятой, до которого округляется курс.
Possible values: >= 0 and <= 6
2markup_percent object
Процент, добавляемый к рыночному курсу до передачи агенту, чтобы называть курс выше (при отрицательном значении — ниже) источника. 0 — называть курс источника как есть.
- number
- string
Possible values: >= -100 and <= 100
models_config object
chatbot_model_config object
- LLMModelConfig
- null
Possible values: [chatgpt, gemini, anthropic, grok, sber, openrouter]
0.7falseclassification_model_config object
- LLMModelConfig
- null
Possible values: [chatgpt, gemini, anthropic, grok, sber, openrouter]
0.7falseping_model_config object
- LLMModelConfig
- null
Possible values: [chatgpt, gemini, anthropic, grok, sber, openrouter]
0.7falsedocument_model_config object
- LLMModelConfig
- null
Possible values: [chatgpt, gemini, anthropic, grok, sber, openrouter]
0.7falseclassification_config object
Управляет тем, что агент извлекает из переписки и сохраняет в лиде.
Запускать отдельный сборщик, который определяет часовой пояс лида из переписки и сохраняет его в лиде. Перестаёт работать, как только пояс известен.
falseЗапускать отдельный сборщик, который находит в переписке собственный номер телефона лида. Найденный номер становится полноценным телефонным контактом лида, а не полем классификации, и переносится в CRM. Он сохраняется в каноническом виде (код страны и национальный номер) и никогда не становится основным контактом лида, поэтому сам по себе не превращается в цель рассылки. Перестаёт работать, как только у лида появляется любой телефонный контакт. Чтобы не делать лишний вызов на каждое сообщение, сборщик запускается только тогда, когда в недавних сообщениях самого лида достаточно цифр, чтобы это мог быть номер. Заодно он забирает имя лида, если тот назвал его там же, и подписывает этим именем создаваемые контакты.
falseЗапускать отдельный сборщик, который находит в переписке собственный адрес электронной почты лида. Работает так же, как collect_phone: найденный адрес становится полноценным email-контактом лида, а не полем классификации, переносится в CRM и никогда не становится основным контактом лида. Сохраняется в нижнем регистре. Перестаёт работать, как только у лида появляется любой email-контакт. Чтобы не делать лишний вызов на каждое сообщение, сборщик запускается только тогда, когда в недавних сообщениях самого лида есть что-то похожее на адрес — написанный, продиктованный или замаскированный.
falseИзвлекает ли агент настроенные поля из диалогов вообще.
falsefields object[]
Поля для извлечения; каждое описано словами агента, чтобы модель могла его заполнить.
Название поля CRM. Оно же — ключ, под которым значение хранится и читается.
Что агенту следует искать в диалоге. Передаётся модели-экстрактору.
Устаревшая подсказка о типе. Если у поля есть определение в CRM, тип и набор вариантов берутся из него.
stringcrm_field_id object
Определение поля CRM, которое заполняет это поле, если связь установлена. Необязательное: без него поле сопоставляется по названию.
- integer
- null
Может ли агент перезаписать уже заполненное значение. На заполнение пустого поля разрешение не требуется — им является само присутствие поля в списке. По умолчанию true.
truesupport_ticket_request_category_config object
Настройки классификации категорий обращений поддержки и разрешения LLM создавать новые переиспользуемые категории.
Назначать ли закрытым обращениям категорию из списка категорий агента.
trueМожет ли LLM создать новую переиспользуемую категорию, если ни одна активная категория не подходит. Если выключено, обращения без подходящей категории назначаются системной категории insufficient_info.
truerefusal_reason_config object
Настройки классификации причин отказа и разрешения LLM создавать новые переиспользуемые причины.
Назначать ли таким диалогам причину отказа из списка причин агента.
trueМожет ли LLM создать новую переиспользуемую причину отказа, если ни одна активная причина не подходит. Если выключено, диалоги без подходящей причины назначаются системной причине insufficient_info.
truehuman_clarification_config object
Настройки human-in-the-loop уточнений для этого агента.
Может ли агент отложить диалог и обратиться к менеджеру-человеку за помощью.
falsechannel_id object
Чат или канал, куда отправляются уведомления менеджеру об уточнениях.
- string
- null
message_thread_id object
Необязательная тема или тред внутри менеджерского канала.
- string
- null
Как долго уточнение может оставаться в ожидании до истечения.
Possible values: >= 1
14400extra_text object
Необязательный дополнительный статический текст в уведомлении менеджеру.
- string
- null
Нужно ли отправлять клиенту промежуточное сообщение-ожидание после успешного уведомления менеджера.
truefollow_up_message_source object
Необязательный источник сообщения-ожидания клиенту. Готовый контент (text, prepared_message_id, waba_template_id, файлы) отправляется как есть; источник только с prompt_id генерирует сообщение этим промптом; без источника сообщение генерируется встроенным промптом.
- MessageSource
- null
text object
- string
- null
prompt_id object
- integer
- null
prompt_version_id object
- integer
- null
prepared_message_id object
- integer
- null
waba_template_id object
- integer
- null
caption object
- string
- null
timeout_follow_up_message_source object
- MessageSource
- null
text object
- string
- null
prompt_id object
- integer
- null
prompt_version_id object
- integer
- null
prepared_message_id object
- integer
- null
waba_template_id object
- integer
- null
caption object
- string
- null
Упорядоченные ключи CRM-полей лида, которые нужно сохранять в каждое уточнение.
Как участвует предварительный классификатор уточнений. В режиме enforce (по умолчанию) отдельный классификатор для каждого сообщения клиента решает, можно ли агенту обратиться к менеджеру, а промпт типа clarification применяется как политика этого классификатора, а не как инструкции в основном промпте. В режиме shadow классификатор работает и его вердикты записываются, но на агента не влияют. В режиме off классификатор не запускается. Автоматические повторные генерации (ресьюмер, пинги) не обращаются к менеджеру ни в одном из режимов.
Possible values: [off, shadow, enforce]
enforceВердикты классификатора, при которых агент может обратиться к менеджеру в режиме enforce. По умолчанию — needs_manager_fact и likely_needs_manager_fact; для самой строгой фильтрации оставьте только needs_manager_fact.
Possible values: [needs_manager_fact, likely_needs_manager_fact, answerable_or_clarify, out_of_scope, background_turn, gate_error]
max_clarifications_per_day object
Максимум обращений к менеджеру по одному диалогу за скользящие 24 часа (по умолчанию 3). Сверх лимита агент отвечает по доступным знаниям, не обращаясь к менеджеру. Null — без лимита.
- integer
- null
Possible values: >= 1
tools_config object
falsefalsehook_tools object[]
Внешние инструменты, доступные LLM. Они отделены от хуков событий жизненного цикла.
Относительный путь хука. Для lifecycle-хука через tool_backend используйте {client}/hooks/{endpoint}; путь разрешается относительно базы /clients/ сервиса client-tools.
Бэкенд доставки. n8n вызывает настроенный хост n8n, tool_backend — сервис client-tools.
Possible values: [n8n, tool_backend]
n8ntool_name object
Имя инструмента для LLM. Используется только в конфигурации hook_tools.
- string
- null
Перезагрузить контекст лида и контакта после успешного lifecycle-хука, если синхронный обработчик изменяет эти сущности.
falsellm_description object
Инструкция для LLM по использованию внешнего инструмента. Используется только в hook_tools.
- string
- null
Возвращает ли внешний инструмент результат позже через асинхронный call-result callback.
falseМаксимальное время ожидания результата асинхронного инструмента в секундах.
600callback_task_config object
- CallbackTaskConfig
- null
Длительность одного слота для перезвона в минутах.
30На сколько часов вперёд рассчитывается доступность для перезвона.
168manager_web_call_links object
Необязательные ссылки на звонок по менеджерам, которые подставляются в текст CRM-задачи. В качестве ключей используйте manager_key из эндпоинта callback-task-managers.
manager_callback_tasks_enabled object
Необязательный allowlist менеджеров для назначения задач на перезвон. Пустая карта разрешает всех «живых» CRM-менеджеров; после заполнения назначаемыми остаются только менеджеры с флагом true.
reminders object[]
Расписание напоминаний для созданных задач на перезвон.
source objectrequired
Задаёт содержимое отправляемого сообщения ссылкой ровно на один источник — произвольный текст, промпт, подготовленное сообщение, WABA-шаблон или файл(ы).
text object
- string
- null
prompt_id object
- integer
- null
prompt_version_id object
- integer
- null
prepared_message_id object
- integer
- null
waba_template_id object
- integer
- null
caption object
- string
- null
Делает все кастомные поля события провайдера доступными как переменные шаблона напоминания; сейчас поддерживается YClients. По умолчанию false; старый список fields игнорируется без миграции. Дефисы в ключах заменяются подчёркиваниями (my-custom-field используется как {{ my_custom_field }}); значения сохраняются. Поля события перекрывают одноимённые поля лида по существующим правилам объединения, включая приоритет встроенных переменных имени контакта. При совпадении ключей после замены побеждает последний ключ в ответе провайдера. Отсутствующие данные или ошибки провайдера приводят к пропуску напоминания; номер шага не увеличивается, поэтому следующий тик scheduler-а повторяет проверку. Значения 0 и false считаются заполненными. При включённой опции прямой текст рендерится перед планированием; для остальных провайдеров внешний запрос не выполняется.
falsehooks_config object
Хуки событий жизненного цикла, сгруппированные по типу события. Событие журналируется один раз и синхронно отправляется во все настроенные назначения.
hooks object
Назначения хуков по типу события жизненного цикла. Можно одновременно использовать n8n и tool_backend.
property name* object[]
Относительный путь хука. Для lifecycle-хука через tool_backend используйте {client}/hooks/{endpoint}; путь разрешается относительно базы /clients/ сервиса client-tools.
Бэкенд доставки. n8n вызывает настроенный хост n8n, tool_backend — сервис client-tools.
Possible values: [n8n, tool_backend]
n8ntool_name object
Имя инструмента для LLM. Используется только в конфигурации hook_tools.
- string
- null
Перезагрузить контекст лида и контакта после успешного lifecycle-хука, если синхронный обработчик изменяет эти сущности.
falsellm_description object
Инструкция для LLM по использованию внешнего инструмента. Используется только в hook_tools.
- string
- null
Возвращает ли внешний инструмент результат позже через асинхронный call-result callback.
falseМаксимальное время ожидания результата асинхронного инструмента в секундах.
600Запрещать ли сопоставленным изменениям этапа в CRM перемещать лиды продукта с финальных локальных этапов.
falseinbound_lead_config object
Управляет созданием входящего лида и необязательным подтверждением перед основным сгенерированным ответом.
stage_id object
Этап воронки для лида, созданного из входящего сообщения. При null используется начальный этап агента, а затем первый этап продукта.
- integer
- null
Отправлять ли быстрый ответ для нового входящего лида или подходящего нового диалога повторного обращения после прохождения проверок возможности ответа.
falseJinja-шаблон, который заполняется CRM-полями лида и отправляется непосредственно перед генерацией основного ответа. Для повторного обращения действует серверный интервал после закрытия предыдущего. Пустой текст отключает быстрый ответ.
Отправлять ли заранее заданный ответ, когда новый диалог начинается с сообщения "/start" (часто присылают боты Telegram/Max). Если срабатывает, он заменяет сгенерированный ответ на этом шаге и имеет приоритет над быстрым ответом.
falseJinja-шаблон, отправляемый в ответ на "/start" (сопоставление по первому токену, поэтому deep-ссылки вида "/start
voice_config object
Настройки проприетарного голосового агента (провайдеры, модели, приветствие и поведение звонка). Незаданные поля наследуют значения по умолчанию деплоймента.
llm_provider object
- string
- null
Possible values: [google, gemini, anthropic, yandex]
llm_fallback_enabled object
- boolean
- null
llm_attempt_timeout object
- number
- null
Possible values: >= 1 and <= 60
gemini_model object
- string
- null
gemini_temperature object
- number
- null
Possible values: >= 0 and <= 2
gemini_thinking_level object
- string
- null
anthropic_model object
- string
- null
anthropic_temperature object
- number
- null
Possible values: >= 0 and <= 1
yandex_model object
- string
- null
yandex_temperature object
- number
- null
Possible values: >= 0 and <= 1
stt_provider object
- string
- null
Possible values: [soniox, deepgram]
soniox_model object
- string
- null
soniox_language_hints object
- string[]
- null
soniox_context object
- string
- null
deepgram_flux_model object
- string
- null
stt_keyterms object
- string[]
- null
tts_provider object
- string
- null
Possible values: [elevenlabs, cartesia, gemini]
elevenlabs_model object
- string
- null
elevenlabs_voice_id object
- string
- null
elevenlabs_language object
- string
- null
cartesia_model object
- string
- null
cartesia_voice_id object
- string
- null
cartesia_language object
- string
- null
gemini_tts_model object
- string
- null
gemini_tts_voice object
- string
- null
gemini_tts_instructions object
- string
- null
voice_agent_greeting_enabled object
- boolean
- null
voice_agent_greeting object
- string
- null
voice_agent_greeting_allow_interruptions object
- boolean
- null
voice_agent_greeting_delay_s object
- number
- null
Possible values: >= 0 and <= 5
voice_agent_opener object
- string
- null
tts_style_tags_enabled object
- boolean
- null
cartesia_slowly_speed_ratio object
- number
- null
Possible values: >= 0.6 and <= 1.5
cartesia_whisper_volume_ratio object
- number
- null
Possible values: >= 0.5 and <= 2
cartesia_emotion_tags_enabled object
- boolean
- null
cartesia_pause_break_ms object
- integer
- null
Possible values: >= 100 and <= 2000
livekit_interruption_enabled object
- boolean
- null
livekit_interruption_mode object
- string
- null
Possible values: [vad, adaptive]
end_call_enabled object
- boolean
- null
inactivity_pings_enabled object
- boolean
- null
inactivity_timeout object
- number
- null
Possible values: >= 5 and <= 600
backchannel_enabled object
- boolean
- null
backchannel_probability object
- number
- null
Possible values: >= 0 and <= 1
{
"timezone": "Europe/Moscow",
"language": "ru",
"gender": "male",
"pii_allowlist": [
"string"
],
"mute_after_handoff": true,
"max_bot_turns_limit": 30,
"message_debounce_guard_pre_cooldown_seconds": 0,
"add_dt_to_prompt": true,
"communication_context_config": {
"enabled": true,
"include_test_leads": false
},
"redirects_enabled": true,
"redirect_to_agent_id": 0,
"redirect_message_source": {
"text": "string",
"prompt_id": 0,
"prompt_version_id": 0,
"prepared_message_id": 0,
"waba_template_id": 0,
"file_ids": [
0
],
"caption": "string"
},
"prevent_bot_misuse": false,
"resolve_if_message_is_for_agent": true,
"reactions_enabled": false,
"reactions_probability_percent": 25,
"quote_replies_enabled": true,
"quote_replies_probability_percent": 0,
"fetch_history_on_onboarding": false,
"delay_messages_symbols_per_second": 0,
"delay_messages_seconds": 0,
"split_messages": true,
"lead_expires_in_hours": 336,
"rag_config": {
"max_documents": 10,
"max_units": 20,
"max_chars": 16000,
"per_mode_limits": {}
},
"lead_research_config": {
"enabled": false,
"source_fields": [
"string"
],
"llm_model_config": {
"vendor": "chatgpt",
"model": "string",
"temperature": 0.7,
"prompt_caching_enabled": false
},
"max_tool_calls": 5,
"max_output_tokens": 5000,
"summary_max_chars": 1800,
"require_reliable_identity_match": true,
"review_required_before_outreach": true
},
"currency_rates_config": {
"enabled": false,
"source": "cbr",
"prompt": "",
"max_staleness_minutes": 0,
"pairs": [
{
"base": "usd",
"quote": "usd",
"enabled": true,
"precision": 2,
"markup_percent": 0
}
]
},
"models_config": {
"chatbot_model_config": {
"vendor": "chatgpt",
"model": "string",
"temperature": 0.7,
"prompt_caching_enabled": false
},
"classification_model_config": {
"vendor": "chatgpt",
"model": "string",
"temperature": 0.7,
"prompt_caching_enabled": false
},
"ping_model_config": {
"vendor": "chatgpt",
"model": "string",
"temperature": 0.7,
"prompt_caching_enabled": false
},
"document_model_config": {
"vendor": "chatgpt",
"model": "string",
"temperature": 0.7,
"prompt_caching_enabled": false
}
},
"classification_config": {
"collect_lead_timezone": false,
"collect_phone": false,
"collect_email": false,
"classification_enabled": false,
"fields": [
{
"name": "string",
"description": "string",
"data_type": "string",
"crm_field_id": 0,
"can_update": true
}
]
},
"support_ticket_request_category_config": {
"classification_enabled": true,
"auto_create_enabled": true
},
"refusal_reason_config": {
"classification_enabled": true,
"auto_create_enabled": true
},
"human_clarification_config": {
"enabled": false,
"channel_id": "string",
"message_thread_id": "string",
"timeout_seconds": 14400,
"extra_text": "string",
"follow_up_enabled": true,
"follow_up_message_source": {
"text": "string",
"prompt_id": 0,
"prompt_version_id": 0,
"prepared_message_id": 0,
"waba_template_id": 0,
"file_ids": [
0
],
"caption": "string"
},
"timeout_follow_up_message_source": {
"text": "string",
"prompt_id": 0,
"prompt_version_id": 0,
"prepared_message_id": 0,
"waba_template_id": 0,
"file_ids": [
0
],
"caption": "string"
},
"lead_field_names": [
"string"
],
"gate_mode": "enforce",
"gate_arming_labels": [
"needs_manager_fact"
],
"max_clarifications_per_day": 0
},
"tools_config": {
"calendar_enabled": false,
"crm_callback_tasks_enabled": false,
"hook_tools": [
{
"webhook_url": "string",
"backend_type": "n8n",
"tool_name": "string",
"refresh_ctx_after": false,
"llm_description": "string",
"wait_for_results_async": false,
"wait_for_results_async_timeout_seconds": 600
}
],
"files_to_send": [
0
]
},
"callback_task_config": {
"slot_duration_minutes": 30,
"lookahead_hours": 168,
"manager_web_call_links": {},
"manager_callback_tasks_enabled": {},
"reminders": [
{
"step_number": 0,
"before_minutes": 0,
"source": {
"text": "string",
"prompt_id": 0,
"prompt_version_id": 0,
"prepared_message_id": 0,
"waba_template_id": 0,
"file_ids": [
0
],
"caption": "string"
},
"use_event_provider_custom_fields": false
}
]
},
"hooks_config": {
"hooks": {}
},
"skip_crm_stage_sync_from_terminal_stage": false,
"inbound_lead_config": {
"stage_id": 0,
"quick_reply_enabled": false,
"quick_reply_text": "",
"reply_to_start_enabled": false,
"reply_to_start_text": ""
},
"voice_config": {
"llm_provider": "google",
"llm_fallback_enabled": true,
"llm_attempt_timeout": 0,
"gemini_model": "string",
"gemini_temperature": 0,
"gemini_thinking_level": "string",
"anthropic_model": "string",
"anthropic_temperature": 0,
"yandex_model": "string",
"yandex_temperature": 0,
"stt_provider": "soniox",
"soniox_model": "string",
"soniox_language_hints": [
"string"
],
"soniox_context": "string",
"deepgram_flux_model": "string",
"stt_keyterms": [
"string"
],
"tts_provider": "elevenlabs",
"elevenlabs_model": "string",
"elevenlabs_voice_id": "string",
"elevenlabs_language": "string",
"cartesia_model": "string",
"cartesia_voice_id": "string",
"cartesia_language": "string",
"gemini_tts_model": "string",
"gemini_tts_voice": "string",
"gemini_tts_instructions": "string",
"voice_agent_greeting_enabled": true,
"voice_agent_greeting": "string",
"voice_agent_greeting_allow_interruptions": true,
"voice_agent_greeting_delay_s": 0,
"voice_agent_opener": "string",
"tts_style_tags_enabled": true,
"cartesia_slowly_speed_ratio": 0,
"cartesia_whisper_volume_ratio": 0,
"cartesia_emotion_tags_enabled": true,
"cartesia_pause_break_ms": 0,
"livekit_interruption_enabled": true,
"livekit_interruption_mode": "vad",
"end_call_enabled": true,
"inactivity_pings_enabled": true,
"inactivity_timeout": 0,
"backchannel_enabled": true,
"backchannel_probability": 0
}
}