Оглавление

Заявки с сайта

Обновлено 7 октября 2026 г.

Страница для тех, кто хочет, чтобы заявки с сайта сразу попадали в CRM Gigonom сделками. Первая часть — для владельца организации, вторая — для разработчика сайта.

Как это устроено

Форма на сайте отправляет заявку на адрес ключа приёма. Gigonom находит или заводит контакт, создаёт сделку в выбранной воронке и записывает обращение в её историю. Имя ключа становится источником сделки, поэтому по нему видно, с какого сайта или формы пришла заявка.

Создать ключ приёма

Создают ключи владелец и администраторы организации.

  1. В CRM откройте «Настройки», карточка «Приём заявок», и нажмите «Новый ключ».
  2. В поле «Имя» укажите, откуда придут заявки, например «Сайт». Имя потом не меняется: оно уже стоит источником у сделок.
  3. Выберите «Воронку», куда попадут сделки.
  4. В поле «Origin'ы» перечислите адреса сайтов, с которых форма отправляется из браузера, например https://example.com. Если заявки шлёт сервер сайта, поле оставьте пустым.
  5. Нажмите «Создать» и сразу скопируйте адрес ключа кнопкой «Скопировать».

Если ключ появился в списке со строкой «→ <воронка> · заявок: 0», он создан. Адрес передайте разработчику сайта.

Кнопка «Изменить» меняет воронку и origin'ы. Корзина отзывает ключ: заявки по его адресу перестают приниматься сразу.

Что появляется в CRM

  • Контакт ищется по email или телефону среди контактов организации. Если такого нет, заводится новый. Данные существующего контакта из заявки не обновляются.
  • Компания создаётся или находится, только если в заявке есть ИНН из 10 или 12 цифр. Без ИНН название компании попадает в текст обращения.
  • Сделка создаётся всегда новая, даже если тот же человек пишет повторно. Она встаёт в первую стадию воронки ключа, источник — имя ключа, UTM-метки и страница сохраняются в карточке.
  • Обращение — запись в истории сделки с текстом сообщения и полями формы.

Ответственного за новую сделку может назначить правило в Автоматизациях с условием «Как пришла» — «заявка по ключу приёма». Если ответственного нет, о новой сделке узнают владелец и администраторы.

Для разработчика сайта

Заявка отправляется запросом POST на адрес ключа вида https://hub.gigonom.com/api/crm/leads/<токен ключа> с телом в JSON и заголовком Content-Type: application/json. Токен ключа в адресе и есть секрет. В угловых скобках то, что нужно заменить своим значением, скобки тоже уберите.

Поля тела. Обязателен хотя бы один из email и phone, остальные поля необязательны:

  • name — имя, email, phone, inn — ИНН, company — название компании, message — текст обращения, page — адрес страницы с формой;
  • utm — объект с полями source, medium, campaign, term, content, referrer;
  • fields — объект «название поля: значение» для дополнительных полей формы; совпадающие с ключами полей сделки в настройках CRM попадают в эти поля;
  • website — ловушка для ботов: скрытое поле, которое человек не заполняет. Заявку с заполненным website Gigonom молча отбрасывает.

UTM-метки Gigonom сам не собирает: сайт берёт их из адреса страницы и передаёт в utm. Если посетитель уходит на другие страницы до отправки формы, сохраните метки первого визита сами, например в cookie.

Из браузера. Адрес сайта должен быть в списке «Origin'ы» ключа, иначе браузер заблокирует запрос. Адреса с www и без него — разные origin'ы, указывайте оба. Пример формы:

<form id="lead-form">
  <input name="name" placeholder="Имя">
  <input name="email" type="email" placeholder="Email">
  <input name="phone" type="tel" placeholder="Телефон">
  <textarea name="message" placeholder="Сообщение"></textarea>
  <input name="website" tabindex="-1" autocomplete="off" style="position:absolute;left:-9999px">
  <button type="submit">Отправить</button>
</form>
<script>
  const ENDPOINT = "https://hub.gigonom.com/api/crm/leads/<токен ключа>"
  const q = new URLSearchParams(location.search)
  document.getElementById("lead-form").addEventListener("submit", async (e) => {
    e.preventDefault()
    const f = new FormData(e.target)
    const res = await fetch(ENDPOINT, {
      method: "POST",
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify({
        name: f.get("name"),
        email: f.get("email"),
        phone: f.get("phone"),
        message: f.get("message"),
        website: f.get("website"),
        page: location.href,
        utm: {
          source: q.get("utm_source") || undefined,
          medium: q.get("utm_medium") || undefined,
          campaign: q.get("utm_campaign") || undefined,
          term: q.get("utm_term") || undefined,
          content: q.get("utm_content") || undefined,
          referrer: document.referrer || undefined,
        },
      }),
    })
    if (res.ok) alert("Заявка отправлена")
    else alert("Не получилось отправить")
  })
</script>

Токен ключа с origin'ами виден в коде страницы. От перебора его защищают ограничения частоты, поэтому не используйте этот ключ для чего-то, кроме формы.

С сервера сайта. Ключ без origin'ов работает только с сервера, из браузера запрос не пройдёт. Пример запроса:

curl -X POST "https://hub.gigonom.com/api/crm/leads/<токен ключа>" -H "Content-Type: application/json" -d '{"name":"Иван","phone":"+7 900 000-00-00","message":"Нужна консультация"}'

Ответы.

Код

Тело

Что значит

200

{"ok":true,"dealId":"…"}

заявка принята, сделка создана

400

{"error":"bad json"} или {"error":"нужен email или phone"}

тело не JSON или нет ни email, ни телефона

403

{"error":"workspace is read-only", …}

организация доступна только для просмотра, заявка не сохранена

404

{"error":"not found"}

ключа нет или он отозван

429

{"error":"слишком часто","retryAfter":<секунд>}

превышена частота, повторите после паузы из заголовка Retry-After

Частота ограничена и на одного посетителя, и на весь ключ; у ключа без origin'ов лимит выше.