Сценарий для форм

Данный тип сценариев нужен для выполнения действий после отправки форм.

Может возникнуть необходимость выполнить какие-то действия после отправки формы. Это может быть сообщение пользователю или передача данных формы по API в вашу CRM-систему Bitrix24, AmoCRM и т.д.

Сценарий форм имеет специальную переменную {{FORM_DATA}}, которая содержит данные об отправке формы в строке, кодированной в JSON-формат, которую мы можем использовать в других действиях сценария:

Структура данных {{FORM_DATA}} имеет формат:

{
  "name": {
    "value": "Влад",
    "title": "Имя",
    "type": "text"
  },
  "phone": {
    "value": "+7 (000) 111-22-33",
    "title": "Телефон",
    "type": "phone"
  }
}

Эта структура основана на полях конкретной формы. В данном случае наша форма имеет следующие поля:

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

По умолчанию, переменная {{FORM_DATA}} представляет из себя строку, закодированную в JSON-формате. Мы можем просто взять эту переменную и, например, подставить в действие "Отправка запроса на URL" в первоначальном виде, а потом уже распарсить её на своём сервере и отправить в CRM в нужном формате:

Либо мы можем сразу декодировать нашу строку {{FORM_DATA}} в JSON-объект и сразу передать значения нужных нам полей.

Сделать это можно с помощью действия "Получить JSON", указав в качестве исходного текста нашу переменную {{FORM_DATA}}:

Чтобы узнать в какие переменные помещается результат выполнения того или иного действия, мы переходим на вкладку Результат:

Здесь мы видим, что результат выполнения данного действия помещается в переменную array. В нашей системе нет деления на объекты и массивы и любая структура данных называется массив для простоты работы.

Лучший способ узнать точные названия переменных сценарий - это открыть окно сценария нажав на его иконку или название наверху страницы:

Здесь мы видим, что результат работы действия "Получить JSON" помещается в переменную: {{text2json.array}}:

Соответственно, учитывая структуру наших данных, которая выглядит так:

{
  "name": {
    "value": "Влад",
    "title": "Имя",
    "type": "text"
  },
  "phone": {
    "value": "+7 (000) 111-22-33",
    "title": "Телефон",
    "type": "phone"
  }
}

Мы сможем получить любое значение указав его полный путь через символ точки: ".". Например, мы хотим получить значение переменной name, для этого мы укажем путь:

{{text2json.array.name.value}}

Для поля телефона будет аналогично:

{{text2json.array.phone.value}}

И аналогично мы указываем наши переменные в запросе действия "Отправить на URL":

Если у нас есть несколько разных форм, каждую из которых нужно обрабатывать отдельно, в системе предусмотрено действие: "Проверка формы":

Оно работает по аналогии с действием "Условие", только вместо логического условия, мы просто выбираем форму, которую нужно обработать:

И в самом сценарии перетаскиваем нужные действия в область "Условие выполняется":

И так для каждой формы.