Бесплатный сервис обратного звонка Callback Free теперь позволяет передавать информацию о заказанном обратном звонке во внешние системы. Передача данных осуществляется с помощью webhook, который вы можете настроить в своём личном кабинете. Укажите в личном кабинете URL-адрес скрипта, в который планируете получать информацию и установите галочку «Включить».

После этого по указанному URL будут передаваться запросы в формате POST при каждом заказе обратного звонка. Запросы содержат следующую информацию:
- timestamp — дата и время заказа обратного звонка в формате timestamp
- user_agent — User-agent пользователя, оставившего заказ на обратный звонок
- referrer_url — реферер (страница, с которой был совершен переход на сайт, на котором установлен виджет Callback Free)
- start_url — страница входа (страница, на которую изначально попал пользователь на сайте, на котором установлен виджет Callback Free)
- submit_url — страница заказа (страница, на которой был совершен заказ обратного звонка)
- phone — телефон пользователя, указанный при заказе обратного звонка
- ip — ip-адрес пользователя, оставившего запрос обратного звонка
Рассмотрим пример использования:
<?php
$log = "Новый запрос обратного звонка\n";
$log .= "Время: ".$_POST['timestamp']."\n";
$log .= "User-agent: ".$_POST['user_agent']."\n";
$log .= "Реферер: ".$_POST['referrer_url']."\n";
$log .= "Страница входа: ".$_POST['start_url']."\n";
$log .= "Страница заявки: ".$_POST['submit_url']."\n";
$log .= "Телефон: ".$_POST['phone']."\n";
$log .= "ip отправителя: ".$_POST['ip']."\n";
$log .= "- - -\n\n"
$f = fopen('log.txt', 'a');
fwrite($f, $log);
fclose($f);
?>
В данном примере реализовано сохранение в файл всей информации о заказанном звонке, пришедшей в Webhook, вы можете использовать её, например, для передачи в вашу CRM-систему. Ниже рассмотрим интеграцию с CRM на примере Битрикс24.
Интеграция обратного звонка с Битрикс24
Рассказываем как подключить бесплатный обратный звонок с сайта в CRM Bitrix24. Первым делом нам потребуется создать еще один веб-хук, но уже на стороне Битрикс 24. Авторизуйтесь в вашем Битрикс24, укажите в общем поиске «Вебхуки» и перейдите в соответствующий раздел.

Добавьте «Входящий вебхук» и разрешите доступ к модулю «crm».

Для дальнейшей работы нам потребуется ключ REST API, выделенный на скриншоте ниже.

В скрипт размещенный по адресу, указанному в личном кабинете Callback Free поместите следующий код, изменив параметры bx_url, bx_user, bx_key и bx_manager.
<?php
// Настройки Битрикс24
$bx_url = "https://callback-free.bitrix24.ru"; //Адрес вашего Битрикс24
$bx_user = 1; //ID пользователя от лица которого был создан Вебхук
$bx_key = "21uir21jcn923"; //Ключ REST API
$bx_manager = 1; //ID менеджера которому будет присвоена заявка
$bx_source = "CALLBACK"; //ID источника (в нашем случае - заказ обратного звонка)
// Получаем параметры
$phone = $_POST['phone'];
$submit_url = $_POST['submit_url'];
$start_url = $_POST['start_url'];
// Получаем UTM-метки
$utm_source = "";
$utm_medium = "";
$utm_campaign = "";
$utm_content = "";
$utm_term = "";
function unhtmlspecialchars($string){
$string = str_replace ( '&', '&', $string );
$string = str_replace ( ''', '\'', $string );
$string = str_replace ( '"', '"', $string );
$string = str_replace ( '<', '<', $string ); $string = str_replace ( '>', '>', $string );
$string = str_replace ( '%7C', '|', $string );
return $string;
}
if ($start_url != "unset"){
$utm_url = parse_url($start_url);
if (isset($utm_url['query'])){
$query = $utm_url['query'];
$query = explode('&', $query);
foreach($query as $param){
list($utm_name, $utm_value) = explode('=', $param, 2);
if ($utm_name == "utm_source"){
$utm_source = urldecode($utm_value);
} elseif ($utm_name == "utm_medium"){
$utm_medium = urldecode($utm_value);
} elseif ($utm_name == "utm_campaign"){
$utm_campaign = urldecode($utm_value);
} elseif ($utm_name == "utm_content"){
$utm_content = urldecode($utm_value);
} elseif ($utm_name == "utm_term"){
$utm_term = urldecode($utm_value);
}
}
}
}
// Отправка заявки в Битрикс24
$queryUrl = "$bx_url/rest/$bx_user/$bx_key/crm.lead.add.json";
$queryData = http_build_query(array(
'fields' => array(
"STATUS_ID" => "NEW",
"OPENED" => "Y",
"ASSIGNED_BY_ID" => $bx_manager,
"SOURCE_ID" => $bx_source,
"SOURCE_DESCRIPTION" => $submit_url,
"PHONE" => array(array("VALUE" => $phone, "VALUE_TYPE" => "WORK" )),
"COMMENTS" => "Пользователь оставил заявку на обратный звонок",
"UTM_CAMPAIGN" => $utm_campaign,
"UTM_CONTENT" => $utm_content,
"UTM_MEDIUM" => $utm_medium,
"UTM_SOURCE" => $utm_source,
"UTM_TERM" => $utm_term
),
'params' => array("REGISTER_SONET_EVENT" => "Y")
));
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $queryUrl,
CURLOPT_POSTFIELDS => $queryData,
));
$result = curl_exec($curl);
curl_close($curl);
?>
Теперь, после отправки заявки на заказ обратного звонка на вашем сайте информация автоматически будет передана в Битрикс24. На основе этой информации будет создан новый лид. При этом в карточке лида сохранятся UTM-метки от страницы входа, а в описание источника будет добавлен адрес страницы, на которой был совершен заказ обратного звонка.