Карточка клиента — переменные
Карточка клиента в обращении может показывать данные из вашего API. В запросы к нему подставляются данные контакта.
Настраивается в «Настройки → Работа операторов → Карточка клиента» (владелец и администраторы). В «Источниках данных» задаются запросы к вашему API: URL, HTTP-метод, заголовки и тело (JSON, форма, произвольный текст или без тела). В «Блоках карточки» — что показать оператору: «Отображение данных», «Список», «Кнопка действия» или VPN-карточку. Каждый источник запрашивается один раз, когда открывается карточка; ответа ждут до 10 секунд.
Переменные контакта
Подставляются в URL, заголовки и тело запроса источника и кнопки действия:
| Переменная | Значение |
|---|---|
| {contact_id} | ID контакта в SupportHub (UUID) |
| {internal_id} | ID посетителя виджета; у анонимного посетителя вида vs_… |
| {user_id} | то же, что {internal_id} |
| {external_id} | внешний ID контакта, например из вашей CRM (задаётся через API контактов) |
| {telegram_id} | Telegram ID |
| {vk_id} | VK ID |
| {whatsapp_id} | WhatsApp ID (вида 15551234567@s.whatsapp.net) |
| {phone} | номер из WhatsApp ID без @s.whatsapp.net |
| {email} | email контакта |
- В кнопках действий есть ещё
{input.<id>}— значения полей ввода, которые заполняет оператор, а в действиях для элемента списка —{item.<поле>}, поля выбранного элемента. - ID из подписанного токена посетителя в переменные не попадает. Для таких клиентов опирайтесь на
{telegram_id},{email}или{external_id}.
Синтаксис
| Запись | Что делает |
|---|---|
| {field} | значение поля; пустая строка, если его нет |
| {a|b|c} | первое непустое значение из перечисленных |
| {?field}…{/?} | блок остаётся, только если поле непустое |
| {?!field}…{/?} | блок остаётся, только если поле пустое |
| {?a|b}…{/?} | блок остаётся, если непустое хотя бы одно из полей |
Условные блоки можно вкладывать друг в друга. Если тип тела — JSON, после подстановки оно должно остаться корректным JSON, иначе запрос не выполнится.
Пример 1 — условный JSON с несколькими идентификаторами
Запрос передаёт тот идентификатор, который есть у контакта. Условные блоки гарантируют, что в JSON попадёт только одно поле.
{
"method": "user.get",
"params": {
{?external_id}"user_id": "{external_id}"{/?}{?!external_id}{?telegram_id}"telegram_id": {telegram_id}{/?}{?!telegram_id}{?vk_id}"vk_id": {vk_id}{/?}{?!vk_id}{?email}"email": "{email}"{/?}{/?}{/?}{/?}
}
}Пример 2 — первый непустой идентификатор
Запись {a|b|c} подставляет первое непустое значение. Удобно, когда API принимает любой идентификатор в одном поле.
{
"query": "{telegram_id|vk_id|email|internal_id}",
"source": "supporthub"
}Кнопки-ссылки
В URL-шаблоне кнопок-ссылок подставляются значения из ответа вашего API: {field.path} — путь к полю через точку. Модификатор :b64 кодирует значение в URL-safe base64 без паддинга — например, для deep-link в Telegram. Если какого-то значения в ответе нет, кнопка не показывается.
Режим стримера
Заранее неизвестно, какие поля вашей карточки — личные данные, поэтому у каждого блока с данными («Отображение данных», «Список», VPN-карточка) есть раздел «Режим стримера». Он решает, что размывается у оператора, который включил режим стримера:
- «Скрыть весь блок» размывает все значения блока, что бы в них ни было. Подписи полей остаются видны.
- Для каждого поля — «Авто», «Скрывать» или «Показывать». «Авто» скрывает поле, если его ключ или название похожи на личные данные: почта, телефон, Telegram, VK, WhatsApp, ID и «внутренний», баланс, IP, адрес, карта, кошелёк, токен, пароль, паспорт, ИНН, СНИЛС, имя, фамилия, дата рождения, ссылка. Что выберет «Авто», видно сразу: «Авто: скрывается» или «Авто: видно».
- Выбор привязан к пути поля (
user.email), а не к подписи: переименование подписи его не сбрасывает, а если поменять путь, выбор переезжает вместе с полем. У списка путь считается внутри элемента, поэтомуnameв спискеconfigs— название конфига, а не имя человека. - Блок без списка полей показывает ответ API целиком: его ключи скрываются по правилам «Авто», а ключ, за который нужно решить явно, добавляется вручную.
- У VPN-карточки перечислены её собственные поля: имя, Telegram, ID, email, баланс, суммы платежей и выводов, реквизиты, подписки, статистика и другие.
…?start=get_u_{user.id}). По клику ссылка открывается как обычно.
