BizWatchBizWatch

Наши боты

BizWatch мониторит ваш сайт извне: открывает страницы, проверяет сертификаты, эмулирует отправку форм. Если у вас Cloudflare, reCAPTCHA или самописный антифрод — здесь то, что нужно знать, чтобы наши проверки не блокировались и заявки от синтетики не попадали в CRM.

Исходящие IP-адреса

Мы ходим на ваш сайт с этих адресов. Внесите их в allow-list, если у вас включён антибот.

Загружаем…

User-Agent

Все наши запросы (и обычные проверки, и синтетика) шлют User-Agent:

Mozilla/5.0 (compatible; BizWatchBot/1.0; +https://bizwatch.ru/bot)

Как отличить нашу тестовую заявку

Синтетика форм заполняет и отправляет ваши формы, чтобы убедиться, что заявка доходит до бэкенда. Чтобы наши тестовые заявки не попадали в CRM, отфильтруйте их на стороне сервера. У нас три маркера, любого из них достаточно.

Сниппеты для бэкенда

Для разработчика: отдайте эти вставки в обработчик формы, и наши заявки не попадут ни в CRM, ни в почту. Все три проверки эквивалентны.

PHP (Bitrix, обычный обработчик)
<?php
// Отбрасываем тестовые заявки от синтетики BizWatch.
if (
  ($_SERVER['HTTP_X_BIZWATCH_SYNTHETIC'] ?? '') === '1'
  || strpos(($_POST['email'] ?? ''), 'test+bizwatch@') === 0
  || (\$_POST['name'] ?? '') === 'BizWatch тест'
) {
  http_response_code(200); // отвечаем как обычно — синтетика ждёт 200
  echo json_encode(['ok' => true, 'skipped' => 'bizwatch_synthetic']);
  exit;
}
?>
Node.js / Express
app.post('/api/leads', (req, res) => {
  const isSynthetic =
    req.get('X-BizWatch-Synthetic') === '1'
    || (req.body.email || '').startsWith('test+bizwatch@')
    || req.body.name === 'BizWatch тест';
  if (isSynthetic) {
    return res.json({ ok: true, skipped: 'bizwatch_synthetic' });
  }
  // ... ваша обычная логика: запись в CRM, отправка почты ...
});
Компонент bitrix:form (пример события OnBeforeResultAdd)
AddEventHandler('form', 'onBeforeResultAdd', function(&$WEB_FORM_ID, &$arFields, &$arrVALUES) {
  // arrVALUES[]='ANSWER_TEXT_..' — значения полей.
  $skip = false;
  foreach ($arrVALUES as $v) {
    if (is_string($v) && (strpos($v, 'test+bizwatch@') !== false || $v === 'BizWatch тест')) {
      $skip = true; break;
    }
  }
  if ($_SERVER['HTTP_X_BIZWATCH_SYNTHETIC'] === '1') { $skip = true; }
  if ($skip) return false; // Битрикс не сохранит запись формы
});