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

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

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

Етапи розробки

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

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Налаштування інтеграції Bitrix24 з Redmine

Частина команди працює в Redmine — привикла, налаштувала workflow, не хоче переїжджати. Інша частина — в Bitrix24, бо там CRM, телефонія та чати. Результат: задачі дублюються вручну, статуси розходяться, а при спробі зібрати звіт по проекту потрібно відкрити обидві системи та звести дані в таблиці. Redmine та Б24 можна зв'язати через API та перестати тратити час на ручний перенос.

Архітектура інтеграції

Зв'язка працює через 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) ↔ рядкові поля Б24 UF_CRM_*.
  • Списки (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.

Аутентифікація

  • Redmine: API Key (My Account → API access key). Передається в заголовку X-Redmine-API-Key. API необхідно увімкнути в Administration → Settings → API.
  • Б24: OAuth 2.0 з scope task,user.
  • Middleware зберігає ключі зашифрованими. Для Redmine на self-hosted — middleware повинен мати мережевий доступ до сервера.

Що впроваджуємо

  • Middleware для двунаправленої синхронізації задач Б24 та тикетів Redmine
  • Polling-механізм для відстеження змін у Redmine
  • Маппінг полів, статусів, пріоритетів та кастомних полів
  • Синхронізацію коментарів між системами
  • Маппінг проектів та трекерів
  • Першочергову міграцію існуючих даних