Как настроить приём заявок с сайта в CRM
Эта инструкция — о том, как сделать, чтобы заявки с форм на вашем сайте сами появлялись в CRM. Посетитель оставляет телефон на сайте — и в системе сразу создаётся заказ с нужным статусом и городом, а всё, что человек написал в форме, сохраняется в комментарии. Переносить заявки из почты руками больше не нужно, и ни одна не потеряется между письмами.
Подключение делается через вебхук — специальный адрес, на который конструктор сайта отправляет каждую заполненную форму. Подойдёт Тильда или любой другой конструктор, который умеет отправлять заявки на вебхук. Ниже мы подробно разбираем Тильду: на ней проверен весь порядок действий.
Как это работает
- Посетитель заполняет форму на вашем сайте.
- Конструктор сайта отправляет данные формы на адрес вебхука FriendClient.
- FriendClient проверяет ваш ключ доступа и то, что указанная CRM действительно ваша, — и создаёт в ней Договор.
- Конструктор получает ответ: заказ создан или что именно пошло не так.
Что понадобится перед началом
- API-ключ — в личном кабинете FriendClient: в верхнем меню раздел «Интеграции» → кнопка «API». Если ключа там нет, нажмите «Обновить». Ключ выглядит примерно так: 3f1c2a9e-7b4d-4e21-9c0a-5d8e6f1b2c3a;
- адрес вашей CRM — тот же, по которому вы открываете систему, но без https:// и без косой черты в конце. Например, vasha-firma.omiscrm.ru;
- номер статуса, с которым заявка должна попадать в CRM, — обычно это первый статус, с которого вы начинаете работу с новым заказом. Подробнее о статусах — на странице Статус;
- номер города, к которому относить заявки. Подробнее — на странице Город;
- имя поля с телефоном в вашей форме. В Тильде по умолчанию это Phone.
Номера статуса и города — это внутренние числовые идентификаторы в CRM, а не названия. Посмотреть их можно так:
- В CRM откройте меню «Настройки» → «Статусы» (или «Города»).
- Откройте нужный статус или город.
- Посмотрите в адресную строку браузера: номер стоит в конце адреса, после id=. Например, в адресе https://vasha-firma.omiscrm.ru/backend/status/update?id=70 номер статуса — 70.
Берегите ключ. API-ключ даёт право создавать заказы от имени вашей компании. Не публикуйте его на страницах сайта и не пересылайте посторонним. Если ключ всё же попал в чужие руки, нажмите «Обновить» в разделе «Интеграции»: старый ключ сразу перестанет работать. После этого замените ключ во всех адресах вебхуков на сайте — иначе заявки перестанут приходить.
Шаг 1. Соберите адрес вебхука
Возьмите этот шаблон и подставьте свои значения вместо слов в угловых скобках:
https://friendclient.ru/crm/webhook?api_key=<API-ключ>&domain=<адрес CRM>&phone_field=Phone&crm[status_id]=<номер статуса>&crm[city_id]=<номер города>
Например, для CRM vasha-firma.omiscrm.ru, статуса с номером 1 и города с номером 12 адрес будет таким:
https://friendclient.ru/crm/webhook?api_key=3f1c2a9e-7b4d-4e21-9c0a-5d8e6f1b2c3a&domain=vasha-firma.omiscrm.ru&phone_field=Phone&crm[status_id]=1&crm[city_id]=12
Если поле телефона в вашей форме переименовано, вместо Phone укажите его имя — в Тильде оно задаётся в настройках поля как «Имя переменной». Большие и маленькие буквы здесь важны: Phone и phone — это разные поля.
Шаг 2. Добавьте вебхук в настройки сайта
- В Тильде откройте «Настройки сайта» → «Формы» (раздел «Подключенные сервисы»).
- Выберите «Webhook».
- Вставьте адрес из шага 1 и сохраните.
При сохранении Тильда отправит проверочный запрос. Если ключ и адрес CRM указаны верно, вебхук появится в списке подключённых сервисов — заказ при этой проверке не создаётся. Если Тильда показывает ошибку, значит, неверен ключ или адрес CRM: сверьте их ещё раз.
Шаг 3. Включите вебхук у каждой формы
Это шаг, который чаще всего пропускают. Вебхук в настройках сайта сам по себе к формам не подключается — его нужно включить у каждой формы, заявки с которой должны попадать в CRM:
- Откройте страницу с формой и у блока формы нажмите «Контент».
- В разделе «Подключенные сервисы» поставьте галочку у добавленного вебхука.
- Сохраните и опубликуйте страницу — без публикации изменения не заработают.
Формы без галочки продолжат работать как раньше, но их заявки в CRM не попадут.
Проверьте, что всё работает
Отправьте тестовую заявку с опубликованной страницы — так, как это сделал бы посетитель. Через несколько секунд в CRM должен появиться новый заказ в выбранном статусе. Если заказа нет, откройте в Тильде журнал заявок у формы: там виден ответ сервера с кодом ошибки. Что означает каждый код — в таблице в конце инструкции.
Что попадёт в CRM
Допустим, посетитель заполнил форму так:
- Name — Иван Петров;
- Phone — +7 (999) 123-45-67;
- Comment — Перезвоните после 18:00.
В CRM появится заказ, в котором:
- телефон — +79991234567: из номера убираются скобки, пробелы и дефисы, остаются только цифры и знак «+»;
- статус и город — те, что вы указали в адресе вебхука;
- комментарий — все поля формы, каждое с новой строки:
Name: Иван Петров
Phone: +7 (999) 123-45-67
Comment: Перезвоните после 18:00
Несколько деталей о комментарии:
- буквы, цифры и обычные знаки препинания сохраняются, а эмодзи и разметка из текста удаляются;
- API-ключ в комментарий не попадает;
- служебные поля, которые конструктор добавляет сам (у Тильды это, например, formid и tranid), тоже окажутся в комментарии — это нормально.
Если заявки с разных форм нужно разводить
Бывает, что заявки с разных страниц должны попадать в разные статусы или города — например, у вас несколько филиалов, и у каждого своя страница на сайте. Тогда добавьте в подключённые сервисы Тильды несколько вебхуков — у каждого свой адрес со своими номерами статуса и города, — а у каждой формы отметьте галочкой нужный.
Так же решается случай, когда у вас несколько CRM: у каждой формы может быть свой вебхук со своим адресом CRM.
Кроме того, заказу можно сразу проставить Фильтры — например, отметить, что заявка пришла с сайта. Для этого в конец адреса вебхука добавляется параметр вида &crm[filters][source]=site, где source — имя фильтра, а site — его значение. Передавать можно любые фильтры вашей CRM, но формат значения зависит от типа фильтра: например, для фильтра с выпадающим списком нужно указать не название пункта, а его номер. Поэтому перед настройкой фильтров лучше уточнить у нас имена и значения для вашей системы.
Если что-то не получилось
- Тильда не сохраняет вебхук — проверочный запрос проходит только с правильными ключом и адресом CRM. Скопируйте ключ заново из раздела «Интеграции» и сверьте адрес CRM буква в букву, без https://;
- Вебхук сохранён, но заказы не появляются — проверьте, что у формы стоит галочка в «Подключенных сервисах» и страница опубликована заново. Затем посмотрите ответ сервера в журнале заявок Тильды. Чаще всего не совпадает имя поля телефона или указан неверный номер статуса либо города;
- Появились одинаковые заказы — если CRM какое-то время отвечала медленнее обычного, конструктор мог решить, что отправка не удалась, и повторить её, хотя заказ уже был создан. Лишний заказ можно просто удалить;
- После обновления ключа заявки перестали приходить — старый ключ перестаёт работать сразу. Замените ключ во всех адресах вебхуков в подключённых сервисах Тильды.
Справочник для того, кто настраивает
Этот раздел пригодится вашему разработчику или тому, кто подключает вебхук к другому конструктору.
Адрес и формат
Адрес вебхука — https://friendclient.ru/crm/webhook. Принимаются только запросы методом POST с обычной отправкой формы (application/x-www-form-urlencoded или multipart/form-data). Настройки передаются параметрами в адресе, данные заявки — в теле запроса.
Параметры адреса
| Параметр | Обязательный | Что это |
|---|---|---|
| api_key | да | API-ключ из раздела «Интеграции». Можно передать и полем в теле запроса |
| domain | да | Адрес CRM без https:// и косой черты |
| phone_field | да | Имя поля формы с телефоном: латиница, цифры, дефис. Регистр важен |
| crm[status_id] | да | Номер статуса заказа (число) |
| crm[city_id] | да | Номер города (число) |
| crm[filters][<имя>] | нет | Фильтры заказа, можно указать несколько. Имя — латиница, цифры, пробелы; значение — латиница, кириллица, цифры, пробелы. Для фильтра-списка значение — номер пункта списка |
Проверочный запрос
Многие конструкторы при подключении вебхука отправляют проверочный запрос и сохраняют вебхук, только если получили ответ 200. Тильда отправляет тело test=test. На такой запрос FriendClient проверяет ключ и адрес CRM и, если всё верно, отвечает {"status": "ok", "test": true} — заказ не создаётся. Если ключ или адрес неверны, вернётся ошибка, и конструктор не даст сохранить вебхук.
Ответы и коды ошибок
Ответ всегда приходит в JSON. При успехе — {"status": "ok", "contract_id": 12345}, где contract_id — номер созданного заказа. При ошибке — машинный код в поле error и пояснение в поле message.
Код HTTP подсказывает, есть ли смысл повторять отправку: при ошибках 4xx повтор бесполезен — запрос составлен неверно; при 5xx большинство конструкторов повторяют отправку сами.
| HTTP | error | Причина | Что делать |
|---|---|---|---|
| 200 | — | Заказ создан или проверочный запрос прошёл | — |
| 401 | api_key_required | Ключ не передан | Добавить api_key в адрес |
| 401 | api_key_invalid | Ключ неверный или был обновлён | Скопировать актуальный ключ из раздела «Интеграции» |
| 404 | crm_not_found | У владельца ключа нет CRM с таким адресом | Проверить написание адреса CRM |
| 422 | domain_required | Не передан адрес CRM | Пересобрать адрес вебхука |
| 422 | phone_field_required | Не передано имя поля телефона | Пересобрать адрес вебхука |
| 422 | phone_not_found | В заявке нет поля с таким именем или оно пустое | Сверить имя поля в форме и в phone_field, с учётом регистра |
| 422 | status_id_required | Номер статуса не передан или это не число | Пересобрать адрес вебхука |
| 422 | city_id_required | Номер города не передан или это не число | Пересобрать адрес вебхука |
| 502 | crm_unavailable | CRM не ответила за 10 секунд | Конструктор повторит отправку сам; если повторяется — проверить доступность CRM |
| 502 | crm_error | CRM вернула ошибку | Проверить, что статус и город с такими номерами существуют в CRM |
| 500 | internal_error | Ошибка на стороне FriendClient | Если повторяется — написать в поддержку |
Что ещё умеет система и как она соединяется с другими сервисами, рассказано на странице Интеграции и API. А если вы только начинаете работать в CRM, загляните в инструкцию С чего начать работу в FriendClient — там описан путь заказа от приёма до выполнения.