Générer et Envoyer des Certificats de Participation avec Pipedream

Image de l'article
Auteur Par DocuGenerate

28 Septembre 2026

Introduction

Les événements, ateliers et programmes de formation se terminent généralement de la même façon : chaque participant attend un certificat, et quelqu’un de l’équipe organisatrice doit les produire et les envoyer. Remplir les noms à la main, exporter chaque certificat en PDF et le joindre à un e-mail individuel est un travail lent qui ne tient plus au-delà de quelques participants, et une seule faute de frappe dans un nom suffit à rendre un certificat inutilisable. Dans ce tutoriel, nous allons créer un workflow automatisé avec Pipedream et DocuGenerate qui prend en charge l’ensemble du processus, de la réception des données du participant jusqu’à la livraison du PDF final dans sa boîte de réception.

Le workflow comporte trois étapes. Un déclencheur webhook reçoit les informations du participant sous forme de charge utile JSON, l’action DocuGenerate Generate Document fusionne ces données dans un modèle Word pour produire un certificat PDF, et l’action Gmail Send Email envoie le certificat au participant en pièce jointe. Comme le point d’entrée est un simple endpoint HTTP, le même workflow peut être appelé depuis une plateforme d’inscription, un formulaire, un script de feuille de calcul ou votre propre backend. À la fin de ce guide, vous disposerez d’un workflow fonctionnel que vous pourrez copier dans votre propre compte Pipedream en un seul clic.

Configurer le Modèle de Certificat

Avant de construire le workflow, nous avons besoin d’un modèle de certificat dans DocuGenerate. Pour ce tutoriel, nous utiliserons le modèle Word Certificate Of Participation, un certificat au format paysage avec une bordure dorée ornementée, une grande police manuscrite pour le nom du destinataire, un sceau de cire au centre et un bloc de signature en bas à droite.

Une fois que vous avez créé le modèle dans votre compte DocuGenerate, 6 balises de fusion sont détectées automatiquement : Full Name, Event Name, Organizer, Certificate ID, Signer Position et Signer Name. La balise Full Name est affichée en évidence au milieu du certificat, Event Name et Organizer apparaissent dans le texte de reconnaissance juste en dessous, et Organizer est également imprimé à l’intérieur du sceau de cire. Le Certificate ID se trouve à côté de la date d’émission, tandis que Signer Name et Signer Position complètent le bloc de signature.

Modèle Certificate Of Participation avec 6 balises de fusion dans DocuGenerate

La date d’émission à côté de l’identifiant du certificat ne nécessite aucune balise de fusion. Il s’agit d’un champ DATE inséré directement dans Word, qui est donc rempli avec la date du jour à chaque génération d’un certificat. Notre article de blog sur l’insertion de la date du jour dans un modèle explique comment ajouter ce type de champ dans Word ou LibreOffice et choisir son format d’affichage.

Configurer le Déclencheur Webhook

Une fois le modèle prêt, nous pouvons créer un nouveau workflow dans Pipedream. Chaque workflow commence par un déclencheur, qui détermine d’où proviennent les données et quand le workflow s’exécute. Les données peuvent provenir d’une feuille de calcul, d’une base de données comme Airtable ou Notion, d’un outil de création de formulaires ou de n’importe quelle autre application connectée à Pipedream. Pour ce tutoriel, nous utiliserons un déclencheur HTTP qui écoute les requêtes entrantes sur une URL unique, car c’est l’option la plus flexible et elle fonctionne avec n’importe quel système capable d’envoyer une requête HTTP.

Cliquez sur Add Trigger et sélectionnez le déclencheur New HTTP / Webhook Requests. La configuration par défaut convient bien à ce workflow, vous pouvez donc laisser les paramètres tels quels :

  • Event Data : Full HTTP request, qui expose le corps, les en-têtes et les autres détails de la requête aux étapes suivantes via l’objet steps.
  • HTTP Response : Return HTTP 200 OK, afin que l’appelant reçoive une confirmation immédiate.
  • Domains : pipedream.net, le domaine utilisé pour l’URL générée du déclencheur.
  • Authorization : None, ce qui signifie que toute requête envoyée à l’URL est acceptée. Nous y reviendrons dans la section sur la production.

Configurer le déclencheur HTTP / Webhook dans Pipedream

Cliquez sur Save and continue pour créer le déclencheur. Dans la section SELECT EVENT, Pipedream affiche l’URL unique générée pour ce workflow, qui dans notre cas est https://eorgxgd03g7mu1b.m.pipedream.net. Toute requête HTTP envoyée à cette URL démarrera le workflow.

L'URL unique générée pour le déclencheur webhook

Envoyer un Événement de Test

Pour configurer les étapes suivantes, Pipedream a besoin d’un événement d’exemple afin de montrer la structure des données entrantes et de les proposer en autocomplétion. Cliquez sur Generate Test Event, ouvrez l’onglet Body, sélectionnez application/json comme Content-Type, et saisissez la charge utile suivante dans le champ Raw Request Body :

{
  "Signer Position": "Program Director",
  "Signer Name": "Margaret Ellison",
  "Certificate ID": "FLN-2025-00143",
  "Organizer": "Future Learning Network",
  "Event Name": "International Student Leadership Forum 2025",
  "Full Name": "Aisha Rahman",
  "Email": "aisha.rahman@example.com"
}

Les six premières clés correspondent exactement aux balises de fusion du modèle de certificat. La clé Email n’est pas utilisée dans le modèle, mais nous l’incluons dans la charge utile car le workflow doit savoir où envoyer le certificat une fois celui-ci généré.

Envoi d'une requête HTTP de test avec les données du participant

Cliquez sur Send HTTP Request pour soumettre l’événement de test. La section RESULTS confirme que la requête a bien été reçue et montre comment les données sont exportées sous steps.trigger.event. Les sept champs de notre charge utile sont disponibles dans l’objet body, aux côtés d’autres détails de la requête comme les headers, la method et l’url.

Résultats du déclencheur webhook affichant le corps de la requête

Générer le Certificat

Ensuite, cliquez sur le bouton + sous le déclencheur, recherchez DocuGenerate et sélectionnez l’action Generate Document de l’application DocuGenerate. Lors de la première utilisation, vous devrez connecter votre compte DocuGenerate avec votre clé API. Le guide d’intégration décrit cette configuration plus en détail.

Configurer l'action Generate Document

Configurez l’action avec les paramètres suivants :

  • DocuGenerate Account : le compte connecté avec votre clé API.
  • Template : le modèle Certificate Of Participation créé lors de la configuration du modèle.
  • Name : Certificate for {{steps.trigger.event.body["Full Name"]}}, qui donne à chaque document un nom basé sur le participant, comme Certificate for Aisha Rahman.
  • Format : PDF (.pdf), afin que le certificat puisse être joint à un e-mail et ouvert sur n’importe quel appareil.
  • Data : un objet qui associe chaque balise de fusion à la valeur correspondante du déclencheur, comme expliqué ci-dessous.

Pour le paramètre Data, sélectionnez l’option Construct an object et ajoutez une ligne pour chacune des 6 balises de fusion. La clé de chaque ligne est le nom de la balise de fusion, et la valeur fait référence au champ correspondant dans steps.trigger.event.body. Les clés qui contiennent des espaces doivent utiliser la notation entre crochets, comme dans {{steps.trigger.event.body["Full Name"]}}, tandis que les clés d’un seul mot comme Organizer peuvent utiliser la notation pointée, plus courte, {{steps.trigger.event.body.Organizer}}. Le champ Email est laissé de côté, puisque le modèle ne l’utilise pas.

Construire l'objet Data à partir du corps du webhook

Cliquez sur Test pour exécuter l’action avec l’événement de test. La section RESULTS confirme que le document a été généré, et la valeur exportée $return_value contient les détails du nouveau document :

{
  "$summary": "Successfully generated the document S1AG7iucebUnYdv9RY73",
  "$return_value": {
    "created": 1790522684107,
    "template_id": "bjBXM4QZeg88Hf7ULwgl",
    "name": "Certificate for Aisha Rahman",
    "format": ".pdf",
    "data_length": 1,
    "filename": "Certificate for Aisha Rahman.pdf",
    "document_uri": "https://firebasestorage.googleapis.com/v0/b/storage.us.docugenerate.com/o/documents%2FS1AG7iucebUnYdv9RY73%2FCertificate%20for%20Aisha%20Rahman.pdf?alt=media&token=81c6ffdb-282d-4a89-a2b9-e96542f6aee2",
    "id": "S1AG7iucebUnYdv9RY73"
  }
}

Les deux champs dont nous aurons besoin à l’étape suivante sont filename, le nom du fichier généré, et document_uri, une URL qui pointe vers le PDF généré.

Résultats de l'action Generate Document dans Pipedream

Vous pouvez également vérifier le résultat dans DocuGenerate. L’onglet Documents du modèle Certificate Of Participation affiche désormais un document nommé Certificate for Aisha Rahman, dans lequel chaque balise de fusion a été remplacée par les valeurs de l’événement de test, y compris le nom de l’organisateur dans le sceau et les informations du signataire dans le bloc de signature. Vous pouvez télécharger le certificat généré pour voir le PDF final.

Le certificat généré dans DocuGenerate

Envoyer le Certificat par E-mail

La dernière étape livre le certificat au participant. Cliquez sur le bouton + sous l’action Generate Document et sélectionnez l’action Send Email de l’application Gmail, puis connectez le compte Gmail depuis lequel les e-mails doivent être envoyés. Pipedream prend en charge de nombreux autres fournisseurs de messagerie, mais l’action Gmail est complète et rapide à configurer, ce qui en fait un bon choix pour ce tutoriel.

Configurer l'action Gmail Send Email

Configurez l’action avec les paramètres suivants :

  • To : {{steps.trigger.event.body.Email}}, l’adresse e-mail reçue dans la charge utile du webhook.
  • Subject : Your certificate {{steps.trigger.event.body["Certificate ID"]}}, qui inclut l’identifiant du certificat afin que le participant puisse s’y référer plus tard.
  • Email Body : un court message personnalisé avec le nom du participant, le nom de l’événement et les informations du signataire (voir ci-dessous).
  • Attachment Filenames : {{steps.generate_document.$return_value.filename}}, le nom de fichier renvoyé par l’action Generate Document.
  • Attachments : {{steps.generate_document.$return_value.document_uri}}, l’URL du PDF généré.

Voici le texte complet utilisé dans le champ Email Body :

Dear {{steps.trigger.event.body["Full Name"]}},

Thank you for taking part in {{steps.trigger.event.body["Event Name"]}}.

Please find your certificate of participation attached to this email.

We hope you enjoyed the experience and look forward to seeing you at future events.

Best regards,
{{steps.trigger.event.body["Signer Name"]}}
{{steps.trigger.event.body["Signer Position"]}}

Un détail pratique de l’action Gmail est que le champ Attachments accepte aussi bien des URL publiques que des chemins de fichiers. Cela signifie que le document_uri renvoyé par DocuGenerate peut être transmis directement, sans ajouter d’étape intermédiaire pour télécharger d’abord le PDF dans un stockage temporaire. Cliquez sur Test pour envoyer l’e-mail correspondant à l’événement de test. Le participant reçoit un message avec l’objet Your certificate FLN-2025-00143, le corps de texte personnalisé et le certificat joint sous le nom Certificate for Aisha Rahman.pdf.

L'e-mail reçu avec le certificat en pièce jointe

Tester le Workflow de Bout en Bout

Jusqu’ici, chaque étape a été testée individuellement à l’aide de l’événement d’exemple. Pour exécuter le workflow complet dans les conditions réelles, cliquez sur Deploy afin que l’URL du déclencheur commence à traiter les requêtes en direct. Envoyez ensuite une véritable requête HTTP à l’URL du déclencheur depuis l’extérieur de Pipedream. Si vous ne savez pas comment le faire depuis votre propre système, le bouton See Code Examples dans la section SELECT EVENT du déclencheur fournit des extraits prêts à l’emploi dans plusieurs langages, notamment cURL, JavaScript, Node, Python, PHP, Go et Ruby.

Nous utiliserons la commande cURL suivante, qui envoie les mêmes données de participant que l’événement de test :

curl -X POST https://eorgxgd03g7mu1b.m.pipedream.net \
  -H "Content-Type: application/json" \
  -d '{
    "Signer Position": "Program Director",
    "Signer Name": "Margaret Ellison",
    "Certificate ID": "FLN-2025-00143",
    "Organizer": "Future Learning Network",
    "Event Name": "International Student Leadership Forum 2025",
    "Full Name": "Aisha Rahman",
    "Email": "aisha.rahman@example.com"
  }'

Quelques secondes après l’envoi de la requête, le workflow parcourt les trois étapes : le déclencheur reçoit la charge utile, DocuGenerate génère le certificat et Gmail l’envoie dans la boîte de réception du participant. Chaque exécution est enregistrée dans l’historique des événements du workflow dans Pipedream, où vous pouvez inspecter les entrées et les exports de chaque étape si quelque chose ne semble pas correct. Pour générer des certificats pour toute une liste de participants, envoyez une requête par participant avec ses propres informations.

Si vous souhaitez essayer ce workflow vous-même, vous pouvez utiliser ce lien de partage pour le copier dans votre propre compte Pipedream. Les comptes connectés ne sont pas inclus dans les workflows partagés, vous devrez donc connecter vos propres comptes DocuGenerate et Gmail et sélectionner votre propre copie du modèle de certificat.

Passer le Workflow en Production

Le workflow que nous avons construit est complet, mais quelques ajustements méritent d’être faits avant de s’y fier pour un véritable événement. Le plus important concerne le paramètre Authorization du déclencheur. Avec None, toute personne qui connaît l’URL du déclencheur peut générer un certificat et le faire envoyer à n’importe quelle adresse. Pipedream vous permet d’autoriser les requêtes HTTP avec un jeton personnalisé ou OAuth, de sorte que seules les requêtes provenant de vos propres systèmes soient acceptées et que toutes les autres soient rejetées.

Le second point à considérer est la provenance des données. Appeler le webhook depuis une plateforme d’inscription, un outil de création de formulaires ou votre propre backend fonctionne bien lorsque les certificats doivent partir dès qu’une personne termine un événement. Si votre liste de participants se trouve plutôt dans une feuille de calcul ou une base de données, vous pouvez remplacer le déclencheur HTTP par un déclencheur Pipedream qui s’active à l’ajout d’une nouvelle ligne dans Google Sheets ou d’un nouvel enregistrement dans une base de données. Les étapes Generate Document et Send Email restent identiques, et seules les références à steps.trigger.event.body doivent être mises à jour pour pointer vers les données du nouveau déclencheur.

Conclusion

Dans ce tutoriel, nous avons construit un workflow Pipedream qui transforme une simple requête HTTP en un certificat PDF personnalisé livré par e-mail. Le déclencheur webhook reçoit les informations du participant, l’action DocuGenerate Generate Document les fusionne dans un modèle Word, et l’action Gmail Send Email joint le PDF directement à partir de son URL, sans étape de téléchargement intermédiaire et sans aucun travail manuel une fois le workflow déployé.

Le même principe fonctionne pour tout document qui doit parvenir à un destinataire juste après sa création, comme des certificats de fin de formation, des billets d’événement, des confirmations d’inscription ou des reçus. Remplacez le modèle, adaptez la charge utile à ses balises de fusion et mettez à jour le texte de l’e-mail : le reste du workflow reste inchangé.

Ressources

Partager Cet Article