Интеграция 1С-Битрикс с сервисами онлайн-записи (Dikidi)

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Интеграция 1С-Битрикс с сервисами онлайн-записи (Dikidi)
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1181
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    813
  • 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 Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Интеграция 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 выступает бэкендом расписания.

Архитектура:

  1. Кеширование услуг и мастеров. Ежедневный крон-скрипт (CAgent) запрашивает список услуг и мастеров из Dikidi API и сохраняет в highload-блок или инфоблок. Это нужно, чтобы страницы каталога услуг работали без запросов к API Dikidi на каждый хит.

  2. Компонент формы записи. Кастомный компонент custom:dikidi.booking на странице услуги:

    • Шаг 1: выбор мастера (данные из HL-блока)
    • Шаг 2: выбор даты и времени — AJAX-запрос к Dikidi API /schedule (в реальном времени, кешировать слоты нельзя — они меняются ежеминутно)
    • Шаг 3: контактные данные клиента
    • Шаг 4: подтверждение — POST /booking
  3. Обработка ответа. При успешной записи Dikidi возвращает booking_id. Сохраняем в HL-блок DikidiBooking с привязкой к пользователю Битрикс (если авторизован) и к записи CRM.

Синхронизация с CRM Битрикс24

Запись через сайт должна создавать лид или сделку в CRM:

  • При подтверждении записи — REST-запрос crm.lead.add или crm.deal.add с данными: имя клиента, телефон, услуга, мастер, дата/время
  • Источник лида — «Запись с сайта (Dikidi)» (добавить в справочник источников через crm.status.add)
  • В UF-поле сделки сохраняем booking_id Dikidi для сквозной связи

Обратная синхронизация: если менеджер отменяет сделку в 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-ключ выдан и эндпоинты отвечают на тестовые запросы.