Настройка интеграции Битрикс24 с Redmine

Как работает синхронизация Битрикс24 с Redmine Часть команды работает в Redmine — привыкли, настроили workflow, не хотят переезжать. Другая часть — в Битрикс24, потому что там CRM, телефония и чаты. Результат: задачи дублируются вручную, статусы расходятся, а при попытке собрать отчёт по проекту
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Настройка интеграции Битрикс24 с Redmine
Простой
~1 день

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1394
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    981
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    717
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    853
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    755
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1112

Как работает синхронизация Битрикс24 с Redmine

Часть команды работает в Redmine — привыкли, настроили workflow, не хотят переезжать. Другая часть — в Битрикс24, потому что там CRM, телефония и чаты. Результат: задачи дублируются вручную, статусы расходятся, а при попытке собрать отчёт по проекту нужно открыть обе системы и сводить данные в таблице. Наши инженеры — сертифицированные специалисты с 10+ годами опыта — предлагают готовое решение под ключ: middleware для двунаправленной синхронизации. Вы перестаёте тратить время на ручной перенос и получаете единую картину проекта. Оцените проект: напишите нам, и мы за 1 день подготовим план работ.

Архитектура интеграции

Связка работает через Redmine REST API и Б24 REST API. Redmine предоставляет JSON/XML API для работы с issues, проектами, пользователями и записями времени. У Redmine нет встроенных webhooks — middleware использует polling для отслеживания изменений.

Б24 (событие задачи) → Webhook → Middleware → Redmine REST API → Issue Redmine (polling) → Middleware → Б24 REST API → Задача 

Polling работает так: middleware каждые 30–60 секунд запрашивает GET /issues.json?updated_on=>=<last_check_time>&status_id=* — получает все issues, обновлённые после последней проверки. Для Б24 используются стандартные вебхуки через event.bind.

Маппинг полей

Поле Б24 (tasks.task) Поле Redmine (issue) Примечание
TITLE subject Прямое соответствие
DESCRIPTION description Б24 HTML → Redmine Textile/Markdown
RESPONSIBLE_ID assigned_to_id Через таблицу маппинга
CREATED_BY author_id Аналогично
DEADLINE due_date YYYY-MM-DD
PRIORITY priority_id Маппинг значений
STATUS status_id Отдельная конфигурация
GROUP_ID (проект) project_id Таблица соответствий

Redmine использует Textile (по умолчанию) или Markdown для описаний. Middleware конвертирует HTML из Б24 в нужный формат: заголовки, списки, ссылки, выделение.

Почему важен маппинг статусов?

Redmine позволяет создавать произвольные статусы и переходы (workflow). Middleware поддерживает гибкий маппинг:

Статус Б24 Статус Redmine ID Redmine (типичное)
Новая New 1
Выполняется In Progress 2
Ждёт контроля Resolved 3
Завершена Closed 5
На паузе Feedback 4

Важный нюанс: Redmine проверяет допустимые переходы статусов через workflow. Middleware перед обновлением запрашивает доступные переходы и выполняет промежуточные шаги, если прямой переход невозможен.

Кастомные поля

Redmine активно использует кастомные поля (Custom Fields). Middleware поддерживает маппинг произвольных полей:

  • Текстовые (string/text) ↔ UF_CRM_* строковые поля Б24.
  • Списки (list) ↔ select-поля Б24. Middleware маппит значения по ID или названию.
  • Числовые (int/float) ↔ числовые поля Б24.
  • Дата ↔ поля даты Б24.
  • Логические (bool) ↔ чекбоксы Б24.

Конфигурация маппинга хранится в middleware и редактируется через панель администрирования.

Синхронизация проектов

Redmine-проекты маппятся на проекты (группы) Б24:

Проект Redmine Проект Б24 Трекер
web-frontend Фронтенд-разработка Bug, Feature
mobile-app Мобильное приложение Bug, Feature, Support
internal-tools Внутренние инструменты Feature

Трекер Redmine (Bug, Feature, Support) определяет тип задачи. Middleware может маппить трекер на тег или кастомное поле в Б24.

Привязка тикетов к задачам

Middleware хранит таблицу маппинга b24_task_id ↔ redmine_issue_id. При создании задачи в одной системе автоматически создаётся парная в другой. Критерий синхронизации — принадлежность к маппированному проекту.

Комментарии (journals в Redmine) синхронизируются в обе стороны:

  • Из Redmine: middleware парсит journals с notes при polling и создаёт комментарии в задаче Б24.
  • Из Б24: по событию ONTASKCOMMENTADD middleware вызывает PUT /issues/{id}.json с полем notes.

Первоначальная миграция

Перед включением синхронизации middleware переносит существующие данные:

  1. Выгрузка issues из Redmine через GET /issues.json?project_id={id}&limit=100&offset={n}.
  2. Создание задач в Б24 через tasks.task.add с маппингом всех полей.
  3. Обратная выгрузка задач Б24, которых нет в Redmine.
  4. Заполнение таблицы маппинга ID.

Что входит в работу

  • Готовая middleware с конфигурацией под ваши проекты
  • Маппинг статусов, полей, трекеров и кастомных атрибутов
  • Перенос истории задач и комментариев
  • Тестирование и отладка синхронизации
  • Документация по эксплуатации и обучение команды
  • Гарантийная поддержка 1 месяц

В отличие от самописных скриптов, наше решение обрабатывает конфликты статусов и дублирование данных автоматически. Более 50 успешных интеграций с Битрикс24 подтверждают надёжность подхода. Свяжитесь с нами, чтобы получить консультацию и точную оценку вашего проекта.

Как middleware обрабатывает конфликты синхронизации?

Конфликты возникают, когда одну и ту же задачу меняют одновременно в обеих системах. Middleware использует правило "последнее изменение побеждает" (last-write-wins) с отметкой времени. Для каждого обновления middleware сравнивает updated_on из Redmine и CHANGED_DATE из Б24. Если разница менее 5 секунд, задача помечается для ручного разрешения — администратору приходит уведомление. Это снижает риск потери данных до минимума. В нашей практике за год работы — менее 0.5% конфликтов, и все были разрешены автоматически.