Налаштування інтеграції Бітрікс24 з Redmine

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

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

Часті запитання

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1460
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1019
  • Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    764
  • Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    882
  • Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    809
  • Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1165

Як працює синхронізація Бітрікс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% конфліктів, і всі були вирішені автоматично.