Prechat-форма и темы обращений
Попросите у посетителя имя, email или телефон до начала диалога — по одному вопросу в чате или одной формой.
Когда включать prechat
По умолчанию виджет ничего не спрашивает: посетитель сразу пишет в чат, а контакт сохраняется под служебным именем «Гость». Для большинства сайтов это правильный выбор — чем меньше шагов до первого сообщения, тем больше людей его отправят.
Prechat имеет смысл, когда:
- Поддержка чаще офлайн, чем онлайн, — нужен email, чтобы ответить позже.
- Обращения уходят в CRM, и без имени и контактов карточка клиента бесполезна.
Где настраивается
НастройкиКонструктор виджетаФормы и темы. Посетители увидят изменения после того, как вы нажмёте Опубликовать.
Поля prechat
full_name).extra_data.phone).| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
| forms.require_name | boolean | false | Переключатель «Запрашивать имя». Имя сохраняется в контакт (full_name). |
| forms.require_email | boolean | false | Переключатель «Запрашивать email». Если включён email-мост и выбран канал-мост, ответы операторов уходят на этот адрес, пока посетителя нет в чате. |
| forms.require_phone | boolean | false | Переключатель «Запрашивать телефон». Номер сохраняется в дополнительные данные контакта (extra_data.phone). |
| forms.prechat_style | "chat" | "form" | "chat" | Как собирать поля: «Чат-диалог» (бот спрашивает по одному полю прямо в ленте) или «Одна форма» (карточка со всеми полями). Переключатель «Стиль сбора данных» в том же разделе. |
| forms.pre_chat_message | string | { ru, en } | null | Поле «Сообщение перед чатом (опционально)». Показывается сообщением бота в начале нового диалога, пока посетитель не отправил первое сообщение. Это не подпись над формой. Пустое поле — ничего не показывается. Текст на каждом языке задаётся через переключатель языка в конструкторе. |
Что видит посетитель
Чат-диалог (по умолчанию)
- Бот спрашивает обязательные поля по очереди — имя, email, телефон — по одному вопросу за раз. Под полем ввода видно, сколько шагов осталось.
- Ответы проверяются: имя — не короче 2 символов, email и телефон — по формату. Если ответ не подходит, бот просит ввести ещё раз.
- После последнего поля виджет сохраняет данные в контакт и просит описать вопрос. Следующее сообщение посетителя начинает диалог, а вопросы бота и ответы сохраняются в тикете.
- Кнопки быстрых ответов, если они настроены, появляются после того, как поля собраны.
- Вопросы бота — встроенные тексты виджета на его языке (русском или английском). В конструкторе их нет; поменять их можно в НастройкиТексты и рассылкиТексты интерфейса (ключи
prechat.chat.*).
Одна форма
Посетитель пишет первое сообщение, и перед отправкой в ленте появляется карточка «Пожалуйста, представьтесь» с полями для обязательных данных и кнопкой «Начать чат». Когда посетитель её заполнит, данные сохраняются в контакт и сообщение уходит. Текст карточки — встроенный текст виджета, pre_chat_message на него не влияет.
Темы обращений
Темы (forms.topics) заводятся в этом же разделе конструктора. Если есть хотя бы одна тема, виджет перед первым сообщением нового диалога спрашивает, о чём вопрос, — как меню тем у Telegram-бота:
- в чат-диалоге бот после имени, email и телефона (если они нужны) предлагает темы кнопками; тему можно и написать. Затем бот по одному задаёт вопросы выбранной темы: варианты поля «Выбор» — кнопками, у необязательного поля есть кнопка «Пропустить»;
- в «Одной форме» темы и поля выбранной темы появляются в той же карточке, под полями контакта. Без темы и обязательных полей карточка не отправляется.
Тема и ответы уходят вместе с первым сообщением. Отдельного поля topic у тикета нет: в ticket.custom_fields записываются topic_id, topic_name и значения полей темы (fields) — так же, как у тем бота, поэтому оператор видит тему и ответы в карточке тикета. Первое сообщение с темой можно отправить и самому, через API виджета (POST /api/webhooks/widget/{workspace_id} с полем topic_id).
Формат темы — id, name и custom_fields. До 50 тем; id и name — от 1 до 100 символов; до 20 дополнительных полей на тему. Поле темы — id, label, type (text, email, phone, number, ip или select), required, подсказка placeholder, проверка regex (сверяется с началом ответа) со своим текстом ошибки error_message и, для select, варианты options в виде { value, label }: value — значение, которое присылают и которое сохраняется в тикете, label — подпись (без неё — тот же value). Варианты-строки из старых конфигов читаются как { value, label } с одинаковым текстом. В конструкторе поля темы настраиваются тем же редактором, что и у тем бота; для number и ip он подставляет стандартную проверку.
Значения полей присылают в том же запросе в custom_fields: [{ "id": …, "value": … }]. Пустое обязательное поле, значение select, которого нет среди value вариантов, и ответ, не прошедший regex, отклоняются с ошибкой 422 (required, invalid_option и format). Виджет проверяет ответы так же ещё до отправки.
[
{
"id": "billing",
"name": "Биллинг и оплата",
"custom_fields": [
{
"id": "plan",
"label": "Тариф",
"type": "select",
"required": true,
"options": [
{ "value": "basic", "label": "Basic" },
{ "value": "pro", "label": "Pro" }
]
}
]
},
{ "id": "tech", "name": "Техническая проблема", "custom_fields": [] },
{ "id": "other", "name": "Другое", "custom_fields": [] }
]
