Comment tracker un formulaire Hubspot ?

Comment tracker un formulaire Hubspot ?

Le tracking des soumissions de formulaires HubSpot est crucial pour analyser vos conversions. Grâce à un event listener en JavaScript, vous pouvez capturer ces événements directement et les transmettre à des outils comme Google Tag Manager ou Google Analytics. Voici comment procéder, étape par étape. Voir notre guide sur tracking server-side. Voir notre guide sur tracker formulaire Typeform ?. Voir notre guide sur tracker formulaire Webflow ?.

Le tracking des formulaires HubSpot a changé.

Si vous utilisez les nouveaux formulaires HubSpot créés avec l’éditeur mis à jour, la bonne méthode consiste à écouter les global form events de HubSpot, puis à récupérer les données du formulaire via l’objet HubSpotFormsV4. HubSpot expose notamment l’événement hs-form-event:on-submission:success, ainsi que des méthodes comme getFormId(), getFieldValue(), getFormFieldValues() et getConversionId(). Les anciens événements hsFormCallback existent toujours, mais ils concernent surtout les legacy forms. e les soumissions d’un formulaire HubSpot dans GTM

Pour suivre les soumissions d’un formulaire HubSpot avec Google Tag Manager, ajoutez une balise HTML personnalisée déclenchée sur les pages où le formulaire est présent.

Voici un exemple de listener compatible avec les nouveaux formulaires HubSpot :

<script>
window.addEventListener('hs-form-event:on-submission:success', async function(event) {
  if (!window.HubSpotFormsV4) return;

  var form = HubSpotFormsV4.getFormFromEvent(event);
  if (!form) return;

  var formId = form.getFormId();
  var conversionId = form.getConversionId();
  var eventName = 'form_submit';

  try {
    var values = await form.getFormFieldValues();
    var fields = {};

    values.forEach(function(field) {
      fields[field.name] = field.value;
    });

    window.dataLayer = window.dataLayer || [];
    window.dataLayer.push({
      event: eventName,
      form_id: formId,
      conversion_id: conversionId || undefined,
      form_data: {
        conversion_id: conversionId || undefined,
        email: fields['0-1/email'] || undefined,
        phone: fields['0-1/mobilephone'] || undefined,
        firstName: fields['0-1/firstname'] || undefined,
        lastName: fields['0-1/lastname'] || undefined,
        postalCode: fields['0-1/form_postal_code'] || undefined,
        city: fields['0-1/form_contact_city'] || undefined
      }
    });
  } catch (error) {
    window.dataLayer = window.dataLayer || [];
    window.dataLayer.push({
      event: eventName,
      form_id: formId,
      conversion_id: conversionId || undefined
    });

    console.warn('[HubSpot GTM] fallback push:', error);
  }
});
</script>

Cette approche s’appuie sur l’événement officiel hs-form-event:on-submission:success, puis sur HubSpotFormsV4.getFormFromEvent(event) pour récupérer l’instance du formulaire. HubSpot permet ensuite de lire l’ID du formulaire, le conversionId, ou encore l’ensemble des champs via getFormFieldValues(). À noter : les champs de type fichier ne sont pas renvoyés par getFieldValue() ni getFormFieldValues(). guration dans Google Tag Manager

Une fois ce listener installé, créez dans GTM :

  • un déclencheur de type Événement personnalisé basé sur les noms poussés dans la dataLayer, par exemple form_contact_submit, form_devis_submit ou form_submit ;

  • des variables de couche de données comme :

    • form_id

    • conversion_id

    • form_data.email

    • form_data.phone

    • form_data.firstName

    • form_data.lastName

    • form_data.postalCode

    • form_data.city

Vous pourrez ensuite réutiliser ces données pour déclencher vos tags GA4, Google Ads, Meta, Mixpanel ou tout autre outil marketing.

Important : adapter les noms de champs

Dans l’exemple ci-dessus, les champs récupérés utilisent des noms comme :

  • 0-1/email

  • 0-1/mobilephone

  • 0-1/firstname

  • 0-1/lastname

Ces noms dépendent de la configuration réelle de votre formulaire HubSpot. Il faut donc toujours vérifier les bons identifiants de champs avant mise en production. HubSpot permet de récupérer soit un champ précis avec getFieldValue("nom_du_champ"), soit tous les champs avec getFormFieldValues(). vous utilisez encore un ancien formulaire HubSpot ?

Si votre site repose encore sur des legacy forms, vous pouvez continuer à écouter les événements historiques de type hsFormCallback. HubSpot documente notamment onBeforeFormSubmit, onFormSubmit et onFormSubmitted. Sur les legacy forms, onFormSubmit et onBeforeFormSubmit se déclenchent avant que la soumission soit réellement persistée, tandis que onFormSubmitted intervient après la soumission réussie. pour un ancien formulaire :

<script>
window.addEventListener('message', function(event) {
  if (event.data.type === 'hsFormCallback' && event.data.eventName === 'onFormSubmitted') {
    window.dataLayer = window.dataLayer || [];
    window.dataLayer.push({
      event: 'hubspot_form_success',
      form_id: event.data.id,
      form_data: event.data.data && event.data.data.submissionValues
        ? event.data.data.submissionValues
        : undefined
    });
  }
});
</script>

Quelle méthode utiliser aujourd’hui ?

Si vous créez un nouvel article en 2026, il faut être direct :

  • nouveaux formulaires HubSpot : utilisez hs-form-event:on-submission:success + HubSpotFormsV4

  • anciens formulaires HubSpot : gardez hsFormCallback uniquement si vous êtes encore sur une implémentation legacy. s pratiques

Pour éviter les erreurs de tracking :

  • déclenchez vos tags marketing sur un événement de succès réel, pas sur un simple clic bouton ;

  • nommez vos événements GTM de façon métier (form_contact_submit, form_devis_submit, etc.) ;

  • n’envoyez pas de données personnelles brutes vers vos plateformes sans cadrage juridique et technique adapté ;

  • testez chaque formulaire en mode Preview GTM avant mise en ligne.

Questions fréquemment posées sur le sujet

Le suivi des soumissions de formulaires HubSpot est crucial pour analyser vos conversions et comprendre le comportement des utilisateurs sur votre site web.

En ajoutant un écouteur d'événements JavaScript spécifique dans une balise HTML personnalisée de Google Tag Manager, vous pouvez capturer les soumissions de formulaires HubSpot et les transmettre à des outils d'analyse.

Le code JavaScript fourni dans l'article écoute les messages de type 'hsFormCallback' avec les événements 'onFormSubmit' et 'onFormSubmitted' pour pousser les données pertinentes dans le dataLayer.

Créez un déclencheur d'événement personnalisé nommé 'hubspot-form-success' qui s'activera lorsque l'événement correspondant sera poussé dans le dataLayer.

Assurez-vous que votre mise en œuvre respecte les réglementations en matière de confidentialité, en limitant l'enregistrement des conversions à certaines pages ou types d'utilisateurs spécifiques.

L'événement 'hubspot-form-data' est déclenché avant la soumission complète et capture toutes les données des champs du formulaire.

Créez une variable de couche de données (DataLayer Variable) dans GTM pour accéder aux données des champs capturées par l'événement 'hubspot-form-data'.

Des balises marketing telles que Google Analytics, Facebook Pixel, Mixpanel ou Piwik Pro peuvent être activées lors de la soumission d'un formulaire HubSpot.

Utilisez le mode Aperçu de Google Tag Manager pour vérifier que les événements sont correctement capturés et que les balises se déclenchent comme prévu.

Cela permet de respecter les réglementations en matière de confidentialité et d'assurer que seules les données pertinentes sont collectées pour l'analyse.

Besoin d'un audit tracking ?

Prendre un RDV

Services et prestations

Des données fiables pour piloter vos campagnes. Conformité, attribution, reporting — je mets en place le tracking fiable.

Articles qui peuvent t'intéresser