Кабинет
Решения по разделам

#Формы

Решение form. Даёт конструктор форм и хранилище заявок.

#Что приносит на сайт

СправочникЧто в нёмВ меню
Формысами формыда
Поля формполя каждой формынет — правятся в карточке формы
Заявкивсё, что отправили посетителида
Виды полей формыперечень типовнет

Плюс модуль form_block — им форма выводится на страницу.

#Создать форму

Формы → Создать запись.

ПолеЧто задаёт
Названиедля себя: «Заявка на замер»
Кодим форму зовут: zamer
Надпись на кнопке«Отправить», «Записаться»
Что показать после отправкитекст благодарности
Действия после отправкисм. ниже
Включенавыключенная не принимает заявки
Карточка формы: её поля правятся здесь же
Карточка формы: её поля правятся здесь же

#Поля формы

Правятся прямо в карточке формы — уходить в отдельный справочник не нужно.

НастройкаЧто задаёт
Код поляимя в данных заявки: phone
Подписьчто видит посетитель: «Ваш телефон»
Вид полястрока, телефон, список, файл…
Подсказкасерый текст внутри поля
Значение по умолчаниюзаранее заполненное
Обязательноебез него не отправить
Порядоксверху вниз

Доступные виды полей:

Строка · Многострочное поле · Почта · Телефон · Число
Список · Список с выбором нескольких · Флажки · Переключатели
Дата · Дата и время · Файл · Скрытое поле

#Вывести форму на страницу

{module.form_block:code=zamer}

Разметку полей дописывает само решение — перечислить их в вёрстке заранее нельзя, потому что их заводит человек.

#Действия после отправки

Поле «Действия после отправки» — по строке на действие:

save
email: office@example.ru, manager@example.ru
telegram
ДействиеЧто делает
saveничего — заявка сохраняется в любом случае
email: адресписьмо; несколько адресов через запятую
telegramсообщение в Telegram сайта
crmзавести заявку в CRM — появляется с решением crm-form

Строка, начинающаяся с #, считается примечанием.

Важно

Заявка сохраняется в базе первой, до всех действий, и независимо от них. Почта может не уйти, Telegram — не ответить, но заявка останется в разделе «Заявки». Это главное свойство решения: заявки не теряются при сбоях внешних служб.

Поэтому строка save ничего не делает — она оставлена ради полноты списка. Убрав её, вы заявок не потеряете. Единственный случай, когда посетителю честно говорят «не получилось», — это когда не удалось записать в базу.

Что именно отработало, видно в самой заявке — поле «Что отработало»:

save: заявка сохранена
email: отправлено
telegram: не отправлено

#Почта и Telegram

Адрес получателя задаётся в самой форме. А вот как отправлять — общая настройка сайта: Настройки → Настройки API.

Важно

Токен Telegram-бота хранится один на сайт, а не в каждой форме. Иначе смена бота означала бы правку всех форм, а токен лежал бы в стольких местах, сколько форм на сайте.

#Вложения

Поле типа «Файл» принимает до 20 МБ на файл. Файлы кладутся в отдельный угол — /uploads/forms/, — а не в общую библиотеку картинок сайта.

Примечание

Не приняли файл — заявка всё равно уходит, а в поле остаётся пометка о причине. Потерять текст заявки из-за слишком большого приложения было бы хуже, чем потерять приложение.

#Защита от спама

Работает сама, настраивать нечего. Подделкой считается заявка, если:

  1. заполнено скрытое поле-ловушка — его видят только те, кто читает разметку и заполняет всё подряд;
  2. форма отправлена быстрее, чем её можно прочитать;
  3. с одного адреса приходит слишком часто;
  4. почта не похожа на почту, телефон — на телефон;
  5. в имени или названии компании есть ссылки.
Почему так

Ни капчи, ни «докажите, что вы человек» здесь нет намеренно. Заявку оставляет человек, которому что-то нужно; лишний шаг на этом месте стоит дороже, чем разбор десятка подделок. Все проверки незаметны тому, кто заполняет форму честно.

Чтобы защита работала, в вёрстке формы должна стоять метка {formguard} — решение ставит её само, а в своей вёрстке её нужно поставить руками.

#Повторная отправка

Точно такая же заявка, отправленная в течение 10 минут, вторично не заводится: посетитель нажал «Отправить» дважды, а не оставил две заявки.

#Что чаще всего идёт не так

«Форма не выводится». Проверьте код в вызове: {module.form_block:code=zamer} — код формы, а не её название.

«Заявки приходят, письма нет». Смотрите поле «Что отработало» в заявке. email: не отправлено — разбираться с настройками почты в «Настройки API»; строки email вовсе нет — действие не прописано в форме.

«Telegram молчит». Проверьте, заполнена ли интеграция Telegram в настройках сайта, и есть ли строка telegram в действиях формы.

«Заявка не сохранилась». Такого почти не бывает: сохранение идёт первым и не зависит от остальных действий. Проверьте, включена ли форма.