Завдяки відкритому інтерфейсу API, ви можете підключати безкоштовну CRM Zadarma до будь-яких каналів зв'язку з клієнтом.
Одним з найпростіших і популярних каналів є форма на сайті. Наведемо приклад повністю працездатною форми для прийому заявок або зворотнього зв'язку з сайту і створення лідів в Teamsale CRM на підставі цих даних.
Для мінімізації прикладу форма максимально спрощена. Ми рекомендуємо модифікувати форму для використання на вашому сайті, як мінімум встановити свої стилі і додати захист для боротьби зі спамом (капчу).
Форма написана на HTML без елементів і бібліотек, вставляється в код сайту. Також для роботи форми на вашому сайті потрібно розмістити скрипт для додавання даних в Teamsale 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.