Zadarma CRM API

Le parcours du client vers un achat ou une prise de contact avec une entreprise commence le plus souvent par un simple formulaire sur le site web. Cependant, pour transformer rapidement une demande en vente réussie, il ne suffit pas de collecter des coordonnées : il est essentiel de comprendre où elles atterrissent et comment elles sont traitées ensuite.

Un système CRM est la base d'un travail efficace avec les clients. C'est lui qui permet de structurer la base de contacts, d'automatiser les tâches et de veiller à ce qu'aucune demande ne reste sans réponse. Pour en savoir plus sur les tâches opérationnelles qu'un CRM permet de résoudre, vous pouvez consulter l'article Qu'est-ce qu'un CRM et pourquoi l'intégrer à la téléphonie ?.

Mais un CRM seul ne suffit pas. Il doit interagir avec les autres outils et canaux de communication utilisés par votre entreprise. L'intégration directe du formulaire du site avec le CRM via une API est depuis longtemps devenue la norme pour une entreprise moderne. Cette approche permet d'accélérer le traitement des demandes, de conserver l'intégralité du contexte de la demande et de libérer les employés de la saisie manuelle répétitive des données.

Dans cet article, nous allons examiner étape par étape le processus d'intégration. Vous découvrirez comment transmettre automatiquement les données d'un formulaire du site vers le CRM, et quelles informations supplémentaires peuvent aider vos équipes commerciales et support à travailler plus efficacement.

Pourquoi une entreprise doit-elle intégrer son formulaire de demande à un CRM

Avant de passer au code, examinons la question du point de vue de l'entreprise. Que cette intégration apporte-t-elle ?

  • Transmission instantanée des données. La demande arrive dans le CRM dès que le bouton « Envoyer » est cliqué. Le client n'a pas encore eu le temps de fermer la page que votre équipe reçoit déjà une notification et peut commencer à travailler.
  • Réduction des erreurs. Le transfert manuel des données entraîne inévitablement des erreurs. Un email mal saisi ou un chiffre manquant dans un numéro de téléphone peuvent vous coûter un client. L'API transmet automatiquement les données au CRM sans perte ni altération.
  • Conservation du contexte de la demande. Un simple email ne contient que les informations saisies par l'utilisateur. L'intégration via API permet d'ajouter des paramètres supplémentaires et des données masquées qui aident à mieux comprendre les besoins du client.
  • Segmentation automatique des leads. Le script peut attribuer des étiquettes en fonction de la page depuis laquelle la demande a été envoyée. Par exemple, les demandes provenant de la page « Erreur de paiement » sont automatiquement dirigées vers le support technique, tandis que celles de la page « Tarifs » sont envoyées au service commercial.

Maintenant que les avantages sont clairs, passons à la mise en œuvre pratique.

Combien coûte l'intégration d'un formulaire de site web à un CRM

Teamsale CRM fonctionne conjointement avec le standard téléphonique virtuel Zadarma, et les deux services sont fournis gratuitement. Pour maintenir l'activité du compte, il est nécessaire de recharger le solde au moins une fois tous les trois mois. Les fonds peuvent être utilisés pour n'importe quel service : appels sortants, numéros virtuels ou fonctionnalités supplémentaires du standard téléphonique.

Si nécessaire, vous pouvez souscrire à un forfait incluant des minutes d'appels sortants, des numéros virtuels, l'analyse vocale par IA, un nombre accru d'utilisateurs CRM et d'autres fonctionnalités. Vous pouvez choisir le forfait adapté en fonction de la taille de votre entreprise, du volume de communications et des fonctionnalités nécessaires.

Étape 1. Paramètres dans votre espace personnel Zadarma

Dans la section « Paramètres → Intégrations et API », assurez-vous que l'intégration avec Teamsale CRM est activée. Ouvrez ensuite la section « Clés et API » pour obtenir vos clés d'accès (key et secret). Elles seront nécessaires pour authentifier les requêtes vers l'API.

Étape 2. Script PHP

Créez un gestionnaire, par exemple à l'adresse https://my.site.com/zcrm_leads, qui recevra les données du formulaire et les enverra au CRM via l'API. Dans les champs UserKey et Secret, indiquez les données obtenues à l'étape précédente.

<?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
       )
   );
}

Étape 3. Formulaire HTML

Ajoutez sur votre site un formulaire HTML pour l'envoi des données vers le CRM. Les champs cachés sont obligatoires pour assurer une transmission correcte des informations.

<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>

Cet exemple est écrit en HTML pur, sans bibliothèque tierce. Vous pouvez adapter l'apparence du formulaire au design de votre site et ajouter des champs supplémentaires selon vos besoins.

La liste complète des méthodes d'intégration est disponible dans la section API CRM.

Étape 4. Paramètres supplémentaires

Le formulaire de base transmet le nom, le téléphone, l'email et le commentaire. Cependant, l'API CRM permet d'envoyer bien plus de données.

Paramètres marketing

Si votre site utilise des balises UTM, vous pouvez les transmettre automatiquement au CRM via des champs cachés du formulaire. Cela vous permettra de savoir précisément de quel canal publicitaire provient chaque lead.

Étiquettes

Les étiquettes permettent de classer automatiquement les leads par catégories. Elles peuvent être attribuées aussi bien dans le formulaire HTML que directement dans le script PHP.

Propriétés supplémentaires

Si votre formulaire comporte des champs spécifiques, comme l'horaire de rappel préféré ou le service choisi, vous pouvez les transmettre via le paramètre custom_properties.

Étape 5. Que se passe-t-il après l'envoi du formulaire

Dans son état actuel, le formulaire est pleinement fonctionnel. Toutefois, avant de le déployer en environnement de production, il est recommandé de réaliser quelques étapes supplémentaires.

  • Protection contre le spam. Il est recommandé d'intégrer une vérification via le service gratuit Google reCAPTCHA.
  • Validation des données côté serveur. Vérifiez la validité de l'email, du téléphone et des champs obligatoires avant d'envoyer les informations au CRM.
  • Gestion des erreurs. Plutôt que d'afficher var_dump($leadData), il est préférable de rediriger l'utilisateur vers une page de remerciement ou une page affichant un message d'erreur.

Résumé

Le formulaire de contact est le moyen le plus simple de transmettre des données au CRM. Cependant, la même approche peut être utilisée pour les boutiques en ligne, les chatbots, les landing pages et tout autre canal de réception de demandes.

L'API ouverte du CRM Zadarma ne limite ni le nombre ni le type d'intégrations. Vous pouvez automatiser pratiquement n'importe quel processus métier et connecter vos propres solutions sans recourir à des services tiers.

Si vous souhaitez étendre les possibilités d'intégration, la liste complète des méthodes de l'API est disponible dans la section « Support → API » du site Zadarma.

FAQ

Comment ajouter automatiquement des leads depuis le formulaire du site vers le CRM ?

Le moyen le plus fiable est l'intégration via API. Les données du formulaire sont transmises à un script serveur (par exemple en PHP), qui génère une requête signée et l'envoie au CRM. Le lead est créé automatiquement dès l'envoi du formulaire.

Peut-on connecter le formulaire du site au CRM sans plugin ?

Oui. Il suffit d'utiliser un script serveur en PHP, Python ou Node.js et d'avoir accès à l'API du CRM. Aucune plateforme ou aucun constructeur supplémentaire n'est nécessaire.

Comment stocker les clés API en toute sécurité ?

Les clés API doivent être utilisées uniquement côté serveur. Conservez-les dans le script PHP ou dans des variables d'environnement. Ne placez jamais la key et le secret dans du code JavaScript accessible aux utilisateurs.

Faut-il payer pour utiliser le CRM avec l'API ?

Non. Teamsale CRM donne accès à l'API gratuitement. Pour utiliser les intégrations, il suffit d'avoir un compte actif avec un solde positif.