Интеграция 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"></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-ключ выдан и эндпоинты отвечают на тестовые запросы.







