В этой статье мы кратко опишем пример интеграции Tilda и solOS с модулем Лиды.
Tilda позволяет принимать данные из форм на свой скрипт. Вы можете использовать приёмщик данных Webhook. Данные будут отправляться методом POST. Подробнее описано в этой статье.
Ниже приведён простой пример скрипта на PHP, который позволяет принимать и создавать лиды внутри solOS. Разместите его на своём хостинге и вставьте абсолютный путь к PHP-скрипту в форму настройки данных Webhook.
Вместо {{YOUR_CRM_URL}} укажите URL-адрес, по которому доступна solOS.
Для работы с публичными методами необходимо передавать заголовки X-Crypto-Token и X-Crypto-Secret. В примерах они указаны, как {{YOUR_CRM_TOKEN}} и {{YOUR_CRM_SECRET}} соответственно, вместо реальных ключей. Подробности смотрите в разделе API.
<?php
// CRM
const YOUR_CRM_URL = '{{YOUR_CRM_URL}}';
const YOUR_CRM_TOKEN = '{{YOUR_CRM_TOKEN}}';
const YOUR_CRM_SECRET = '{{YOUR_CRM_SECRET}}';
/**
* Возвращает метод запроса (GET, POST, HEAD, PUT, PATCH, DELETE и тд.)
* @return string
* Возвращаемое значение превращается в верхний регистр
*/
function getMethod()
{
return isset($_SERVER['REQUEST_METHOD']) ? strtoupper($_SERVER['REQUEST_METHOD']) : 'GET';
}
/**
* Проверка на POST
* @return bool
*/
function isPost()
{
return getMethod() === 'POST';
}
/**
* Очищает строку
*/
function clearString($string)
{
return trim(strip_tags($string));
}
/**
* Создает лид в CRM
*/
function createLead($name, $email, $phone, $comment, $extra)
{
$request_body = [
"module" => "leads",
"payload" => [
// "user_id" => 1, // ID ответственного пользователя при необходимости
"name" => $name,
"phone" => $phone,
"email" => $email,
"reference_id" => 4, // ID источника обращения
"comment" => $comment,
"extra" => $extra,
]
];
$fields = json_encode($request_body);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, YOUR_CRM_URL . '/api/post/');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type:application/json',
'X-Crypto-Token:' . YOUR_CRM_TOKEN,
'X-Crypto-Secret:' . YOUR_CRM_SECRET,
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
$response = curl_exec($ch);
curl_close($ch);
}
if (isPost()) {
$name = urldecode(mb_substr(clearString($_POST['Name']), 0, 100));
$email = urldecode(mb_substr(clearString($_POST['Email']), 0, 100));
$phone = urldecode(mb_substr(clearString($_POST['Phone']), 0, 50));
$comments = urldecode(mb_substr(clearString($_POST['Comments']), 0, 1000));
$extra = [];
foreach ($_POST as $key => $value) {
$extra[$key] = $value;
}
// Создание лида в CRM
createLead($name, $email, $phone, $comments, $extra);
// Ответ от нашего скрипта
echo "ok";
}
Остались вопросы? Обращайтесь в службу поддержки и подписывайтесь на наш Telegram-канал.