Webhook: прием данных из форм на свой скрипт

Для того, чтобы принимать данные из форм на свой скрипт вы можете использовать приемщик данных Webhook. Данные будут отправляться методом POST.
Чтобы активировать вебхук, откройте Настройки сайта → Формы → Webhook
Укажите адрес вашего скрипта. Если необходимо отправлять куки, поставьте галочку. Сохраните.
Сразу после подключения Webhook будет отправлен запрос с данными test=test (метод POST) и ожидается, что Webhook вернет код 200 OK.
Важно: Ссылка на скрипт должна быть доступна и скрипт должен отвечать в течение пяти секунд. В противном случае данные не отправятся, а система сделает еще две попытки их отправить, каждую через минуту.

Также скрипт должен использовать защищенный протокол HTTPS.
Перейдите на страницу и в меню «Контент» блока с формой отметьте сервис приема данных Webhook.

Сохраните и опубликуйте страницу. При заполнении формы данные будут отправляться методом POST на адрес скрипта, который вы указали в настройках.
Пример скрипта, который отправляет данные на почту
Разместите скрипт на своем сервере, укажите адрес скрипта в настройках приемщика Webhook. Результат — отсылает на почту данные которые приходят через webhook.

<?php

header('Access-Control-Allow-Origin: *');

$headers = "From: from@webhookservesite.ru";​ 
/* замените электронную почту на действующую почту,  с которой вам будет приходить письмо  */
​
 $message = print_r($_POST,true);
 @mail('to@mail.ru', 'Tilda TEST', $message, $headers);
/* замените электронную почту на вашу действующую почту,  на которую вам будет приходить письмо  */

echo"ok";

?>
Передача данных о товарах
В настройках сервиса Webhook находятся дополнительные настройки передачи данных о товарах на скрипт: передача данных о товарах в заказе массивом и передача externalid (внешнего кода) из других систем в товарах.
Галочка для передачи externalid товара доступна только при выборе опции передачи данных о товаре массивом. При ее активации передается внешний код товара из каталога для связи этого товара с внешней системой (например, МойСклад или 1С).
Передача данных ключа API через приемщик Webhook
При передаче данных через Webhook может понадобиться идентифицировать пользователей с помощью ключа API. В настройках приемщика можно указать имя ключа и его значение, а также указать метод передачи (POST или передача в заголовках).

Дополнительная информация и получение переменных в PHP
Чтобы получить все поля и значения без изменений нужно обратиться к переменной $_POST. $_POST это ассоциативный массив данных, например:

Email=test%40email.com 
Name=test+name 
Phone=0123456789 
Comments=example+comment 
Selectbox=red 
Checkbox=yes 
Date=25-03-2017 
Time=17%3A59 
Quantity=124 
Url=website.com
Чтобы извлечь информацию о конкретном поле, вам нужно обратиться к элементу массива по имени, например $_POST["Date"] , где вместо Date имя переменной, которое было указано у поля в форме.

Если вам нужно добавить собственные комментарии к полям, то вы можете сделать это с помощью этого примера:

<?php

header('Access-Control-Allow-Origin: *');

$headers = "From: from@webhookservesite.ru";​

$message = "";

foreach($_POST as $key => $value) {
  if($key == "Date") {
    $message .= "Дата выезда из гостиницы"; 
  } else { 
    $message .= $key; 
  }
  $message .= ": " . $value . "\n"; 
} 

$message = ​print_r($message, true);

@mail('to@mail.ru', 'Tilda TEST', $message, $headers);

echo "ok";

?> 
Если не изменять «имена переменных» у полей, то информация придёт с именами полей, у которых первая буква в верхнем регистре.

Если вы задали другое «имя переменной» у поля, то они приходят в таком виде:

customnamefield=yellow
Кроме полей из заявки приходят такие поля:

tranid=467251%3A8442970
formid=form48844953
где tranid соответствует Lead id (уникальный номер заявки) из раздела «Заявки», а formid соответствует Block id (номер блока, с которого была отправка).

Некоторые символы перед передачей заявок будут экранированы (например, вместо @ (собаки) будет %40, вместо : (двоеточия) будет %3a). Чтобы декодировать эти символы, нужно воспользоваться функцией urldecode (http://php.net/manual/ru/function.urldecode.php).

Получение адреса, с которого пришла заявка

Из переменной $_SERVER["HTTP_REFERER"] вы можете получить адрес, откуда пришла заявка к вам на Webhook.

Опционально: получение Cookie

Если в настройках Webhook была отмечена дополнительная настройка Посылать Cookie, то при наличии куки, вместе с полями заявок будет и поле COOKIES, например:

COOKIES=_ga%3DGA1.2.1861016115.1519204131%3B+_ym_uid%3D2021810468765220932 

Важно! Если пользователь ранее не был на вашем сайте, то куки будут отсутствовать и не придут с заявкой. Если пользователь ранее приходил на ваш сайт с UTM-меткой и вернулся не позже, чем через 30 дней, то в куки будет информация о UTM-метках, например:

COOKIES=TILDAUTM%3Dutm_source%253Dyandex%257C%257C%257Cutm_medium%253Dcpc%257C%257C%257Cutm_campaign%253Dpromo%257C%257C%257Cutm_content%253Dblocktext%257C%257C%257Cutm_term%253Dpoisk%257C%257C%257C 

Чтобы проверить, как выглядят поля, приходящие от заявок, воспользуйтесь сервисами:
http://requestcatcher.com
https://webhook.site
Примите во внимание, что мы, к сожалению, не осуществляем поддержку по вопросам, связанным с работой вашего кода.
Made on
Tilda