Envoyer automatiquement des factures PDF par e-mail avec Gmail via le déclencheur de paiement Stripe

Débutant

Ceci est unInvoice Processing, Multimodal AIworkflow d'automatisation du domainecontenant 5 nœuds.Utilise principalement des nœuds comme Code, Gmail, Webhook. Envoi automatique de factures PDF par e-mail via Gmail avec un déclencheur de paiement Stripe

Prérequis
  • Compte Google et informations d'identification Gmail API
  • Point de terminaison HTTP Webhook (généré automatiquement par n8n)

Nœuds utilisés (5)

Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "meta": {
    "instanceId": "2000c64071c20843606b95c63795bb0797c41036047055a6586498e855b96efc"
  },
  "nodes": [
    {
      "id": "3c9c65d5-e8ef-472b-994f-14d67bf92479",
      "name": "Instructions de configuration",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "width": 280,
        "height": 200,
        "content": "💰 **SETUP REQUIRED:**\n\n1. **Stripe Webhook:**\n   - Go to Stripe Dashboard → Webhooks\n   - Add endpoint with webhook URL below\n   - Select event: payment_intent.succeeded\n\n2. **Gmail Setup:**\n   - Connect Gmail OAuth in credentials\n   - Emails sent from your Gmail account\n\n3. **Customize Invoice:**\n   - Update company name in 'Generate Invoice HTML'\n   - Modify invoice template as needed\n\n🎯 Invoices auto-generated as PDF attachments!"
      },
      "typeVersion": 1
    },
    {
      "id": "9d2296bf-2617-4b8c-9d5b-ff87e3cf8360",
      "name": "Stripe Paiement Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        0,
        224
      ],
      "webhookId": "stripe-payment-webhook",
      "parameters": {
        "path": "stripe-webhook",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 1
    },
    {
      "id": "25314ce6-fbec-41b1-9328-2e075eb658a2",
      "name": "Normaliser les données de paiement",
      "type": "n8n-nodes-base.code",
      "position": [
        208,
        224
      ],
      "parameters": {
        "jsCode": "// Normalize Stripe payment data\nconst event = $input.first().json;\nconst paymentIntent = event.data?.object || event;\n\n// Only proceed if this is a successful payment\nif (event.type !== 'payment_intent.succeeded' && event.type !== 'charge.succeeded') {\n  console.log('Not a successful payment event, skipping...');\n  return null;\n}\n\n// Extract payment and customer details\nconst normalizedData = {\n  payment_id: paymentIntent.id,\n  amount: paymentIntent.amount / 100, // Convert from cents\n  currency: paymentIntent.currency?.toUpperCase() || 'USD',\n  customer_email: paymentIntent.receipt_email || paymentIntent.billing_details?.email || '',\n  customer_name: paymentIntent.billing_details?.name || 'Valued Customer',\n  payment_date: new Date(paymentIntent.created * 1000).toISOString(),\n  description: paymentIntent.description || 'Service Payment',\n  invoice_number: `INV-${Date.now()}`,\n  status: 'paid'\n};\n\n// Validate required fields\nif (!normalizedData.customer_email) {\n  throw new Error('Customer email is required for invoice generation');\n}\n\nconsole.log('Normalized Payment Data:', normalizedData);\n\nreturn {\n  json: normalizedData\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "8439384c-a885-4ad5-bc5d-e587b667fe61",
      "name": "Générer le HTML de la facture",
      "type": "n8n-nodes-base.code",
      "position": [
        400,
        224
      ],
      "parameters": {
        "jsCode": "// Generate HTML invoice content\nconst data = $input.first().json;\n\nconst invoiceHTML = `\n<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <style>\n    body { font-family: Arial, sans-serif; margin: 40px; }\n    .header { text-align: center; margin-bottom: 40px; }\n    .invoice-details { margin: 30px 0; }\n    .amount { font-size: 24px; font-weight: bold; color: #2E7D32; }\n    table { width: 100%; border-collapse: collapse; margin: 20px 0; }\n    th, td { padding: 12px; text-align: left; border-bottom: 1px solid #ddd; }\n    .footer { margin-top: 50px; text-align: center; color: #666; }\n  </style>\n</head>\n<body>\n  <div class=\"header\">\n    <h1>INVOICE</h1>\n    <h2>Your Company Name</h2>\n  </div>\n  \n  <div class=\"invoice-details\">\n    <p><strong>Invoice #:</strong> ${data.invoice_number}</p>\n    <p><strong>Date:</strong> ${new Date(data.payment_date).toLocaleDateString()}</p>\n    <p><strong>Payment ID:</strong> ${data.payment_id}</p>\n  </div>\n  \n  <div>\n    <h3>Bill To:</h3>\n    <p><strong>${data.customer_name}</strong></p>\n    <p>${data.customer_email}</p>\n  </div>\n  \n  <table>\n    <thead>\n      <tr>\n        <th>Description</th>\n        <th>Amount</th>\n        <th>Status</th>\n      </tr>\n    </thead>\n    <tbody>\n      <tr>\n        <td>${data.description}</td>\n        <td class=\"amount\">${data.currency} ${data.amount.toFixed(2)}</td>\n        <td style=\"color: green; font-weight: bold;\">PAID</td>\n      </tr>\n    </tbody>\n  </table>\n  \n  <div class=\"footer\">\n    <p>Thank you for your business!</p>\n    <p>This invoice was automatically generated.</p>\n  </div>\n</body>\n</html>\n`;\n\nreturn {\n  json: {\n    ...data,\n    invoice_html: invoiceHTML,\n    filename: `invoice_${data.invoice_number}.pdf`\n  }\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "7cb20e9e-dec4-4c7b-9029-05f3ddd5ef0a",
      "name": "Envoyer la facture par email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        608,
        224
      ],
      "webhookId": "6a6f3511-443a-4ff0-bd1b-c1a6b3890e98",
      "parameters": {
        "message": "Dear {{ $json.customer_name }},\\n\\nThank you for your payment! Please find your invoice attached.\\n\\nPayment Details:\\n- Amount: {{ $json.currency }} {{ $json.amount }}\\n- Payment ID: {{ $json.payment_id }}\\n- Date: {{ $json.payment_date }}\\n\\nBest regards,\\nYour Company Name",
        "options": {
          "attachmentsUi": {
            "attachmentsBinary": [
              {
                "property": "invoice_pdf"
              }
            ]
          }
        },
        "subject": "Invoice {{ $json.invoice_number }} - Payment Confirmation"
      },
      "typeVersion": 2.1
    }
  ],
  "pinData": {},
  "connections": {
    "8439384c-a885-4ad5-bc5d-e587b667fe61": {
      "main": [
        [
          {
            "node": "7cb20e9e-dec4-4c7b-9029-05f3ddd5ef0a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "25314ce6-fbec-41b1-9328-2e075eb658a2": {
      "main": [
        [
          {
            "node": "8439384c-a885-4ad5-bc5d-e587b667fe61",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9d2296bf-2617-4b8c-9d5b-ff87e3cf8360": {
      "main": [
        [
          {
            "node": "25314ce6-fbec-41b1-9328-2e075eb658a2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Débutant - Traitement des factures, IA Multimodale

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Informations sur le workflow
Niveau de difficulté
Débutant
Nombre de nœuds5
Catégorie2
Types de nœuds4
Description de la difficulté

Adapté aux nouveaux utilisateurs de n8n, avec des workflows simples contenant 1-5 nœuds

Auteur
David Olusola

David Olusola

@dae221

I help ambitious businesses eliminate operational bottlenecks and scale faster with AI automation. My clients typically see 40-60% efficiency gains within 90 days. Currently accepting 3 new projects this quarter - david@daexai.com

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34