ืžืžืฉืง API ืฉืœ CRM ื‘ื—ื™ื ื

ืžืžืฉืง API ืฉืœ CRM ื‘ื—ื™ื ื

ืœืคื ื™ ืคื—ื•ืช ืžืฉื ื”, ื”ืฆื’ื ื• ืžืขืจื›ืช CRM ื—ื™ื ืžื™ืช ืžืฉื•ืœื‘ืช ื‘ืžืจื›ื–ื™ื” ื—ื™ื ืžื™ืช. ื‘ืžื”ืœืš ืชืงื•ืคื” ื–ื•, 14 ื—ื‘ืจื•ืช ื•-000 ืขื•ื‘ื“ื™ื ื”ืฉืชืžืฉื• ื‘ื•.
ื›ืขืช ืื ื• ืžืฆื™ืขื™ื ืžืžืฉืง API ืคืชื•ื—, ื‘ื• ื–ืžื™ื ื•ืช ืจื•ื‘ ื”ืคื•ื ืงืฆื™ื•ืช ืฉืœ ZCRM. ื”-API ืžืืคืฉืจ ืœืš ืœื”ืฉืชืžืฉ ื‘-CRM ืขื‘ื•ืจ ื›ืœ ืขืจื•ืฆื™ ืžื›ื™ืจื”.
ืœื”ืœืŸ ืื ื• ืžืชืืจื™ื ื‘ืงืฆืจื” ืืช ื”ืขื‘ื•ื“ื” ืขื ื”-API ื•ืืช ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื”ื–ืžื™ื ื”. ื ื™ืชื ืช ื’ื ื“ื•ื’ืžื” ืคืฉื•ื˜ื” ืืš ืฉื™ืžื•ืฉื™ืช ื•ืขื•ื‘ื“ืช: ืกืงืจื™ืคื˜ ืœื™ืฆื™ืจืช ืœื™ื“ ืžื˜ื•ืคืก ื‘ืืชืจ.

ื‘ืงืฆืจื” ืขืœ CRM ื‘ื—ื™ื ื

ื‘ื•ืื• ื ืžื ืข ืžืœืกื‘ื™ืจ ืžื” ื–ื” CRM. CRM ื—ื™ื ื Zadarma ืชื•ืžืš ื‘ื›ืœ ืคื•ื ืงืฆื™ื•ืช ืื—ืกื•ืŸ ื ืชื•ื ื™ ืœืงื•ื—ื•ืช ืกื˜ื ื“ืจื˜ื™ื•ืช. ื”ืžื™ื“ืข ื ืฉืžืจ ื‘ืคื™ื“ ืฉืœ ื”ืœืงื•ื—. ื›ืžื• ื›ืŸ, ื‘ื ื•ืกืฃ ืœืžื™ื“ืข ืขืœ ืœืงื•ื—ื•ืช, ื–ืžื™ืŸ ืžื ื”ืœ ืžืฉื™ืžื•ืช ื ื•ื— ืขื ืชืฆื•ื’ื” ืœื›ืœ ื˜ืขื (ืœื•ื— ืฉื ื”, ืงื ื‘ืŸ, ืจืฉื™ืžื”). ื›ืœ ื–ื” ื–ืžื™ืŸ ืขื‘ื•ืจ 50+ ืขื•ื‘ื“ื™ื ื•ืžืฉื•ืœื‘ ื‘ืžืœื•ืื• ืขื ื˜ืœืคื•ื ื™ื” (ื›ื•ืœืœ ืฉื™ื—ื•ืช ืžื“ืคื“ืคืŸ ื‘ื˜ื›ื ื•ืœื•ื’ื™ื™ืช WebRTC).
ืžืžืฉืง API ืฉืœ CRM ื‘ื—ื™ื ื
ืžื” ื–ืืช ืื•ืžืจืช ื—ื™ื ื? ืื™ืŸ ืชืขืจื™ืคื™ ZCRM ืื• ืฉื™ืจื•ืชื™ื ืฉืืชื” ืฆืจื™ืš ืœืฉืœื ืขื‘ื•ืจื. ื”ื“ื‘ืจ ื”ื™ื—ื™ื“ ืฉืืชื” ืฆืจื™ืš ืœืฉืœื ืขืœื™ื• ื”ื•ื ืฉื™ื—ื•ืช ื˜ืœืคื•ืŸ ื•ืžืกืคืจื™ื (ืœืคื™ ืชืขืจื™ืคื™ื ืžื™ื•ื—ื“ื™ื, ืœืžืฉืœ, ืชืฉืœื•ื ื—ื•ื“ืฉื™ ืขื‘ื•ืจ ืžืกืคืจ ื‘ืžื•ืกืงื‘ื” ื”ื•ื 95 ืจื•ื‘ืœ ืื• ืœื•ื ื“ื•ืŸ ื”ื•ื 1 ืื™ืจื•). ื•ืื ืื™ืŸ ื›ืžืขื˜ ืฉื™ื—ื•ืช? ืืชื” ื›ืžืขื˜ ืœื ืฆืจื™ืš ืœืฉืœื.
CRM ื‘ื—ื™ื ื ืคืขื™ืœ ื‘ืขื•ื“ ืฉื”ืžืจื›ื–ื™ื™ื” ื”ื—ื™ื ืžื™ืช Zadarma ืคืขื™ืœื”. ืœืื—ืจ ื”ื”ืจืฉืžื”, ื”ืžืจื›ื–ื™ื” ืคืขื™ืœื” ืœืžืฉืš ืฉื‘ื•ืขื™ื™ื, ื‘ืขืชื™ื“ ื™ืฉ ืฆื•ืจืš ืœื—ื“ืฉ ืืช ื”ื—ืฉื‘ื•ืŸ ืขื‘ื•ืจ ื›ืœ ืกื›ื•ื ืคืขื ืื—ืช ื‘-2 ื—ื•ื“ืฉื™ื. ืงืฉื” ืœื“ืžื™ื™ืŸ ืžืฉืจื“ ืฉื–ืงื•ืง ืœ-CRM ื•ืžืจื›ื–ื™ื”, ืื‘ืœ ืื™ืŸ ืฆื•ืจืš ื‘ืžืกืคืจ ืื• ืฉื™ื—ื•ืช ื›ืœืœ.

ืœืžื” ืืชื” ืฆืจื™ืš API ืขื‘ื•ืจ CRM ื‘ื—ื™ื ื

ื”ืคื™ืชื•ื— ืฉืœ ZCRM ืœื ืขื•ืฆืจ ืœื“ืงื”, ื”ืจื‘ื” ืคื•ื ืงืฆื™ื•ืช ื’ื“ื•ืœื•ืช ื•ืงื˜ื ื•ืช ื”ื•ืคื™ืขื•. ืื‘ืœ ืื ื—ื ื• ืžื‘ื™ื ื™ื ืฉื›ื“ื™ ืœื”ืฆื™ื’ ืžืขืจื›ืช ืคื•ื ืงืฆื™ื•ื ืœื™ืช ื‘ืืžืช, ื•ืœื ืจืง ืžื—ื‘ืจืช ื—ื›ืžื”, ืื™ื ื˜ื’ืจืฆื™ื” ืฉืœ ื˜ืœืคื•ื ื™ื” ืื™ื ื” ืžืกืคื™ืงื”.
ื›ื›ืœ ืฉื™ื•ืชืจ ืงืฉืจื™ื ืขื ื”ืœืงื•ื—, ื›ืš ื™ื™ื˜ื‘, ื•ืื ืฉื™ ื”ืงืฉืจ ื™ื›ื•ืœื™ื ืœื”ื™ื•ืช ืฉื•ื ื™ื ืžืื•ื“. ื”ื•ื“ื•ืช ืœ-API ืชื•ื›ืœื• ืœื”ื–ื™ืŸ ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™ (ืื• ืœื”ื™ืคืš, ืœืงื‘ืœ) ืžื™ื“ืข ืขืœ ื”ืœืงื•ื— / ืœื™ื“ ื•ืžืฉื™ืžื•ืช ืœืœื ื‘ืขื™ื•ืช. ื”ื•ื“ื•ืช ืœื›ืš, ื ื™ืชืŸ ืœื—ื‘ืจ ื›ืœ ืขืจื•ืฆื™ ืชืงืฉื•ืจืช ืขื ื”ืœืงื•ื—ื•ืช ื•ื›ืœ ืžืขืจื›ื•ืช ืื•ื˜ื•ืžืฆื™ื” ืื—ืจื•ืช.
ื”ื•ื“ื•ืช ืœ-API, ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘-ZCRM ื”ื—ื™ื ืžื™ ื‘ื›ืœ ื“ืจืš, ื›ื•ืœื” ืื• ื—ืœืงื™ืช. ืœืžืฉืœ, ื›ืžืžืฉืง ื ื•ื— ืœืขื‘ื•ื“ื” ืžื•ืœ ืงื”ืœ ืœืงื•ื—ื•ืช ืืจื’ื•ื ื™, ืื• ื›ืžืชื–ืžืŸ ืคืฉื•ื˜ ื•ื ื•ื—.
ืœื”ืœืŸ ื“ื•ื’ืžื” ืœืขืจื•ืฅ ื›ื–ื” - ื”ืชื—ื‘ืจื•ืช ืœื˜ืคืกื™ ืœื™ื“ื™ื CRM ื‘ืืชืจ. ื‘ื”ืžืฉืš ื”ืืชืจ ื ื‘ื™ื ื“ื•ื’ืžืื•ืช ื ื•ืกืคื•ืช, ืœืžืฉืœ ื™ืฆื™ืจืช ืžืฉื™ืžื” ืœื”ืชืงืฉืจื•ืช ื—ื–ืจื” ืœืœืงื•ื— (ืฉื™ื—ื” ื“ื—ื•ื™ื”).

ืฉื™ื˜ื•ืช ZCRM API ื‘ืกื™ืกื™ื•ืช

ืžื›ื™ื•ื•ืŸ ืฉืงื™ื™ืžื•ืช 37 ืฉื™ื˜ื•ืช ื–ืžื™ื ื•ืช ื‘-ZCRM API, ื ืžื ืข ืžืœืชืืจ ืืช ื›ื•ืœืŸ, ื ืชืืจ ืจืง ืืช ื”ืงื‘ื•ืฆื•ืช ื”ืขื™ืงืจื™ื•ืช ืฉืœื”ืŸ ืขื ื“ื•ื’ืžืื•ืช.
ืจืฉื™ืžื” ืžืœืื” ืขื ื“ื•ื’ืžืื•ืช ื–ืžื™ื ื” ื‘ืืชืจ ื‘ื›ืชื•ื‘ืช ืชื™ืื•ืจ ื”-CRM API.

ื ื™ืชืŸ ืœืขื‘ื•ื“ ืขื ืงื‘ื•ืฆื•ืช ื”ืฉื™ื˜ื•ืช ื”ื‘ืื•ืช:

  • ืœืงื•ื—ื•ืช (ืจืฉื™ืžื” ื›ืœืœื™ืช, ื‘ื—ื™ืจื•ืช ื ืคืจื“ื•ืช, ืขืจื™ื›ื”, ืžื—ื™ืงื”)
  • ืชื’ื™ื ื•ืžืืคื™ื™ื ื™ื ื ื•ืกืคื™ื ืฉืœ ืœืงื•ื—ื•ืช
  • ืขื“ื›ื•ืŸ ืœืงื•ื—ื•ืช (ืฆืคื™ื™ื”, ืขืจื™ื›ื”, ืžื—ื™ืงืช ืขืจื›ื™ื ื‘ืขื“ื›ื•ื ื™ ืœืงื•ื—ื•ืช)
  • ืขื•ื‘ื“ื™ื ืฉืœ ื”ืœืงื•ื— (ืžืื—ืจ ืฉื”ืœืงื•ื— ื”ื•ื ื‘ื“ืจืš ื›ืœืœ ื™ืฉื•ืช ืžืฉืคื˜ื™ืช, ื™ื™ืชื›ืŸ ืฉื™ื”ื™ื• ืœื• ืœื ืžืขื˜ ืขื•ื‘ื“ื™ื)
  • ืžืฉื™ืžื•ืช (ื›ืœ ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืœืขื‘ื•ื“ื” ืขื ืžืฉื™ืžื•ืช)
  • ืœื™ื“ื™ื (ื‘ืื•ืคืŸ ื“ื•ืžื”, ื›ืœ ื”ืคื•ื ืงืฆื™ื•ืช)
  • ืžืฉืชืžืฉื™ CRM (ื”ืฆื’ืช ืจืฉื™ืžื” ืฉืœ ืžืฉืชืžืฉื™ื, ื–ื›ื•ื™ื•ืชื™ื”ื, ื”ื’ื“ืจื•ืช, ืื ืฉื™ ืงืฉืจ ื•ืฉืขื•ืช ื”ืขื‘ื•ื“ื” ืฉืœื”ื)
  • ืฉื™ื—ื•ืช (ืžื—ื–ื™ืจ ืจืฉื™ืžื” ืฉืœ ืฉื™ื—ื•ืช)

ืžื›ื™ื•ื•ืŸ ืฉืžืฉืชืžืฉื™ื ื‘ืžื‘ื ื” ื”-API ื”ืงื™ื™ื ืฉืœ Zadarma, ืกืคืจื™ื•ืช ื‘-PHP, C#, Python ื›ื‘ืจ ื–ืžื™ื ื•ืช ืขื‘ื•ืจื• ื‘-Github.

ื“ื•ื’ืžื” ืœืฉื™ืžื•ืฉ ื‘-API

ื”ื“ื•ื’ืžื” ื”ืคืฉื•ื˜ื” ืืš ื”ืฉื™ืžื•ืฉื™ืช ื‘ื™ื•ืชืจ ื”ื™ื ื™ืฆื™ืจืช ืœื™ื“ ืžื˜ื•ืคืก. ื›ื“ื™ ืœืฆืžืฆื ืืช ื”ืงื•ื“ ืœืžื™ื ื™ืžื•ื, ื“ื•ื’ืžื” ื–ื• ืžื›ื™ืœื” ืจืง ืืช ื ืชื•ื ื™ ื”ืคื ื™ื•ืช ื”ื‘ืกื™ืกื™ื™ื. ื“ื•ื’ืžื” ื“ื•ืžื”, ืืš ืขื ื”ืขืจื•ืช ืžื”ืœืงื•ื— (ื‘ื“ืจืš ื›ืœืœ ื ื•ื›ื—ื•ืช ื‘ื›ืœ ืฆื•ืจื”) ื–ืžื™ื ื” ื‘ื‘ืœื•ื’ ื‘ืื™ื ื˜ืจื ื˜. ื“ื•ื’ืžืื•ืช ืœืชืกืจื™ื˜ ื›ืชื•ื‘ื•ืช ื‘ PHP ืœืœื ืžืกื’ืจื•ืช ื•ืœื›ืŸ ืžื•ื˜ืžืข ื‘ืงืœื•ืช.
ื“ื•ื’ืžื” ืœื˜ื•ืคืก HTML ืœื™ืฆื™ืจืช ืœื™ื“:

<form method="POST" action="/iw/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>

ื˜ื•ืคืก ื–ื” ืคืฉื•ื˜ ื‘ื™ื•ืชืจ ื›ื“ื™ ืœื ืœื”ืขืžื™ืก ืขืœ ื”ืžืืžืจ. ืื™ืŸ ืœื• ืขื™ืฆื•ื‘, ืื™ืŸ captcha, ืื™ืŸ ืฉื“ื” ื”ืขืจื•ืช. ื’ืจืกื” ืขื ืฉื“ื” ื”ืขืจื” ื–ืžื™ื ื” ื‘ื‘ืœื•ื’ ืฉืœื ื• (ื”ืชื’ื•ื‘ื” ืžืชื•ื•ืกืคืช ืœืคื™ื“ ืฉืœ ื”ืœืงื•ื— ืœืื—ืจ ื™ืฆื™ืจืช ื”ืœื™ื“).

ื•ืœืžืขืฉื” ื“ื•ื’ืžื” 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 ื”ื™ื ื“ื™ ืคืฉื•ื˜ื”, ื‘ื ื•ืกืฃ ื™ืฉ ื“ื•ื’ืžืื•ืช ืœืขื‘ื•ื“ื” PHP, C#, ืคื™ืชื•ืŸ. ื›ืš, ืœืœื ื›ืœ ื‘ืขื™ื”, ืืชื” ื™ื›ื•ืœ ืœื”ืชืื™ื CRM ืคืฉื•ื˜ ื‘ื—ื™ื ื ืœื›ืœ ื–ืจื™ืžืช ืขื‘ื•ื“ื”, ืœืื—ืจ ืฉืงื™ื‘ืœืช ืื•ื˜ื•ืžืฆื™ื” ืขื ืžืขื˜ ื“ื.
ZCRM ืžืชืคืชื— ื›ืœ ื”ื–ืžืŸ ื•ื›ืžืขื˜ ื›ืœ ื”ืชื›ื•ื ื•ืช ื”ื—ื“ืฉื•ืช ื™ื”ื™ื• ื–ืžื™ื ื•ืช ื“ืจืš ื”-API.
ืื ื• ืžื–ืžื™ื ื™ื ืื•ืชืš ื’ื ืœืฉืœื‘ ืืช ืžืขืจื›ื•ืช ื”ืžืขืจื›ืช ื”ืงื™ื™ืžื•ืช ืฉืœืš ืขื CRM ื•ืžืจื›ื–ื™ื™ื” ื—ื™ื ืžื™ืช Zadarma.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”