Modèle n8n · Automatisation CRM

Automatisation CRM : le modèle formulaire → HubSpot → Slack

Chaque lead entre dans HubSpot sans doublon et le bon commercial le voit dans Slack. Six nœuds, réglages compris, tels que nous les avons testés.

Le modèle en chiffres

Ce que coûte ce workflow, vraiment

6
nœuds n8n
Webhook, Edit Fields, IF, HubSpot, Slack, Respond to Webhook
2
gestes manuels supprimés par lead
la saisie dans HubSpot et le message à l'équipe
20 €
par mois sur n8n Starter
2 500 exécutions, soit 2 500 leads (facturé à l'année)
~5
crédits Make par lead
1 crédit par opération de module, 1 000 crédits offerts
Nœud 01 · Webhook

Webhook : recevoir la réponse du formulaire

Tout part d'un nœud Webhook : une adresse que ton formulaire appelle à chaque envoi (un webhook, c'est un formulaire qui « prévient » n8n tout seul). Il marche avec Tally, Typeform, Jotform ou ton propre site, donc tu ne dépends d'aucun outil de formulaire.

Réglages : HTTP Method sur POST, un Path lisible (par exemple lead-site), et Respond sur « Using 'Respond to Webhook' Node » pour renvoyer une réponse propre à la fin. Le nœud accepte jusqu'à 16 Mo par appel, largement assez pour un formulaire.

Le piège classique : le nœud a deux adresses. L'URL de développement ne vit que pendant que tu écoutes un événement dans l'éditeur. L'URL de production ne s'enregistre qu'une fois le workflow publié. Colle la seconde dans ton formulaire, sinon rien n'arrive.

Verdict
Indépendant de l'outil de formulaire : tu changes de Typeform à Tally sans toucher au CRM.
Nœud 02 · Edit Fields

Edit Fields : remettre les champs au propre

Chaque formulaire nomme ses champs à sa façon. Le nœud Edit Fields (Set) les ramène à un format unique : email, firstname, lastname, company, message, source.

Le réglage qui évite la plupart des doublons : l'email passé en minuscules et sans espaces, avec l'expression {{ $json.body.email.trim().toLowerCase() }}. HubSpot reconnaît un contact à son adresse email : dans nos tests, une adresse au même format à chaque envoi reste le moyen le plus simple de garder une seule fiche.

Ajoute un champ source fixe (« site-contact », « webinar »…) : c'est lui qui alimentera la propriété d'origine dans HubSpot et ton reporting.

Verdict
Un seul nœud qui normalise tout : le reste du workflow ne lit plus jamais le format brut du formulaire.
Nœud 03 · IF

IF : écarter les envois inutilisables

Le nœud IF filtre avant d'écrire dans le CRM. Condition minimale : email « is not empty » et contient « @ ». La branche « false » finit dans un nœud No Operation (ou dans un Google Sheet de contrôle, si tu veux garder une trace).

Tu peux y ajouter une règle métier, par exemple écarter les adresses de messagerie gratuite pour un formulaire B2B. Garde-la souple : un indépendant écrit souvent depuis Gmail.

Verdict
Un filtre court, pas un mur : il protège le CRM sans perdre de vrais prospects.
Nœud 04 · HubSpot

HubSpot : créer ou compléter le contact

Le nœud HubSpot, ressource Contact, opération « Create/Update a contact ». C'est le cœur du modèle : la fiche se crée si l'email est nouveau, se complète s'il existe.

Connexion : la documentation n8n recommande une service key HubSpot (HubSpot considère les tokens d'application privée comme anciens), avec les scopes crm.objects.contacts.read, crm.objects.contacts.write et crm.schemas.contacts.read. Pas besoin de plus.

Mapping : Email ← email, puis dans « Additional Fields » le prénom, le nom, l'entreprise et le message. Envoie source dans une propriété personnalisée que tu crées d'abord dans HubSpot.

Verdict
« Create/Update » plutôt que « Create » : c'est la différence entre un CRM propre et un CRM à nettoyer chaque mois.
Essai gratuit

Convaincu par les détails ? Lance un essai Modèle formulaire → HubSpot → Slack.

Essayer n8n gratuitement →→
Nœud 05 · Slack

Slack : prévenir le bon commercial

Le nœud Slack, ressource Message, opération Send (l'appel chat.postMessage de Slack). Cible : un canal comme #leads, ou directement un utilisateur.

Le message utile tient en trois lignes : qui (nom, entreprise), ce qu'il demande (le champ message), et le lien vers sa fiche HubSpot, construit avec l'identifiant renvoyé par le nœud précédent. Sans ce lien, le commercial ouvre HubSpot et cherche, et l'alerte perd la moitié de son intérêt.

Pour router, place un nœud Switch avant Slack (pays, taille, produit) et une sortie par commercial. L'opération « Send and Wait for Response » met même le workflow en pause jusqu'à ce que le commercial réponde dans Slack, pratique pour une validation.

Verdict
Le lien vers la fiche HubSpot dans le message, toujours.
Nœud 06 · Respond to Webhook

Respond to Webhook : fermer la boucle

Le nœud Respond to Webhook renvoie au formulaire une réponse avec un petit JSON ({"ok": true}). Utile si ton propre site affiche un message de confirmation selon la réponse.

Complète avec un workflow d'erreur (Settings → Error Workflow) qui t'alerte quand HubSpot ou Slack refuse un appel : clé expirée, propriété supprimée. Sans lui, un lead perdu ne fait aucun bruit.

Verdict
Dans nos tests, le workflow d'erreur tient en deux nœuds et évite le pire : des leads perdus en silence.
Questions fréquentes

Automatisation CRM : tes questions sur ce modèle

  • Comment envoyer les réponses d'un formulaire dans HubSpot automatiquement ?
    Le plus fiable : ton formulaire (Tally, Typeform, Jotform…) envoie chaque réponse en webhook vers n8n. Un nœud Edit Fields remet les champs au propre, puis le nœud HubSpot, opération « Create/Update a contact », crée la fiche ou complète celle qui existe. Compte 6 nœuds et une exécution par réponse.
  • Faut-il n8n, Make ou Zapier pour relier un formulaire à HubSpot ?
    Les trois savent le faire. n8n compte une exécution par lead quel que soit le nombre de nœuds (2 500 exécutions dans le plan Starter à 20 €/mois, facturé à l'année). Make facture au module : environ 5 crédits par lead pour ce modèle, sur 1 000 crédits gratuits par mois. Zapier gratuit se limite à un déclencheur et une action, donc pas d'alerte Slack sans passer au plan Pro (19,99 $/mois à l'année pour 750 tâches).
  • Comment éviter les doublons de contacts dans HubSpot ?
    Passe toujours l'email en minuscules et sans espaces avant le nœud HubSpot, puis utilise l'opération « Create/Update a contact » plutôt que « Create ». HubSpot identifie un contact par son adresse email. Pour nettoyer l'existant, nous avons publié un workflow dédié à la fusion des doublons HubSpot.
  • Quels droits donner à la clé HubSpot utilisée par n8n ?
    La documentation n8n recommande une service key HubSpot (les tokens d'application privée sont désormais considérés comme anciens par HubSpot) avec trois scopes pour les contacts : crm.objects.contacts.read, crm.objects.contacts.write et crm.schemas.contacts.read. Rien de plus pour ce modèle.
  • Pourquoi mon webhook n8n ne reçoit rien en production ?
    Le nœud Webhook a deux adresses. L'URL de développement ne vit que pendant que tu écoutes un événement dans l'éditeur. L'URL de production ne s'enregistre qu'une fois le workflow publié, et ses exécutions n'apparaissent que dans l'onglet Executions. Le plus souvent, le formulaire pointe encore vers l'URL de développement.
  • Peut-on prévenir un commercial précis sur Slack plutôt que tout le canal ?
    Oui. Le nœud Slack, opération « Send », envoie un message à un canal ou à un utilisateur. Ajoute un nœud Switch avant lui (par pays, taille d'entreprise ou produit demandé) et chaque branche écrit au bon commercial. L'opération « Send and Wait for Response » va plus loin : elle met le workflow en pause jusqu'à ce que le commercial réponde dans Slack.
  • Combien de temps faut-il pour mettre ce workflow en place ?
    Sur un compte HubSpot et un Slack déjà configurés, le temps passe surtout sur le mapping des champs et les cas limites (email vide, champ manquant). Le reste est du réglage : propriétés personnalisées, routage, gestion d'erreur.