Связаться с нами
Создаем Webhook в Tilda. В параметрах WEBHOOK URL указываем адрес исполняемого скрипта. Подключаем CREST библиотеку и начинаем.
Логируем входящий POST запрос, чтобы легко разобрать параметры запроса:
$request = $_POST;
CRest::setLog($request, 'tilda_request');
Можем предварительно проверить данные контакта на предмет уже существующего, и если нет, то создать новый контакт:
$fieldsContact = [];
if (isset($request['Name'])) {
$fieldsContact['NAME'] = $request['Name'];
} else {
$fieldsContact['NAME'] = 'Без имени';
}
if (isset($request['Email'])) {
$fieldsContact['EMAIL'] = [
[
'VALUE' => $request['Email'],
'VALUE_TYPE' => 'WORK',
],
];
}
if (isset($request['Phone'])) {
$fieldsContact['PHONE'] = [
[
'VALUE' => $request['Phone'],
'VALUE_TYPE' => 'WORK',
],
];
}
$fields = [
'fields' => $fieldsContact,
'params' => ['REGISTER_SONET_EVENT' => 'N']
];
$contact = CRest::call('crm.contact.add', $fields);
$contactID = $contact['result'];
CRest::setLog($contactID, 'contactID');
if ($contactID) {
CRest::setLog($contactID, 'tilda_contact_id');
} else {
CRest::setLog($contact, 'tilda_contact_id_error');
}
После чего создать CRM Лид или Сделку
if(isset($request['formname'])) {
$arFields["TITLE"] = "Tilda веб-форм ".$request['formname']." от " . $request['Phone'];
} else {
$arFields["TITLE"] = "Tilda веб-форм";
}
$arFields["CATEGORY_ID"] = 0;
$result = CRest::call('crm.deal.add', ['fields' => $arFields]);
if ($result['result']) {
CRest::setLog($result['result'], 'tilda_deal_id');
} else {
CRest::setLog([$result, $request], 'tilda_deal_error');
}