ืืืืื ืืงืขืจ ืืื ืึท ืืึธืจ ืฆืืจืืง, ืืืจ ืื ืืจืึธืืืืกื ืึท ืคืจืื ืงืจื ืกืืกืืขื ืื ืึทืืจืืืืื ืืื ืึท ืคืจืื ืคึผืืงืก. ืืื ืืขื ืฆืืื, 14 ืงืึธืืคึผืึทื ืืขืก ืืื 000 ืขืืคึผืืืืื ืืึธืื ืืขืืืืื ื ืขืก.
ืืืฆื ืืืจ ืคืึธืจืฉืืึธืื ืึทื ืึธืคึฟื API ืฆืืืื ื, ืืื ืืืึธืก ืจืืึฟ ืคืื ืื ืคืึทื ืืงืฉืึทื ื ืคืื ZCRM ืืขื ืขื ืืืจืขืืืืื. ืื ืึทืคึผื ืึทืืึทืื ืืืจ ืฆื ื ืืฆื CRM ืคึฟืึทืจ ืงืืื ืคืืจืงืืืคืื ื ืืฉืึทื ืึทืื.
ืื ืืขืจ ืืืจ ืืขืงืืฆืขืจ ืืึทืฉืจืืึทืื ืื ืึทืจืืขื ืืื ืื API ืืื ืื ืื ืืืฆื ืคืึทื ืืงืฉืึทื ืึทืืืื. ื ืคึผืฉืื ืึธืืขืจ ื ืืฆืืง ืืื ืึทืจืืขื ืืืึทืฉืคึผืื ืืื ืืืื ืืขืืขืื: ืึท ืฉืจืืคื ืคึฟืึทืจ ืงืจืืืืืื ื ืึท ืคืืจื ืคืื ืึท ืคืึธืจืขื ืืืืฃ ืืขื ืคึผืืึทืฅ.
ืืขืงืืฆืขืจ ืืืขืื ืคืจืื CRM
ืืึธืืืจ ืืื ืึธืคึผืืึทืืื ืคืื ืืขืจืงืืขืจื ืืืึธืก CRM ืืื.
ืืืืก ืืืื ื ืคืจืื? ืขืก ืืขื ืขื ืงืืื ZCRM ืืขืจืึทืคืก ืึธืืขืจ ืืึทืืื ืื ืืขื ืืืึธืก ืืืจ ืืึธืื ืฆื ืืึทืฆืึธืื ืคึฟืึทืจ. ืืขืจ ืืืืื ืืึทื ืืืจ ืืึธืื ืฆื ืืึทืฆืึธืื ืคึฟืึทืจ ืืื ืืขืืขืคืึธื ืงืึทืืืก ืืื ื ืืืขืจื (ืืืื ืกืคึผืขืฆืืขื ืืขืจืึทืคืก, ืืืฉื, ืึท ืืืืืขืฉืืขื ืึธืคึผืฆืึธื ืคึฟืึทืจ ืึท ื ืืืขืจ ืืื ืืึธืกืงืืืข ืืื 95 ืจืืื ืึธืืขืจ ืืึธื ืืึธื ืืื 1 ืืืจืึธ). ืืื ืืืื ืขืก ืืขื ืขื ืึผืืขื ืงืืื ืจืืคื? ืืืจ ืึผืืขื ืืึธื ื ืื ืืึธืื ืฆื ืืึทืฆืึธืื.
Free CRM ืืื ืึทืงืืืื ืืฉืขืช ืคืจืื PBX Zadarma ืืื ืึทืงืืืื. ื ืึธื ืจืขืืืกืืจืึทืฆืืข, ืื ืคึผืืงืก ืืื ืึทืงืืืื ืคึฟืึทืจ 2 ืืืึธืื, ืืื ืืขืจ ืฆืืงืื ืคึฟื ืขืก ืืื ื ืืืืืง ืฆื ืจืืคึผืืขื ืืฉ ืื ืืฉืืื ืคึฟืึทืจ ืงืืื ืกืืืข 1 ืืึธื ืืื 3 ืืืฉืื. ืขืก ืืื ืฉืืืขืจ ืฆื ืืืึทืืืฉืึทื ืึทื ืึธืคืืก ืืืึธืก ืืึทืจืฃ CRM ืืื PBX, ืึธืืขืจ ืงืืื ื ืืืขืจ ืึธืืขืจ ืงืึทืืืก ืืขื ืขื ืืืจืฃ.
ืคืืจืืืืก ืืืจ ืืึทืจืคึฟื ืึทื ืึทืคึผื ืคึฟืึทืจ ืคืจืื CRM
ืื ืึทื ืืืืืงืืื ื ืคืื ZCRM ืืื ื ืืฉื ืืึทืืื ืคึฟืึทืจ ืึท ืืื ืื, ืคืืืข ืืจืืืก ืืื ืงืืืื ืคืึทื ืืงืฉืึทื ื ืืึธืื ืืจืืืก. ืึธืืขืจ ืืืจ ืคึฟืึทืจืฉืืืื ืึทื ืืื ืกืืจ ืฆื ืคืึธืจืฉืืขืื ืึท ืืืืช ืคืึทื ืืงืฉืึทื ืึทื ืกืืกืืขื, ืืื ื ืื ื ืึธืจ ืึท ืงืืื ืืขืคื, ืืขืืขืคืึธื ื ืื ืืึทืืจืืืฉืึทื ืืื ื ืืฉื ืืขื ืื.
ืื ืืขืจ ืงืึธื ืืึทืงืื ืืื ืืขื ืงืืืขื ื, ืื ืืขืกืขืจ, ืืื ืงืึธื ืืึทืงืื ืงืขื ืขื ืืืื ืืืืขืจ ืึทื ืืขืจืฉ. ืืึทื ืง ืฆื ืื API, ืืืจ ืงืขื ืขื ืืืืืึธืืึทืืืฉ ืึทืจืืึทื (ืึธืืขืจ, ืืืืฃ ืื ืคืึทืจืงืขืจื, ืืึทืงืืืขื) ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืืขื ืงืืืขื ื / ืคืืจื ืืื ืืึทืกืงืก ืึธื ืงืืื ืคืจืืืืขืืขื. ืืึทื ืง ืฆื ืืขื, ืขืก ืืื ืืขืืืขื ืฆื ืคืึทืจืืื ืื ืงืืื ืืฉืึทื ืึทืื ืคืื ืงืึธืืื ืืงืึทืฆืืข ืืื ืงืึทืกืืึทืืขืจื ืืื ืงืืื ืื ืืขืจืข ืึธืืึทืืืืฉืึทื ืกืืกืืขืืขื.
ืืึทื ืง ืฆื ืื API, ืคืจืื ZCRM ืงืขื ืขื ืืืื ืืขืืืืื ื ืืื ืงืืื ืืืขื, ืึธืืขืจ ืืื ืืึทื ืฅ ืึธืืขืจ ืืืื. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืื ืึท ืืึทืงืืืขื ืฆืืืื ื ืคึฟืึทืจ ืืจืืขืื ืืื ืึท ืคึฟืืจืืข ืงืื ื ืืึทืืข, ืึธืืขืจ ืืื ืึท ืคึผืฉืื ืืึทืงืืืขื ืกืงืขืืืฉืืืขืจ.
ืื ืืขืจ ืืื ืึท ืืืืฉืคึผืื ืคืื ืึทืืึท ืึท ืงืึทื ืึทื - ืงืึทื ืขืงืืื ื ืฆื CRM ืคืืจื ืคืืจืืขื ืืืืฃ ืืขื ืคึผืืึทืฅ. ืฉืคึผืขืืขืจ ืืืืฃ ืืขื ืคึผืืึทืฅ ืืืจ ืืืขื ืืขืื ืื ืืขืจืข ืืืืฉืคืืื, ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืงืจืืืืืื ื ืึท ืึทืจืืขื ืฆื ืจืืคื ืืขื ืงืืืขื ื ืฆืืจืืง (ืืืคืขืจื ืจืืคื).
ืืงืขืจืืืง ZCRM API ืืขืืืึธืืก
ืืื ื ืขืก ืืขื ืขื 37 ืืขืืืึธืืก ืื ืืืฆื ืืื ืื ZCRM API, ืืืจ ืืืขืื ืึธืคึผืืึทืืื ืคืื ืืืกืงืจืืืืื ื ืึทืืข ืคืื โโืืื, ืืืจ ืืืขืื ืืึทืฉืจืืึทืื ืืืืื ืืืืขืจ ืืืืคึผื ืืจืืคึผืขืก ืืื ืืืืฉืคืืื.
ื ืคืืืฉืืขื ืืืง ืจืฉืืื ืืื ืืืืฉืคืืื ืืื ืื ืืืฆื ืืืืฃ ืืขืจ ืืืขืืืืืื ืืืึท
ืขืก ืืื ืืขืืืขื ืฆื ืึทืจืืขืื ืืื ืื ืคืืืืขื ืืข ืืจืืคึผืขืก ืคืื ืืขืืืึธืืก:
- ืงืืืืึทื ืฅ (ืึทืืืขืืืื ืข ืจืฉืืื, ืืึทืืื ืืขืจ ืกืึทืืขืงืฉืึทื ื, ืขืืืืื ื, ืืืืืืื ื)
- ืืึทืืก ืืื ื ืึธื ืคึผืจืึธืคึผืขืจืืืขืก ืคืื ืงืืืืึทื ืฅ
- ืงืื ื ืคืืืขืจ (ืืืืืื ื, ืขืืืืื ื, ืืืกืืขืงื ืืืื ืกื ืืื ืงืื ื ืคืืื)
- ืขืืคึผืืืืื ืคืื ืืขื ืงืืืขื ื (ืืื ื ืืขืจ ืงืืืขื ื ืืื ืืืืฉืึทืืืึทืื ืึท ืืขืืึทื ืขื ืืืื, ืขืก ืงืขื ืืึธืื ืืึทื ืฅ ืึท ืืืกื ืขืืคึผืืืืื)
- ืืึทืกืงืก (ืึทืืข ืคืึทื ืืงืฉืึทื ืึทืืืื ืคึฟืึทืจ ืืจืืขืื ืืื ืืึทืกืงืก)
- ืคืืจื (ืกืืืึทืื, ืึทืืข ืคืึทื ืืงืฉืึทื ื)
- CRM ืืืืขืจื (ืืืืึทืื ืืืง ืึท ืจืฉืืื ืคืื ืืืืขืจื, ืืืืขืจ ืจืขืื, ืกืขืืืื ืืก, ืงืึธื ืืึทืงืื ืืื ืึทืจืืขื ืฉืขื)
- ืงืึทืืืก (ืงืขืจื ืึท ืจืฉืืื ืคืื ืงืึทืืืก)
ืืื ื ืื ืืืืืกืืื ื Zadarma API ืกืืจืืงืืืจ ืืื ืืขื ืืฆื, ืืืืืจืขืจืื ืืื PHP, C #, Python ืืขื ืขื ืฉืืื ืื ืืืฆื ืคึฟืึทืจ ืขืก ืืืืฃ Github.
ืึทืคึผื ืืึทื ืืฅ ืืืึทืฉืคึผืื
ืื ืกืืืคึผืืึทืกื ื ืึธื ืืขืจืกื ื ืืฆืืง ืืืึทืฉืคึผืื ืืื ืงืจืืืืืื ื ืึท ืคืืจื ืคืื ืึท ืคืึธืจืขื. ืฆื ืืึทืืื ืื ืงืึธื ืฆื ืึท ืืื ืืืื, ืืขื ืืืึทืฉืคึผืื ืึผืืื ืืืืื ืื ืืงืขืจืืืง ืคืืจื ืืึทืื. ื ืขื ืืขื ืืืึทืฉืคึผืื, ืึธืืขืจ ืืื ืืึทืืขืจืงืื ืืขื ืคืื ืืขื ืงืืืขื ื (ืืืืฉืึทืืืึทืื ืคืึธืจืฉืืขืื ืืื ืืขืืขืจ ืคืึธืจืขื) ืืื ืื ืืืฆื
ืึท ืืืืฉืคึผืื ืคืื ืึท HTML ืคืึธืจืขื ืคึฟืึทืจ ืงืจืืืืืื ื ืึท ืคืืจื:
<form method="POST" action="/yi/zcrm_leads">
<label for="name">Name:</label>
<br>
<input type="text" id="name" name="name" 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>
ืืขืจ ืคืึธืจืขื ืืื ืืึธืจ ืคึผืฉืื ืึทืืื ื ืืฉื ืฆื ืึธืืืขืจืืึธืึทื ืืขื ืึทืจืืืงื. ืขืก ืืื ืงืืื ืคึผืืึทื, ืงืืื ืงืึทืคึผืืืฉืึท, ืงืืื ืืึทืืขืจืงืื ื ืคืขืื. ื ืืืขืจืกืืข ืืื ืึท ืืึทืืขืจืงืื ื ืคืขืื ืืื ืื ืืืฆื ืืืืฃ ืืื ืืืขืจ ืืืึธื (ืื ืืึทืืขืจืงืื ื ืืื ืืืกืืฃ ืฆื ืื ืงืึธืจืืขื ืคืื ืืขื ืงืืืขื ื ื ืึธื ืื ืคืืจื ืืื ืืืฉืืคื).
ืืื ืึทืงืฉืื ืึท PHP ืืืืฉืคึผืื ืคึฟืึทืจ ืงืจืืืืืื ื ืึท ืคืืจื ืืื ืืึทืื ืคึฟืื ืื ืคืึธืจืขื:
<?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);
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
)
);
}
ืืื ืืืจ ืงืขื ืขื ืืขื, ืืจืืขืื ืืื ืื API ืืื ืืึทื ืฅ ืคึผืฉืื, ืคึผืืืก ืขืก ืืขื ืขื ืืืืฉืคืืื ืคืื ืืจืืขืื ืืืืฃ
ZCRM ืืื ืงืขืกืืืืขืจ ืืืืึทืืืืื ื ืืื ืึผืืขื ืึทืืข ื ืืึท ืคึฟืขืึดืงืืืื ืืืขื ืืืื ืืืจืขืืืืื ืืืจื ืื API.
ืืืจ ืืืื ืืึทืื ืืืจ ืฆื ืืืกืฉืืืืขื ืืืื ืืืืืกืืื ื ืกืืกืืขื ืกืืกืืขืืขื ืืื ืคืจืื CRM ืืื PBX Zadarma.
ืืงืืจ: www.habr.com