À propos du nœud TemplateFox
Le nœud communautaire TemplateFox officiel pour n8n génère des PDF à partir de vos templates et de données dynamiques. Il fonctionne en synchrone : l'URL du PDF revient tout de suite. Compatible avec les agents IA de n8n.
Pourquoi automatiser vos certificats ?
Quelqu'un vient de terminer votre formation. Il faut maintenant ouvrir un fichier Word, taper son nom, changer la date, exporter en PDF, joindre le fichier à un e-mail, déposer une copie dans Drive et tout noter dans le tableur de la promotion. Pour un diplômé, passe encore. Pour une promotion de 80, c'est votre après-midi qui y passe.
Bonne nouvelle : vous avez très probablement déjà une feuille Google Sheets qui liste qui a terminé quoi. Sinon, votre LMS, votre outil de quiz ou votre formulaire peut y verser des lignes en 30 secondes. Une fois la ligne en place, le reste est mécanique : c'est exactement le travail de n8n.
Voici ce que nous allons construire : une ligne arrive dans votre feuille, TemplateFox produit un certificat au format d'archivage PDF/A-2b, le PDF part par e-mail au participant et s'archive dans Drive, puis le lien Drive permanent est réécrit dans la ligne d'origine. Six nœuds, aucune étape Code, une seule chaîne horizontale.
Trouvez ou créez un certificat sur Canva
Inutile de concevoir un certificat de zéro pour ce tutoriel. Vous en avez déjà un ? Passez à l'étape 1.3.
Pas envie de partir de zéro ? Parcourez les templates de certificats : choisissez-en un, remplacez le logo et les signatures, c'est prêt.
1.1 — Trouver un template
Prenons un template et personnalisons-le :
- Ouvrez canva.com et créez un compte (ou connectez-vous)
- Dans la barre de recherche, tapez « certificat »
- Parcourez les templates et choisissez celui qui vous plaît
1.2 — Personnaliser le template
Cliquez sur Customize this template pour l'ouvrir dans l'éditeur Canva. Ajoutez votre identité visuelle : logo, couleurs, polices.
1.3 — Retirer les textes variables
Supprimez tout texte qui change d'un certificat à l'autre (nom du destinataire, date, etc.). Vous les ajouterez ensuite comme champs dynamiques dans TemplateFox.
Ici, pour faire simple, je retire seulement le prénom et le nom de l'élève.
- Sélectionnez le texte du nom du destinataire
- Supprimez-le entièrement
Astuce : gardez les éléments graphiques (bordures, ornements) et videz seulement les textes qui changent d'un certificat à l'autre.
1.4 — Exporter en PNG
Exportez votre certificat en image :
- Cliquez sur Share → Download
- Choisissez le format PNG
- Cliquez sur Download
Pourquoi le PNG ? Plus simple à manipuler : aucun problème d'intégration de polices. Votre design devient une image de fond.
Importez et configurez dans TemplateFox
2.1 — Importer le design
Créez un nouveau template et importez votre design Canva :
- Ouvrez Templates dans votre tableau de bord
- Cliquez sur Create Template
- Choisissez Fixed (documents d'une seule page)
- Passez le format en A4 Landscape
- Réglez le zoom sur 75 % pour voir la page entière
- Étirez la section initiale pour qu'elle couvre toute la page
- Cliquez sur New Element → Image
- Importez votre PNG et étirez-le sur tout le fond : il doit s'ajuster parfaitement
2.2 — Ajouter les champs dynamiques
Ajoutez les champs de texte que n8n remplira. Pour cette démo, commençons par le nom du destinataire, {{participant_name}} :
- Ajoutez un élément Text
- Tapez
{{participant_name}} - Placez-le là où le nom du destinataire doit apparaître
- Choisissez la police Great Vibes en taille 90, pour un rendu élégant façon signature
- Centrez le texte horizontalement et alignez-le en bas de la zone de texte
- Ajustez l'interligne pour que le texte repose bien en bas (pour Great Vibes, 0.8 fonctionne bien)
- Activez Autoscale Down : les noms longs rétrécissent automatiquement pour tenir dans la zone
Répétez l'opération pour les autres champs que le workflow n8n remplira. Les quatre ci-dessous correspondent aux colonnes que nous créerons en section 3 :
-
{{participant_name}}— Nom du destinataire -
{{course_name}}— Nom de la formation ou du programme -
{{completion_date}}— Date de fin de formation -
{{instructor}}— Nom du formateur
Astuce : ouvrez l'onglet Preview et saisissez des données de test dans le panneau JSON. Testez un nom court et un nom long pour vérifier la réduction automatique : essayez {"participant_name": "Jo"} puis {"participant_name": "Christopher Montgomery-Williams"}, et vérifiez que le texte s'ajuste dans les deux cas.
Tout ce qui est identique sur chaque certificat (logo, signatures, nom de l'organisme, ligne de pied de page) se place dans l'éditeur, pas dans n8n. Moins vous exposez de champs au workflow, moins il y a de choses à relier ensuite.
Le workflow n8n complet. Nous allons le construire de gauche à droite.
Construisez le workflow n8n
Avant de relier les nœuds, préparez la feuille. Le déclencheur lit les colonnes de gauche, l'étape de réécriture remplit les colonnes de droite : ces deux dernières doivent être vides au départ.
Colonnes d'entrée
Participant Name · Email · Course · Completion Date · Instructor
Colonnes de réécriture (à laisser vides)
Certificate URL · Issued At
3.1 — Déclencheur Google Sheets
Déposez un nœud Google Sheets Trigger sur le canevas et connectez Google OAuth (n8n vous guide si vous n'avez jamais connecté Google : comptez une trentaine de secondes). Ensuite :
- Choisissez votre feuille de calcul dans la liste déroulante
- Choisissez l'onglet à l'intérieur, en général
Sheet1 - Réglez Event sur
Row Added
n8n interroge la feuille toutes les minutes. Dès qu'une nouvelle ligne apparaît, le déclencheur lance une exécution où chaque colonne est disponible sous la forme {{ $json["Participant Name"] }}, et ainsi de suite. Cliquez sur Test step avec une ligne déjà présente dans la feuille : toutes vos colonnes doivent s'afficher dans le panneau de sortie.
3.2 — Relier les champs à TemplateFox
Ajoutez le nœud TemplateFox. Première fois ? Il vous faut une clé API : ouvrez la section des clés API de votre tableau de bord, créez-en une (elle commence par sk_) et collez-la dans la fenêtre d'identifiants de n8n. Tous les détails sont dans la documentation sur l'authentification si vous voulez la version longue.
Configurez ensuite le nœud :
- Réglez Operation sur
Generate PDF - Choisissez votre template de certificat dans la liste déroulante : les quatre champs ajoutés en section 2 s'affichent automatiquement
- Faites glisser chaque colonne du panneau d'entrée sur le champ du template correspondant
- Dans Options, réglez PDF Variant sur
PDF/A-2b, un standard d'archivage moderne
Besoin de mettre en forme une date ? Pas besoin d'un nœud Code : utilisez une expression n8n directement dans le champ, par exemple {{ $json["Completion Date"].toDateTime().setLocale('fr').toFormat('d MMMM yyyy') }} pour transformer 2026-04-30 en 30 avril 2026. n8n s'appuie sur Luxon pour gérer les dates.
3.3 — Télécharger et archiver dans Drive
Un piège à connaître : l'URL renvoyée par TemplateFox est valable 24 heures par défaut. C'est largement assez pour la télécharger, mais bien trop court pour la mettre dans un e-mail que quelqu'un ouvrira peut-être dans trois mois. On télécharge donc le PDF une fois, et on en range une copie permanente dans Drive. Deux nœuds :
- HTTP Request : méthode
GET, URL{{ $json.url }}, Response FormatFile. Vous obtenez le PDF sous forme de données binaires. - Google Drive : opération
Upload, puis choisissez votre dossier d'archive. Important : dans Options, désactivez Simplify Output. Sinon, le champwebViewLinkne revient pas, et vous en avez besoin pour les deux étapes suivantes.
Ce webViewLink est la clé de tout : c'est une URL permanente vers le fichier dans Drive, que vous, le participant et tout audit futur pourrez utiliser sans limite de durée.
3.4 — Envoyer l'e-mail au participant
Ajoutez un nœud Gmail, ou Outlook, ou l'outil de votre équipe : le branchement est le même. Reliez le destinataire et l'objet à la ligne du déclencheur, et mettez le lien Drive dans le corps du message :
Pourquoi $json.webViewLink et pas l'URL TemplateFox ? Parce que Gmail se trouve après l'envoi dans Drive : $json désigne donc la sortie du nœud Drive. Le participant reçoit le lien permanent plutôt que celui valable 24 heures, et l'e-mail fonctionne encore des mois plus tard.
3.5 — Réécrire dans la feuille
Dernier nœud. C'est lui qui fait passer le workflow de « j'envoie et j'oublie » à « j'envoie et je garde une trace ». Ajoutez un second nœud Google Sheets, sur la même feuille de calcul et le même onglet, avec l'opération Update :
- Même feuille de calcul et même onglet que le déclencheur
- Matching Columns :
Email - Certificate URL →
{{ $('Archive to Google Drive').first().json.webViewLink }} - Issued At →
{{ $now.toISO() }}
C'est tout. Chaque ligne terminée a désormais une URL de certificat permanente et un horodatage. Vous cherchez les participants dont le certificat n'est pas parti ? Filtrez sur Issued At vide. Vous devez prouver qu'une personne a reçu son certificat à une date donnée ? Tout est là. Besoin de le renvoyer ? Cliquez sur le lien dans la feuille.
Variantes : lots et LMS
Google Sheets couvre la plupart des cas. Voici trois autres versions possibles, toutes de petites variantes de la même chaîne :
- Envoi groupé chaque nuit. Vous ne voulez pas que vos diplômés reçoivent un e-mail à 2 h du matin, à la seconde où la ligne est ajoutée ? Remplacez le déclencheur Sheets par un Schedule Trigger suivi d'une étape Get Many Rows qui filtre les lignes où
Issued Atest vide. Lancez-le à 9 h chaque jour ouvré : le reste de la chaîne ne change pas. - Directement depuis le LMS. Vous pouvez aussi vous passer de la feuille. La plupart des LMS (Teachable, Thinkific, LearnDash, Kajabi, Podia) et des outils de formulaire (Typeform, Tally) savent envoyer un webhook quand un participant termine. Ajoutez un déclencheur n8n Webhook, faites-le appeler par votre LMS et reliez le payload JSON aux champs de votre template. Vous perdez la piste d'audit, mais vous gagnez une étape.
- Seuil de réussite. Pas question de délivrer un certificat à quelqu'un qui a obtenu 42 % ? Ajoutez un nœud IF avant TemplateFox, qui compare
Scoreà votre seuil de réussite. En dessous, la ligne est ignorée. Au-dessus, tout se déroule normalement.