Система приглашений

Кратко

Система приглашений позволяет администраторам подключать сотрудников клиентских компаний к платформе поддержки. Поддерживаются два типа приглашений: общая ссылка для компании (invite link) и персональное приглашение конкретному человеку (personal invite). Приглашения обрабатываются через публичную страницу join.html и бэкенд join.php. Данные хранятся в таблицах client_orgs (код ссылки) и client_invites (персональные приглашения).

Кто имеет доступ

РольСоздание ссылкиПерсональное приглашениеОтмена приглашения
АдминистраторДаДаДа
РуководительДаДаДа
ОператорС правом управления доступом клиентовС правом управления доступом клиентовС правом управления доступом клиентов
Сотрудник клиентаНетНетНет

Право управления доступом клиентов у администратора и руководителя есть по роли, оператору его выдают отдельно.

Где найти

Управление приглашениями доступно из карточки компании:

  1. Перейти в Клиенты — откроется список компаний (#orgs).
  2. Нажать на строку нужной компании — откроется её карточка.
  3. В карточке — раздел «Ссылка для подключения» и раздел «Участники», где под списком участников показываются персональные приглашения и есть кнопка + Пригласить.

Публичная страница принятия приглашения: https://support.tehprof.kz/join.html.

Как работает

Два типа приглашений

ТипПараметр URLТаблицаОписание
Ссылка компании?code=XXXXclient_orgs.invite_codeОбщая ссылка, по которой может присоединиться любой
Персональное?t=XXXXclient_invites.invite_tokenОтправляется конкретному контакту (email или телефон)

Не путайте эти ссылки с кодом привязки клиента к партнёру в Bitrix24 — тот привязывает целый портал клиента к компании поддержки, а не подключает отдельного сотрудника к личному кабинету.

Компания получает уникальный код при создании; если ссылки у компании нет, её можно создать кнопкой в карточке. Формат ссылки: https://support.tehprof.kz/join.html?code=ABC123.

Поведение зависит от режима:

  • Открытый — после подтверждения контакта пользователь сразу получает доступ.
  • С одобрением — создаётся запись со статусом pending, доступ подтверждается вручную.
  • Закрыт — ссылка не принимается, возвращается ошибка 403.

Ссылку можно сменить кнопкой Сменить ссылку — старая перестаёт работать.

Персональное приглашение (personal invite)

Сотрудник с правом управления доступом клиентов создаёт приглашение, указывая контакт (email или телефон) и имя получателя. Система генерирует уникальный токен и формирует ссылку join.html?t=TOKEN, действующую 72 часа.

Статусы приглашения:

СтатусОписание
pendingОжидает принятия
acceptedПринято — пользователь получил доступ
expiredИстёк срок действия
cancelledОтменено оператором

Персональные приглашения всегда дают статус active (не требуют подтверждения), в отличие от ссылки в режиме «С одобрением».

Процесс принятия приглашения

  1. Пользователь открывает ссылку join.html.
  2. Фронтенд вызывает join.php?action=info — получает название компании и тенанта.
  3. По ссылке компании пользователь вводит имя и один контакт — email или телефон. Фронтенд вызывает accept_link, и на этот контакт уходит код подтверждения (действует 10 минут); пользователь подтверждает его кнопкой из сообщения или вводит код вручную (confirm_link).
  4. По персональному приглашению контакт уже указан в приглашении — фронтенд вызывает accept_invite.
  5. Бэкенд находит или создаёт запись в users (через find_or_create_user), создаёт user_orgs.
  6. Пользователь видит подтверждение подключения. Пароль не задаётся: клиент входит одноразовым кодом на свой контакт.

Безопасность

  • Rate limiting: не более 10 попыток за 15 минут с одного IP; коды подтверждения на один контакт — не более 3 в час.
  • Подтверждение контакта: по ссылке компании доступ выдаётся только после ввода кода, отправленного на указанный контакт.
  • Токены: генерируются криптографически стойким способом.
  • Срок действия: персональные приглашения имеют expires_at — после истечения автоматически помечаются как expired.
  • Проверка тенанта: принимаются только приглашения от тенантов со статусом active или trial.

API

ДействиеEndpointДоступ
Информация о приглашенииjoin.php?action=infoПубличный
Принять ссылку компанииjoin.php?action=accept_linkПубличный
Подтвердить код по ссылкеjoin.php?action=confirm_linkПубличный
Принять персональноеjoin.php?action=accept_inviteПубличный
Создать приглашениеadmin.php?action=create_client_inviteС правом управления доступом клиентов
Отменить приглашениеadmin.php?action=cancel_client_inviteС правом управления доступом клиентов
Повторить приглашение (новый токен)admin.php?action=resend_client_inviteС правом управления доступом клиентов
Список приглашенийadmin.php?action=list_client_invitesОператор+

Частые вопросы

Может ли пользователь присоединиться без пароля?

Да. Пароль при принятии приглашения не запрашивается: клиент подтверждает контакт кодом и потом входит тем же способом — одноразовым кодом.

Что произойдёт, если отправить приглашение на уже зарегистрированный email?

Система найдёт существующего пользователя и просто создаст связь с компанией (user_orgs). Дублирования аккаунтов не произойдёт.

Как отправить ссылку клиенту?

Скопируйте ссылку из карточки компании (кнопка Копировать ссылку) и отправьте через любой канал: email, WhatsApp, Telegram, мессенджер. Система не отправляет ссылку автоматически.

Чем приглашённые пользователи отличаются от контактов Bitrix24?

Это разные сущности: приглашение даёт доступ в личный кабинет Support, а контакты клиента собираются отдельно и автоматически из порталов Bitrix24.

Связанные статьи

Нужна поддержка, которая так и работает?

TehProf.kz Support собирает обращения из WhatsApp, Telegram, почты и виджета в одну очередь, считает сроки по SLA и показывает, где служба проседает.