Розробка програм Бітрікс24 на React

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

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

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

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

  • 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

Розробка застосунків Бітрікс24 на React

Застосунки Бітрікс24 — це зовнішні веб-застосунки, що вбудовуються в інтерфейс порталу через iframe або відкриваються в окремій вкладці. Вони працюють через REST API Бітрікс24, отримують контекст користувача через BX24.js SDK і можуть вбудовуватись у різні місця інтерфейсу: бокова панель CRM, картка ліда, шапка порталу, окрема сторінка застосунку.

React — природний вибір для таких застосунків: компонентний підхід, багата екосистема, TypeScript-типізація REST API Бітрікс24.

Типи застосунків та їх архітектура

Вбудовані (embedded) застосунки — відображаються всередині інтерфейсу Бітрікс24 в iframe. Розмір фіксований або адаптивний через BX24.resizeWindow(). Доступні місця вбудовування: CRM_LEAD_DETAIL_TAB, CRM_DEAL_DETAIL_TAB, TASKS_TASK_VIEWFORM_SIDEBAR та десятки інших.

Standalone-застосунки — відкриваються на окремій сторінці в рамках Бітрікс24 (/apps/). Повноцінний SPA з власним роутингом.

Віджети — невеликі компоненти, що вбудовуються в конкретні картки. Наприклад, віджет у картці угоди, що показує історію поставок із зовнішньої ERP.

// Ініціалізація BX24 у React-застосунку
import { useEffect, useState } from 'react';

declare global {
  interface Window { BX24: any; }
}

function useBX24Init() {
  const [isReady, setIsReady] = useState(false);
  const [user, setUser] = useState(null);

  useEffect(() => {
    window.BX24.init(() => {
      setIsReady(true);
      window.BX24.callMethod('profile', {}, (result: any) => {
        setUser(result.data());
      });
    });
  }, []);

  return { isReady, user };
}

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

Авторизація в застосунку — через OAuth 2.0. Бітрікс24 видає access_token при відкритті застосунку в iframe (через postMessage або URL-параметри). Для серверних запитів (backend-to-Bitrix24) — авторизація через client_id + client_secret + webhook.

Типова архітектура: React-фронт робить запити до власного бекенду (не напряму в Бітрікс24), бекенд проксує до Бітрікс24 REST API з серверним токеном. Це приховує токени від браузера і дозволяє кешувати повторювані запити.

// React-хук для виклику Бітрікс24 REST через BX24.js (клієнтська сторона)
function useBX24Method<T>(method: string, params: object) {
  return useQuery({
    queryKey: ['bx24', method, params],
    queryFn: () =>
      new Promise<T>((resolve, reject) => {
        window.BX24.callMethod(method, params, (result: any) => {
          if (result.error()) reject(result.error());
          else resolve(result.data());
        });
      }),
    staleTime: 30_000,
  });
}

// Використання
const { data: deals } = useBX24Method<Deal[]>('crm.deal.list', {
  select: ['ID', 'TITLE', 'STAGE_ID', 'OPPORTUNITY'],
  filter: { ASSIGNED_BY_ID: currentUserId },
  order:  { DATE_MODIFY: 'DESC' },
});

Bitrix24 UI Kit у React

Бітрікс24 надає офіційний @bitrix24/b24jssdk і UI Kit на основі React-компонентів. Використання UI Kit забезпечує візуальну консистентність з інтерфейсом Бітрікс24 — застосунок виглядає як рідна частина порталу.

Компоненти UI Kit: Button, Input, Select, Table, Modal, Notification, Avatar, Badge. Стилізація через CSS-змінні — автоматично адаптується під тему порталу (світла/темна).

Кейс: застосунок для контролю SLA в CRM

Компанія B2B-послуг, 45 менеджерів, угоди проходять через 8 стадій. Завдання: віджет у картці угоди, що показує, скільки часу угода перебуває на поточній стадії, прапор порушення SLA (якщо більше норми), історія переходів за стадіями.

Штатний Бітрікс24 не має SLA-контролю в CRM Deal з коробки.

Реалізація:

Бекенд — Laravel (окремий сервер). При кожній зміні стадії угоди — вебхук від Бітрікс24 (event: ONCRMDEALUPDATE) записує перехід у таблицю deal_stage_history з мітками часу.

React-віджет вбудований у CRM_DEAL_DETAIL_TAB. При відкритті картки — запит на власний бекенд з DEAL_ID, який повертає: поточна стадія, час на стадії, SLA-норма для цієї стадії, статус (у нормі / порушено), список переходів.

Візуалізація: таймлайн стадій із кольоровою індикацією. Червоний — SLA порушено, жовтий — 75% часу використано, зелений — у нормі.

function SlaWidget({ dealId }: { dealId: number }) {
  const { data } = useSlaData(dealId);

  if (!data) return <Spinner />;

  return (
    <div className="sla-widget">
      <SlaTimer
        currentStage={data.currentStage}
        timeOnStage={data.timeOnStage}
        slaLimit={data.slaLimit}
        status={data.status}
      />
      <StageTimeline history={data.stageHistory} />
    </div>
  );
}

Сповіщення: при порушенні SLA бекенд надсилає сповіщення відповідальному менеджеру та його керівнику через im.notify.system.add REST API.

Метрика До Після
Порушення SLA без реакції ~35% угод/міс ~8% угод/міс
Час реакції при порушенні Години (ручний моніторинг) Хвилини (авто-сповіщення)
Видимість історії стадій Тільки лог активності Візуальний таймлайн

Вебхуки та real-time оновлення

Застосунки Бітрікс24 можуть підписуватись на події через вебхуки: зміна угод, завдань, контактів. Це дозволяє будувати застосунки з near-real-time оновленнями.

Для real-time у React — Server-Sent Events (SSE) або polling. WebSocket поверх Бітрікс24 — тільки через BX24.callMethod('pull.application.event.add') з модулем Push & Pull.

Публікація та деплой

Застосунок реєструється в Маркетплейс Бітрікс24 або встановлюється напряму на конкретний портал. Для корпоративних рішень — другий варіант: застосунок деплоїться на власний сервер, реєструється через Налаштування → Застосунки → Додати застосунок.

HTTPS обов'язковий — Бітрікс24 не завантажує HTTP-контент в iframe.

Склад робіт

  • Проєктування: місце вбудовування, API-методи, схема авторизації
  • Реєстрація застосунку в Бітрікс24, налаштування OAuth
  • Розробка бекенду: проксі REST, бізнес-логіка, вебхуки
  • Розробка React SPA: компоненти, стейт, інтеграція з BX24.js
  • Тестування на реальному порталі Бітрікс24, edge cases авторизації

Терміни: простий віджет-вставка — 1–2 тижні. Повноцінний standalone-застосунок із власним бекендом — 4–12 тижнів залежно від функціоналу.