Пошаговое руководство: как подключить вебхук QR vCard Pro к Zapier, а Zapier к вашему CRM, без написания кода.
contact.received (или все, *).Три события: contact.received (пришёл лид, главное для CRM), card.created и scan.recorded.
Совет: сначала запустите тест, Zapier тогда «узнаёт» поля (data.email…) и предлагает их для сопоставления.
Добавьте шаг Action и выберите ваш CRM. Сопоставьте поля вебхука (с префиксом data.):
Action Create or Update Contact: data.email → Email, data.name → Name, data.phone → Phone, data.company → Company.
Action Create Person: data.name → Name, data.email → Email, data.phone → Phone.
Action Create Lead: data.name → Last Name, data.email → Email, data.company → Company (обязательно).
Action Create Spreadsheet Row: каждый лид становится строкой.
Включите Zap (Publish). С этого момента каждый новый contact.received поступает в ваш CRM автоматически, в реальном времени.
Каждый вебхук это HTTP-POST с телом JSON. Полезные данные находятся в поле data.
| Событие | Ключевые поля в data |
|---|---|
contact.received | contact_id, card_id, name, email, phone, company, message, consent_given, acquisition_method, received_at |
card.created | card_id, title, slug, landing_url, created_at, updated_at, meta |
scan.recorded | card_id, action, scanned_at |
X-QRVP-Event | имя события |
X-QRVP-Signature | sha256=<HMAC> |
X-QRVP-Delivery | уникальный ID доставки |
X-QRVP-Attempt | номер повторной попытки |
Каждый вызов несёт X-QRVP-Signature в виде sha256=<hash>, это HMAC-SHA256 тела, подписанный секретом. Так получатель может подтвердить, что вызов исходит с вашего сайта.
Catch Hook в Zapier не обязан проверять подпись (URL секретный). Проверка важна для вашего собственного endpoint:
| Симптом | Причина и решение |
|---|---|
| Zapier не ловит тест | URL вставлен неправильно, или вебхук не подписан. Проверьте URL и что выбрано contact.received. |
| Нет страницы «Webhooks» | Пакет ниже Unlimited. Вебхуки начинаются с пакета Unlimited. |
| Поля CRM пустые | Сопоставление использует неверный путь, поля находятся в data (напр. data.email). |
| Вызовы задерживаются | Доставка асинхронная (WP-Cron). Для мгновенной доставки настройте настоящий системный cron. |