Validation des e-mails d'intégration client
Ceci est unContent Creation, Multimodal AIworkflow d'automatisation du domainecontenant 21 nœuds.Utilise principalement des nœuds comme If, Code, Gmail, Slack, Webhook. Automatisation de la vérification des e-mails et du processus d'intégration avec VerifiEmail, Gmail et Slack
- •Compte Google et informations d'identification Gmail API
- •Token Bot Slack ou URL Webhook
- •Point de terminaison HTTP Webhook (généré automatiquement par n8n)
- •Informations d'identification Google Sheets API
Nœuds utilisés (21)
Catégorie
{
"id": "0l3nj6SM84lw3lvH",
"meta": {
"instanceId": "",
"templateCredsSetupCompleted": false
},
"name": "Customer Onboarding Email Verification",
"tags": [],
"nodes": [
{
"id": "86910847-a9b7-4a7d-9ed0-259e9fb0b880",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
-80,
0
],
"webhookId": "",
"parameters": {
"path": "/new-signup",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 2.1
},
{
"id": "e834db7e-1dc7-4ee5-8ac4-1be83f1a4041",
"name": "Assainissement des données",
"type": "n8n-nodes-base.code",
"position": [
176,
0
],
"parameters": {
"jsCode": "// Handle different input structures safely\nconst items = $input.all();\n\nreturn items.map(item => {\n // Try different possible data structures\n const data = item.json.body || item.json || {};\n \n // Safe access with fallbacks\n const name = (data.name || '').trim();\n const email = (data.email || '').toLowerCase().trim();\n \n // Validation\n if (!name || !email) {\n throw new Error(`Missing required fields. Received: ${JSON.stringify(data)}`);\n }\n \n return {\n json: {\n name: name,\n email: email,\n original_email: data.email || email,\n received_at: new Date().toISOString()\n }\n };\n});"
},
"typeVersion": 2
},
{
"id": "f0ccbc6e-9c10-47b3-bd2e-fb06a1f3615d",
"name": "Validation d'email",
"type": "n8n-nodes-verifiemail.verifiEmail",
"position": [
496,
0
],
"parameters": {
"email": "={{ $json.email }}"
},
"credentials": {
"verifiEmailApi": {
"id": "",
"name": "VerifiEmail API"
}
},
"typeVersion": 1
},
{
"id": "7fa85889-6906-4637-8bcb-d2ec30370fda",
"name": "Décision de validation",
"type": "n8n-nodes-base.if",
"position": [
800,
0
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "35f8b0f1-c001-46e2-a4f1-f7d5bb7b2b24",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $json.valid }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "1c045477-d1eb-4bc7-a006-fd87321ddbb4",
"name": "Personnaliser l'email de bienvenue",
"type": "n8n-nodes-base.code",
"position": [
1072,
-96
],
"parameters": {
"mode": "runOnceForEachItem",
"jsCode": "// Get data from previous nodes\nconst name = $('Data Sanitization').item.json.name;\nconst email = $('Data Sanitization').item.json.email;\nconst firstName = name.split(' ')[0];\n\n// Get validation details (optional - for logging)\nconst validationScore = $json.quality_score || 'N/A';\n\nreturn {\n json: {\n name: name,\n firstName: firstName,\n email: email,\n subject: `Welcome to Our Platform, ${firstName}! 🎉`,\n emailBody: `\n<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n</head>\n<body style=\"margin: 0; padding: 0; font-family: Arial, sans-serif; background-color: #f4f4f4;\">\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"background-color: #f4f4f4; padding: 20px;\">\n <tr>\n <td align=\"center\">\n <table width=\"600\" cellpadding=\"0\" cellspacing=\"0\" style=\"background-color: #ffffff; border-radius: 8px; overflow: hidden; box-shadow: 0 2px 4px rgba(0,0,0,0.1);\">\n \n <!-- Header -->\n <tr>\n <td style=\"background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); padding: 40px 20px; text-align: center;\">\n <h1 style=\"color: #ffffff; margin: 0; font-size: 28px;\">Welcome, ${firstName}! 🎉</h1>\n </td>\n </tr>\n \n <!-- Content -->\n <tr>\n <td style=\"padding: 40px 30px;\">\n <p style=\"font-size: 16px; line-height: 1.6; color: #333333; margin: 0 0 20px 0;\">\n Hi <strong>${firstName}</strong>,\n </p>\n \n <p style=\"font-size: 16px; line-height: 1.6; color: #333333; margin: 0 0 20px 0;\">\n Thank you for joining us! We're thrilled to have you as part of our community.\n </p>\n \n <p style=\"font-size: 16px; line-height: 1.6; color: #333333; margin: 0 0 30px 0;\">\n Here's what you can do next:\n </p>\n \n <!-- Action Buttons -->\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"margin-bottom: 30px;\">\n <tr>\n <td style=\"padding: 10px 0;\">\n <a href=\"https://yourapp.com/dashboard\" style=\"display: inline-block; background-color: #667eea; color: #ffffff; text-decoration: none; padding: 14px 30px; border-radius: 5px; font-weight: bold; font-size: 16px;\">\n 📊 Access Your Dashboard\n </a>\n </td>\n </tr>\n <tr>\n <td style=\"padding: 10px 0;\">\n <a href=\"https://yourapp.com/getting-started\" style=\"display: inline-block; background-color: #48bb78; color: #ffffff; text-decoration: none; padding: 14px 30px; border-radius: 5px; font-weight: bold; font-size: 16px;\">\n 📚 Getting Started Guide\n </a>\n </td>\n </tr>\n <tr>\n <td style=\"padding: 10px 0;\">\n <a href=\"https://yourapp.com/support\" style=\"display: inline-block; background-color: #ed8936; color: #ffffff; text-decoration: none; padding: 14px 30px; border-radius: 5px; font-weight: bold; font-size: 16px;\">\n 💬 Contact Support\n </a>\n </td>\n </tr>\n </table>\n \n <p style=\"font-size: 16px; line-height: 1.6; color: #333333; margin: 0 0 10px 0;\">\n Questions? Just reply to this email - we're here to help!\n </p>\n \n <p style=\"font-size: 16px; line-height: 1.6; color: #333333; margin: 0;\">\n Best regards,<br>\n <strong>The Team</strong>\n </p>\n </td>\n </tr>\n \n <!-- Footer -->\n <tr>\n <td style=\"background-color: #f7fafc; padding: 20px 30px; text-align: center; border-top: 1px solid #e2e8f0;\">\n <p style=\"font-size: 12px; color: #718096; margin: 0;\">\n © 2025 Your Company. All rights reserved.\n </p>\n </td>\n </tr>\n \n </table>\n </td>\n </tr>\n </table>\n</body>\n</html>\n `,\n timestamp: new Date().toISOString(),\n status: 'verified',\n validationScore: validationScore\n }\n};"
},
"typeVersion": 2
},
{
"id": "090efe61-fd58-400b-935b-70291bb3595e",
"name": "Préparer l'email de correction",
"type": "n8n-nodes-base.code",
"position": [
1104,
176
],
"parameters": {
"jsCode": "const name = $('Data Sanitization').item.json.name;\nconst email = $('Data Sanitization').item.json.email;\nconst firstName = name.split(' ')[0];\n\n// Get validation reason\nconst validationData = $json;\nconst reason = validationData.deliverability || 'invalid';\n\n// Simple typo detection\nlet suggestion = '';\nconst commonTypos = {\n 'gmial': 'gmail',\n 'gmai': 'gmail',\n 'yahooo': 'yahoo',\n 'yaho': 'yahoo',\n 'hotmial': 'hotmail',\n 'outlok': 'outlook',\n 'outloo': 'outlook'\n};\n\nfor (const [typo, correct] of Object.entries(commonTypos)) {\n if (email.includes(typo)) {\n suggestion = email.replace(typo, correct);\n break;\n }\n}\n\nreturn {\n json: {\n name: name,\n firstName: firstName,\n email: email,\n suggestion: suggestion,\n reason: reason,\n subject: `Please verify your email address`,\n emailBody: `\n<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"UTF-8\">\n</head>\n<body style=\"margin: 0; padding: 0; font-family: Arial, sans-serif; background-color: #f4f4f4;\">\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"background-color: #f4f4f4; padding: 20px;\">\n <tr>\n <td align=\"center\">\n <table width=\"600\" cellpadding=\"0\" cellspacing=\"0\" style=\"background-color: #ffffff; border-radius: 8px; overflow: hidden;\">\n \n <!-- Header -->\n <tr>\n <td style=\"background-color: #f56565; padding: 30px 20px; text-align: center;\">\n <h1 style=\"color: #ffffff; margin: 0; font-size: 24px;\">⚠️ Email Verification Issue</h1>\n </td>\n </tr>\n \n <!-- Content -->\n <tr>\n <td style=\"padding: 40px 30px;\">\n <p style=\"font-size: 16px; line-height: 1.6; color: #333333; margin: 0 0 20px 0;\">\n Hi <strong>${firstName}</strong>,\n </p>\n \n <p style=\"font-size: 16px; line-height: 1.6; color: #333333; margin: 0 0 20px 0;\">\n We attempted to verify your email address but encountered an issue:\n </p>\n \n <div style=\"background-color: #fff5f5; border-left: 4px solid #f56565; padding: 15px; margin: 20px 0;\">\n <p style=\"margin: 0; color: #742a2a; font-family: monospace;\">\n <strong>Email entered:</strong> ${email}\n </p>\n </div>\n \n ${suggestion ? `\n <p style=\"font-size: 16px; line-height: 1.6; color: #333333; margin: 20px 0;\">\n Did you mean: <strong style=\"color: #48bb78;\">${suggestion}</strong>?\n </p>\n ` : ''}\n \n <p style=\"font-size: 16px; line-height: 1.6; color: #333333; margin: 20px 0;\">\n Please double-check your email address and try again:\n </p>\n \n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n <tr>\n <td style=\"padding: 20px 0; text-align: center;\">\n <a href=\"https://yourapp.com/signup\" style=\"display: inline-block; background-color: #4299e1; color: #ffffff; text-decoration: none; padding: 14px 40px; border-radius: 5px; font-weight: bold; font-size: 16px;\">\n Try Again\n </a>\n </td>\n </tr>\n </table>\n \n <p style=\"font-size: 16px; line-height: 1.6; color: #333333; margin: 20px 0;\">\n Need help? <a href=\"https://yourapp.com/support\" style=\"color: #4299e1;\">Contact our support team</a>.\n </p>\n \n <p style=\"font-size: 16px; line-height: 1.6; color: #333333; margin: 0;\">\n Best regards,<br>\n <strong>The Team</strong>\n </p>\n </td>\n </tr>\n \n <!-- Footer -->\n <tr>\n <td style=\"background-color: #f7fafc; padding: 20px 30px; text-align: center;\">\n <p style=\"font-size: 12px; color: #718096; margin: 0;\">\n © 2025 Your Company\n </p>\n </td>\n </tr>\n \n </table>\n </td>\n </tr>\n </table>\n</body>\n</html>\n `,\n status: 'invalid',\n timestamp: new Date().toISOString()\n }\n};"
},
"typeVersion": 2
},
{
"id": "3fb1d01c-b57d-4f0d-b160-5ed16f4ff5e5",
"name": "Notification à l'équipe",
"type": "n8n-nodes-base.slack",
"position": [
1968,
-96
],
"webhookId": "",
"parameters": {
"text": "=🎉 *New Verified Signup!*\n👤 *Name:* {{ $('Personalize Welcome Email').item.json.name }}\n📧 *Email:* {{ $('Personalize Welcome Email').item.json.email }}\n⏰ *Time:* {{ $('Personalize Welcome Email').item.json.timestamp }}\n✅ *Status:* Verified & Welcomed",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "list",
"value": "",
"cachedResultName": "new-signup"
},
"otherOptions": {},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"id": "",
"name": "Slack Workspace"
}
},
"typeVersion": 2.3
},
{
"id": "d42409be-e1c4-41e0-8114-4d59aaccea1e",
"name": "Journaliser les utilisateurs valides",
"type": "n8n-nodes-base.googleSheets",
"position": [
1536,
-96
],
"parameters": {
"columns": {
"value": {
"Name": "={{ $('Personalize Welcome Email').item.json.name }}",
"Email": "={{ $('Personalize Welcome Email').item.json.email }}",
" Status": "={{ $('Personalize Welcome Email').item.json.status }}",
"Verified At": "={{ $('Personalize Welcome Email').item.json.timestamp }}",
"Original Email": "={{ $('Data Sanitization').item.json.original_email }}",
"Validation Score": "={{ $('Personalize Welcome Email').item.json.validationScore }}"
},
"schema": [
{
"id": "Name",
"type": "string",
"display": true,
"required": false,
"displayName": "Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": " Status",
"type": "string",
"display": true,
"required": false,
"displayName": " Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Verified At",
"type": "string",
"display": true,
"required": false,
"displayName": "Verified At",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Original Email",
"type": "string",
"display": true,
"required": false,
"displayName": "Original Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Validation Score",
"type": "string",
"display": true,
"required": false,
"displayName": "Validation Score",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Email"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "",
"cachedResultName": "Verified Users"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "",
"name": "Google Sheets Account"
}
},
"typeVersion": 4.7
},
{
"id": "9e8d198e-2cda-4ff3-8cda-3bfc909444b5",
"name": "Envoyer l'email de bienvenue",
"type": "n8n-nodes-base.gmail",
"position": [
1328,
-96
],
"webhookId": "",
"parameters": {
"sendTo": "={{ $json.email }}",
"message": "={{ $json.emailBody }}",
"options": {},
"subject": "={{ $json.subject }}"
},
"credentials": {
"gmailOAuth2": {
"id": "",
"name": "Gmail Account"
}
},
"typeVersion": 2.1
},
{
"id": "04369699-c5d2-4948-96ea-47e74919fe9a",
"name": "Arrêt et erreur",
"type": "n8n-nodes-base.stopAndError",
"position": [
1472,
176
],
"parameters": {
"errorMessage": "\"Invalid email address\""
},
"typeVersion": 1
},
{
"id": "b03ea9e9-1f92-4858-b2ae-e39f4ad2fe83",
"name": "Note adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
-752,
-112
],
"parameters": {
"color": 7,
"width": 480,
"height": 368,
"content": "## CUSTOMER ONBOARDING EMAIL VERIFICATION WORKFLOW\n\n**Purpose**: Validate **new signups** and send **personalized welcome emails**\n**Owner**: [Your Team]\n**Status**: ✅ Active\n\n**Quick Stats**:\n- Average execution time: **~3-5 seconds**\n- API calls per signup: **1 (email validation)**\n- Success rate target: **>95%**\n\n**Monitor**: Check **Google Sheets** daily\n**Alerts**: **Slack #new-signups channel**"
},
"typeVersion": 1
},
{
"id": "528bf108-604f-4242-8b99-1990ea3e682e",
"name": "Note adhésive1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-240,
-448
],
"parameters": {
"color": 7,
"width": 304,
"height": 576,
"content": "## WEBHOOK TRIGGER\n\n**Configuration**:\n- Method: **POST**\n- Path: **/new-signup**\n- Authentication: **[None/Basic Auth]**\n\n**Required Fields**:\n```\n{\n \"name\": \"string\",\n \"email\": \"string\"\n}\n```\n\n**TIP**: Use **\"Listen for Test Event\"** \n to debug incoming data structure\n\n**IMPORTANT**: Rate limiting not enabled\n Consider adding if public-facing"
},
"typeVersion": 1
},
{
"id": "b06d93a6-c7d8-4983-8393-f3df19536dda",
"name": "Note adhésive2",
"type": "n8n-nodes-base.stickyNote",
"position": [
80,
-480
],
"parameters": {
"color": 7,
"width": 304,
"height": 608,
"content": "## DATA SANITIZATION\n\n- **Actions**:\n✓ Trim whitespace\n✓ Lowercase email\n✓ Preserve original email\n✓ Add timestamp\n\n**Common Issues**:\n- **\"undefined\" error** → Check webhook data structure\n- Missing fields → Ensure name & email present\n\n**Output Format**:\n```\n{\n \"name\": \"John Doe\",\n \"email\": \"johndoe@gmail.com\",\n \"original_email\": \"JohnDoe@Gmail.com \",\n \"received_at\": \"2025-10-01T09:07:28.320Z\"\n}\n```"
},
"typeVersion": 1
},
{
"id": "99f39f7d-8b0d-49b4-81a7-cc691caba8bb",
"name": "Note adhésive3",
"type": "n8n-nodes-base.stickyNote",
"position": [
416,
-416
],
"parameters": {
"color": 7,
"width": 256,
"height": 576,
"content": "## EMAIL VALIDATION (VerifiEmail)\n\n- Service: **VerifiEmail API**\n\n**Validation Checks**:\n✓ Format validation\n✓ MX records exist\n✓ Disposable domain detection\n✓ Deliverability verification\n\n**Key Response Field**:\n- valid: **true/false (boolean)**\n\nCredentials: https://verifi.email\n\n💡 **Fallback**: If API fails,\n workflow will error - consider\n adding error handling"
},
"typeVersion": 1
},
{
"id": "878cf3ea-e3e7-4e87-a4e3-6a209497ec1b",
"name": "Note adhésive4",
"type": "n8n-nodes-base.stickyNote",
"position": [
736,
-320
],
"parameters": {
"color": 7,
"height": 448,
"content": "## VALIDATION DECISION POINT\n\n**DECISION POINT**\n**Condition**: **$json.valid == true**\n\n✅ **TRUE (~85-90%)**\n→ Welcome email → Sheets → Slack\n\n❌ **FALSE (~10-15%)**\n→ Error message → Stop\n\n💡 Monitor weekly split ratio"
},
"typeVersion": 1
},
{
"id": "b9b68238-69ee-4542-ab77-1503382c235d",
"name": "Note adhésive5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1008,
-432
],
"parameters": {
"color": 7,
"width": 272,
"height": 480,
"content": "## PERSONALIZE EMAIL\n\n**Template**:\n- **Subject**: \"Welcome, {firstName}! 🎉\"\n- **HTML format (~8KB)**\n\n**Update These**:\n- Company name\n- CTA URLs (yourapp.com/*)\n- Brand colors\n- Footer copyright\n\nData: Name, Email, firstName extracted"
},
"typeVersion": 1
},
{
"id": "9d7e44a0-3e33-4e27-9e91-508b1704f6e4",
"name": "Note adhésive6",
"type": "n8n-nodes-base.stickyNote",
"position": [
1488,
-448
],
"parameters": {
"color": 7,
"height": 496,
"content": "## LOG TO SHEETS\n\n**Operation**: Append or Update\n**Match**: Email (no duplicates)\n\nFields:\n- Name, Email, Status\n- Timestamp, Original Email\n- Validation Score\n\n**Uses**:\n✓ Audit trail\n✓ Marketing list\n✓ Analytics source\n\n**Review weekly for trends**"
},
"typeVersion": 1
},
{
"id": "d249ffe4-fb29-4c93-8146-bba14304ff66",
"name": "Note adhésive7",
"type": "n8n-nodes-base.stickyNote",
"position": [
1792,
-384
],
"parameters": {
"color": 7,
"width": 304,
"height": 432,
"content": "## SLACK ALERT\n\n**Channel**: #new-signup\n\n**Message**:\n🎉 New Verified Signup!\n👤 Name \n📧 Email \n⏰ Time\n\n**Who**: Sales, Marketing, Product\n\n- If >100/day, switch to:\n - Hourly digest\n - Daily summary"
},
"typeVersion": 1
},
{
"id": "0d82df0e-bcef-478e-a58c-8d0562f40fc0",
"name": "Note adhésive8",
"type": "n8n-nodes-base.stickyNote",
"position": [
1408,
160
],
"parameters": {
"color": 7,
"width": 256,
"height": 480,
"content": "\n\n\n\n\n\n\n\n\n\n\n## STOP & ERROR\n\n**Error**: **\"Invalid email address\"**\n\n**Result**:\n- Workflow stops\n- Marked as error\n- No email sent\n- Not logged\n\n**BETTER OPTION**:\n- Replace with Send Email node\n- Notify user\n- Log to \"Invalid Attempts\" sheet\n- Graceful UX"
},
"typeVersion": 1
},
{
"id": "e76c5aeb-c342-4e9e-81ec-ad9d0330eeab",
"name": "Note adhésive9",
"type": "n8n-nodes-base.stickyNote",
"position": [
-704,
320
],
"parameters": {
"color": 7,
"width": 288,
"height": 384,
"content": "## MAINTENANCE\n\n📅 WEEKLY:\n□ Check API usage\n□ Review Slack alerts\n□ Test sample signup\n\n📅 MONTHLY:\n□ Update email template\n□ Archive old data\n□ Check Gmail limits\n\n🆘 QUICK FIXES:\n- No emails? → Check Gmail OAuth2\n- Invalid all? → Check VerifiEmail API\n- No Slack? → Verify connection\n- Duplicates? → Check match column"
},
"typeVersion": 1
},
{
"id": "f177dd8d-ba9e-4b74-816e-385b34a0da5d",
"name": "Note adhésive10",
"type": "n8n-nodes-base.stickyNote",
"position": [
-352,
320
],
"parameters": {
"color": 7,
"width": 304,
"height": 496,
"content": "## QUICK REFERENCE\n\n🔗 Links:\n- Webhook: /webhook/new-signup\n- Sheet: Verified Users\n- Slack: #new-signup\n- API: verifi.email\n\n📊 Targets:\n- Success: >95%\n- Time: <5 sec\n- Delivery: >98%\n\n🧪 Test:\n```\ncurl -X POST [webhook] \\\n -H \"Content-Type: application/json\" \\\n -d '{\"name\":\"Test\",\"email\":\"test@gmail.com\"}'\n```\n👥 Owner: [Your Name]\n📧 Support: [Email]"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "f6a13975-f0ea-4d5f-9df3-77b8adbc172b",
"connections": {
"86910847-a9b7-4a7d-9ed0-259e9fb0b880": {
"main": [
[
{
"node": "e834db7e-1dc7-4ee5-8ac4-1be83f1a4041",
"type": "main",
"index": 0
}
]
]
},
"d42409be-e1c4-41e0-8114-4d59aaccea1e": {
"main": [
[
{
"node": "3fb1d01c-b57d-4f0d-b160-5ed16f4ff5e5",
"type": "main",
"index": 0
}
]
]
},
"f0ccbc6e-9c10-47b3-bd2e-fb06a1f3615d": {
"main": [
[
{
"node": "7fa85889-6906-4637-8bcb-d2ec30370fda",
"type": "main",
"index": 0
}
]
]
},
"e834db7e-1dc7-4ee5-8ac4-1be83f1a4041": {
"main": [
[
{
"node": "f0ccbc6e-9c10-47b3-bd2e-fb06a1f3615d",
"type": "main",
"index": 0
}
]
]
},
"9e8d198e-2cda-4ff3-8cda-3bfc909444b5": {
"main": [
[
{
"node": "d42409be-e1c4-41e0-8114-4d59aaccea1e",
"type": "main",
"index": 0
}
]
]
},
"7fa85889-6906-4637-8bcb-d2ec30370fda": {
"main": [
[
{
"node": "1c045477-d1eb-4bc7-a006-fd87321ddbb4",
"type": "main",
"index": 0
}
],
[
{
"node": "090efe61-fd58-400b-935b-70291bb3595e",
"type": "main",
"index": 0
}
]
]
},
"090efe61-fd58-400b-935b-70291bb3595e": {
"main": [
[
{
"node": "04369699-c5d2-4948-96ea-47e74919fe9a",
"type": "main",
"index": 0
}
]
]
},
"1c045477-d1eb-4bc7-a006-fd87321ddbb4": {
"main": [
[
{
"node": "9e8d198e-2cda-4ff3-8cda-3bfc909444b5",
"type": "main",
"index": 0
}
]
]
}
}
}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é ?
Avancé - Création de contenu, 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.
Workflows recommandés
Jitesh Dugar
@jiteshdugarAI Automation Specialist - OpenAI, CRM & Automation Expert with a solid understanding of various tools that include Zapier, Make, Zoho CRM, Hubspot, Google Sheets, Airtable, Pipedrive, Google Analytics, and more.
Partager ce workflow