Вернуться к списку Вернуться к статьям
Статьи

Синхронизация задач в межпортальных чатах 2.0

Синхронизация задач в межпортальных чатах 2.0

Введение

Первая версия межпортальных чатов решила задачу общения: партнёр и клиент на разных порталах Битрикс24 переписываются напрямую. Но вот что происходит дальше: в чате клиент пишет «настройте робота», «поправьте отчёт», «добавьте поле в сделку». Партнёр читает, открывает свой портал и вручную заводит задачу. Копирует заголовок, вставляет описание, выбирает группу и ответственного. На каждую задачу — несколько минут рутины. Десять задач в день — полчаса потерянного времени.

Синхронизация задач в межпортальных чатах 2.0 убирает этот ручной перенос полностью. Группы на порталах связываются, и задачи между ними синхронизируются автоматически. Раз в несколько минут. Без единого нажатия кнопки.

Как это работает

В основе лежит механизм автоматической синхронизации, работающий независимо от чатов. Он состоит из трёх частей: привязка порталов, сопоставление групп и периодический опрос задач.

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

Сопоставление групп. Партнёр в интерфейсе приложения выбирает, какая группа (проект) на его портале соответствует группе на портале клиента. Например: «Проект Внедрение CRM» на портале партнёра ↔ «Рабочая группа» на портале клиента. Для каждой пары групп можно указать ответственного с обеих сторон и направление синхронизации.

Периодический опрос. Раз в несколько минут планировщик на сервере приложения опрашивает обе группы через REST API Битрикс24. Он запрашивает задачи, созданные или изменённые с момента последней проверки. Если в группе клиента появилась новая задача, планировщик создаёт её копию в связанной группе партнёра. Если задача была изменена — обновляет копию.

Синхронизация двусторонняя: задачи ходят в обе стороны. Партнёр видит задачи клиента у себя в проекте, клиент видит задачи партнёра у себя. Каждая пара «оригинал — копия» отслеживается в базе — приложение знает, какая задача на каком портале кому соответствует.

Что именно синхронизируется

Синхронизация охватывает не только заголовок и описание, но и связанные данные:

  • Заголовок и описание. Основные поля задачи переносятся как есть.
  • Дедлайн. Дата завершения копируется при создании задачи.
  • Файлы. Документы и изображения, прикреплённые к задаче на одном портале, автоматически загружаются на Диск другого портала и прикрепляются к копии задачи. Синхронизация файлов работает через отдельный воркер и не замедляет создание задачи.
  • Изменения. Если задачу обновили на одном портале, изменения переносятся на другой. Используется стратегия Last-Writer-Wins: правка, сделанная позже, побеждает.

Настройка синхронизации

Настройка занимает несколько минут и делается один раз для каждой пары порталов:

  1. Партнёр генерирует пригласительный код в интерфейсе приложения
  2. Клиент вводит код на своей стороне — порталы связаны
  3. Партнёр в разделе «Синхронизация задач» выбирает пары групп для сопоставления
  4. Для каждой пары указывает: синхронизировать ли задачи от партнёра к клиенту, ответственного на стороне клиента, ответственного на стороне партнёра

После этого синхронизация работает автоматически. Приложение само отслеживает новые и изменённые задачи, создаёт и обновляет копии, синхронизирует файлы.

Сценарии использования

Проектное внедрение. Интегратор ведёт проект настройки CRM. Рабочая группа «Внедрение» на портале интегратора связана с группой «Проект CRM» на портале клиента. Клиент создаёт задачу «Настроить воронку продаж» — через пару минут она появляется в группе интегратора. Интегратор назначает ответственного, ставит дедлайн. Клиент видит обновления у себя. Оба работают в своих порталах, задачи синхронизируются автоматически.

Техническая поддержка. Компания обслуживает несколько клиентов по модели IT-аутсорса. Для каждого клиента настроена своя пара групп. Клиент создаёт задачу с описанием проблемы — через несколько минут она у инженера поддержки. Инженер прикрепляет скриншот с решением, меняет статус. Клиент видит изменения на своей стороне.

Бухгалтерский аутсорс. Бухгалтерская компания ведёт четырёх клиентов. У каждого своя группа на портале бухгалтера, связанная с группой клиента. Задачи по счетам, актам и отчётности создаются клиентом и автоматически попадают в нужную группу с назначенным ответственным бухгалтером. Дедлайны контролируются на стороне бухгалтера, клиент видит статус выполнения.

Что под капотом

Вторая версия приложения полностью переписана. Бэкенд — на Python (FastAPI), фронтенд — на Nuxt 4 с Bitrix24 UI. Синхронизация задач работает через периодический планировщик, который запускает цикл опроса для всех сопоставленных групп.

Опрос групп сделан инкрементальным: приложение запрашивает только задачи, изменённые с момента последней проверки, а не весь список. Это позволяет синхронизировать большие проекты с сотнями задач без лишней нагрузки на REST API Битрикс24.

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

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

Сравнение с ручным переносом

Ручной перенос задач — это несколько минут на каждую: открыть портал, создать задачу, скопировать заголовок, вставить описание, выбрать группу и ответственного, прикрепить файлы. Десять задач в день — полчаса рутины. Сотня задач — пять часов в неделю.

Автоматическая синхронизация убирает все эти шаги. Задача появляется в нужной группе с заполненными полями и файлами. Ответственный уже назначен из настроек сопоставления. Время на перенос: ноль.

FAQ

Как быстро синхронизируется задача после создания? Интервал опроса — несколько минут. В типовом сценарии задача появляется на другом портале через 1–5 минут после создания.

Что будет, если задачу удалили на одном портале? Приложение обнаруживает отсутствие задачи при следующем опросе и помечает копию на другом портале специальной меткой «· tsync-off». Сама копия не удаляется — решение об удалении остаётся за пользователем.

Можно ли синхронизировать задачи только в одну сторону? Да, в настройках сопоставления групп можно отключить синхронизацию от партнёра к клиенту. По умолчанию синхронизация двусторонняя: задачи ходят в обе стороны.

Что происходит с файлами, прикреплёнными к задаче? Файлы автоматически копируются на Диск целевого портала и прикрепляются к задаче-копии. Синхронизация файлов работает асинхронно — задача создаётся сразу, файлы подтягиваются в фоне.

Нужно ли клиенту устанавливать приложение? Да, приложение должно быть установлено на обоих порталах. Связывание происходит через пригласительный код, который генерирует партнёр.

Можно ли связать больше одной группы между порталами? Да, для каждой пары порталов можно создать несколько сопоставлений групп. Например, группа «Продажи» и группа «Поддержка» могут быть связаны отдельно с разными настройками.

Заключение

Синхронизация задач делает межпортальные чаты полноценной средой для совместной работы. Чат покрывает общение, синхронизация задач — проектную работу. Клиент и партнёр не покидают свои порталы, но при этом работают в едином контексте: задачи, дедлайны, файлы, обсуждения.

Приложение покрывает два главных канала взаимодействия между порталами — чаты и задачи. Партнёр получает полный цикл обслуживания клиента без выхода из Битрикс24.