Skip to content

GHL (GoHighLevel) ​

Plan Découverte

Sur le plan Découverte, une seule connexion CRM est active à la fois (erreur plan_free_one_crm au-delà).

Ce que ça fait ​

La connexion native GoHighLevel se fait en un clic (OAuth) sur un sous-compte GHL. Une fois connectée :

  • Import initial : contacts, opportunités, rendez-vous et définitions de champs personnalisés du sous-compte sont importés en arrière-plan (reprise automatique tant que l'import n'est pas terminé).
  • Temps réel, sans webhook à créer : chaque nouveau contact, chaque rendez-vous et chaque changement de statut d'opportunité arrive automatiquement dans DURUM.ai.
  • Classement par nom : vos formulaires, sondages, calendriers et pipelines apparaissent avec leur nom dans la configuration. Vous dites ce que chacun représente : c'est ce qui décide ce que DURUM.ai compte comme lead, application, booking ou vente.
  • Vente native : une opportunité passée à Gagné dans un pipeline que vous avez coché compte comme une vente, une seule fois.
Événement GHLType dans DURUM.aiCondition
Contact crééLead ou ApplicationSelon le classement du formulaire qui a créé le contact (voir plus bas)
Rendez-vous créé ou mis à jourBooking, annulation ou no-showSelon le statut du rendez-vous et le classement du calendrier
Opportunité passée à GagnéVentePipeline coché dans Configuration ; les autres statuts et pipelines n'écrivent rien

Ce qui a changé le 15 septembre 2026

La vente n'est plus un workflow GHL à construire. Vous cochez vos pipelines de vente dans DURUM.ai, et chaque opportunité gagnée devient une vente native, dédoublonnée par opportunité.


Avant de commencer ​

  • Un accès administrateur au sous-compte GHL (location) à connecter.
  • Savoir quels formulaires sont des optins (lead) et lesquels sont des formulaires de qualification (application).
  • Savoir quels calendriers sont des calendriers de closing (booking) et lesquels doivent être ignorés (onboarding, interne, autobook).
  • Savoir dans quel(s) pipeline(s) un deal passe à Gagné quand le client achète, et le montant d'une vente si vous voulez une valeur fixe.

Connexion étape par étape ​

Depuis DURUM.ai (recommandé) ​

  1. Ouvrez Paramètres → Intégrations → carte GoHighLevel → Connecter.
  2. GHL vous demande de choisir le sous-compte (location) à connecter, puis d'autoriser DURUM.ai.
  3. Vous revenez dans DURUM.ai : la carte passe à Connecté et l'import initial démarre en arrière-plan.

Permissions demandées (lecture seule) : contacts, opportunités, calendriers et leurs rendez-vous, formulaires, sondages, informations du sous-compte, champs personnalisés.

Depuis la marketplace GHL ​

Si vous installez l'application DURUM.ai depuis la marketplace GHL, vous êtes redirigé vers une page /connect/ghl de DURUM.ai pour rattacher l'installation à votre compte. Le résultat est identique à une connexion lancée depuis Paramètres.

Ce qui se passe après la connexion ​

  • Import initial : traité par lots toutes les 5 minutes jusqu'à épuisement (un gros CRM est importé en plusieurs passes sans rien perdre).
  • Synchro récurrente toutes les 10 minutes : utilisateurs GHL (rattachés à vos reps) et appels enregistrés, quand les permissions de la connexion le permettent. Les noms des champs personnalisés sont rafraîchis dès qu'ils ont plus de 6 heures.
  • Champs UTM : à l'enregistrement de la configuration, DURUM.ai crée dans GHL les champs personnalisés UTM manquants pour que l'attribution suive chaque contact.

Configuration ​

Ouvrez Paramètres → Intégrations → GoHighLevel → Configuration. La fenêtre charge vos formulaires, calendriers et pipelines avec leurs noms.

1. Formulaires et sondages ​

Pour chaque formulaire ou sondage : À classer, Lead, Application ou Ignorer.

  • Lead : optin.
  • Application : formulaire de qualification.
  • Ignorer : pas compté.

Comment c'est appliqué aux nouveaux contacts : GHL n'indique pas quel formulaire a créé un contact. À chaque contact créé, DURUM.ai interroge GHL (formulaires, puis sondages, autour de la date de création du contact, jusqu'à trois essais) pour retrouver la soumission qui l'a créé, puis applique son classement.

Résultat de la rechercheCe que fait DURUM.ai
Formulaire trouvé et classé Lead ou ApplicationCompté avec ce type
Formulaire trouvé et classé IgnorerContact ignoré (statut « ignoré » dans les Logs)
Formulaire trouvé mais encore à classerCompté comme lead
Aucun formulaire trouvé, ou GHL ne répond pasCompté comme lead (jamais de perte silencieuse)

Le résultat de la recherche est conservé sur chaque lead pour pouvoir le vérifier.

2. Calendriers ​

Pour chaque calendrier : À classer, Booking ou Ignorer.

  • Booking : call de closing, compté.
  • Ignorer : tout le reste (onboarding, interne). Le rendez-vous reste dans le parcours du contact mais ne compte plus comme booking.
  • À classer : tant qu'un calendrier n'est pas classé, ses rendez-vous comptent comme des bookings, et Configuration affiche un rappel dès qu'au moins un calendrier a été classé.

Les noms de calendriers sont mémorisés à l'enregistrement : annulations et no-shows suivent le classement du calendrier.

3. Ventes (pipelines) ​

Cochez les pipelines où un deal passe à Gagné quand le client achète. Pour chaque pipeline coché, indiquez le montant d'une vente ou laissez vide pour reprendre la valeur saisie dans l'opportunité GHL.

Règle appliquée :

  • Statut de l'opportunité Gagné (won) et pipeline coché = une vente.
  • Une opportunité ne devient une vente qu'une fois, même si elle rebascule plusieurs fois à Gagné.
  • Date de la vente = date du passage à Gagné quand GHL la fournit.
  • Montant = montant fixe du pipeline, sinon valeur de l'opportunité.
  • Tout autre statut, un pipeline non coché ou aucun pipeline coché = rien n'est écrit.

Le contact de la vente est retrouvé dans les contacts importés, sinon demandé à GHL. Sans courriel, la vente est enregistrée mais ne peut pas se rattacher au lead. Une vente déclenche ensuite vos workflows de conversion (Meta, Google) si vous en avez sur l'événement vente.

4. Options supplémentaires ​

Compter les nouveaux contacts GHL comme des leads : un contact créé sans formulaire (ajout manuel, import, autre source) compte comme lead. Un formulaire mis sur Ignorer reste ignoré.

Cliquez Sauvegarder. Les réglages sont appliqués immédiatement aux prochains événements.

Champs personnalisés ​

Les champs personnalisés GHL d'un contact s'affichent par nom (pas par identifiant) dans la fiche contact de DURUM.ai. Les définitions sont synchronisées à la connexion et rafraîchies par la synchro récurrente.


Vérifier que ça marche ​

  1. Créez un contact de test dans GHL via un formulaire classé Lead (utilisez un courriel reconnaissable).
  2. Dans DURUM.ai, ouvrez la page Logs (menu principal) : l'événement apparaît avec la source ghl.
  3. Pour la vente : passez une opportunité de test à Gagné dans un pipeline coché. Le log montre le pipeline, le montant et sa provenance (pipeline ou opportunité).
  4. Supprimez le contact de test dans GHL après vérification.

Statuts que vous pouvez voir dans les Logs :

StatutSignification
processedÉvénement compté
ignored (status_not_won, pipeline_not_selected)Changement d'opportunité qui n'est pas une vente
ignored (ghl_mapping_ignore)Formulaire classé Ignorer
ignored (unmapped_ghl_location)Le sous-compte GHL n'est rattaché à aucun compte DURUM.ai
dedupedMême opportunité ou même événement déjà compté
quarantinedFormulaire inconnu reçu par un workflow manuel (voir plus bas)

Événements captés ​

Événement GHLType dans DURUM.aiDétails
ContactCreatelead ou applicationType selon le classement du formulaire ; contact sans formulaire = lead
AppointmentCreate, AppointmentUpdate, AppointmentDeletebooking, booking_cancel, no_showDérivé du statut du rendez-vous ; calendrier Ignorer = conservé sans compter
OpportunityStatusUpdatesaleSeulement statut Gagné dans un pipeline coché ; dédoublonné par opportunité

Un rendez-vous sans courriel ni téléphone est rejeté (booking fantôme).


Méthode alternative : workflows GHL manuels ​

Si vous n'utilisez pas la connexion native, les webhooks standard restent valides. Les URLs sont dans Paramètres → Intégrations → section Pour votre développeur, déjà remplies avec votre Business ID. Pour GHL, ajoutez toujours &source=ghl à la fin.

ÉvénementDéclencheur du workflow GHLURL
LeadContact Createdhttps://app.durum.ai/api/webhook/lead?bid=VOTRE_BUSINESS_ID&source=ghl
ApplicationForm Submitted (formulaires de qualification)https://app.durum.ai/api/webhook/application?bid=VOTRE_BUSINESS_ID&source=ghl
BookingAppointment Status Changed (Booked ou Confirmed)https://app.durum.ai/api/webhook/booking?bid=VOTRE_BUSINESS_ID&source=ghl
No-showAppointment Status Changed (No Show)https://app.durum.ai/api/webhook/no-show?bid=VOTRE_BUSINESS_ID&source=ghl
VenteOpportunity Status Changed (Won)https://app.durum.ai/api/webhook/sale?bid=VOTRE_BUSINESS_ID&source=ghl

Dans chaque workflow : action Webhook, méthode POST, corps par défaut (GHL envoie les données du contact). Publiez le workflow.

Formulaires inconnus et quarantaine

Avec un workflow manuel, le formulaire arrive avec son identifiant. S'il est classé dans Configuration, le classement s'applique. Sinon, l'événement est mis en quarantaine jusqu'à ce qu'il soit catégorisé ; les événements suivants du même formulaire sont alors reconnus. Avec la connexion native, ce cas n'existe pas : un formulaire non classé compte comme lead.


Dépannage ​

ProblèmeSolution
Le contact n'apparaît pas dans les LogsVérifiez que la carte GoHighLevel est Connecté et que le bon sous-compte a été choisi ; reconnectez si la carte affiche une erreur
Un contact compte comme lead alors que son formulaire est sur IgnorerGHL n'a pas retourné la soumission (délai ou formulaire non lié au contact) : le contact est compté par sécurité ; le détail de la recherche est conservé sur le lead
Aucune vente GHLAucun pipeline coché dans Configuration → Ventes, ou l'opportunité n'est pas au statut Gagné, ou elle est dans un pipeline non coché
Vente comptée sans montantPipeline coché sans montant fixe et opportunité sans valeur : saisissez un montant dans Configuration ou dans l'opportunité
Rendez-vous d'un calendrier interne comptés comme bookingsClassez ce calendrier sur Ignorer
Statut unmapped_ghl_locationLe sous-compte GHL n'est rattaché à aucun compte : refaites la connexion depuis Paramètres
Erreur 401 sur un workflow manuelVérifiez &source=ghl et le Business ID dans l'URL

FAQ ​

Dois-je encore créer des workflows GHL ? ​

Non, pas avec la connexion native. Les workflows manuels restent possibles pour un compte qui ne peut pas connecter GHL en OAuth.

Puis-je connecter plusieurs sous-comptes GHL ? ​

Une connexion native correspond à un sous-compte GHL par compte DURUM.ai.

Une opportunité repasse à Gagné après avoir été rouverte : deux ventes ? ​

Non. La clé de dédoublonnage est l'opportunité : une seule vente par opportunité.

Le montant de la vente vient d'où ? ​

Du montant fixe du pipeline si vous en avez saisi un, sinon de la valeur monétaire de l'opportunité GHL. Sans l'un ni l'autre, la vente est comptée sans montant.

Que deviennent les rendez-vous d'un calendrier « Ignorer » ? ​

Ils restent visibles dans le parcours du contact mais ne comptent pas comme bookings, et n'alimentent pas les annulations ni les no-shows comptés.


Propulsé par DURUM.ai : attribution publicitaire et intelligence opérationnelle