Справочник полей cfg
Все настройки виджета одной страницей, с дефолтами — в том виде, в каком их отдаёт публичный /config.
brand
{
"accent_color": "#6366f1",
"theme": "auto",
"logo_url": null,
"accent_gradient": null,
"launcher_icon_url": null,
"launcher_icon_only": false,
"launcher_icon_transparent_bg": false,
"language": "auto",
"logo_shape": "rounded",
"logo_transparent_bg": false,
"header_title": "Поддержка",
"project_name": "",
"header_subtitle": null,
"position": "right",
"border_radius": 16,
"display_mode": "widget",
"show_branding": true,
"cover_image_url": null,
"about_description": null,
"background": { "type": "solid", "value": null },
"icon_pack_url": null,
"emoji_pack_id": null,
"team_avatars": []
}accent_gradient, если задан, — { "from_color": "#6366f1", "to_color": "#8b5cf6", "angle": 225 }.
language — «Язык виджета»: "auto", "ru" или "en". При auto виджет выбирает язык с учётом computed.locales (см. ниже и страницу «Бренд и шапка»).
welcome
{
"title": "Привет 👋",
"subtitle": "Чем помочь?",
"message": null,
"button_text": "Написать",
"response_time": "Обычно отвечаем за 5 минут",
"auto_open_delay": null,
"auto_open_in_telegram": true,
"auto_open_where": "all",
"auto_open_target": null,
"schedule": null,
"bot_menu": [],
"pinned_banner": {
"enabled": false,
"text": null,
"image_url": null,
"dismissable": true,
"show_on": ["home", "chat"]
},
"quick_replies": [],
"open_in_conversation": false,
"home_news": { "enabled": true, "count": 2 },
"home_articles": { "enabled": true, "layout": "tiles", "count": 4 }
}home_news и home_articles — блоки внизу главной: новости (count от 1 до 3) и статьи базы знаний с поиском (layout — "tiles" или "list", count от 2 до 6). Подробнее — «Главная вкладка и приветствие».
tabs
{
"help_enabled": true,
"news_enabled": true,
"miniapp_enabled": false,
"help_external_channel_url": null
}forms
{
"require_name": false,
"require_email": false,
"require_phone": false,
"pre_chat_message": null,
"topics": [],
"prechat_style": "chat"
}Тема — { id, name, custom_fields }. Варианты поля типа select — { value, label }: value попадает в тикет, label — подпись варианта (без неё — тот же value). Варианты-строки из старых конфигов читаются как { value, label } с одинаковым текстом.
conversation
{
"show_operator_name": true,
"show_operator_avatar": true,
"show_history": true,
"history_label": "Прошлые обращения",
"history_max_count": 10,
"rating": { "enabled": false, "prompt": "Как мы справились?" },
"privacy": {
"typing_enabled": true,
"read_receipts_enabled": true,
"operator_seen_enabled": true
},
"inline_keyboard_enabled": true,
"reactions_enabled": true
}hours
{
"show_work_hours": false,
"offline_message": "Мы оффлайн, ответим утром",
"outside_hours_message": "Сейчас вне рабочих часов",
"delayed_response_seconds": null,
"close_button_text": "Закрыть тикет",
"working_hours": [],
"away_segments": [],
"greeting_segments": [],
"timezone": "",
"exceptions": []
}working_hours, timezone и exceptions (праздники и особые рабочие дни: { date, is_working, start, end }) в ответе /config берутся из расписания проекта (Настройки → Рабочие часы), а не из конфига виджета.
system_messages
{
"ticket_confirmation_text": "Тикет создан",
"assigned": { "enabled": true, "text": "Оператор {operator} с вами" },
"department_transfer": { "enabled": true, "text": "Передаём в {department}" },
"operator_transfer_text": "Передаём другому оператору",
"snoozed": { "enabled": true, "text": "Откладываем до {time}" },
"resumed": { "enabled": true, "text": "Возвращаемся к вашему вопросу" },
"reopened": { "enabled": true, "text": "Тикет переоткрыт" },
"ticket_closed": {
"enabled": true,
"text": {
"ru": "🔒 Обращение закрыто оператором: {operator}",
"en": "🔒 Conversation closed by {operator}"
}
},
"blocked_reply": { "enabled": false, "text": null }
}email_bridge
{
"enabled": false,
"label": "Email для ответа",
"hint": "Пришлём ответ на почту",
"bridge_channel_id": null,
"auto_ack": { "enabled": false, "subject": null, "body": null }
}auto_ack.enabled — отправлять ли письмо-подтверждение; текст письма — шаблон «Подтверждение» в Email-шаблонах. subject и body используются один раз: ими заполняется этот шаблон, если его ещё нет.
advanced
{
"cookie_domain": null,
"sound": { "enabled": false, "url": null },
"custom_css": null,
"slow_mode": { "enabled": false, "seconds_per_message": 3, "anonymous_only": true },
"banned_patterns": [],
"slash_commands": [],
"feature_flags": {}
}miniapp, stories, security
{
"miniapp": {
"url": null,
"title": "App",
"height_px": 480
},
"stories": {
"enabled": false,
"max_visible": 6
},
"security": {
"allowed_origins": []
}
}visitor_notifications
{
"enabled": false,
"show_preview": false,
"sw_path": "/supporthub-sw.js"
}Уведомления посетителю об ответе оператора, когда его нет в чате — см. «Уведомления посетителю».
Что /config добавляет сверху
Секции выше под своими ключами — это конфиг по умолчанию (DEFAULT_WIDGET_CONFIG на бэкенде, без служебного _meta, который посетителям не отдаётся). В ответ /config добавляются вычисленные поля:
{
"i18n": {},
"i18n_by_locale": { "ru": {}, "en": {} },
"enabled": true,
"workspace_name": "Название проекта",
"message_rating_enabled": false,
"computed": {
"is_outside_hours": false,
"active_announcements_count": 0,
"work_hours_now": true,
"help_visible": false,
"news_visible": false,
"miniapp_visible": false,
"email_collect_required": false,
"locales": { "default": "ru", "supported": ["ru", "en"] }
}
}i18n — ваши тексты из «Тексты интерфейса» (только ключи виджета): с ?locale=ru или ?locale=en — этого языка, без параметра и с ?locale=all — русские. i18n_by_locale приходит с ?locale=all, если тексты заданы по языкам: в нём правки каждого языка, и виджет берёт правки своего языка (у языка без правок — стандартные тексты). Старые правки без деления на языки приходят только в i18n и действуют для всех языков.
computed.miniapp_visible — показывать ли вкладку мини-приложения: включён переключатель tabs.miniapp_enabled и задан miniapp.url.
computed.locales — языки, на которых есть тексты проекта (supported), и основной язык проекта (default). По ним виджет выбирает язык при brand.language: "auto". Тексты по умолчанию есть на обоих языках, отсюда ["ru", "en"] выше; проект, который вписал свои тексты только по-русски, получит { "default": "ru", "supported": ["ru"] }.

