CRM та інтеграції · PHP / Лендінги

KeyCRM Form Catcher — заявки з будь-якого лендінга у KeyCRM

Безкоштовний form-catcher для статичних лендінгів: два файли (PHP-relay + JS) — і будь-яка HTML-форма шле заявки у KeyCRM з UTM-мітками. API-ключ схований на сервері, захист honeypot і rate-limit.

Версія
v1.0.0
Сумісність
PHP 7.4+ (будь-який хостинг), будь-який HTML-лендінг
Платформа
PHP / Лендінги
KeyCRM Form Catcher — заявки з будь-якого лендінга у KeyCRM

Що всередині

  • Будь-яка HTML-форма починає слати заявки в KeyCRM
  • Лише два файли: PHP-relay і JS — без CMS, composer і jQuery
  • API-ключ зберігається на сервері, у браузер не потрапляє
  • Автоматично передаються UTM-мітки джерела заявки
  • Працює на статичних лендінгах і будь-якому хостингу з PHP
  • Безкоштовний

KeyCRM Form Catcher — легкий form-catcher для статичних лендінгів: будь-яка HTML-форма починає слати заявки прямо у KeyCRM. Це всього два файли — keycrm-catcher.php (серверний relay, який ховає API-ключ) і keycrm-forms.js (біндиться до форм) — без CMS, без composer-залежностей, без jQuery. Ідеально для лендінгів на чистому HTML, де ставити WordPress заради однієї форми — зайве.

Інструмент повністю безкоштовний. Код відкритий на GitHub: github.com/catcodestudio/keycrm-form-catcher. Потрібен тільки API-ключ з вашого кабінету KeyCRM і хостинг з PHP.

Як це виглядає для покупця

Демо-форма заявки, підключена до KeyCRM через Form Catcher
Звичайна HTML-форма лендінгу: ім’я, телефон, email, коментар. Відвідувач нічого не помічає — після відправки бачить повідомлення успіху або редірект на сторінку подяки, а заявка вже у KeyCRM разом з UTM-мітками і сторінкою, з якої прийшла.

Як це працює — крок за кроком

  1. Відвідувач заповнює форму на лендінгу — достатньо додати формі атрибут data-keycrm, і keycrm-forms.js перехопить її сам.
  2. JS збирає дані: поля форми плюс page_url, referrer і всі UTM-мітки — додаються автоматично.
  3. Запит іде на серверний relay keycrm-catcher.php — API-ключ живе тільки на сервері й ніколи не світиться у фронтенді.
  4. Relay перевіряє заявку: honeypot проти ботів, rate-limit по IP, перевірка Origin, валідація (телефон або email — обов’язковий).
  5. Заявка створюється у KeyCRM — як замовлення (POST /order, працює одразу навіть у тріалі) або як картка ліда у воронці (POST /pipelines/cards). Стандартні UTM потрапляють в аналітику KeyCRM, referrer і сторінка — у коментар менеджеру.
  6. Відвідувач бачить результат: повідомлення з data-success або редірект з data-redirect; на формі спрацьовують події keycrm:success / keycrm:error — зручно вішати аналітику.

Скільки коштує

Безкоштовно, код відкритий. Завантажуйте з GitHub або кнопкою на цій сторінці — без тарифів і лімітів на кількість заявок з боку скрипта.

Технічні вимоги

  • PHP 7.4+ з розширенням cURL — підійде будь-який хостинг
  • Будь-який HTML-лендінг — CMS не потрібна
  • API-ключ KeyCRM — кабінет KeyCRM → Налаштування → API
  • Для режиму картки ліда — створена воронка в KeyCRM (Ліди → Воронки) та її ID

Що під капотом

  • API-ключ тільки на сервері — фронтенд спілкується з relay, а не з KeyCRM напряму; ключ неможливо витягти з коду сторінки.
  • Honeypot-поле: людина його не бачить, бот заповнює. Непорожнє — тихий фейковий success, бот не дізнається, що його зловили.
  • Rate-limit по IP — максимум 10 заявок з одного IP за годину (налаштовується константою), лічильники у системному temp.
  • Origin/CORS-перевірка — впишіть свої домени в KEYCRM_ALLOWED_ORIGINS, і relay відхилятиме запити з чужих сайтів.
  • Relay приймає звичайний POST (form-encoded або JSON) — слати можна не лише через keycrm-forms.js, а й з Contact Form 7, кастомного fetch чи будь-якого іншого коду.

Як встановити

  1. Завантажте keycrm-form-catcher-1.0.0.zip і розпакуйте.
  2. Закиньте keycrm-catcher.php і keycrm-forms.js у корінь сайту (або будь-яку зручну папку).
  3. У keycrm-catcher.php впишіть API-ключ у константу KEYCRM_API_KEY і свої домени в KEYCRM_ALLOWED_ORIGINS.
  4. Підключіть <script src="/keycrm-forms.js"></script> і додайте формі атрибут data-keycrm.
  5. Відправте тестову заявку — вона з’явиться у KeyCRM. Робочий приклад є у файлі example.html.

Історія версій

1.0.0 — липень 2026
Перший публічний реліз: relay + JS-віджет, два режими (замовлення / картка ліда), автозбір UTM, honeypot, rate-limit по IP, Origin/CORS-перевірка, події keycrm:success / keycrm:error, приклад example.html.

Часті питання

Чи треба переробляти мою форму?

Ні. Достатньо додати атрибут data-keycrm існуючій формі — скрипт сам збере поля name, phone, email, comment, product і будь-які utm_*.

Чим відрізняються режими «замовлення» і «картка ліда»?

Режим order (за замовчуванням) створює замовлення і працює одразу без налаштувань у CRM — джерело створиться автоматично. Режим card створює картку ліда у воронці — потрібно створити воронку в KeyCRM і вписати її ID у KEYCRM_PIPELINE_ID.

Чи не вкрадуть мій API-ключ?

Ні. Ключ зберігається лише у PHP-файлі на сервері. У браузер він не потрапляє ніколи — фронтенд бачить тільки адресу relay.

Що зі спамом від ботів?

Три рівні захисту: honeypot-поле (бот отримує фейковий success), rate-limit по IP і перевірка Origin. Плюс валідація: заявка без телефону або email не приймається.

Чи можна слати заявки з Contact Form 7 або власного JS?

Так. Relay приймає звичайний POST (form-encoded або JSON) з будь-якого джерела. Для CF7 — повісьте відправку на подію wpcf7mailsent.

Чи побачу я, звідки прийшла заявка?

Так. UTM-мітки передаються у поле marketing (видно в аналітиці KeyCRM), а сторінка і referrer додаються в коментар менеджеру.

Питання щодо модуля?

Пишіть у Telegram — відповімо протягом робочого дня. Допоможемо з налаштуванням, сумісністю та активацією ключа.

@catcode_support

Не той варіант, що шукаєте?

Ми робимо кастомні модулі під WordPress, WooCommerce, OpenCart і Shopify. Розкажіть про задачу — підготуємо оцінку.

Замовити кастомний модуль