Dzięki otwartemu interfejsowi API możesz podłączyć bezpłatny system CRM do dowolnych kanałów komunikacji z klientem.
Jednym z najprostszych i najpopularniejszych kanałów jest formularz na stronie. Poniżej znajduje się przykład w pełni funkcjonalnego formularza do zgłoszeń lub informacji zwrotnych ze strony i tworzenia leads w CRM na podstawie tych danych.
Aby zminimalizować przykład, formularz jest tak prosty, jak to możliwe. Zalecamy zmodyfikowanie formularza do własnych potrzeb, przynajmniej ustawienie własnych stylów i dodanie ochrony przed spamem (captcha).
Formularz jest napisany w HTML bez elementów i bibliotek, jest dodany do kodu strony. Ponadto, aby formularz działał na Twojej stronie, musisz umieścić skrypt, aby dodać dane do CRM, jest on napisany w PHP.
Kroki instalowania kodu w celu utworzenia leads w CRM z formularza na stronie:
- Sprawdzamy, czy darmowy CRM jest utworzony i aktywny na koncie Zadarma, jeśli nie, zarejestruj się i skonfiguruj system CRM.
- Otrzymujemy klucze API w Panelu klienta.
- Na trasowaniu https://my.site.com/zcrm_leads tworzymy skrypt wysyłający dane z formularza do CRM za pośrednictwem interfejsu API (ten przykład jest w języku PHP). W polach UserKey i Secret musisz ustawić swój klucz i hasło uzyskane w kroku 2.
- W kodzie swojej witryny dodaj formularz, aby uzyskać lead i wysłać go do interfejsu API: (Ukryte pola są wymagane)
- Formularz jest zainstalowany i może już w pełni wykonywać swoje funkcje. Ale ponieważ nie ma wybranego design, wygląda to tak:
<?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']))
) {
//Jeśli klient został utworzony, zostaw notatkę tekstową w kanale
$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 zamienić na swoje dane z Panelu klienta
$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>
Zalecamy ustawienie swoich stylów i ochrony (na przykład bezpłatna reCAPTCHA). Możesz także zaktualizować formularz lub skrypt w dowolny sposób, aby wprowadzić inne dane lub w innej sekcji (na przykład kontakty lub zadania). W tej zakładce można zapoznać się z pełną listą możliwości (metod) integracji API CRM.