Идентификация посетителя
Свяжите посетителя виджета с учётной записью на своём сайте и подтвердите его внешний ID подписью.
Основной раздел: Параметры инициализации.
Данные пользователя
В user передаются данные, с которыми Senler создаёт или обновляет лида виджета. Передавайте только сведения о текущем посетителе, разрешённые вашей политикой обработки данных.
| Поле | Что передавать и как оно используется |
|---|---|
external_id | Стабильный ID авторизованного пользователя в вашей системе. Если поле задано, user_hash обязателен. |
user_hash | HMAC-SHA256-подпись external_id, вычисленная на сервере сайта с секретом канала и переданная как 64 шестнадцатеричных символа. |
email | Email лида. Непустое значение сохраняется при создании и обновляет существующего лида. |
phone | Скрипт-загрузчик и API принимают строку, но не сохраняют её в профиль лида. |
first_name, last_name | Имя и фамилия лида. Непустые значения сохраняются при создании и обновлении. |
avatar_url | Публичный HTTPS URL без логина и пароля. Явно переданное пустое, некорректное или локальное значение означает отсутствие аватара и удаляет ранее сохранённый аватар существующего лида. |
data | Обычный JSON-совместимый объект дополнительных данных. При повторной инициализации непустой объект поверхностно объединяется с сохранёнными данными: отсутствующие ключи не удаляются. |
Подпись внешнего ID
external_id всегда передавайте вместе с user_hash: без подписи инициализация отклоняется. Переключатель привязки к авторизации в кабинете добавляет эти поля в сгенерированный код и открывает секрет и серверные примеры, но не включает и не отключает саму проверку. Секрет нельзя помещать в HTML, конфигурацию загрузчика или другой браузерный код. Подробная настройка показана в разделе «Привязка к авторизованному пользователю».
Например, на сервере Node.js подпись формируется по точному значению external_id:
import { createHmac } from "node:crypto";
const userHash = createHmac("sha256", channelSecret)
.update(externalId)
.digest("hex");
В браузер передайте только значения externalId и готового userHash в полях external_id и user_hash; channelSecret должен остаться на сервере.
История и доступ к сервисам
При подписанной привязке история относится к одному аккаунту на разных устройствах. Без external_id Senler создаёт анонимную браузерную сессию, поэтому после смены браузера или устройства прежняя история недоступна.
Чтобы не собирать объект user вручную, откройте «Пример формирования кода» в настройках канала. В этой инструкции показано, как выбрать поля, добавить пары в user.data и скопировать пример. Конструктор показывает допустимый формат данных, но не меняет основной код канала.
Подпись user_hash подтверждает личность посетителя, а доступ агента к внешнему сервису настраивается отдельно. Для установленного MCP с авторизацией по лидам backend может заранее сохранить пользовательский токен методом POST /api/mcp-servers/external-user-credentials. Полная последовательность, параметры, обновление и отзыв описаны в авторизации пользователя сайта в MCP.