L'essentiel à retenir : GoHighLevel enregistre deux attributions sur chaque contact, la première (le canal qui l'a amené la première fois) et la dernière (sa dernière visite suivie avant conversion). Pour une session web, elles ne s'enregistrent que si le contact fait une action suivie : formulaire, calendrier, chat, bon de commande, ou formulaire externe capté par External Tracking. Le reste tient à des UTM exacts et à une source renseignée sur chaque opportunité.
« Combien de clients m'a rapporté Facebook ce mois-ci ? » Si tu gères des pubs pour toi ou pour tes clients, tu as déjà entendu cette question. Dans HighLevel, tu peux y répondre, à condition d'avoir configuré le suivi avant de lancer le trafic. Depuis le 6 octobre 2026, le Lead Source Report affiche en plus la valeur de chaque source par statut. Ce guide s'appuie sur la documentation officielle (Understanding Attribution Source, mise à jour le 26 août 2026) et sur les notes de version d'octobre 2026.
Première et dernière attribution : deux réponses à deux questions
HighLevel stocke systématiquement deux jeux de données sur chaque contact :
- First Attribution : la session de sa toute première interaction enregistrée. Elle ne change plus ensuite.
- Latest Attribution : la session de sa dernière interaction enregistrée. Elle est réécrite à chaque nouvelle conversion suivie.
Exemple : un prospect remplit ton formulaire de contact après une pub Google, puis revient plus tard via un email et achète par un bon de commande en deux étapes. La première attribution reste « Google Ads », la dernière bascule sur la session de l'achat. Pour savoir quel canal fait découvrir ton offre, regarde la première. Pour connaître le canal de la dernière interaction enregistrée avant l'achat, regarde la dernière. Aucune des deux ne prouve à elle seule ce qui a décidé le client.
Tu retrouves ces données dans la fiche contact : Contacts > ouvre le contact > onglet Activité, colonne en bas à droite.
Les événements qui enregistrent une attribution
Pour une session web, une visite seule ne suffit pas : il faut que, dans la même session, le contact fasse l'une de ces actions :
- soumettre un formulaire ou un sondage HighLevel ;
- réserver un créneau dans un calendrier ;
- laisser ses coordonnées dans le chat widget ;
- valider un bon de commande (une ou deux étapes) dans un tunnel de vente.
Un formulaire hébergé ailleurs (WordPress, Webflow, Shopify…) peut aussi transmettre l'attribution, s'il est capté par le script External Tracking. Tu le copies dans Settings > External Tracking et tu le colles avant la balise </body> de ton site. Il détecte les formulaires présents dans le code de la page (Gravity Forms, WPForms, Contact Form 7, HTML classique) et remonte UTM, URL et données de session, d'après la documentation External Tracking. Limite à connaître : les formulaires chargés dans une iframe ou dans un widget tiers qui ne montre pas ses champs ne sont pas pris en charge. Si ton site tourne sous WordPress, c'est le complément logique de notre article sur HighLevel et WordPress.
À retenir : le prospect doit convertir sur la page où il atterrit. S'il clique sur un bouton qui l'envoie vers une autre page pour remplir le formulaire, les UTM de l'annonce sont perdus. La parade conseillée par HighLevel : une pop-up ou une section formulaire directement sur la page d'arrivée.
Comment HighLevel classe la source d'un lead
Pour chaque conversion, HighLevel examine l'URL complète et le domaine référent, puis applique des règles dans un ordre fixe. La première qui correspond l'emporte :
| Ordre | Ce que HighLevel détecte | Source attribuée |
|---|---|---|
| 1 | utm_source contient adwords | Paid Search |
| 2 | Identifiant de clic Google (gclid, wbraid, gbraid) ou Microsoft (msclkid) | Paid Search |
| 3 | utm_source, utm_medium ou utm_campaign présent, avec google.com comme référent | Paid Search |
| 4 | utm_source contient fb_ad, linkedin_ad, twitter_ad ou reddit_ad, ou paramètre ctwa_clid (conversation WhatsApp issue d'une pub) | Paid Social |
| 5 | Référent = réseau social | Social Media |
| 6 | Référent = moteur de recherche (Google, Bing, Yahoo, DuckDuckGo) | Organic Search |
| 7 | Autre site référent | Referral |
| 8 | Ni référent ni paramètre de suivi | Direct Traffic |
| 9 | Appel, SMS, email, message WhatsApp ou Facebook entrant… | Others |
| 10 | Contact créé à la main dans le CRM | CRM UI |
| 11 | Contact créé par un outil tiers (Zapier…) | Third-Party |
Conséquence directe : utm_source=facebook ne fonctionne plus pour classer une pub Meta, HighLevel l'a déprécié au profit de fb_ad. Sans fb_ad, une conversion issue d'une pub Meta peut atterrir en « Social Media », avec le trafic organique, dès que HighLevel reçoit un référent social et qu'aucune règle prioritaire ne s'applique.
Paramétrer tes UTM pour Meta et Google Ads
La documentation fournit deux modèles de paramètres :
- Facebook et Instagram :
?utm_source=fb_ad&utm_medium={{adset.name}}&utm_campaign={{campaign.name}}&utm_content={{ad.name}}&campaign_id={{campaign.id}} - Google Ads : un modèle de suivi (Tracking template) qui commence par
{lpurl}, le paramètre qui insère l'URL finale (sans paramètre d'insertion d'URL, la page d'arrivée casse) :{lpurl}?utm_source=adwords&utm_medium={adname}&utm_campaign={campaignname}&utm_content={adgroupname}&utm_keyword={keyword}&utm_matchtype={matchtype}&campaign_id={campaignid}&ad_group_id={adgroupid}&ad_id={creative}
Côté Google, ne te contente pas de coller la ligne. Le guide HighLevel de configuration Google Ads demande d'abord de connecter le bon compte Google Ads (et le bon MCC) dans les intégrations, et recommande de placer le modèle au niveau du compte. Surtout, {adname}, {campaignname} et {adgroupname} ne font pas partie des paramètres ValueTrack natifs de Google. Remplace-les par des valeurs fixes, ou utilise le script Google Ads fourni par HighLevel, qui remplace les marqueurs par les noms de campagne et de groupe, ainsi qu'un titre d'annonce ou son identifiant, puis applique le modèle au groupe d'annonces (ses marqueurs {AdName}, {CampaignName}, {AdGroupName} sont sensibles à la casse). Vérifie ensuite l'URL finale après un clic de test.
Le guide de dépannage officiel signale trois points à vérifier :
- La casse compte.
FB_ADouAdwordsne seront pas reconnus. Copie-colle plutôt que de retaper. - Les espaces parasites laissés par un copier-coller cassent l'URL finale.
- N'ajoute pas tes propres UTM aux modèles HighLevel : la doc prévient que cela peut entraîner des données manquantes.
Si tu lances tes campagnes depuis le CRM, notre guide de l'Ad Manager GoHighLevel détaille la partie Meta Conversions API et conversions Google, complémentaire de l'attribution.
« Source » n'est pas « attribution »
Trois champs se ressemblent et se mélangent facilement dans les rapports :
- Contact Source : une valeur brute stockée sur le contact. Dans un formulaire, tu la fixes avec l'élément caché Source, et tu peux la remplacer par lien avec
?source=newsletter. HighLevel insiste : ce paramètresourcen'a rien à voir avecutm_source(doc du champ Source, 8 septembre 2026). - Session Source : la catégorie de canal calculée par les règles du tableau ci-dessus (Paid Social, Organic Search…). À ne pas confondre avec Medium, le type d'interaction enregistré (Form, Calendar, Order Form…), ni avec UTM Medium, la valeur brute de
utm_medium. - Opportunity Source : la source portée par l'opportunité dans ton pipeline. Le glossaire HighLevel précise que le widget de sources de leads lit cette valeur, distincte de la Contact Source.
Si tes opportunités sont créées sans source, le Lead Source Report les regroupe sous « N/A » : elles restent visibles, mais impossible de les répartir entre tes canaux tant que le champ est vide. Quand tu crées une opportunité par workflow, l'ancienne action « Create/Update Opportunity » propose un champ Opportunity Source à remplir avec une nomenclature commune. Cette action est remplacée progressivement par « Create Opportunity » et « Update Opportunity » : vérifie le champ disponible dans celle que tu utilises.
Lire tes chiffres : widgets d'attribution et Lead Source Report
Les widgets Contacts et Opportunités
Dans un tableau de bord, les widgets Contacts et Opportunités acceptent des filtres d'attribution. La marche à suivre (doc mise à jour le 16 septembre 2026) : Conditions > Add Filter > Attribution, choisis First ou Latest, puis ajoute en +AND les champs voulus : Medium, Session Source, UTM Source, UTM Campaign, UTM Keyword, identifiants d'annonce…
- Les champs texte (UTM Source, UTM Campaign…) se filtrent avec Contains, les identifiants (Campaign ID, Ad ID) avec Is / Is not.
- Pour regrouper un graphique par Session Source ou Medium, garde l'attribution dans un seul groupe de filtres. Un second groupe (logique OU) fait disparaître ces options.
- En vue Table, tu peux afficher les UTM en colonnes, puis cliquer sur le widget pour voir et exporter les fiches concernées.
Attention aux widgets prêts à l'emploi Contacts by Source, Contacts by Medium et Top Sources : ils filtrent d'office sur la dernière attribution. Un contact importé en CSV ou créé à la main peut donc ne pas y apparaître si aucune donnée d'attribution n'a été enregistrée, ce qui explique des totaux plus bas que ton nombre de contacts.
Pour répondre à la question du début, « combien de clients m'a rapporté Facebook ce mois-ci », passe par un widget Opportunités : condition Status = Won, attribution First ou Latest selon ce que tu veux mesurer, UTM Source contient fb_ad (Paid Social seul mélangerait aussi LinkedIn ou Reddit). Puis choisis la propriété de date selon ta question (doc des widgets Opportunités) :
- Status Change sur le mois = les opportunités gagnées dont le dernier changement de statut tombe ce mois-ci. Le chiffre peut bouger si une opportunité est rouverte puis regagnée.
- Created On sur le mois = parmi les opportunités créées ce mois-ci, celles qui sont gagnées aujourd'hui. HighLevel recommande cette option pour un historique stable.
Dans les deux cas, un nombre d'opportunités gagnées n'est pas forcément un nombre de clients distincts.
Le Lead Source Report, version octobre 2026
Ce widget compte tes opportunités par source et par statut. La mise à jour du 6 octobre 2026 le rend nettement plus utile :
| Nouveauté | Ce que ça change pour toi |
|---|---|
| Clic sur un compteur supérieur à zéro (total, ouvert, gagné, perdu, abandonné) | Tu vois la liste exacte des opportunités derrière le compteur |
| Valeur affichée pour chaque statut | Tu compares la valeur renseignée sur les opportunités de chaque source, statut par statut, pas seulement le volume |
| Filtre Source « est vide / n'est pas vide » | Tu isoles les opportunités sans source pour les corriger |
| Ligne « N/A » | Les opportunités sans source ne disparaissent plus du rapport |
Deux réserves : les montants ne sont visibles que pour les utilisateurs autorisés à voir la valeur des leads (à régler dans les permissions de ton équipe), et cette valeur est celle saisie sur tes opportunités, pas un encaissement : pour l'argent réellement perçu, regarde tes paiements. HighLevel annonce pour la suite la possibilité d'utiliser un champ personnalisé comme source de revenu.
La routine d'attribution pour un sous-compte client
- Collecte : formulaires, calendriers et bons de commande HighLevel sur les pages d'arrivée, ou External Tracking sur le site existant.
- Pubs : paramètres UTM configurés selon la procédure HighLevel, puis URL finale testée pour chaque campagne Meta et Google.
- Opportunités : une source renseignée à chaque création, manuelle ou automatique, avec une nomenclature commune.
- Test : une soumission réelle depuis une URL avec UTM, puis vérification dans l'onglet Activité du contact.
- Contrôle mensuel : ouvre la ligne N/A du Lead Source Report et complète les sources manquantes avant d'envoyer le rapport client.
Une fois les données vérifiées, tu peux présenter à ton client les opportunités de son pipeline et leur valeur par source, avec les noms derrière chaque chiffre. Pour juger la rentabilité d'une campagne, rapproche ensuite ces résultats de tes dépenses publicitaires et des montants réellement encaissés.
Questions fréquentes sur l'attribution GoHighLevel
Pourquoi mes leads Facebook apparaissent en « Social Media » ?
Cause possible : l'URL d'annonce n'a pas utm_source=fb_ad ou l'écrit avec une autre casse. Si HighLevel reçoit alors un référent réseau social et qu'aucune règle prioritaire ne correspond, il classe le lead en « Social Media ». Vérifie les paramètres réellement capturés dans l'onglet Activité du contact avant de conclure.
Mes contacts importés ont-ils une attribution ?
Pas forcément. Les contacts importés peuvent ne pas apparaître dans les widgets basés sur l'attribution si aucune donnée d'attribution n'a été enregistrée. Regarde leur fiche : une attribution a pu être affectée à l'import, ou enregistrée plus tard lors d'une interaction suivie. Un contact créé à la main est classé CRM UI, un contact créé par un outil tiers comme Zapier en Third-Party.
HighLevel remplace-t-il Google Analytics ?
Non. L'attribution HighLevel suit les leads et leur valeur dans le CRM. Pour l'audience globale de ton site (pages vues, parcours anonymes), garde ton outil d'analytics.