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