# Идентификаторы посетителя

Для идентификация посетителей в системе и связывания его обращений **Webim** предусматривает возможность наличия у посетителя трёх разных идентификаторов:

| Идентификатор         | Вид                                                             | Описание                                                                                                                                                                                                                                                                                                       | Обязательный |
|-----------------------|-----------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------|
| `visitor_id`          | GUID-идентификатор                                              | Внутренний уникальный идентификатор посетителя в **Webim**, по которому происходит идентификация посетителя в системе. Присваивается посетителю, когда он оставляет обращение впервые.                                                                                                                         | Да           |
| `provided_visitor_id` | Зависит от конкретной системы, откуда передаётся идентификатор. | Идентификатор посетителя, присваиваемый в системе клиента, сообщаемый клиентом сервису **Webim**. Например, это может быть идентификатор пользователя в CRM-системе или на сайте клиента. Используется для маршрутизации чатов и обмена данными между **Webim** и системой клиента, с которой он интегрирован. | Нет          |
| `channel_user_id`     | Зависит от конкретного канала.                                  | Идентификатор посетителя в канале общения.                                                                                                                                                                                                                                                                     | Нет          |

## visitor_id

Данный псевдоуникальный идентификатор присваивается каждому посетителю и отображается в РМО в ходе диалога в поле **ID посетителя**:

![visitor_id](https://webim.ru/kb/img/dev/identification/visitor-ids/visitor-id.webp){ style="width: 1034px; max-width: 100%" }

Если пользователь обращается повторно и в его предыдущее обращение его идентификатор был сохранён в cookies браузера, он идентифицируется системой как ранее обращавшийся посетитель с тем же `visitor_id` [историей диалогов](https://webim.ru/kb/for-admins/view-dialog-history.html). Соответственно, если посетитель оставляет обращения через разные браузеры, то для **Webim** он является двумя разными пользователями с различными `visitor_id`.

Искать закрытые диалоги посетителя по `visitor_id` можно, воспользовавшись строкой поиска на странице **Истории диалогов**:

![Поиск в Истории диалогов по visitor_id](https://webim.ru/kb/img/dev/identification/visitor-ids/search-visitor-id-in-history.webp){ style="width: 1334px; max-width: 100%" }

Внутренний идентификатор также передаётся боту при назначении чата на него (см. раздел [Назначение чата на робота](https://webim.ru/kb/bots/smart-bot/v-2-0.html)), в также может передаваться по любому [пользовательскому API](https://webim.ru/kb/dev/api/custom-channel.html).

## provided_visitor_id

Данный идентификатор передаётся вместе с данными посетителя внутри объекта `visitor.fields`, когда обращение поступает из сторонней системы или сайта клиента, где посетитель авторизован (см. [Идентификация авторизованных клиентов](https://webim.ru/kb/dev/identification/id-2-0.html)). Вид `provided_visitor_id` может быть произвольным и зависит от системы клиента. Клиент должен обеспечить **уникальность** `provided_visitor_id`. В противном случае, если для разных посетителей будут переданы одинаковые идентификаторы, для **Webim** такие пользователи будут считаться одним человеком, как следствие, с общей историей диалогов.

Искать закрытые диалоги посетителя по `provided_visitor_id` можно, указав данный идентификатор в поле **ID посетителя** на странице **Истории диалогов**:

![Поиск в Истории диалогов по provided_visitor_id](https://webim.ru/kb/img/dev/identification/visitor-ids/filters-history-search-provided-visitor-id.webp){ style="width: 1334px; max-width: 100%" }

## Взаимосвязь provided_visitor_id и visitor_id

Когда `provided_visitor_id` впервые передаётся в **Webim**, то внутренний идентификатор **Webim** (`visitor_id`) вычисляется на основе переданного клиентом идентификатора посетителя. Таким образом **Webim** идентифицирует каждого посетителя с ненулевым `provided_visitor_id`, присваивая ему в связку свой `visitor_id`, благодаря чему авторизованный на сайте клиента посетитель считается тем же пользователем в **Webim**. В таком случае, каждый раз, когда посетитель будет авторизовываться в системе клиента и оставлять новые обращения, **Webim** будет идентифицировать его по старому `visitor_id` и подгружать старые чаты из истории.

При этом, если посетитель зашёл на сайт неавторизованным, а после этого авторизовался повторно в системе клиента с тем же `provided_visitor_id`, то его `visitor_id` до авторизации сменится на тот `visitor_id`, который ранее был привязан к `provided_visitor_id`. Т. е. для **Webim** до и после авторизации он будет считаться двумя разными посетителями.

!!! Note "N.B."
    В случае, если посетитель авторизуется через мобильное приложение с использованием **Webim Mobile SDK**, связанные с чатом поддержки push-уведомления будут приходить ему на **все устройства** и **во все приложения**, где он авторизован с использованием своего `visitor_id` и/или `provided_visitor_id`, т.е. в случае, если на одном устройстве имеется несколько мобильных приложений, связанных с одним сервером **Webim**, то уведомления о, например, новом сообщении придут во все эти приложения.

## channel_user_id

Данный идентификатор присутствует в случаях, если пользователь обращается через канал общения, и отображается в **РМО** в ходе диалога в блоке **Информация о посетителе**:

![channel_user_id в РМО](https://webim.ru/kb/img/dev/identification/visitor-ids/channel-user-id.webp){ style="width: 261px; max-width: 100%" }

Как и в случае с `provided_visitor_id`, каждому пользователю с новым `channel_user_id` присваивается `visitor_id`. В случае, если посетитель обращается за поддержкой через разные каналы общения (соответственно, имеет разные `channel_user_id` для каждого обращения), системой он воспринимается как три разных пользователя с разной историей диалогов и разными `visitor_id`.

При назначении чата на внешнего бота идентификатор канала, тип канала и `channel_user_id` передаются в событии `new_chat` в объекте `visitor.channel`. Подробнее см. в описании [Умного бота 1.0](https://webim.ru/kb/bots/smart-bot/v-1-0.html#new-chat) и [Умного бота 2.0](https://webim.ru/kb/bots/smart-bot/v-2-0.html#assigning-to-bot).

Вид канального идентификатора определяется правилами каждого отдельного канала. В таблице приведено описание идентификаторов для самых распространённых каналов, с которыми интегрируется **Webim** (в **Webim** считаются строкой).

| Канал                                                                                                       | Формат идентификатора                                                                                | Пример                     |
|-------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|----------------------------|
| [MAX](https://webim.ru/kb/channels/social-network-messengers/max.html)                                                      | Числовой идентификатор пользователя в MAX (`user_id`).                                               | `123456789`                |
| [Telegram](https://webim.ru/kb/channels/social-network-messengers/telegram.html)                                            | Восьмизначный числовой идентификатор.                                                                | `67854257`                 |
| [Viber](https://webim.ru/kb/channels/social-network-messengers/viber.html)                                                  | Строка, состоящая из латинских букв верхнего и нижнего регистров, цифр и символов.                   | `5dfjdg5lfg8dGjg0DF95+h==` |
| [WhatsApp](https://webim.ru/kb/channels/social-network-messengers/whatsapp/)[^whatsapp_footnote]                                      | Телефонный номер посетителя, указанный полностью, без символов.                                      | `79245685475`              |
| [ВКонтакте](https://webim.ru/kb/channels/social-network-messengers/vk.html)                                                 | Восьмизначный числовой идентификатор пользователя, содержащийся в ссылке на его профиль в ВКонтакте. | `16845896`                 |
| [Одноклассники](https://webim.ru/kb/channels/social-network-messengers/ok.html)                                             | Идентификатор в формате `chat:<строка из цифр и латинских букв верхнего и нижнего регистров>`        | `chat:C64kh5fffj974`       |

[^whatsapp_footnote]: WhatsApp принадлежит корпорации Meta, деятельность которой признана экстремистской и запрещена в РФ.

---

Источник: https://webim.ru/kb/dev/identification/visitor-ids.html
