Синхронизация задач в межпортальных чатах 2.0
Введение
Первая версия межпортальных чатов решила задачу общения: партнёр и клиент на разных порталах Битрикс24 переписываются напрямую. Но вот что происходит дальше: в чате клиент пишет «настройте робота», «поправьте отчёт», «добавьте поле в сделку». Партнёр читает, открывает свой портал и вручную заводит задачу. Копирует заголовок, вставляет описание, выбирает группу и ответственного. На каждую задачу — несколько минут рутины. Десять задач в день — полчаса потерянного времени.
Синхронизация задач в межпортальных чатах 2.0 убирает этот ручной перенос полностью. Группы на порталах связываются, и задачи между ними синхронизируются автоматически. Раз в несколько минут. Без единого нажатия кнопки.
Как это работает
В основе лежит механизм автоматической синхронизации, работающий независимо от чатов. Он состоит из трёх частей: привязка порталов, сопоставление групп и периодический опрос задач.
Связывание порталов. Партнёр и клиент связывают свои порталы через пригласительный код. Код генерируется на стороне партнёра, клиент вводит его в своём приложении. После этого порталы считаются связанными — появляется техническая возможность для обмена данными.
Сопоставление групп. Партнёр в интерфейсе приложения выбирает, какая группа (проект) на его портале соответствует группе на портале клиента. Например: «Проект Внедрение CRM» на портале партнёра ↔ «Рабочая группа» на портале клиента. Для каждой пары групп можно указать ответственного с обеих сторон и направление синхронизации.
Периодический опрос. Раз в несколько минут планировщик на сервере приложения опрашивает обе группы через REST API Битрикс24. Он запрашивает задачи, созданные или изменённые с момента последней проверки. Если в группе клиента появилась новая задача, планировщик создаёт её копию в связанной группе партнёра. Если задача была изменена — обновляет копию.
Синхронизация двусторонняя: задачи ходят в обе стороны. Партнёр видит задачи клиента у себя в проекте, клиент видит задачи партнёра у себя. Каждая пара «оригинал — копия» отслеживается в базе — приложение знает, какая задача на каком портале кому соответствует.
Что именно синхронизируется
Синхронизация охватывает не только заголовок и описание, но и связанные данные:
Заголовок и описание. Основные поля задачи переносятся как есть.
Дедлайн. Дата завершения копируется при создании задачи.
Файлы. Документы и изображения, прикреплённые к задаче на одном портале, автоматически загружаются на Диск другого портала и прикрепляются к копии задачи. Синхронизация файлов работает через отдельный воркер и не замедляет создание задачи.
Изменения. Если задачу обновили на одном портале, изменения переносятся на другой. Используется стратегия Last-Writer-Wins: правка, сделанная позже, побеждает.
Настройка синхронизации
Настройка занимает несколько минут и делается один раз для каждой пары порталов:
Партнёр генерирует пригласительный код в интерфейсе приложения
Клиент вводит код на своей стороне — порталы связаны
Партнёр в разделе «Синхронизация задач» выбирает пары групп для сопоставления
Для каждой пары указывает: синхронизировать ли задачи от партнёра к клиенту, ответственного на стороне клиента, ответственного на стороне партнёра
После этого синхронизация работает автоматически. Приложение само отслеживает новые и изменённые задачи, создаёт и обновляет копии, синхронизирует файлы.
Сценарии использования
Проектное внедрение. Интегратор ведёт проект настройки CRM. Рабочая группа «Внедрение» на портале интегратора связана с группой «Проект CRM» на портале клиента. Клиент создаёт задачу «Настроить воронку продаж» — через пару минут она появляется в группе интегратора. Интегратор назначает ответственного, ставит дедлайн. Клиент видит обновления у себя. Оба работают в своих порталах, задачи синхронизируются автоматически.
Техническая поддержка. Компания обслуживает несколько клиентов по модели IT-аутсорса. Для каждого клиента настроена своя пара групп. Клиент создаёт задачу с описанием проблемы — через несколько минут она у инженера поддержки. Инженер прикрепляет скриншот с решением, меняет статус. Клиент видит изменения на своей стороне.
Бухгалтерский аутсорс. Бухгалтерская компания ведёт четырёх клиентов. У каждого своя группа на портале бухгалтера, связанная с группой клиента. Задачи по счетам, актам и отчётности создаются клиентом и автоматически попадают в нужную группу с назначенным ответственным бухгалтером. Дедлайны контролируются на стороне бухгалтера, клиент видит статус выполнения.
Что под капотом
Вторая версия приложения полностью переписана. Бэкенд — на Python (FastAPI), фронтенд — на Nuxt 4 с Bitrix24 UI. Синхронизация задач работает через периодический планировщик, который запускает цикл опроса для всех сопоставленных групп.
Опрос групп сделан инкрементальным: приложение запрашивает только задачи, изменённые с момента последней проверки, а не весь список. Это позволяет синхронизировать большие проекты с сотнями задач без лишней нагрузки на REST API Битрикс24.
Top comments (0)