Workflow n8n

Automatisation Google Sheets avec n8n : envoi de certificats PDF

Ce workflow n8n a pour objectif d'automatiser l'envoi de certificats PDF à partir de données collectées via Google Sheets. Dans un contexte où les entreprises doivent souvent délivrer des certificats à leurs clients ou employés, cette automatisation permet de gagner un temps précieux et d'éviter les erreurs manuelles. Par exemple, une entreprise de formation peut utiliser ce workflow pour envoyer automatiquement des certificats de réussite à ses participants après la fin d'un cours. Le processus commence par un déclencheur Google Sheets qui détecte les nouvelles entrées dans une feuille de calcul spécifique. Ensuite, les données essentielles sont extraites et analysées. En fonction des résultats, le workflow peut inclure des conditions pour vérifier si le score atteint un certain seuil. Si les critères sont remplis, le workflow copie un modèle de certificat depuis Google Drive, remplace le texte par les informations pertinentes, et convertit le document en PDF. Enfin, le certificat est envoyé directement à l'adresse email de l'utilisateur via Gmail. Cette automatisation n8n améliore non seulement l'efficacité opérationnelle, mais elle renforce également la satisfaction client en assurant une communication rapide et précise.

Tags clés :automatisationGoogle Sheetscertificatsn8nenvoi d'emails
Catégorie: Webhook · Tags: automatisation, Google Sheets, certificats, n8n, envoi d'emails0

Workflow n8n Google Sheets, certificats, envoi d'emails : vue d'ensemble

Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.

Workflow n8n Google Sheets, certificats, envoi d'emails : détail des nœuds

  • Google Sheets Trigger

    Ce noeud déclenche le workflow lorsqu'un événement se produit dans une feuille Google Sheets spécifiée.

  • No Operation, do nothing

    Ce noeud n'effectue aucune opération et sert à maintenir la structure du workflow.

  • Sticky Note

    Ce noeud crée une note autocollante avec des dimensions et un contenu spécifiés.

  • Sticky Note1

    Ce noeud génère une note autocollante avec une largeur définie et un contenu spécifié.

  • Sticky Note2

    Ce noeud crée une note autocollante avec une hauteur définie et un contenu spécifié.

  • Sticky Note3

    Ce noeud génère une note autocollante avec des dimensions et un contenu spécifiés.

  • Extract essential data

    Ce noeud extrait des données essentielles et les assigne à des variables définies.

  • Score Checker

    Ce noeud vérifie des conditions spécifiques et dirige le flux en fonction des résultats.

  • Sticky Note4

    Ce noeud crée une note autocollante avec une largeur définie et un contenu spécifié.

  • Sticky Note5

    Ce noeud génère une note autocollante avec des dimensions et un contenu spécifiés.

  • Sticky Note6

    Ce noeud crée une note autocollante avec une largeur définie et un contenu spécifié.

  • Sticky Note7

    Ce noeud génère une note autocollante avec une largeur définie et un contenu spécifié.

  • Copy from your template

    Ce noeud copie un fichier à partir d'un modèle dans Google Drive en utilisant des paramètres spécifiés.

  • Replace text

    Ce noeud remplace du texte dans une présentation Google Slides selon les options définies.

  • Convert to PDF

    Ce noeud convertit un fichier en PDF en utilisant les paramètres spécifiés.

  • Send to user's email

    Ce noeud envoie un email à un utilisateur avec un message et un sujet spécifiés.

  • Sticky Note8

    Ce noeud crée une note autocollante avec une largeur définie et un contenu spécifié.

Inscris-toi pour voir l'intégralité du workflow

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "id": "2qIFnWXdHJJs4oBk",
  "meta": {
    "instanceId": "6c586999cefcd4ec9b2ab69e3f6b7974d96831b39a984af15104588e20b2737a",
    "templateCredsSetupCompleted": true
  },
  "name": "DSP Certificate w/ Google Forms",
  "tags": [],
  "nodes": [
    {
      "id": "1f3a1bb2-1e5b-4696-aafc-5b3267d76cbf",
      "name": "Google Sheets Trigger",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "position": [
        -100,
        -20
      ],
      "parameters": {
        "event": "rowAdded",
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1715309269,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WqhSc4sx6GMupZgFo7xKoegXVo3fJVhqrovCQPa1esM/edit#gid=1715309269",
          "cachedResultName": "Form Responses 1"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "1WqhSc4sx6GMupZgFo7xKoegXVo3fJVhqrovCQPa1esM"
        }
      },
      "credentials": {
        "googleSheetsTriggerOAuth2Api": {
          "id": "LPj2gg4OdDdyokS7",
          "name": "Google Sheets (jkp@kajonkietsuksa.ac.th)"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "385f6b0f-2db0-4a44-816c-c6f6c8ccb493",
      "name": "No Operation, do nothing",
      "type": "n8n-nodes-base.noOp",
      "position": [
        620,
        180
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "58a77733-99f1-4884-b955-0a6f6c983cfc",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -240,
        -340
      ],
      "parameters": {
        "width": 300,
        "height": 180,
        "content": "### 1) Start here\n* Create a Google Form and then enable quiz mode.\n* Publish it, submit 1 text data.\n* In response section, you'll see \"Link to Google Sheet\" option.\n* Press, and it will create a new sheet."
      },
      "typeVersion": 1
    },
    {
      "id": "aeef0ccc-3031-40d0-a627-5f21ade148b1",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        320,
        -140
      ],
      "parameters": {
        "width": 180,
        "content": "### 4) Passing Score\n* Adjust your passing score here"
      },
      "typeVersion": 1
    },
    {
      "id": "c21dbdb5-ed87-4aac-bbc7-338aaed830ba",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -240,
        -100
      ],
      "parameters": {
        "height": 180,
        "content": "### 2) Trigger Node\n* Replace your Google Sheet id's in this node."
      },
      "typeVersion": 1
    },
    {
      "id": "d2b15c40-d38a-4bec-97c8-d4b35e3a69fa",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        40,
        -100
      ],
      "parameters": {
        "width": 260,
        "height": 180,
        "content": "### 3) Extract Node\n* Select the data we want to use to proceed.\n* For this case, i'll select only Name, Email, Score (Because this is only what we need)"
      },
      "typeVersion": 1
    },
    {
      "id": "79957ca7-ac5f-4f5b-b921-ddec3cb9f88b",
      "name": "Extract essential data",
      "type": "n8n-nodes-base.set",
      "position": [
        120,
        60
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "7cdc9108-ab77-4904-a74b-29677b06cc81",
              "name": "respondentName",
              "type": "string",
              "value": "={{ $json['ชื่อ (เป็นภาษาอังกฤษ)'] }}"
            },
            {
              "id": "1800b27a-6cbc-4b82-a17a-87d7d1e7a66e",
              "name": "respondentEmail",
              "type": "string",
              "value": "={{ $json['Email Address'] }}"
            },
            {
              "id": "36cb99ca-7c98-41b5-a2a4-a03ac8d83189",
              "name": "respondentScore",
              "type": "number",
              "value": "={{ $json.Score }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "912838e0-6b35-47a1-8935-dc90b4c59ecb",
      "name": "Score Checker",
      "type": "n8n-nodes-base.if",
      "position": [
        360,
        -20
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "286a95ee-1edc-4310-af22-d161e1f04a27",
              "operator": {
                "type": "number",
                "operation": "gt"
              },
              "leftValue": "={{ $json.respondentScore }}",
              "rightValue": 3
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "9c9e308f-ce90-425d-aafc-08711cbf95df",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        600,
        120
      ],
      "parameters": {
        "width": 260,
        "content": "### 4.1) Score < passing criteria"
      },
      "typeVersion": 1
    },
    {
      "id": "f794c7a3-47af-4166-9504-8265837f61e6",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        520,
        -340
      ],
      "parameters": {
        "width": 260,
        "height": 200,
        "content": "### 4.2) Score > passing criteria\n* Create new Google Slide \n* Decorate it as you desired (This will be certificate's template)\n* Use [ name ] to be a placeholder for user's name\n* Replace it with your Google Slide's id"
      },
      "typeVersion": 1
    },
    {
      "id": "9a2954e3-59fd-4472-931f-9eeb362e627b",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        820,
        -400
      ],
      "parameters": {
        "width": 260,
        "content": "### 5) Replace text\n* This node will replace [ name ] with user's input name.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "baa88ba8-c1c6-40d7-b4c0-1e70397d7e68",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        940,
        -80
      ],
      "parameters": {
        "width": 260,
        "content": "### 6) To PDF\n* Change file name as you desire."
      },
      "typeVersion": 1
    },
    {
      "id": "0d4b0fad-046b-4810-9d21-2c30135df6b0",
      "name": "Copy from your template",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        620,
        -160
      ],
      "parameters": {
        "name": "={{ $json.respondentName }}'s Certificate",
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "1J8PxjjspVs7075EfIX6pnNU-TmqtzVV9ymeHoKpbwP0"
        },
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "1xMJU-6eiXL53NDgjic2SXecTo6GeUJ-o",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1xMJU-6eiXL53NDgjic2SXecTo6GeUJ-o",
          "cachedResultName": "KS Google Form -> Certificate System"
        },
        "operation": "copy",
        "sameFolder": false
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "2k4spLmVESgxckkx",
          "name": "jkp@kajonkietsuksa.ac.th"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "30407819-7998-4ba1-b2a0-bde7ba91747c",
      "name": "Replace text",
      "type": "n8n-nodes-base.googleSlides",
      "position": [
        880,
        -300
      ],
      "parameters": {
        "textUi": {
          "textValues": [
            {
              "text": "[ NAME ]",
              "replaceText": "={{ $('Score Checker').item.json.respondentName }}",
              "pageObjectIds": [
                "p"
              ]
            }
          ]
        },
        "options": {},
        "operation": "replaceText",
        "presentationId": "={{ $json.id }}"
      },
      "credentials": {
        "googleSlidesOAuth2Api": {
          "id": "1oyCPsdPLod92Wlp",
          "name": "Google Slides account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "62f1ab2e-0471-480b-9a90-587a9ffb18d6",
      "name": "Convert to PDF",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        960,
        0
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.presentationId }}"
        },
        "options": {
          "fileName": "={{ $('Score Checker').item.json.respondentName }}'s Certificate",
          "googleFileConversion": {
            "conversion": {
              "slidesToFormat": "application/pdf"
            }
          }
        },
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "2k4spLmVESgxckkx",
          "name": "jkp@kajonkietsuksa.ac.th"
        }
      },
      "typeVersion": 3,
      "alwaysOutputData": false
    },
    {
      "id": "08516c84-5257-4875-8c2f-9b6a4428bfad",
      "name": "Send to user's email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1360,
        0
      ],
      "webhookId": "f204ef80-937c-4f7b-8eb5-0699eb13c16a",
      "parameters": {
        "sendTo": "={{ $('Score Checker').item.json.respondentEmail }}",
        "message": "=Congratulations on passing the quiz! Attached is your certificate.",
        "options": {
          "attachmentsUi": {
            "attachmentsBinary": [
              {}
            ]
          },
          "appendAttribution": false
        },
        "subject": "Here's your certificate!!"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "qogKxJFIxmrd6rcB",
          "name": "Gmail account (jkp@kajonkietsuksa.ac.th)"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "ae4cd0de-e06d-4200-af17-f6e9953ccba7",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1260,
        -100
      ],
      "parameters": {
        "width": 260,
        "content": "### 7) Send email\n* Send to user's email\n* Customize your message here.\n"
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "54bf009a-3f95-446d-95a6-825496592a6f",
  "connections": {
    "Replace text": {
      "main": [
        [
          {
            "node": "Convert to PDF",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Score Checker": {
      "main": [
        [
          {
            "node": "Copy from your template",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "No Operation, do nothing",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to PDF": {
      "main": [
        [
          {
            "node": "Send to user's email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets Trigger": {
      "main": [
        [
          {
            "node": "Extract essential data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract essential data": {
      "main": [
        [
          {
            "node": "Score Checker",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Copy from your template": {
      "main": [
        [
          {
            "node": "Replace text",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Workflow n8n Google Sheets, certificats, envoi d'emails : pour qui est ce workflow ?

Ce workflow s'adresse aux entreprises de formation, aux organismes de certification, et à toute organisation souhaitant automatiser l'envoi de documents personnalisés. Les utilisateurs peuvent être des responsables administratifs ou des équipes techniques ayant un niveau technique intermédiaire.

Workflow n8n Google Sheets, certificats, envoi d'emails : problème résolu

Ce workflow résout le problème de l'envoi manuel de certificats, qui peut être long et sujet à des erreurs. En automatisant ce processus, les entreprises réduisent le risque d'erreurs humaines et gagnent un temps précieux. Les utilisateurs peuvent ainsi se concentrer sur des tâches à plus forte valeur ajoutée, tout en assurant une communication rapide et fiable avec leurs clients.

Workflow n8n Google Sheets, certificats, envoi d'emails : étapes du workflow

Étape 1 : Le workflow est déclenché par une nouvelle entrée dans Google Sheets.

  • Étape 1 : Les données essentielles sont extraites pour être traitées.
  • Étape 2 : Un contrôle de score est effectué pour déterminer si le certificat doit être délivré.
  • Étape 3 : Si les conditions sont remplies, un modèle de certificat est copié depuis Google Drive.
  • Étape 4 : Le texte du certificat est remplacé par les informations pertinentes.
  • Étape 5 : Le document est converti en PDF.
  • Étape 6 : Le certificat PDF est envoyé à l'utilisateur par email via Gmail.

Workflow n8n Google Sheets, certificats, envoi d'emails : guide de personnalisation

Pour personnaliser ce workflow, vous pouvez modifier l'ID de la feuille Google Sheets pour pointer vers votre document spécifique. Assurez-vous également de personnaliser le modèle de certificat dans Google Drive en fonction de vos besoins. Vous pouvez ajuster les conditions dans le nœud 'Score Checker' pour définir vos propres critères de réussite. Enfin, adaptez le contenu de l'email envoyé via Gmail pour qu'il corresponde à votre ton et à votre style de communication.