Інтеграція 1С-Бітрікс з сервісами онлайн-запису (Dikidi)
Салон краси або клініка ведуть запис в Dikidi — клієнти бронюють через додаток, майстри бачать розпис. Сайт на Бітрікс живе окремо: каталог послуг, ціни, акції, але записатися можна лише по телефону або через віджет Dikidi. Інтеграція потрібна, щоб сайт і система запису працювали як одне ціле: актуальний розпис на сайті, запис без переходу на зовнішній сервіс, дані клієнтів потрапляють в CRM.
Dikidi API: що доступно
Dikidi надає REST API для партнерів (документація за запитом через support). Основні ендпоінти:
-
GET /api/v2/company/{id}/services— список послуг з цінами та тривалістю -
GET /api/v2/company/{id}/masters— майстри з розписом -
GET /api/v2/company/{id}/schedule— вільні слоти на дату для конкретного майстра та послуги -
POST /api/v2/company/{id}/booking— створення запису (майстер, послуга, дата, час, дані клієнта) -
GET /api/v2/company/{id}/booking/{id}— статус запису
Авторизація — за API-ключем в заголовку Authorization. Ключ видається при підключенні тарифу з доступом до API.
Обмеження: не всі тарифи Dikidi включають API. На базовому тарифі доступний лише віджет (iframe). API — на тарифах «Бізнес» та вище. Уточніть перед початком робіт.
Варіант 1: віджет Dikidi (простий)
Dikidi надає iframe-віджет для вбудовування на сайт. Код вставки — один рядок в шаблоні компонента або в редакторі сторінки:
<iframe src="https://dikidi.net/widget/{company_id}" width="100%" height="700" title="Embedded content from dikidi.net"></iframe>
Плюси: працює за 10 хвилин, не потребує розробки. Мінуси: чужий дизайн всередину вашого сайту, немає контролю над UX, дані про запис не потрапляють в Бітрікс, SEO-цінність нульова.
Варіант 2: кастомна інтеграція через API
Повноцінна інтеграція, при якій форма запису — частина сайту на Бітрікс, а Dikidi виступає бекендом розпису.
Архітектура:
-
Кеширування послуг і майстрів. Щоденний крон-скрипт (
CAgent) запитує список послуг і майстрів з Dikidi API і зберігає в highload-блок або інфоблок. Це потрібно, щоб сторінки каталогу послуг працювали без запитів до API Dikidi на кожен хіт. -
Компонент форми запису. Кастомний компонент
custom:dikidi.bookingна сторінці послуги:- Крок 1: вибір майстра (дані з HL-блоку)
- Крок 2: вибір дати та часу — AJAX-запит до Dikidi API
/schedule(в реальному часі, кешувати слоти не можна — вони змінюються щохвилини) - Крок 3: контактні дані клієнта
- Крок 4: підтвердження —
POST /booking
-
Обробка відповіді. При успішному записі Dikidi повертає
booking_id. Зберігаємо в HL-блокDikidiBookingз прив'язкою до користувача Бітрікс (якщо авторизований) і до запису CRM.
Синхронізація з CRM Бітрікс24
Запис через сайт повинен створювати ліда або угоду в CRM:
- При підтвердженні запису — REST-запит
crm.lead.addабоcrm.deal.addз даними: ім'я клієнта, телефон, послуга, майстер, дата/час - Джерело ліда — «Запис з сайту (Dikidi)» (додати в довідник джерел через
crm.status.add) - В UF-поле угоди зберігаємо
booking_idDikidi для наскрізного зв'язку
Зворотна синхронізація: якщо менеджер скасовує угоду в CRM — webhook викликає DELETE /booking/{id} на API Dikidi. Реалізується через робота CRM на стадії «Скасована».
Webhook від Dikidi
Dikidi підтримує вихідні сповіщення про подіях (якщо налаштовано): новий запис, скасування, зміна. Endpoint на стороні Бітрікс — php-скрипт в /local/tools/dikidi_webhook.php, який:
- Перевіряє підпис запиту
- Створює або оновлює запис в HL-блоці
- Створює ліда в CRM (якщо запис зроблений через додаток Dikidi, а не через сайт)
Це закриває зворотний сценарій: клієнт записався через додаток Dikidi — сайт і CRM про це знають.
Підводні камені
- Часовий пояс. Dikidi зберігає час в UTC, Бітрікс — в серверному часовому поясі. Якщо не конвертувати — запис на 15:00 відобразиться як 18:00 (для UTC+3).
- Rate limit API. Dikidi обмежує частоту запитів. Якщо на сайті 10 користувачів одночасно вибирають слоти — можна упертися в лімітування. Рішення: кеширування списку майстрів і послуг, запити розпису — лише при виборі конкретного майстра та дати.
-
Дублі клієнтів. Один клієнт записується через сайт (створюється в Dikidi) і через додаток. Dikidi ідентифікує за телефоном — проблем немає. Але в CRM Бітрікс24 дубль може з'явитися, якщо webhook і обробник сайту створять двох лідів. Рішення: перед створенням ліда перевіряти
crm.duplicate.findbycomm.
Терміни реалізації
| Варіант | Роботи | Термін |
|---|---|---|
| Віджет (iframe) | Вставка кода, стилізація обгортки | 1 день |
| API-інтеграція: каталог + форма запису | Компонент, AJAX, кеширування, HL-блок | 1 тиждень |
| API + CRM + webhook + зворотна синхронізація | Повна двосторонняя інтеграція | 1.5–2 тижні |
Dikidi — закрита екосистема, і якість інтеграції залежить від доступності API на вашому тарифі. Перед стартом перевірте, що API-ключ видано і ендпоінти відповідають на тестові запити.







