Інтеграція HubSpot з сайтом: налаштування CRM API під ключ
При запуску інтернет-магазину на Laravel зіткнулися з проблемою: ліди з форми зворотного зв'язку губилися, менеджери вручну переносили дані 20+ контактів щодня. HubSpot CRM та її API вирішили задачу — тепер дані течуть автоматично, без копіпасту. За час нашої роботи ми інтегрували HubSpot з десятками проєктів: від односторінкових сайтів до великих маркетплейсів. Знаємо типові граблі та як їх обійти.
HubSpot — CRM з відкритим REST API, безоплатним тарифом та вбудованим трекінгом. Інтеграція дозволяє передавати контакти, угоди, події та запускати ланцюжки листів без участі розробника після налаштування. Ми забезпечуємо повний цикл: від аудиту до впровадження. Автоматизація скорочує час обробки ліда на 60% — цифри з нашої практики. В одному проєкті після інтеграції кількість оброблених заявок зросла з 20 до 70 на день без розширення штату.
Як передати ліди через Forms API?
Forms API — простий endpoint для надсилання даних форми. Приклад на JavaScript:
const PORTAL_ID = '12345678'; const FORM_ID = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'; const response = await fetch( `https://api.hsforms.com/submissions/v3/integration/submit/${PORTAL_ID}/${FORM_ID}`, { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({ fields: [ {name: 'firstname', value: formData.firstName}, {name: 'lastname', value: formData.lastName}, {name: 'email', value: formData.email}, {name: 'phone', value: formData.phone}, {name: 'message', value: formData.message} ], context: { hutk: getCookie('hubspotutk'), pageUri: window.location.href, pageName: document.title } }) } ); hutk пов'язує лід з історією візиту — без нього атрибуція зламається. Важливо перевіряти відповідь сервера: код 200 — лід створено, 400 — помилка валідації. Обробляйте статуси, щоб не втрачати дані. Відповідь сервера містить ID контакту, який можна зберегти в локальній БД для подальшої синхронізації.
Чому CRM API краще готових модулів?
Готові модулі WordPress обробляють до 10 запитів на хвилину, CRM API v3 — до 100 на секунду. Різниця в 600 разів. Для високонавантажених проєктів вибір очевидний. Крім продуктивності, готові модулі не дають кастомної логіки: складно синхронізувати угоди, прив'язувати користувачів або створювати кастомні поля. CRM API v3 дає повний контроль.
Приклад створення контакту та угоди на PHP (через офіційний SDK):
$client = \HubSpot\Factory::createWithAccessToken(env('HUBSPOT_ACCESS_TOKEN')); $contact = $client->crm()->contacts()->basicApi()->create( new \HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectInput([ 'properties' => [ 'email' => $user->email, 'firstname' => $user->first_name, 'phone' => $user->phone, 'website_user_id' => $user->id ] ]) ); $deal = $client->crm()->deals()->basicApi()->create( new \HubSpot\Client\Crm\Deals\Model\SimplePublicObjectInput([ 'properties' => [ 'dealname' => "Замовлення #{$order->id}", 'amount' => $order->total / 100, 'dealstage' => 'closedwon', 'closedate' => $order->created_at->timestamp * 1000 ] ]) ); $client->crm()->deals()->associationsApi()->create( $deal->getId(), 'contact', $contact->getId(), 'deal_to_contact' ); Зверніть увагу: асоціація угоди з контактом — окремий виклик. Без неї в HubStats видно лише розрізнену інформацію.
Як налаштувати двонаправлену синхронізацію?
Webhooks HubSpot надсилають сповіщення при зміні контакту або угоди. Endpoint сайту оновлює локальну БД — статус замовлення змінюється без ручного вводу. Приклад підписки на події через Webhooks API:
$client->crm()->lists()->membershipsApi()->addAndRemoveMemberships( $listId, new AddAndRemoveMembershipsInput(['recordIdsToAdd' => [$contactId]]) ); При зміні статусу угоди в HubSpot вебхук надсилає POST-запит на ваш endpoint. Ваш скрипт оновлює локальну БД — статус замовлення змінюється автоматично. Так досягається повна синхронізація без затримок.
Продвинутий трекінг через Events API
Custom Behavioral Events дозволяють передавати будь-які дії користувача (перегляд товару, додавання в кошик). Створіть подію в інтерфейсі HubSpot та надсилайте:
$client->events()->send()->basicApi()->sendEvent([ 'eventName' => 'pe123456_product_viewed', 'email' => $user->email, 'properties' => ['product_id' => $productId, 'product_name' => $productName] ]); Події дозволяють відстежити, який товар користувач переглядав, скільки разів, і на якому етапі покинув кошик. В одному з проєктів ми налаштували 15 кастомних подій — це підвищило точність таргетингу листів на 40%.
Порівняння способів інтеграції
| Спосіб | Складність | Функції | Швидкість впровадження |
|---|---|---|---|
| HubSpot Forms API | Низька | Тільки ліди | 1–2 дні |
| CRM API v3 | Середня | Контакти, угоди, тікети | 3–5 днів |
| Webhooks + CRM | Висока | Двонаправлена синхронізація | 1–2 тижні |
| Tracking Code | Низька | Поведінка, події | 1–2 дні |
Терміни інтеграції HubSpot
| Етап | Тривалість |
|---|---|
| Базова інтеграція (форми, контакти) | 3–5 днів |
| З трекінгом та кастомними подіями | 1–2 тижні |
| Двонаправлена синхронізація з Webhooks | 2–3 тижні |
Вартість розраховується індивідуально на основі ТЗ. Зверніться за оцінкою — ми підготуємо комерційну пропозицію за 1 робочий день.
Що входить в роботу під ключ?
- Аудит поточних форм та сценаріїв — виявимо вузькі місця.
- Налаштування API-ключів та порталу HubSpot — безпечне підключення.
- Розробка надсилання лідів, контактів, угод — з використанням PHP або JavaScript SDK.
- Встановлення tracking-скрипту та кастомних подій — точна атрибуція.
- Реалізація вебхуків для зворотного зв'язку — синхронізація в реальному часі.
- Документація по API та навчання команди — ви зможете підтримувати самостійно.
- Тестування синхронізації та виправлення помилок — гарантуємо стабільність.
Допомога інженера в нестандартних випадках
Якщо на сайті нестандартна логіка (кастомні поля, складні воронки, багатомовність), залучаємо веб-розробника з досвідом HubSpot. Приклад: інтеграція з ERP-системою через проміжний шар або синхронізація користувацьких списків.
Отримайте консультацію з інтеграції HubSpot — оцінимо ваш проєкт за 1 день. Зв'яжіться з нами, щоб обговорити деталі.







