# Профіль відвідувача, мітки й дії

> Передавайте тариф, компанію, власні поля, мітки й дії відвідувача зі свого сайту. Команда бачить їх поруч із розмовою. Обмеження й приватність.

Ваш сайт може повідомити команді, хто пише і що він щойно робив. Команда бачить це у вхідних поруч із розмовою й на сторінці контакту.

![Бічна панель контакту з компанією, тарифом, мітками й останніми діями](https://hrc.lt/screens/uk/inbox-contact-profile.desktop.1600.2126a006.webp)

## Що таке профіль відвідувача

- **Профіль:** ім'я, телефон, аватар, компанія, мітки й до 50 власних полів із типами.
- **Дії:** коротка історія того, що робив відвідувач (`track`).
- **Значення сесії:** що важливо для цієї розмови, надсилається з кожним повідомленням (`setContext`).

Профіль належить контакту й зберігається між розмовами. Значення сесії належать повідомленням. Вони не змішуються.

```js
// Після входу, з підписом, який обчислив ваш сервер
HrcWidget('identify', {
  externalId: String(customer.id),
  email: customer.email,
  name: customer.name,
  userHash: customer.supportHash,
  attributes: {
    plan: 'pro',
    signed_up_at: customer.createdAt,
    orders: customer.orderCount,
  },
  tags: customer.isVip ? ['vip'] : [],
});

// Пізніше, на будь-якій сторінці
HrcWidget('update', { attributes: { cart_items: 3, cart_total: 129.5 } });
HrcWidget('track', 'order-placed', { order_id: 'o-1042', total: 129.5 });
```

## Власні поля

| Правило   | Значення                                                                                          |
| --------- | ------------------------------------------------------------------------------------------------- |
| Ключ      | Малі літери, цифри, `_` і `-`, починається з літери, до 40 символів. Великі літери стають малими. |
| Типи      | Текст (від 1 до 255 символів), число, `true`/`false`, дата.                                       |
| Дата      | JS `Date` або рядок ISO 8601 (`2026-11-02`) у ключі, що закінчується на `_at` або `_date`.        |
| Кількість | До 50 полів на контакт.                                                                           |
| Видалити  | `null` або `''`.                                                                                  |
| Не можна  | Об'єкти й масиви (компанія це окреме поле).                                                       |

Зарезервовані ключі (`id`, `email`, `name`, `phone`, `company`, `tags`, `language`, `user_hash`, усе, що починається з `hrc_`, та інші) і ключі, схожі на секрети (`password`, `secret`, `token`, `cvv`, `card_number`, `iban`, `api_key`), відхиляються.

## Ім'я, телефон, аватар і компанія

- `name` до 120 символів.
- `phone` до 32 символів, щонайменше 5 цифр. Лише показується команді, ніколи не використовується для зв'язку.
- `avatarUrl` лише `https:`, до 500 символів. Якщо не завантажується, показуються ініціали.
- `company`: `{ id?, name, website?, plan? }`, одна компанія на контакт, `null` видаляє.

## Мітки й дії

Мітки (`setTags`): до 20 на контакт, малі літери, цифри й дефіс, до 32 символів.

Дії (`track`): назва з малих літер, цифр, `_`, `.` і `-`, до 64 символів. Найкраще читається минулий час: `plan-upgraded`, `checkout.failed`. До 10 властивостей. Зберігаються останні 100 дій, не довше ніж 180 днів. На бічній панелі видно останні 5, на сторінці контакту всі.

![Сторінка контакту з полями профілю, їхніми джерелами й діями](https://hrc.lt/screens/uk/contact-events.desktop.1600.7b908fcc.webp)

Дії потрібні для підтримки («що він щойно робив»), а не для аналітики.

## Хто що може змінювати

Кожне значення має джерело. Нижче джерело не перезаписує вище: поле пропускається, а віджет пише одне попередження в консолі.

| Джерело  | Хто пише                                              | У застосунку                  |
| -------- | ----------------------------------------------------- | ----------------------------- |
| Команда  | Учасник у застосунку, AI-агент через MCP або REST API | «задано командою»             |
| Ваш сайт | SDK, коли сесію розпізнано з дійсним `userHash`       | «з вашого сайту»              |
| Браузер  | SDK в анонімній сесії                                 | «з браузера, не підтверджено» |

```js
// Без входу: значення зберігаються як «з браузера, не підтверджено»
HrcWidget('update', {
  attributes: { landing_page: 'pricing', utm_source: 'newsletter' },
});
```

`userHash` підтверджує лише ID і ел. пошту. Значення, від яких щось залежить (тариф, баланс, права), надсилайте зі свого сервера через [REST API](https://hrc.lt/uk/docs/ai-agents/rest-api#trusted-profile): тоді їхнє джерело команда, і браузер не може їх змінити.

## Коли дані зберігаються

Доки відвідувач не надіслав повідомлення, не завантажив файл і не розпізнаний, нічого не зберігається ні в його браузері, ні на сервері. До того зміни профілю й до 20 дій чекають у пам'яті віджета й надсилаються одразу, щойно з'являється сесія. Після перезавантаження сторінки вони зникають.

## Приватність

Значення профілю, мітки й дії це персональні дані контакту, а ваша компанія їхній контролер. Ніколи не надсилайте паролі, дані платіжних карток, дані про здоров'я та інші особливі категорії даних. Під час видалення контакту видаляються і його дії.
