Imconnector 26.250.0: Яндекс.Путешествия и привязка подключения
Ломающее обновление
Удалены или изменены публичные API — прикладной код может перестать работать.
Imconnector 26.250.0 добавляет Яндекс.Путешествия в Контакт-центр и связывает каждое подключение с отдельным binding_id. Для порталов Азербайджана, Армении и Молдовы есть несовместимое изменение: MAX исчезает из штатного списка доступных каналов.
Новое
Подключайте Яндекс.Путешествия к открытой линии
Новый компонент bitrix:imconnector.yandextravel подключает аккаунт Яндекс.Путешествий через OAuth. Канал доступен на российских порталах при включённом feature-флаге Bitrix\ImConnector\Public\Features\YandexTravel; по умолчанию флаг выключен. Один аккаунт можно связать только с одной открытой линией.
Входящие обращения попадают в открытую линию, сохраняются в CRM и распределяются между менеджерами. Коннектор работает без регионального proxy, поддерживает rich-сообщения и удаляет данные пользователя при подготовке исходящего сообщения.
Если аккаунт уже занят другой линией, компонент предлагает перенос. Он снимает прежние регистрации только с линий, которыми оператор может управлять. Неудачная новая регистрация запускает восстановление старых связей. В статусе подключения сохраняются владелец, имя аккаунта и binding_id.
Завершение OAuth выполняется POST-запросом с sessid. Перед подпиской входящего webhook компонент сверяет аккаунт и привязку с состоянием сервера. Popup принимает ответ только от callback_origin, который вернул сервер. Обычный GET не исправляет расхождение состояний без подтверждения пользователя.
Прямая страница настройки остаётся доступной для активной линии, даже если feature-флаг позже выключили. Это даёт оператору закончить начатое подключение или отключить канал.
Привязка защищает новое подключение от старой команды
Каждая регистрация получает свой binding_id. Метод deactivateConnectorBinding() меняет состояние линии только при совпадении идентификатора команды с текущей привязкой. Запоздалая команда от предыдущего подключения считается обработанной, но не переводит новую связь в ошибочное состояние.
Входящий webhook теперь может вернуть результат по каждому сообщению. isMessageAccepted() проверяет, создала ли открытая линия сообщение. Для Яндекс.Путешествий отказ возвращается с кодом IMCONNECTOR_MESSAGE_NOT_ACCEPTED; остальные коннекторы сохраняют прежний пустой ответ. Сервер канала может не подтверждать потерянную доставку и запросить её повторно.
Показывайте отказ рядом с исходным сообщением
Если канал отклонил сообщение или вложение, коннектор снимает отметки доставки и чтения, затем добавляет уведомление как ответ на конкретное сообщение. Ограничение Яндекс.Путешествий становится основным текстом ошибки, а сообщение внешнего провайдера сохраняется отдельно.
Bitrix\ImConnector\Connectors\Yandextravel отдельно обрабатывает отказ канала и статусы чтения. В Library появились идентификатор канала и списки его возможностей, включая возврат результата приёма и входящую идемпотентность.
Возможности канала отдельно описывают системные сообщения и подпись только для сообщений с текстом. Внутри Imconnector эта версия использует статусы чтения и возврат результата приёма; потребителей остальных флагов обновление пока не добавляет.
Что сломается
MAX больше не показывается в штатном каталоге коннекторов на порталах регионов az, am и md. Новое подключение канала через интерфейс в этих регионах станет недоступно. Для ru, by, kz, kg, tj и uz список не изменился.
Обновление не удаляет настройки существующих линий, поэтому по этому изменению нельзя утверждать, что уже подключённый MAX остановится. После установки проверьте доступность канала на порталах трёх исключённых регионов отдельно.