Automatische Übersetzung von Gmail-E-Mails
Dies ist ein Multimodal AI-Bereich Automatisierungsworkflow mit 9 Nodes. Hauptsächlich werden If, Code, Gmail, OpenAi, GmailTrigger und andere Nodes verwendet. Automatische Übersetzung empfangener Gmail-E-Mails ins Englische mit OpenAI GPT-3.5
- •Google-Konto + Gmail API-Anmeldedaten
- •OpenAI API Key
Verwendete Nodes (9)
Kategorie
{
"meta": {
"instanceId": "2000c64071c20843606b95c63795bb0797c41036047055a6586498e855b96efc"
},
"nodes": [
{
"id": "20d9e7a4-52a6-42d4-8e30-640cf2bcb6dd",
"name": "Setup-Anleitung",
"type": "n8n-nodes-base.stickyNote",
"position": [
-48,
16
],
"parameters": {
"width": 280,
"height": 520,
"content": "🌍 **SETUP REQUIRED:**\n\n1. **Gmail Label:**\n - Create label: 'Translated Emails'\n - Or customize in final Gmail node\n\n2. **OpenAI API Key:**\n - Get from platform.openai.com\n - Add to n8n credentials\n - Uses GPT-3.5-turbo (cost-effective)\n\n3. **Gmail OAuth:**\n - Connect Gmail account\n - Needs read/modify permissions\n\n🎯 Auto-detects language & translates non-English emails!"
},
"typeVersion": 1
},
{
"id": "c2eff161-87e1-42b4-bb00-364a5b448c9f",
"name": "Gmail New Email Trigger",
"type": "n8n-nodes-base.gmailTrigger",
"position": [
-48,
240
],
"parameters": {
"simple": false,
"filters": {
"readStatus": "unread",
"includeSpamTrash": false
},
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
}
},
"typeVersion": 1
},
{
"id": "9c6427cc-261a-43af-a4aa-97ceba914d42",
"name": "E-Mail-Daten normalisieren",
"type": "n8n-nodes-base.code",
"position": [
160,
240
],
"parameters": {
"jsCode": "// Normalize email data and prepare for language detection\nconst email = $input.first().json;\n\n// Extract email content - handle both plain text and HTML\nlet emailBody = email.snippet || email.textPlain || email.textHtml || '';\n\n// Remove HTML tags if present\nif (emailBody.includes('<')) {\n emailBody = emailBody.replace(/<[^>]*>/g, ' ').replace(/\\s+/g, ' ').trim();\n}\n\n// Skip if email is too short to translate meaningfully\nif (emailBody.length < 10) {\n console.log('Email too short, skipping translation');\n return null;\n}\n\nconst normalizedData = {\n message_id: email.id,\n thread_id: email.threadId,\n subject: email.subject || 'No Subject',\n from: email.from,\n to: email.to,\n body_text: emailBody,\n received_date: email.date,\n labels: email.labelIds || [],\n has_attachments: (email.attachments && email.attachments.length > 0)\n};\n\nconsole.log('Email prepared for language detection:', {\n subject: normalizedData.subject,\n from: normalizedData.from,\n body_preview: normalizedData.body_text.substring(0, 100) + '...'\n});\n\nreturn {\n json: normalizedData\n};"
},
"typeVersion": 2
},
{
"id": "e153e8ca-38ab-48cb-be2f-cdba1cca6faf",
"name": "Sprache erkennen (OpenAI)",
"type": "n8n-nodes-base.openAi",
"position": [
352,
240
],
"parameters": {
"resource": "chat",
"operation": "create",
"requestOptions": {}
},
"typeVersion": 1
},
{
"id": "ebc6660f-0a30-4c23-be79-1d2f8cbfddbd",
"name": "Übersetzung benötigt?",
"type": "n8n-nodes-base.if",
"position": [
560,
240
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "condition-1",
"operator": {
"type": "string",
"operation": "notEquals"
},
"leftValue": "={{ $json.choices[0].message.content.trim().toLowerCase() }}",
"rightValue": "en"
}
]
}
},
"typeVersion": 2
},
{
"id": "18108511-b253-4bba-9efb-c3cfe4f71090",
"name": "Ins Englische übersetzen",
"type": "n8n-nodes-base.openAi",
"position": [
752,
144
],
"parameters": {
"resource": "chat",
"operation": "create",
"requestOptions": {}
},
"typeVersion": 1
},
{
"id": "ce532d8a-6cbc-4320-8cb1-a82a28126a14",
"name": "Übersetzte E-Mail vorbereiten",
"type": "n8n-nodes-base.code",
"position": [
960,
144
],
"parameters": {
"jsCode": "// Prepare translated email for forwarding\nconst originalEmail = $('Normalize Email Data').item.json;\nconst translationResponse = $input.first().json;\nconst detectedLanguage = $('Detect Language (OpenAI)').item.json.choices[0].message.content.trim();\n\nconst translatedContent = translationResponse.choices[0].message.content;\n\n// Create forwarded email content\nconst forwardedEmail = {\n to: originalEmail.to, // Forward to same recipient or change as needed\n subject: `[TRANSLATED] ${originalEmail.subject}`,\n body: `🌍 AUTO-TRANSLATED EMAIL (Original Language: ${detectedLanguage.toUpperCase()})\n\n` +\n `📧 Original From: ${originalEmail.from}\n` +\n `📅 Received: ${originalEmail.received_date}\n` +\n `🔗 Message ID: ${originalEmail.message_id}\n\n` +\n `═══════════════════════════════════════\n` +\n `TRANSLATED CONTENT:\n\n${translatedContent}\n` +\n `═══════════════════════════════════════\n\n` +\n `✨ This email was automatically translated by n8n workflow.`,\n original_message_id: originalEmail.message_id,\n detected_language: detectedLanguage\n};\n\nconsole.log('Prepared translated email:', {\n subject: forwardedEmail.subject,\n detected_language: detectedLanguage\n});\n\nreturn {\n json: forwardedEmail\n};"
},
"typeVersion": 2
},
{
"id": "b2b30041-80a7-4b55-b594-0d717f365b09",
"name": "Übersetzte E-Mail senden",
"type": "n8n-nodes-base.gmail",
"position": [
1152,
144
],
"webhookId": "94f9ae15-5447-4228-8ed2-bfaf9756dc8d",
"parameters": {
"message": "={{ $json.body }}",
"options": {
"ccList": "",
"bccList": "",
"replyTo": ""
},
"subject": "={{ $json.subject }}"
},
"typeVersion": 2.1
},
{
"id": "7e9513fa-ce63-4815-b0a5-a05b622581d7",
"name": "Label 'Übersetzt' hinzufügen",
"type": "n8n-nodes-base.gmail",
"position": [
1152,
256
],
"webhookId": "f61c3040-51bb-4018-8862-46d41c170024",
"parameters": {
"labelIds": [
"INBOX",
"Translated Emails"
],
"messageId": "={{ $('Normalize Email Data').item.json.message_id }}",
"operation": "addLabels"
},
"typeVersion": 2.1
}
],
"pinData": {},
"connections": {
"ebc6660f-0a30-4c23-be79-1d2f8cbfddbd": {
"main": [
[
{
"node": "18108511-b253-4bba-9efb-c3cfe4f71090",
"type": "main",
"index": 0
}
]
]
},
"9c6427cc-261a-43af-a4aa-97ceba914d42": {
"main": [
[
{
"node": "e153e8ca-38ab-48cb-be2f-cdba1cca6faf",
"type": "main",
"index": 0
}
]
]
},
"18108511-b253-4bba-9efb-c3cfe4f71090": {
"main": [
[
{
"node": "ce532d8a-6cbc-4320-8cb1-a82a28126a14",
"type": "main",
"index": 0
}
]
]
},
"c2eff161-87e1-42b4-bb00-364a5b448c9f": {
"main": [
[
{
"node": "9c6427cc-261a-43af-a4aa-97ceba914d42",
"type": "main",
"index": 0
}
]
]
},
"e153e8ca-38ab-48cb-be2f-cdba1cca6faf": {
"main": [
[
{
"node": "ebc6660f-0a30-4c23-be79-1d2f8cbfddbd",
"type": "main",
"index": 0
}
]
]
},
"ce532d8a-6cbc-4320-8cb1-a82a28126a14": {
"main": [
[
{
"node": "b2b30041-80a7-4b55-b594-0d717f365b09",
"type": "main",
"index": 0
},
{
"node": "7e9513fa-ce63-4815-b0a5-a05b622581d7",
"type": "main",
"index": 0
}
]
]
}
}
}Wie verwende ich diesen Workflow?
Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.
Für welche Szenarien ist dieser Workflow geeignet?
Fortgeschritten - Multimodales KI
Ist es kostenpflichtig?
Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.
Verwandte Workflows
David Olusola
@dae221I 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
Diesen Workflow teilen