- Зачем бизнесу интегрировать форму заявок с CRM
- Сколько стоит интеграция формы сайта с CRM
- Шаг 1. Настройки в личном кабинете Zadarma
- Шаг 2. PHP-скрипт
- Шаг 3. HTML-форма
- Шаг 4. Дополнительные настройки
- Шаг 5. Что происходит после отправки формы
- Итоги
- FAQ
Путь клиента к покупке или обращению в компанию чаще всего начинается с простой формы на сайте. Однако для того, чтобы быстро превратить заявку в успешную сделку, недостаточно просто собрать контактные данные - важно понимать, куда они попадают и как обрабатываются дальше.
Основой эффективной работы с клиентами является CRM-система. Именно она помогает структурировать базу контактов, автоматизировать задачи и следить за тем, чтобы ни одно обращение не осталось без внимания. О том, какие операционные задачи помогает решить CRM, вы можете прочитать в статье Что такое CRM и зачем ей интеграция с телефонией?.
Но одной CRM недостаточно. Она должна взаимодействовать с другими инструментами и каналами коммуникации, которые использует ваш бизнес. Прямая интеграция формы сайта с CRM через API уже давно стала стандартом современной компании. Такой подход позволяет ускорить обработку заявок, сохранить полный контекст обращения и избавить сотрудников от рутинного ручного ввода данных.
В этой статье мы пошагово рассмотрим процесс интеграции. Вы узнаете, как автоматически передавать данные из формы на сайте в CRM и какие дополнительные сведения помогут отделу продаж и поддержки работать эффективнее.
Зачем бизнесу интегрировать форму заявок с CRM
Прежде чем перейти к коду, давайте посмотрим на задачу с точки зрения бизнеса. Что дает такая интеграция?
- Мгновенная передача данных. Заявка попадает в CRM сразу после нажатия кнопки «Отправить». Клиент еще не успеет закрыть страницу, а ваша команда уже получит уведомление и сможет начать работу.
- Минимизация ошибок. Ручной перенос данных неизбежно приводит к ошибкам. Неверно введенный email или пропущенная цифра в номере телефона могут стоить вам клиента. API автоматически передает данные в CRM без потерь и искажений.
- Сохранение контекста обращения. Обычное письмо содержит только информацию, которую ввел пользователь. Интеграция через API позволяет добавлять дополнительные параметры и скрытые данные, которые помогают лучше понимать потребности клиента.
- Автоматическая сегментация лидов. Скрипт может присваивать теги в зависимости от страницы, с которой была отправлена заявка. Например, обращения со страницы «Ошибка оплаты» автоматически направляются в техническую поддержку, а заявки со страницы «Тарифы» — в отдел продаж.
Теперь, когда преимущества понятны, перейдем к практической реализации.
Сколько стоит интеграция формы сайта с CRM
Teamsale CRM работает вместе с виртуальной АТС Zadarma, и обе услуги предоставляются бесплатно. Для поддержания активности аккаунта необходимо пополнять баланс хотя бы один раз в три месяца. Средства можно использовать на любые услуги: исходящие звонки, виртуальные номера или дополнительные функции АТС.
При необходимости можно подключить тарифный пакет, включающий минуты на исходящие звонки, виртуальные номера, AI-аналитику речи, увеличенное количество пользователей CRM и другие возможности. Выбрать подходящий тариф можно в зависимости от размера компании, объема коммуникаций и необходимых функций.
Шаг 1. Настройки в личном кабинете Zadarma
В разделе «Настройки → Интеграции и API» убедитесь, что интеграция с Teamsale CRM активирована. Затем откройте раздел «Ключи и API» и получите свои ключи доступа (key и secret). Они понадобятся для авторизации запросов к API.
Шаг 2. PHP-скрипт
Создайте обработчик, например по адресу https://my.site.com/zcrm_leads, который будет принимать данные формы и отправлять их в CRM через API. В полях UserKey и Secret необходимо указать данные, полученные на предыдущем шаге.
<?php
$postData = $_POST;
if ($postData) {
if (isset($postData['phones'], $postData['phones'][0], $postData['phones'][0]['phone'])) {
$postData['phones'][0]['type'] = 'work';
}
if (isset($postData['contacts'], $postData['contacts'][0], $postData['contacts'][0]['value'])) {
$postData['contacts'][0]['type'] = 'email_work';
}
$params = ['lead' => $postData];
$params['lead']['lead_source'] = 'form';
$leadData = makePostRequest('/v1/zcrm/leads', $params);
if (isset($leadData['status'], $leadData['data'], $leadData['data']['id'])
&& $leadData['status'] === 'success'
&& (isset($postData['comment']) && !empty($postData['comment']))
) {
//Если клиент был создан, вы можете оставить текстовую заметку в его карте
$addFeedMethod = sprintf('/v1/zcrm/customers/%s/feed', $leadData['data']['id']);
$messageData = ['content' => $postData['comment']];
makePostRequest($addFeedMethod, $messageData);
}
var_dump($leadData);
}
exit();
function makePostRequest($method, $params)
{
// userKey и secret нужно заменить на свои данные из личного кабинета
$userKey = '';
$secret = '';
$apiUrl = 'https://api.zadarma.com';
ksort($params);
$paramsStr = makeParamsStr($params);
$sign = makeSign($paramsStr, $method, $secret);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $apiUrl . $method);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_POSTFIELDS, $paramsStr);
curl_setopt($curl, CURLOPT_HTTPHEADER, [
'Authorization: ' . $userKey . ':' . $sign
]);
$response = curl_exec($curl);
$error = curl_error($curl);
curl_close($curl);
if ($error) {
return null;
} else {
return json_decode($response, true);
}
}
/**
* @param array $params
* @return string
*/
function makeParamsStr($params)
{
return http_build_query($params, null, '&', PHP_QUERY_RFC1738);
}
/**
* @param string $paramsStr
* @param string $method
* @param string $secret
*
* @return string
*/
function makeSign($paramsStr, $method, $secret)
{
return base64_encode(
hash_hmac(
'sha1',
$method . $paramsStr . md5($paramsStr),
$secret
)
);
}
Шаг 3. HTML-форма
Добавьте на сайт HTML-форму для отправки данных в CRM. Скрытые поля являются обязательными для корректной передачи информации.
<form method="POST" action="/zcrm_leads">
<label for="name">Name:
<br>
<input type="text" id="name" name="name" value="">
<br>
<label for="comment">Comment:</label><br>
<input type="text" id="comment" name="comment" value="">
<br>
<label for="phone">Phone:</label><br>
<input type="text" id="phone" name="phones[0][phone]" value="">
<br>
<label for="phone">Email:</label><br>
<input type="text" id="email" name="contacts[0][value]" value="">
<br>
<br>
<input type="submit" value="Submit">
</form>
Пример написан на чистом HTML без использования сторонних библиотек. Вы можете адаптировать внешний вид формы под дизайн своего сайта и добавлять дополнительные поля по мере необходимости.
Полный список методов интеграции доступен в разделе API CRM.
Шаг 4. Дополнительные настройки
Базовая форма передает имя, телефон, email и комментарий. Однако API CRM позволяет отправлять значительно больше данных.
Маркетинговые параметры
Если ваш сайт использует UTM-метки, их можно автоматически передавать в CRM через скрытые поля формы. Это позволит точно понимать, из какого рекламного канала пришел лид.
Теги
Теги помогают автоматически распределять лидов по категориям. Их можно назначать как в HTML-форме, так и непосредственно в PHP-скрипте.
Дополнительные свойства
Если в форме присутствуют специфические поля, например предпочитаемое время звонка или выбранная услуга, их можно передавать через параметр custom_properties.
Шаг 5. Что происходит после отправки формы
В текущем виде форма полностью работоспособна. Однако перед запуском в рабочей среде рекомендуется выполнить несколько дополнительных шагов.
- Защита от спама. Рекомендуется подключить проверку через бесплатную Google reCAPTCHA.
- Валидация данных на сервере. Проверяйте корректность email, телефона и обязательных полей до отправки информации в CRM.
- Обработка ошибок. Вместо вывода
var_dump($leadData)лучше реализовать перенаправление пользователя на страницу благодарности или страницу с сообщением об ошибке.
Итоги
Форма обратной связи — самый простой способ передачи данных в CRM. Однако тот же подход можно использовать для интернет-магазинов, чат-ботов, лендингов и любых других каналов получения заявок.
Открытое API CRM Zadarma не ограничивает количество и тип интеграций. Вы можете автоматизировать практически любой бизнес-процесс и подключать собственные решения без использования сторонних сервисов.
Если вы хотите расширить возможности интеграции, полный список методов API доступен в разделе «Поддержка → API» на сайте Zadarma.
FAQ
Как автоматически добавлять лиды из формы сайта в CRM?
Самый надежный способ — интеграция через API. Данные формы передаются на серверный скрипт (например, на PHP), который формирует подписанный запрос и отправляет его в CRM. Лид создается автоматически сразу после отправки формы.
Можно ли подключить форму сайта к CRM без плагинов?
Да. Для этого достаточно использовать серверный скрипт на PHP, Python или Node.js и иметь доступ к API CRM. Никакие дополнительные платформы или конструкторы не требуются.
Как безопасно хранить ключи API?
Ключи API должны использоваться только на стороне сервера. Храните их в PHP-скрипте или переменных окружения. Никогда не размещайте key и secret в JavaScript-коде, доступном пользователям.
Нужно ли оплачивать CRM для работы с API?
Нет. Teamsale CRM предоставляет доступ к API бесплатно. Для использования интеграций достаточно иметь активный аккаунт и положительный баланс.