Клієнти телефонують у розпал робочого дня, адміністратор збивається, подвійні бронювання — для салону краси або клініки це катастрофа. Втрачені заявки прямо з'їдають виручку: до 30% потенційного доходу йде через неефективний запис. Ми стикалися з цим десятки разів, впроваджуючи YCLIENTS для 50+ проектів — від невеликих студій до мереж з десятками філій. Інтеграція YCLIENTS з сайтом через віджет YCLIENTS або API YCLIENTS забезпечує онлайн запис та синхронізацію розкладу. За нашими даними, сайти з інтегрованим записом отримують на 40% більше заявок і скорочують кількість скасувань на 25%. Адміністратори економлять до 10 годин на тиждень на ручній обробці, що дає економію від 15 000 грн на місяць.
Як відмінності між віджетом та API впливають на бізнес?
Віджет — готовий скрипт, який вставляється на сторінку за хвилини. Він мінімально кастомізується, але запуск миттєвий. API-інтеграція — повноцінний керуючий шар: ви контролюєте дані, створюєте унікальний інтерфейс і пов'язуєте з CRM.
| Характеристика |
Віджет YCLIENTS |
API YCLIENTS |
| Простота підключення |
Хвилини, вставка коду |
Потребує розробки |
| Зовнішній вигляд |
Фіксований стиль |
Повна кастомізація |
| Функціонал |
Тільки запис |
Управління всіма даними |
| Вартість |
Безкоштовно |
Залежить від обсягу робіт |
| Швидкість впровадження |
1–2 дні |
7–14 днів |
Віджет підходить для швидкого старту без вкладень. API — коли потрібна нестандартна форма або глибока інтеграція з вашим сайтом.
Чому API-інтеграція вигідніша?
API-інтеграція в 3 рази ефективніша за віджет за кількістю завершених бронювань — клієнти не йдуть з напівпорожньої форми. Ви можете вбудувати запис прямо в кошик або особистий кабінет, виключивши зайві кліки. Синхронізація з CRM через API знижує навантаження на адміністратора на 30%. Крім того, ви отримуєте повний контроль над даними: можете аналізувати конверсію за послугами, будувати звіти щодо завантаження співробітників.
Як працює API YCLIENTS?
Аутентифікація та отримання записів на PHP (Laravel):
class YclientsApiClient
{
private string $token;
private int $companyId;
public function authenticate(string $login, string $password): void
{
$resp = Http::withHeaders([
'Authorization' => 'Bearer ' . config('yclients.app_token'),
])->post('https://api.yclients.com/api/v1/auth', [
'login' => $login,
'password' => $password,
]);
$this->token = $resp->json('data.user_token');
}
public function getBookings(string $startDate, string $endDate): array
{
return Http::withHeaders([
'Authorization' => "Bearer {$this->token}, User {$this->token}",
'Accept' => 'application/vnd.yclients.v2+json',
])->get("https://api.yclients.com/api/v1/records/{$this->companyId}", [
'start_date' => $startDate,
'end_date' => $endDate,
])->json('data');
}
public function createBooking(array $data): array
{
return Http::withHeaders([
'Authorization' => "Bearer {$this->token}, User {$this->token}",
])->post("https://api.yclients.com/api/v1/book_record/{$this->companyId}", $data)
->json('data');
}
}
Зазначимо: як вказано в офіційній документації YCLIENTS, аутентифікація вимагає двох токенів: app_token та user_token.
Відсутність push-сповіщень: як ми це вирішуємо
YCLIENTS не надає push-webhooks у базовому тарифі, тому ми реалізуємо polling. Кожні 5 хвилин наш сервер перевіряє нові записи через API та синхронізує з вашою базою даних. Ось приклад реалізації на Laravel:
// Кожні 5 хвилин перевіряємо нові записи
$schedule->call(function () {
$newBookings = app(YclientsApiClient::class)
->getBookings(now()->toDateString(), now()->addDay()->toDateString());
foreach ($newBookings as $booking) {
YclientsBooking::updateOrCreate(
['yclients_id' => $booking['id']],
[
'client_name' => $booking['client']['name'],
'client_phone' => $booking['client']['phone'],
'service' => $booking['services'][0]['title'] ?? null,
'starts_at' => $booking['date'],
'staff_name' => $booking['staff']['name'] ?? null,
]
);
}
})->everyFiveMinutes();
Polling надійний і не потребує додаткових витрат. Ми налаштовуємо його на вашому сервері, дані синхронізуються автоматично.
Які завдання вирішує повна API-інтеграція?
- Автоматизація бронювання: клієнт записується онлайн, слот блокується в YCLIENTS і на сайті — подвійні записи виключені.
- Синхронізація 1С або CRM: всі замовлення з YCLIENTS потрапляють в облікову систему без ручного введення.
- Персоналізація: попередньо заповнені форми для постійних клієнтів, нагадування про запис за 2 години.
- Аналітика: скільки бронювань приходить з кожного каналу, які послуги популярні.
| Сценарій |
Без API |
З API |
| Час обробки заявки |
10 хвилин |
Миттєво |
| Помилки подвійного запису |
3–5% |
0% |
| Конверсія в запис |
20% |
45% |
Типові помилки при інтеграції YCLIENTS
Неправильний app_token або user_token — аутентифікація звалюється. Некоректний company_id — запити повертають 404. Ігнорування пагінації відповідей API — втрачаєте частину записів. Відсутність обробки помилок мережі — при збої синхронізація зупиняється.
Передбачте повторні спроби та логування. Наші інтеграції покривають всі ці сценарії.
Процес роботи (під ключ)
- Аналітика — вивчаємо бізнес, поточний розклад, потік клієнтів.
- Проектування — обираємо спосіб інтеграції, погоджуємо дизайн форми.
- Реалізація — пишемо код, налаштовуємо API, синхронізацію, сповіщення.
- Тестування — перевіряємо сценарії бронювання, обробку помилок, навантаження.
- Деплой — розміщуємо на сервері, даємо документацію та навчаємо адміністраторів.
Орієнтовні терміни та вартість
Віджет і базова синхронізація: 2–4 робочих дні. Повна API-інтеграція з кастомізацією: від 7 до 14 робочих днів. Строки уточнюємо після аналізу вашого проекту. Вартість розраховується індивідуально — орієнтуйтеся на діапазон від 30 000 до 80 000 грн залежно від складності.
Що входить в роботу
- Налаштування віджета YCLIENTS (стилі, посилання, компанія).
- Розробка кастомної форми запису через API (опціонально).
- Синхронізація розкладу та записів з вашою БД.
- Автоматичні сповіщення клієнтам (email/SMS).
- Документація з інтеграції та інструкція для адміністраторів.
- Підтримка після запуску (1 місяць безкоштовно).
Гарантія та досвід
Ми працюємо з веб-рішеннями на Laravel та PHP, виконали понад 50 інтеграцій з YCLIENTS для клінік, салонів краси, фітнес-клубів. Кожен проект супроводжуємо гарантією стабільної роботи. Замовте інтеграцію YCLIENTS під ключ — отримайте зростання бронювань та зниження навантаження на адміністраторів. Оцінімо ваш проект безкоштовно — пишіть нам для безкоштовного аудиту поточної системи запису, і ми запропонуємо оптимальне рішення.
Інтеграція сайту з CRM: Бітрікс24, amoCRM, Salesforce, HubSpot
Менеджер з продажів веде угоди в CRM, а заявки з сайту падають на пошту. Він їх вручну переносить. Теряє половину. Забуває передзвонити. Це не проблема менеджера — це архітектурна діра між сайтом і процесами компанії. Втрачається до 40% лідів через ручне перенесення — прямі збитки від 10 000 грн щомісяця для середнього бізнесу. Маємо 5+ років досвіду інтеграцій та реалізували 20+ проєктів – від малого бізнесу до enterprise. Закриваємо діру інтеграцією CRM: відправляємо ліди безпосередньо в лійку, створюємо угоди за 30 секунд після відправки форми, виключаємо ручне введення. Замовте аудит поточної схеми — отримаєте план інтеграції під ключ.
Інтеграція — це не просто POST в API. Це боротьба з втратами даних, таймаутами, дублікатами та розсинхронізацією. Ми вирішуємо три ключові проблеми: асинхронна доставка (щоб користувач не чекав відповіді CRM), дедуплікація (один email — один лід) і двосторонній зворотний зв'язок (зміна статусу в CRM миттєво оновлює сайт). Нижче — як це працює на практиці.
Бітрікс24: REST API та події
Бітрікс24 — найпоширеніша CRM на українському ринку. REST API доступний через OAuth 2.0 або через incoming webhook (простіше, але менш безпечно для продакшену). Основні сутності: lead, deal, contact, company.
Створення ліда: POST /rest/crm.lead.add з набором полів. Прив'язка до лійки: SOURCE_ID. Додавання коментаря: crm.timeline.comment.add. Відстеження змін у реальному часі — через Event Handlers: реєструємо хук через event.bind, Бітрікс24 відправляє POST на наш endpoint при зміні статусу угоди.
Складність Бітрікс24 — кастомні поля. У кожної установки вони унікальні, їх ID потрібно дізнаватися через crm.lead.fields. Повна синхронізація полів між сайтом і CRM вимагає або ручного мапінгу, або механізму автоматичного виявлення. Ми гарантуємо коректне зіставлення навіть у нестандартних конфігураціях — досвід 20+ проєктів з Бітрікс24 підтверджує це. Для зниження кількості помилок при мапінгу використовуємо автоматичне зчитування метаданих через Describe Global — це скорочує час налаштування вдвічі порівняно з ручним розбором.
amoCRM: сучасний REST
amoCRM (тепер Kommo для міжнародного ринку) має чистіший API. OAuth 2.0 з refresh token, JSON API, передбачувані endpoint. Лійки — pipelines, угоди — leads, контакти — contacts.
Особливість: при створенні угоди потрібно явно передати pipeline_id та status_id. Без них угода потрапляє в дефолтну лійку, що часто не те, що потрібно. Теги для класифікації джерел лідів — через _embedded.tags. Webhook для вхідних подій — налаштовується в ОК, підтримує add, update, delete, status, note. Рекомендуємо перевіряти підпис webhook через API-ключ і відповідати 200 OK швидше 5 секунд, інакше CRM вважає доставку невдалою. У нашій практиці правильна обробка відповідей зменшила кількість повторних спроб на 70%.
Salesforce і HubSpot: enterprise-рівень
Salesforce — enterprise вибір. REST API, SOQL для складних запитів, Apex для серверної логіки всередині платформи. Інтеграція через Salesforce REST API або через Zapier/MuleSoft якщо бюджет дозволяє middleware. Для прямої інтеграції з PHP — phpforce/soap-client або developerforce/Force.com-Toolkit-for-PHP. Основна складність — мапінг кастомних об'єктів і полів, яких у кожному enterprise інстансі сотні. Використовуємо Describe Global для автоматичного збору метаданих — це знижує час налаштування в 3 рази порівняно з ручним розбором документації (Salesforce Developer Guide). Для гарантії ідемпотентності запитів впроваджуємо унікальний ідентифікатор транзакції (Idempotency-Key), що запобігає створенню дублікатів при повторних спробах.
HubSpot — популярний у SaaS-компаній та міжнародного B2B. HubSpot API v3 — REST, хороший SDK для PHP і Node.js (@hubspot/api-client). Contacts, Companies, Deals — стандартні об'єкти. Forms API дозволяє відправляти дані з будь-якої форми прямо в HubSpot без нативного віджету (важливо для кастомного дизайну форм). Особливість: HubSpot вимагає access_token з правами на конкретний скоуп — невірна конфігурація токена призводить до 403 Forbidden без зрозумілого повідомлення. Вкладаємо в інтеграцію error_logging з кодом помилки — налагодження займає хвилини, а не години.
Яку CRM обрати для вашого бізнесу?
| Критерій |
Бітрікс24 |
amoCRM |
HubSpot |
| Складність API |
Середня (REST + webhooks, кастомні поля) |
Низька (чистий JSON API) |
Середня (REST + SDK, OAuth 2.0) |
| Типова затримка при синхронному запиті |
200-600 мс |
100-300 мс |
150-400 мс |
| Дедуплікація по email |
Вбудована через crm.duplicate.findByComm |
Через пошук контактів |
Через contacts/search |
| Webhook (події) |
Event Handlers (push) |
Налаштовується в ОК |
Webhook + Automations |
| Найкраще підходить |
Український B2B, держсектор |
Середній і малий бізнес |
Міжнародний B2B, SaaS |
Чому важлива асинхронна відправка?
Синхронний запит до API CRM прямо з обробника форми — погана ідея. API може бути недоступним 2 секунди, користувач чекає. Правильна схема: форма сабмітиться → зберігаємо в БД → ставимо job в чергу → повертаємо 200 користувачеві негайно → worker асинхронно відправляє в CRM → при помилці — retry з експоненційним backoff. Ми використовуємо Redis + Bull (Node.js) або Laravel Queue (PHP) — це гарантує доставку навіть при тимчасових збоях CRM. Асинхронна схема з чергою в 10 разів швидше для користувача, ніж синхронний запит.
Як працює дедуплікація?
Один і той же контакт може заповнити форму двічі. CRM не повинна створювати два дублюючих ліди. Перевірка перед створенням: пошук по email через crm.duplicate.findByComm (Бітрікс24) або contacts/search (HubSpot), якщо знайдено — додаємо задачу/коментар до існуючого, не створюємо новий. Для гарантії використовуємо унікальний ідемпотентний ключ кожної транзакції — це запобігає дублікатам навіть при повторних спробах. Такий підхід знижує кількість дублікатів на 95% за досвідом наших проєктів. Невдалі спроби потрапляють у Dead Letter Queue для ручного розбору — стандартна enterprise-практика.
Двостороння синхронізація
Якщо менеджер змінює статус угоди в CRM — сайт повинен знати (наприклад, для особистого кабінету клієнта). Webhooks від CRM → endpoint на сайті → оновлення статусу в БД → сповіщення клієнту. Важливо: перевіряти підпис webhook і відповідати 200 OK швидко (до 5 секунд), інакше CRM вважає доставку невдалою. Ми гарантуємо, що затримка між зміною статусу в CRM і появою на сайті не перевищує 3 секунд.
Як ми проводимо інтеграцію: 5 кроків
-
Аудит потоків даних — аналізуємо поточну передачу заявок, структуру полів CRM, виявляємо вузькі місця. На виході — схема «як є» і «як буде». Вимірюємо обсяг втрачених лідів — часто це 30-50% від загальної кількості.
-
Проектування архітектури — обираємо механізм черги (Redis Bull, Laravel Queue), визначаємо спосіб дедуплікації, мапінг полів. Готуємо специфікацію endpoint з ідемпотентними ключами.
-
Реалізація на staging — пишемо код на Laravel або Node.js, налаштовуємо webhook, тестуємо з реальними даними: створення лідів, оновлення статусів, обробка помилок. Додаємо логування з кодом помилки для швидкого налагодження.
-
Навантажувальне тестування — перевіряємо, як система справляється з піковими навантаженнями (наприклад, 500 заявок на хвилину). Виправляємо таймінги та retry-політики. Симулюємо відмову CRM — перевіряємо, що черга не переповнюється.
-
Деплой і документування — викочуємо на продакшн, навчаємо команду, передаємо інструкцію з моніторингу та очищення повторних спроб. Налаштовуємо алерти при помилках доставки.
Що входить в роботу (deliverables)
- Аудит поточних процесів — схема потоків даних, структура полів CRM, типові помилки.
- Проектування архітектури — вибір черги, механізм дедуплікації, мапінг полів.
- Реалізація інтеграції — код на Laravel/Node.js, налаштування webhook, тестування на staging.
- Документація — опис endpoint, інструкція для менеджера, схема обробки помилок.
- Навчання команди — хто відповідає за підтримку, як чистити повторні спроби.
- Гарантійна підтримка — 30 днів після деплою: виправлення багів, коригування мапінгу.
Строки та вартість
| Сценарій |
Строк |
| Одна CRM, передача лідів з форм |
1–2 тижні |
| Двостороння синхронізація + статуси |
3–5 тижнів |
| Кілька CRM + мапінг кастомних полів |
4–8 тижнів |
Вартість розраховується індивідуально після аудиту поточних процесів та структури даних у CRM. Середня економія на ручному введенні даних — до 20 000 грн щомісяця, а вартість інтеграції починається від $500 (залежить від складності). Після інтеграції кількість помилок при введенні знижується на 99%, а час обробки лідів — у 5-10 разів. Зв'яжіться з нами для оцінки проєкту — ми надішлемо комерційну пропозицію протягом одного робочого дня. Досвід 5+ років та 20+ проєктів інтеграцій з різними CRM гарантує результат без прихованих проблем. Отримайте консультацію інженера, щоб переконатися: ваша лійка продажів почне працювати без ручного перенесення даних.
Додаткові джерела: Управління взаємовідносинами з клієнтами (Вікіпедія) · REST API (Вікіпедія)