đ IntĂ©gration automatisĂ©e entre une plateforme dâappels (JobPhoning) et noCRM.io
đ§ Contexte du projet
Dans le cadre dâun projet dâautomatisation commerciale, jâai dĂ©veloppĂ© une intĂ©gration permettant de synchroniser automatiquement les donnĂ©es issues dâune plateforme dâappels sortants (type JobPhoning) avec le CRM noCRM.io.
Lâobjectif Ă©tait simple :
Lorsquâun tĂ©lĂ©opĂ©rateur marque un appel comme âProjet dĂ©tectĂ©â, une opportunitĂ© se crĂ©e automatiquement dans le CRM, sans action manuelle.
Ce projet mâa permis de travailler sur :
- La gestion et la validation de webhooks entrants en PHP,
- Le traitement et nettoyage de données JSON complexes,
- LâĂ©criture de fichiers CSV de suivi,
- Et lâintĂ©gration via API REST vers noCRM.io.
đ§© Architecture technique
đž 1. Webhook PHP
La plateforme dâappels envoie une requĂȘte HTTP POST contenant un JSON complet vers un script PHP :
https://example.com/jobphoningtonocrm/receive_json.php
Le webhook reçoit des structures JSON de ce type :
{
"Client": {
"Nom": "Dupont",
"Societe": "Entreprise Test",
"TelephoneFixe": "+33123456789"
},
"HistoriqueAppel": [
{
"Etat": "Projet détecté",
"DateAppel": "2025-07-02 15:00:00",
"Teleoperateur": { "Login": "Yohan" },
"Commentaire": "Client intéressé par un devis."
}
]
}
Le script a pour rĂŽle de :
- Lire la requĂȘte et enregistrer les donnĂ©es brutes,
- Enregistrer tous les appels dans un CSV global (
webhook_output_all.csv
), - Enregistrer uniquement les projets détectés dans un autre CSV (
webhook_output_projet_detecte.csv
), - DĂ©clencher la crĂ©ation dâun lead dans noCRM.io lorsque
Etat = "Projet détecté"
.
đž 2. Traitement et stockage des donnĂ©es
Les données sont nettoyées, formatées et enrichies avant écriture.
Chaque ligne du CSV représente un appel et contient :
| timestamp | ip | client_id | nom | societe | siret | adresse | ville | code_postal | activité | téléphone | email | état_appel | durée | date_appel | téléopérateur | commentaire |
Les fichiers CSV servent de :
- Journal dâaudit pour retracer chaque appel,
- Source de secours en cas dâerreur rĂ©seau,
- Support de monitoring pour le suivi dâintĂ©gration.
đž 3. IntĂ©gration avec lâAPI noCRM.io
DĂšs quâun appel est identifiĂ© comme âProjet dĂ©tectĂ©â, le script envoie une requĂȘte POST Ă lâAPI noCRM.io :
POST https://example.nocrm.io/api/v2/leads
Authentification :
X-API-KEY: [masquée]
Corps de la requĂȘte :
{
"title": "Entreprise Test",
"description": "Client : M. Dupont - Téléphone : +33123456789 - Commentaire : Client intéressé",
"tags": ["Projet détecté", "JobPhoning"],
"step": "Infos OK"
}
RĂ©sultat : une opportunitĂ© apparaĂźt automatiquement dans le pipeline âInfos OKâ du CRM, associĂ©e au commercial correspondant.
âïž Stack et environnement
ĂlĂ©ment | Description |
---|---|
Langage | PHP 8.2 |
Serveur | Nginx + PHP-FPM (Debian) |
Authentification API | X-API-KEY (clé noCRM.io) |
Format de stockage | CSV |
Journalisation | Logs détaillés avec IP et horodatage |
SĂ©curitĂ© | Validation JSON + filtrage dâadresses IP JobPhoning |
đ§Ș Tests & validation
Pour valider la bonne intĂ©gration, jâai utilisĂ© cURL pour simuler les requĂȘtes envoyĂ©es par la plateforme dâappels :
curl -X POST https://example.com/jobphoningtonocrm/receive_json.php \
-H "Content-Type: application/json" \
-d '{
"Client": {"Nom": "Dupont", "Societe": "Entreprise Test"},
"HistoriqueAppel": [{"Etat": "Projet détecté"}]
}'
â RĂ©sultats attendus :
webhook_output_all.csv
â enregistrement complet,webhook_output_projet_detecte.csv
â ajout du lead,- CrĂ©ation automatique dâune opportunitĂ© CRM visible dans noCRM.io.
đ RĂ©sultat final
Avant : Les téléopérateurs notaient manuellement les prospects détectés et les commerciaux les saisissaient ensuite dans le CRM.
AprĂšs : Les appels âProjet dĂ©tectĂ©â sont automatiquement transformĂ©s en opportunitĂ©s en temps rĂ©el.
â± Temps de traitement : moins dâune seconde entre la fin de lâappel et lâapparition dans noCRM.io.
Ce projet a permis :
- Un gain de productivité significatif,
- Une meilleure traçabilité des appels,
- Et une intégration fiable sans tùche manuelle.
𧰠Exemple de code (extrait simplifié)
if (mb_strtolower($appel['Etat']) === 'projet détecté') {
$leadData = [
'title' => $client['Societe'] ?? 'Prospect',
'description' => sprintf(
"Nom: %s\nTéléphone: %s\nCommentaire: %s",
$client['Nom'] ?? '',
$client['TelephoneFixe'] ?? '',
$appel['Commentaire'] ?? ''
),
'tags' => ['Projet détecté', 'JobPhoning'],
'step' => 'Infos OK'
];
$ch = curl_init('https://example.nocrm.io/api/v2/leads');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
"X-API-KEY: [masquée]",
"Content-Type: application/json"
],
CURLOPT_POSTFIELDS => json_encode($leadData),
CURLOPT_SSL_VERIFYPEER => true
]);
$response = curl_exec($ch);
curl_close($ch);
}
đ Ressources et code source
- đ§± Code complet sur GitHub :
https://github.com/dtrabelsi/Int-gration-JobPhoning-noCRM.io - đ Mon portfolio dĂ©veloppeur :
https://dhaker-trabelsi.com - 𧰠Technos clés :
PHP · REST API · JSON · Webhooks · cURL · Automation · noCRM.io API
đŹ Conclusion
Ce projet illustre une intégration temps réel entre un outil de prospection et un CRM, permettant de :
- Automatiser la conversion des leads qualifiés,
- Centraliser les informations de contact,
- Et fluidifier le passage entre équipes marketing et commerciales.
Une automatisation simple, robuste et efficace â entiĂšrement rĂ©alisĂ©e en PHP natif et API REST.