Благодаря открытому интерфейсу API, вы можете подключать бесплатную CRM Zadarma к любым каналам связи с клиентом.
Одним из самых простых и популярных каналов является форма на сайте. Ниже приведем пример полностью работоспособной формы для приема заявок или обратной связи с сайта и создания Лидов в CRM на основании этих данных.
Для минимизации примера форма максимально упрощена. Мы рекомендуем модифицировать форму для использования на вашем сайте, как минимум установить свои стили и добавить защиту для борьбы со спамом (капчу).
Форма написана на HTML без элементов и библиотек, вставляется в код сайта. Также для работы формы на вашем сайте нужно разместить скрипт для добавления данных в CRM, он написан на PHP.
Этапы установки кода для создания лида в CRM из формы на сайте
- Проверяем что бесплатная CRM создана и активна, если нет то регистрируемся и включаем.
- Получаем ключи для API в личном кабинете.
- По маршруту https://my.site.com/zcrm_leads создаем скрипт для отправки данных с формы в CRM через API (данный пример на PHP). В полях UserKey и Secret нужно установить ваш ключ и пароль полученные в пункте 2.
- В код вашего сайта добавляем форму для получения лида и отправки его в API: (Скрытые поля обязательны для запроса)
- Форма установлена и может уже полностью выполнять свои функции. Но так как она не имеет дизайна то имеет вид подобный этому:
<?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
)
);
}
<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>
Рекомендуем установить свои стили и защиту (например бесплатную reCAPTCHA). Также вы можете любым образом модернизировать форму либо скрипт, чтобы вносить другие данные, либо в другой раздел (например в контакты либо в задачи). Ознакомиться с полным списком возможностей (методов) интеграции вы можете в разделе API CRM.