Verwende OpenAI, um zu bearbeitende Mails automatisch zu erkennen und Reminders in Teams über einen Flow zu senden
Dies ist ein Personal Productivity, Multimodal AI-Bereich Automatisierungsworkflow mit 11 Nodes. Hauptsächlich werden If, Set, Code, HttpRequest, EmailReadImap und andere Nodes verwendet. Verwendung von OpenAI zur automatischen Erkennung von zu bearbeitenden E-Mails und Senden von Benachrichtigungen über Flow in Teams
- •Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
- •OpenAI API Key
Verwendete Nodes (11)
{
"meta": {
"instanceId": "370dd47843c5d81fb49ae779f8a08c791d722f165741db5d7b2cea44ada08d1e",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "bb003676-b07c-4658-a5e4-4efcda44a567",
"name": "OpenAI",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
140,
-100
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini",
"cachedResultName": "GPT-4.1-MINI"
},
"options": {},
"messages": {
"values": [
{
"role": "system",
"content": "=You are my Personal Email Evaluator. When I provide you with an email's subject, body, and associated details, your task is to determine if the email is Actionable or Non-Actionable based on its content.\n\n\n\n### Criteria for Actionable Emails:\nAn email is deemed Actionable if it meets any of the following criteria and clearly suggests that immediate attention or response is required:\n\n\n\n1. **Inquiry**: Contains a meaningful question or request for significant information.\n2. **Proposal**: Includes a serious business offer or collaboration opportunity that needs review or reply.\n3. **Action Required**: Specifies urgent requests needing action, such as deadlines, bookings, or confirmations.\n4. **Follow-up Reminder**: Serves as a reminder related to a previous important discussion or commitment.\n5. **Task**: Clearly outlines a priority task or step that needs to be taken.\n6. **Urgent**: Signals critical issues or time-sensitive decisions requiring immediate attention.\n7. **Event Invite**: Represents a formal invitation that requires an RSVP for an important event.\n8. **Subscription Renewal**: Notifies about the need to renew vital services or licenses.\n9. **System Notification**: Alerts about technical issues or important status changes.\n10. **Bank Notifications**: Issues regarding financial alerts or suspicious activities needing verification.\n\n\n\n**Exclusions**: Do not classify generic, routine, or low-priority requests as actionable.\n\n\n\n**Response Format**: Return your assessment in a JSON format that includes the following:\n\n\n\n- **date**: The date the email was received.\n- **subject**: The subject line of the email.\n- **sender**: The sender's information.\n\n- **recipientEmail**: The receiver's information.\n- **actionable**: A determined status of either 'Actionable' or 'Non-Actionable'.\n\n\n\n**Example Output**:\n```json\n{\n \"date\": \"date_value\",\n \"subject\": \"subject_value\",\n \"from\": \"from_value\",\n\n \"to\":\"to_value\"\n \"actionable\": \"Actionable/Non-Actionable\"\n}\n```\n\n\n\n### Input:\nHere is the email details:\nFrom: {{ $json.from }} \n\nto: {{ $json.to }}\nOn date: {{ $json.date }} \nSubject line: {{ $json.subject }} \nEmail Body: {{ $json.textPlain }} \n\n\n\nEvaluate the provided email details and return the appropriate JSON object with your findings."
},
{
"content": "=Here are the email details:\nFrom: {{ $json.from }}\nto: {{ $json.to }}\non date :{{ $json.date }}\nSubject line: {{ $json.subject }}\nEmail Body: {{ $json.textPlain }}\n\n"
}
]
},
"simplify": false,
"jsonOutput": true
},
"credentials": {
"openAiApi": {
"id": "5Z0CvWzOY5DhkHX3",
"name": "OpenAi account"
}
},
"typeVersion": 1.8
},
{
"id": "cebd6f73-b100-40f2-9f4c-ed30c1bd4708",
"name": "Haftnotiz",
"type": "n8n-nodes-base.stickyNote",
"position": [
-160,
-300
],
"parameters": {
"width": 260,
"height": 400,
"content": "## Trigger on Email Received\n\nAutomatically runs the workflow when a new email is received from the configured Gmail account.\n"
},
"typeVersion": 1
},
{
"id": "7a3ad55d-ae03-43f6-b49c-fdec7fa10a5e",
"name": "E-Mail-Trigger (IMAP)",
"type": "n8n-nodes-base.emailReadImap",
"notes": "Listen for new mail ",
"position": [
-80,
-100
],
"parameters": {
"options": {},
"postProcessAction": "nothing"
},
"credentials": {
"imap": {
"id": "mlGxULMgNsjBaHwB",
"name": "IMAP Gmail account"
}
},
"notesInFlow": true,
"typeVersion": 2
},
{
"id": "93987fdc-2914-4a37-b6a3-aedf86b09d8d",
"name": "Haftnotiz1",
"type": "n8n-nodes-base.stickyNote",
"position": [
120,
-300
],
"parameters": {
"width": 500,
"height": 400,
"content": "## Analyze Email Content and Extract Fields\n\n- Evaluate whether the email content qualifies as actionable based on predefined criteria using OpenAI.\n\n- Retrieves essential details such as subject, sender, recipient, and actionable status from the OpenAI evaluation result."
},
"typeVersion": 1
},
{
"id": "49ac28cf-0c2f-4638-a40e-e3a6de0febb4",
"name": "Haftnotiz2",
"type": "n8n-nodes-base.stickyNote",
"position": [
640,
-300
],
"parameters": {
"height": 400,
"content": "## Check Is Email Actionable?\n\nProceeds only if the email is classified as “Actionable” by OpenAI."
},
"typeVersion": 1
},
{
"id": "be84addc-9633-40b4-8c7e-a52a0413095a",
"name": "Haftnotiz3",
"type": "n8n-nodes-base.stickyNote",
"position": [
900,
-300
],
"parameters": {
"width": 460,
"height": 400,
"content": "## Send Alert to MS Teams\n\n- Builds a direct Gmail search URL using the encoded subject to help locate the email easily\n\n- Posts the email details to Microsoft Teams by triggering a Power Automate flow via its webhook URL\n\n"
},
"typeVersion": 1
},
{
"id": "5de0a008-cbe1-4a9e-a3c3-a6ca429f7f6d",
"name": "E-Mail-Details extrahieren",
"type": "n8n-nodes-base.set",
"position": [
460,
-100
],
"parameters": {
"include": "selected",
"options": {},
"includeFields": "choices[0].message.content.date, choices[0].message.content.subject, choices[0].message.content.from, choices[0].message.content.actionable, choices[0].message.content.to",
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "13a7a0cc-3b3f-4806-b22a-5708d9452609",
"name": "gmail-Such-URL erstellen",
"type": "n8n-nodes-base.code",
"position": [
960,
-100
],
"parameters": {
"jsCode": "for (const item of $input.all()) {\n const subject = item.json.subject;\n const encodedSubject = encodeURIComponent(subject).replace(/%20/g, '+');\n const searchLink = `https://mail.google.com/mail/u/0/#search/${encodedSubject}`;\n \n item.json.searchLink = searchLink;\n}\n\nreturn $input.all();"
},
"typeVersion": 2
},
{
"id": "935332f0-544d-4dd0-a01e-29a0500a0327",
"name": "Ist E-Mail bearbeitungswürdig",
"type": "n8n-nodes-base.if",
"position": [
700,
-100
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "b51ec706-74a8-4f4c-8ae9-dc9e19523e7b",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.actionable }}",
"rightValue": "Actionable"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "d6d170ed-5ca4-480d-9e42-d0723d831e6e",
"name": "Warnung an MS Team senden",
"type": "n8n-nodes-base.httpRequest",
"position": [
1200,
-100
],
"parameters": {
"method": "POST",
"options": {},
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "date",
"value": "={{ $json.date }}"
},
{
"name": "=subject",
"value": "={{ $json.subject }}"
},
{
"name": "sender",
"value": "={{ $json.from.replace('<', '(').replace('>', ')') }}"
},
{
"name": "=recipientEmail",
"value": "={{ $json.to }}"
},
{
"name": "=searchLink",
"value": "={{ $json.searchLink }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "ed5cfd2a-5eda-47bf-9eb3-c9852d64e1df",
"name": "Haftnotiz4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-160,
180
],
"parameters": {
"color": 5,
"width": 840,
"height": 480,
"content": "## Power Automate flow to send a message in Teams.\n\n ### **1. Trigger: When a Webhook is Received**\n - The flow is initiated when an external system (e.g., n8n) sends an HTTP request to a Power Automate webhook URL\n- This request contains structured email data including subject, sender, recipient, date, actionability, and a search link.\n\n### **2. Parse JSON**\n- Parses the incoming JSON payload from the webhook to extract required fields such as\n `subject`, `from`, `to`, `date`, `searchLink`\n\n### **3. Get Mention Token for a User in Microsoft Teams**\n- Fetches a special @mention token for a specific user to be used in a Teams message.\n\n### **4. Post Message in Microsoft Teams (Chat with Flow Bot)**\n- Composes and sends a rich HTML message to the user via the Flow bot in Teams.\n- The message includes:\n - Key email details \n - A clickable link (searchLink) to locate the email in the mailbox\n \n\n\n"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"bb003676-b07c-4658-a5e4-4efcda44a567": {
"main": [
[
{
"node": "5de0a008-cbe1-4a9e-a3c3-a6ca429f7f6d",
"type": "main",
"index": 0
}
]
]
},
"935332f0-544d-4dd0-a01e-29a0500a0327": {
"main": [
[
{
"node": "13a7a0cc-3b3f-4806-b22a-5708d9452609",
"type": "main",
"index": 0
}
]
]
},
"7a3ad55d-ae03-43f6-b49c-fdec7fa10a5e": {
"main": [
[
{
"node": "bb003676-b07c-4658-a5e4-4efcda44a567",
"type": "main",
"index": 0
}
]
]
},
"5de0a008-cbe1-4a9e-a3c3-a6ca429f7f6d": {
"main": [
[
{
"node": "935332f0-544d-4dd0-a01e-29a0500a0327",
"type": "main",
"index": 0
}
]
]
},
"13a7a0cc-3b3f-4806-b22a-5708d9452609": {
"main": [
[
{
"node": "d6d170ed-5ca4-480d-9e42-d0723d831e6e",
"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 - Persönliche Produktivität, 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
Eumentis
@eumentisDiesen Workflow teilen