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 :

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 :

OrdreCe que HighLevel détecteSource attribuée
1utm_source contient adwordsPaid Search
2Identifiant de clic Google (gclid, wbraid, gbraid) ou Microsoft (msclkid)Paid Search
3utm_source, utm_medium ou utm_campaign présent, avec google.com comme référentPaid Search
4utm_source contient fb_ad, linkedin_ad, twitter_ad ou reddit_ad, ou paramètre ctwa_clid (conversation WhatsApp issue d'une pub)Paid Social
5Référent = réseau socialSocial Media
6Référent = moteur de recherche (Google, Bing, Yahoo, DuckDuckGo)Organic Search
7Autre site référentReferral
8Ni référent ni paramètre de suiviDirect Traffic
9Appel, SMS, email, message WhatsApp ou Facebook entrant…Others
10Contact créé à la main dans le CRMCRM UI
11Contact 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 :

  1. La casse compte. FB_AD ou Adwords ne seront pas reconnus. Copie-colle plutôt que de retaper.
  2. Les espaces parasites laissés par un copier-coller cassent l'URL finale.
  3. 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ètre source n'a rien à voir avec utm_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 statutTu 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

  1. Collecte : formulaires, calendriers et bons de commande HighLevel sur les pages d'arrivée, ou External Tracking sur le site existant.
  2. Pubs : paramètres UTM configurés selon la procédure HighLevel, puis URL finale testée pour chaque campagne Meta et Google.
  3. Opportunités : une source renseignée à chaque création, manuelle ou automatique, avec une nomenclature commune.
  4. Test : une soumission réelle depuis une URL avec UTM, puis vérification dans l'onglet Activité du contact.
  5. 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.