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.
Ce que coûte ce workflow, vraiment
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.
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.
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.
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.
Convaincu par les détails ? Lance un essai Modèle formulaire → HubSpot → 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.
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.
Avec n8n, Make ou Zapier ?
Le modèle se monte sur les trois plateformes. Le coût et la souplesse changent : n8n compte une exécution par lead, Make un crédit par opération de module, Zapier une tâche par action.
Le nœud HubSpot de n8n, ses opérations et sa connexion
Tu veux l'alerte Slack sur n8nn8n + SlackEnvoi, routage et attente de réponse dans Slack
Tu préfères un éditeur visuel, sans serveurMake + HubSpotEnviron 5 crédits par lead pour ce modèle
Ton formulaire est Typeform et tu restes sur MakeMake + TypeformLe déclencheur Typeform de Make, pas de webhook à copier
Ton équipe utilise déjà ZapierZapier + HubSpotPlan Pro requis pour enchaîner HubSpot et Slack
Tu hésites encore entre les plateformesn8n vs MakeLe comparatif complet, prix et limites
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.