13.07.2020
Zadarma CRM

Dank der offenen API, können Sie das kostenlose Zadarma CRM mit beliebigen Kanälen für die Kommunikation mit Ihren Kunden verbinden.

Einer der einfachsten und beliebtesten Kanäle ist das Formular auf der Website. Im Folgenden finden Sie ein Beispiel für ein voll funktionsfähiges Formular zum Empfangen von Anfragen oder für das Feedback von der Website, und zum Erstellen von Leads in ZCRM basierend auf diesen Daten.

Um das Beispiel zu minimieren, wird das Formular maximal vereinfacht. Wir empfehlen, das Formular für die Verwendung auf Ihrer Website zu ändern, zumindest Ihren Stil festzulegen und den Schutz gegen Spam (Captcha) hinzuzufügen.

Das Formular ist in HTML ohne Elemente und Bibliotheken geschrieben und wird in den Site-Code eingefügt. Damit das Formular auf Ihrer Site funktioniert, müssen Sie ein Skript zum Hinzufügen von Daten zu ZCRM platzieren. Es ist in PHP geschrieben.

Schritte zum Installieren von Code zum Erstellen eines Leads in CRM aus dem Formular auf Ihrer Website

  1. Überprüfen Sie, ob das kostenlose CRM erstellt und aktiv ist. Wenn nicht, melden Sie sich an und aktivieren es.
  2. Sie erhalten die Schlüssel für die API in Ihrem Profile.
  3. Erstellen Sie auf der Route https://my.site.com/zcrm_leads ein Skript zum Senden von Daten aus dem Formular als CRM über die API (dieses Beispiel ist in PHP). In den Feldern UserKey und Secret geben Sie den in Schritt 2 erhaltenen Schlüssel und das Kennwort ein.
  4. <?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']))
       ) {
           //Wenn der Kunde bereits erstellt ist, hinterlassen Sie eine Textnotiz im Feed
           $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 und secret  bitte durch Ihren aus Ihrem Profile ersetzen
       $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
           )
       );
    }
  5. Fügen Sie im Code Ihrer Website das Formular für die Leaderstellung hinzu und senden Sie es an die API: (Versteckte Felder sind für die Anfrage erforderlich)
  6. <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>
  7. Das Formular ist jetzt installiert und kann seine Funktionen bereits vollständig ausführen. Aber da es kein Design hat, sieht es so aus:









Wir empfehlen, Ihren Stil und Ihren Schutz festzulegen (z. B. kostenloses reCAPTCHA). Sie können das Formular oder Skript auch auf irgendeine Weise aktualisieren, um andere Daten oder in einem anderen Abschnitt (z. B. Kontakte oder Aufgaben) einzugeben. Sie können die vollständige Liste der Integrationsfunktionen (-methoden) im Abschnitt API ZCRM ansehen.