AI Timesheet Generator with Gmail, Calendar & GitHub to Google Sheets
Dies ist ein Personal Productivity, AI Summarization-Bereich Automatisierungsworkflow mit 31 Nodes. Hauptsächlich werden If, Set, Code, Cron, Gmail und andere Nodes verwendet. AI-Arbeitszeiterfassung - Integration von Gmail, Kalender und GitHub in Google Tabellen
- •Google-Konto + Gmail API-Anmeldedaten
- •GitHub Personal Access Token
- •Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
- •Google Sheets API-Anmeldedaten
- •OpenAI API Key
Verwendete Nodes (31)
{
"id": "jw7wmjp1if9T2ZHd",
"meta": {
"instanceId": "c668632f5ca4908ffa76bd7bc9be05dec193c66269ed7a1160909b2e861050b7",
"templateCredsSetupCompleted": true
},
"name": "Workday Journaling",
"tags": [],
"nodes": [
{
"id": "d3ad9729-1444-4227-b37e-b232546347de",
"name": "Heutige Kalendertermine abrufen",
"type": "n8n-nodes-base.googleCalendar",
"position": [
-3220,
-1300
],
"parameters": {
"options": {
"timeMax": "={{$today.minus(1).endOf('day').toISO()}}",
"timeMin": "={{$today.minus(1).startOf('day').toISO()}}"
},
"operation": "getAll",
"returnAll": true
},
"credentials": {
"googleCalendarOAuth2Api": {
"id": "FZjmg0dva1WVH160",
"name": "Google Calendar account"
}
},
"typeVersion": 1
},
{
"id": "cd793b22-bd54-430e-aa78-7a7e1f066f96",
"name": "Heutige E-Mails abrufen",
"type": "n8n-nodes-base.gmail",
"position": [
-3220,
-1560
],
"webhookId": "0611a0b0-9e31-497f-98a9-7609c2287db1",
"parameters": {
"filters": {
"sender": "={{ $json.myEmail }}",
"receivedAfter": "={{ $now.minus(1).startOf('day').toISO() }}"
},
"operation": "getAll",
"returnAll": true
},
"credentials": {
"gmailOAuth2": {
"id": "RklqFHePdubPEvvl",
"name": "Gmail account"
}
},
"typeVersion": 2
},
{
"id": "8bdb5e00-ce98-4c75-94e4-d1c9f341a826",
"name": "GitHub PRs abrufen",
"type": "n8n-nodes-base.github",
"position": [
-3320,
-640
],
"webhookId": "0ec33ec2-fbb5-4b63-afd2-7227a8dba1c4",
"parameters": {
"owner": {
"__rl": true,
"mode": "name",
"value": "={{ $('Set Variables').item.json.github_handle }}"
},
"resource": "repository",
"operation": "getPullRequests",
"returnAll": true,
"repository": {
"__rl": true,
"mode": "name",
"value": "={{ $json.repositoriesToTrack }}"
},
"getRepositoryPullRequestsFilters": {}
},
"credentials": {
"githubApi": {
"id": "ZeddbLaKaXAWJeAR",
"name": "GitHub account"
}
},
"typeVersion": 1
},
{
"id": "201ef564-57e6-4fde-8251-459c56ef05d0",
"name": "Alle Daten formatieren",
"type": "n8n-nodes-base.code",
"position": [
-2320,
-1080
],
"parameters": {
"jsCode": "// Get all data from different sources\nconst allInputs = $input.all();\nconst calendarEvents = allInputs.find(b => b.json.calendarEvents)?.json.calendarEvents || [];\nconst emails = allInputs.find(b => b.json.emails)?.json.emails || [];\nconst commits = allInputs.find(b => b.json.commits)?.json.commits || [];\nconst prs = allInputs.find(b => b.json.prs)?.json.prs || [];\n\n// Format calendar events\nconst confirmed = calendarEvents.filter(e => e.status === 'confirmed');\n\nconst calendarSummary = confirmed.map(event => ({\n time: event.start?.dateTime || 'No time',\n title: event.summary || 'No title',\n attendees: event.attendees?.length || 0,\n description: event.description || 'No description',\n duration: DateTime.fromISO(event.end.dateTime).diff(DateTime.fromISO(event.start.dateTime), 'hours').hours\n}));\n\n// Format emails (filter out unimportant ones)\nconst importantEmails = emails\n .filter(email => \n email.From && \n !email.From.toLowerCase().includes('noreply') && \n !email.Subject?.toLowerCase().includes('newsletter')\n )\n .slice(0, 20)\n .map(email => ({\n from: email.From,\n subject: email.Subject || 'No subject',\n snippet: email.snippet?.substring(0, 100) || ''\n }));\n\nconst commitArray = Array.isArray(commits) ? commits : [commits];\nconst prsArray = Array.isArray(prs) ? prs : [prs];\n// Format GitHub activity\nconst githubActivity = {\n commits: commitArray.map(commit => ({\n message: commit.commit?.message || 'No message'\n })) || [],\n pullRequests: prsArray.map(pr => ({\n title: pr.title,\n repo: pr.head.repo?.name || 'Unknown repo',\n state: pr.state\n })) || []\n};\n\n// Create summary object\nconst summary = {\n date: $('Set Variables').first().json.today,\n calendar: {\n totalEvents: calendarSummary.length,\n events: calendarSummary\n },\n emails: {\n totalReceived: emails.length,\n important: importantEmails\n },\n github: githubActivity\n};\n\nreturn [{ json: summary }];"
},
"typeVersion": 1
},
{
"id": "9a9385f0-ca86-457f-b599-713a809aa423",
"name": "Tagebuchzusammenfassung generieren",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
-2100,
-1080
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "GPT-4O-MINI"
},
"options": {},
"messages": {
"values": [
{
"role": "system",
"content": "You are a professional timesheet creator.\n\nINPUT you receive: a single JSON object that contains:\n • calendar.events (array)\n • emails.important (array)\n • github.commits (array)\n • github.pullRequests (array)\n\nTASK\n1. Walk through every element in those arrays.\n2. For each element create an object that has **exactly**:\n - \"type\" : CALENDAR_EVENT | EMAIL | COMMIT | PR\n - \"description\" : ≤120 chars, no commas, no line-breaks\n3. Put all objects in one JSON **array**.\n4. RETURN that array. No wrapper object, no markdown. Try to create a nice description for each event"
},
{
"content": "=Below is today’s raw data in one JSON object.\n\n{{ JSON.stringify($json, null, 2) }}\n"
}
]
},
"jsonOutput": true
},
"credentials": {
"openAiApi": {
"id": "1wKkKoKDmyKta6Xv",
"name": "OpenAi account"
}
},
"typeVersion": 1
},
{
"id": "34e60115-851c-4055-b1bc-3bba3076fefe",
"name": "Aggregieren",
"type": "n8n-nodes-base.aggregate",
"position": [
-2940,
-1560
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData",
"destinationFieldName": "emails"
},
"typeVersion": 1
},
{
"id": "a1dbd248-1cd5-4fec-8198-52573fbe50ed",
"name": "Zusammenführen",
"type": "n8n-nodes-base.merge",
"position": [
-2540,
-1101
],
"parameters": {
"numberInputs": 4
},
"typeVersion": 3.2
},
{
"id": "53ab1990-ddeb-410f-8cd4-675ed88387a9",
"name": "Aggregieren1",
"type": "n8n-nodes-base.aggregate",
"position": [
-2940,
-1300
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData",
"destinationFieldName": "calendarEvents"
},
"typeVersion": 1
},
{
"id": "7cc275df-68ac-4a9e-ae02-eb617b85f4cf",
"name": "Aggregieren2",
"type": "n8n-nodes-base.aggregate",
"position": [
-2840,
-620
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData",
"destinationFieldName": "prs"
},
"typeVersion": 1
},
{
"id": "0faf1f55-23d3-4d33-a142-d1c87d85e9f1",
"name": "Täglich um 19 Uhr",
"type": "n8n-nodes-base.cron",
"position": [
-3900,
-1180
],
"parameters": {},
"typeVersion": 1
},
{
"id": "7ee78807-a5df-493c-8419-3e9ef8688954",
"name": "Variablen setzen",
"type": "n8n-nodes-base.set",
"position": [
-3640,
-1180
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "4fa5acaa-f81f-4ecc-88cb-ac8b56324cf5",
"name": "today_date",
"type": "string",
"value": "={{ $now.format('yyyy-MM-dd') }}"
},
{
"id": "390ed3dd-2205-49eb-8b06-69d3affe98bd",
"name": "github_handle",
"type": "string",
"value": "luka-zivkovic"
},
{
"id": "841cc4c8-f47d-4eea-8f23-62e5e7f0f0dc",
"name": "repositoriesToTrack",
"type": "array",
"value": "={{ ['techPoweredGrowth', 'tech-learn'] }}"
},
{
"id": "df6011d8-70b8-4942-ad38-385d6c459c84",
"name": "myEmail",
"type": "string",
"value": ""
}
]
}
},
"typeVersion": 3.4
},
{
"id": "c6471886-5bce-43ae-9af7-89db8983706c",
"name": "Aggregieren3",
"type": "n8n-nodes-base.aggregate",
"position": [
-2820,
-1000
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData",
"destinationFieldName": "commits"
},
"typeVersion": 1
},
{
"id": "469e916d-b567-4314-9f3d-ddebdac1a7c6",
"name": "Wenn Authors Commit",
"type": "n8n-nodes-base.if",
"position": [
-3040,
-980
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "46c73ee1-9ff2-4318-bad4-5e8cdb3703ff",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.author.login }}",
"rightValue": "={{ $('Set Variables').item.json.github_handle }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "2e566c1b-1a75-4302-b6f1-bd48d1ea6f26",
"name": "Wenn heute geschlossen",
"type": "n8n-nodes-base.if",
"position": [
-3120,
-500
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "204dc12c-e6ec-472a-b84b-d88afb571e93",
"operator": {
"type": "dateTime",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.closed_at?.toDateTime().format('yyyy-MM-dd') }}",
"rightValue": ""
},
{
"id": "4495a061-a8cd-42e7-81fb-bef628667058",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.closed_at?.toDateTime().format('yyyy-MM-dd') }}",
"rightValue": "={{ $('Set Variables').item.json.today_date }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "c4dafdca-e764-412a-9d3c-9b8653c3fb13",
"name": "Wenn heute erstellt",
"type": "n8n-nodes-base.if",
"position": [
-3120,
-760
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "46c73ee1-9ff2-4318-bad4-5e8cdb3703ff",
"operator": {
"type": "dateTime",
"operation": "equals"
},
"leftValue": "={{ $json.created_at.toDateTime().format('yyyy-MM-dd') }}",
"rightValue": "={{ $('Set Variables').item.json.today_date }}"
},
{
"id": "13335ba1-acc1-4f12-8654-326d09553187",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.user.login }}",
"rightValue": "={{ $('Set Variables').item.json.github_handle }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "ce041632-5c3e-4f15-b772-cde890181ab7",
"name": "Aufteilen",
"type": "n8n-nodes-base.splitOut",
"position": [
-1724,
-1080
],
"parameters": {
"options": {},
"fieldToSplitOut": "message.content.events"
},
"typeVersion": 1
},
{
"id": "61d7bb88-1ad8-48d7-ae56-953123ccd501",
"name": "Workflow-Übersicht",
"type": "n8n-nodes-base.stickyNote",
"position": [
-4200,
-1620
],
"parameters": {
"color": 5,
"width": 640,
"height": 380,
"content": "## 📊 Daily Activity Tracker Workflow\n\n**Overview:** This workflow automatically collects your daily activities from multiple sources and creates a comprehensive timesheet in Google Sheets.\n\n**Key Features:**\n- 📧 Tracks important emails (filters out newsletters & no-reply)\n- 📅 Logs calendar events with duration and attendees\n- 💻 Records GitHub commits and pull requests\n- 🤖 Uses AI to generate concise activity descriptions\n- 📝 Auto-creates monthly sheets and organizes entries\n\n**Configuration:** Update the **Set Variables** node with your:\n- GitHub username\n- Email address\n- Repository names to track"
},
"typeVersion": 1
},
{
"id": "ddefaf28-97c9-493b-8762-0d67e8adb345",
"name": "Datenerfassung",
"type": "n8n-nodes-base.stickyNote",
"position": [
-3280,
-1900
],
"parameters": {
"color": 3,
"width": 480,
"height": 280,
"content": "## 🔄 Data Collection Hub\n\n**Sources:**\n- **Gmail:** Fetches emails from today (filtered by sender)\n- **Google Calendar:** Gets confirmed events from yesterday\n- **GitHub API:** Retrieves commits via custom API call\n- **GitHub Node:** Pulls all PRs from specified repository\n\n**Note:** Calendar events use yesterday's date (`$today.minus(1)`) - adjust if needed for your timezone"
},
"typeVersion": 1
},
{
"id": "011634e4-2d08-40ac-9545-12b06a370e79",
"name": "GitHub Filterung",
"type": "n8n-nodes-base.stickyNote",
"position": [
-3360,
-340
],
"parameters": {
"color": 6,
"width": 580,
"height": 340,
"content": "## 🔍 GitHub Activity Filtering\n\n**Commit Filter:**\n- Only includes commits by the configured user\n- Fetches commits from yesterday (UTC)\n\n**PR Filters:**\n1. **Created Today:** New PRs opened by the user\n2. **Closed Today:** PRs that were merged/closed\n\n**Purpose:** Ensures only relevant GitHub activity is tracked in the timesheet"
},
"typeVersion": 1
},
{
"id": "c02e7286-fe56-4719-84ae-d75591814c67",
"name": "Tabellenverwaltung",
"type": "n8n-nodes-base.stickyNote",
"position": [
-4360,
-920
],
"parameters": {
"color": 2,
"width": 420,
"height": 280,
"content": "## 📋 Sheet Management\n\n**Monthly Sheet Creation:**\n- Automatically creates a new sheet for each month\n- Names sheets using month name (e.g., \"January\")\n- Checks if sheet already exists to avoid duplicates\n\n**Header Row Setup:**\n- Creates empty row with Date, Type, Description columns\n- Only runs on first execution of the month"
},
"typeVersion": 1
},
{
"id": "d24c8f38-772f-47c7-8be5-62b0bf3bb45b",
"name": "Datenaggregation",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2600,
-1480
],
"parameters": {
"color": 7,
"width": 620,
"height": 320,
"content": "## 🔀 Data Aggregation\n\n**Purpose:** Combines multiple items into single data objects\n\n**Aggregate Nodes:**\n- **Emails → emails[]**\n- **Calendar Events → calendarEvents[]**\n- **Commits → commits[]**\n- **Pull Requests → prs[]**\n\n**Merge Node:** Combines all aggregated data into one payload for AI processing"
},
"typeVersion": 1
},
{
"id": "5c550d91-2e03-40a7-848b-f1a84e6a335a",
"name": "Endausgabe",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1780,
-1440
],
"parameters": {
"width": 420,
"height": 280,
"content": "## 💾 Final Output\n\n**Google Sheets2 Node:**\n- Appends each activity to the current month's sheet\n- Maps AI-generated data:\n - **Type:** CALENDAR_EVENT | EMAIL | COMMIT | PR\n - **Description:** Concise activity summary\n - **Date:** Today's date (YYYY-MM-DD format)\n\n**Result:** Clean, organized timesheet ready for review!"
},
"typeVersion": 1
},
{
"id": "9c66ce99-54b4-43c1-bd72-c03b583355f1",
"name": "Haftnotiz1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2220,
-840
],
"parameters": {
"color": 4,
"width": 540,
"height": 280,
"content": "## 🤖 AI Processing & Summary\n\n**Purpose:** Transform raw activity data into structured timesheet entries\n\n**Process:**\n1. **Format All Data** node consolidates data from all sources\n2. **OpenAI GPT-4o-mini** generates concise descriptions (≤120 chars)\n3. **Split Out** node separates individual events for sheet insertion\n\n**Output:** Clean, categorized entries ready for Google Sheets"
},
"typeVersion": 1
},
{
"id": "bf6a9ad5-11b6-46f5-b4e1-8f7cbed04c56",
"name": "Aufteilen1",
"type": "n8n-nodes-base.splitOut",
"position": [
-3380,
-980
],
"parameters": {
"options": {},
"fieldToSplitOut": "repositoriesToTrack"
},
"typeVersion": 1
},
{
"id": "17c57291-2bbc-4fbb-b2c3-2c7352c379f2",
"name": "Commits von Github abrufen",
"type": "n8n-nodes-base.httpRequest",
"position": [
-3220,
-980
],
"parameters": {
"url": "=https://api.github.com/repos/{{ $('Set Variables').item.json.github_handle }}/{{ $json.repositoriesToTrack }}/commits?since={{ $now.minus(1).startOf('day').toUTC().toISO() }}\n &until={{ $now.minus(1).endOf('day').toUTC().toISO() }}",
"options": {},
"authentication": "predefinedCredentialType",
"nodeCredentialType": "githubApi"
},
"credentials": {
"githubApi": {
"id": "ZeddbLaKaXAWJeAR",
"name": "GitHub account"
},
"httpHeaderAuth": {
"id": "tR2mchCCFunmDNxj",
"name": "EthScan"
}
},
"typeVersion": 4.2
},
{
"id": "df7ad87d-f6e1-4d26-8551-c503271dbb3a",
"name": "Tabelleneintrag einfügen",
"type": "n8n-nodes-base.googleSheets",
"position": [
-1504,
-1080
],
"parameters": {
"columns": {
"value": {
"Date": "={{ $now.format('yyyy-MM-dd') }}",
"Type": "={{ $json.type }}",
"Description": "={{ $json.description }}"
},
"schema": [
{
"id": "Date",
"type": "string",
"display": true,
"required": false,
"displayName": "Date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Type",
"type": "string",
"display": true,
"required": false,
"displayName": "Type",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Description",
"type": "string",
"display": true,
"required": false,
"displayName": "Description",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "name",
"value": "={{ $now.format('MMMM') }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "QjLboygZFufwNdNH",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "122a1907-1eb5-48c2-9fb7-4d004f41c74a",
"name": "Tabelle erstellen falls nicht vorhanden",
"type": "n8n-nodes-base.googleSheets",
"position": [
-4500,
-560
],
"parameters": {
"title": "={{ $now.format('MMMM') }}",
"options": {},
"operation": "create",
"documentId": {
"__rl": true,
"mode": "list",
"value": ""
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "QjLboygZFufwNdNH",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6,
"alwaysOutputData": true
},
{
"id": "a172be21-11f1-48a5-bf6c-2989d3888771",
"name": "Falls nicht vorhanden",
"type": "n8n-nodes-base.if",
"position": [
-4280,
-560
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "b177902a-8b12-4147-afe2-babd21126e4a",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.title }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "9d96d32c-75db-4712-8e8f-8806cb43830b",
"name": "Tabellenkopfzeilen initialisieren",
"type": "n8n-nodes-base.set",
"position": [
-4060,
-560
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "2e5a5c68-ec1c-4307-b7ab-4db2d0a510d7",
"name": "Date",
"type": "string",
"value": ""
},
{
"id": "18823857-3297-4349-87df-42c364680f70",
"name": "Type",
"type": "string",
"value": ""
},
{
"id": "1806a29c-c5d8-4e6f-ace9-dc2750b4b88c",
"name": "Description",
"type": "string",
"value": ""
}
]
}
},
"typeVersion": 3.4
},
{
"id": "242351ee-c830-4253-8b4f-37d2c7494018",
"name": "Tabellenspalten initialisieren",
"type": "n8n-nodes-base.googleSheets",
"position": [
-3840,
-560
],
"parameters": {
"columns": {
"value": {},
"schema": [
{
"id": "Date",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Type",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Type",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Description",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Description",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "autoMapInputData",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "name",
"value": "={{ $('Create Sheet If It Doesn't Exist').item.json.title }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "QjLboygZFufwNdNH",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "ce14b4e3-3796-4d03-93fe-8cc2a6199955",
"name": "Aufteilen2",
"type": "n8n-nodes-base.splitOut",
"position": [
-3580,
-720
],
"parameters": {
"options": {},
"fieldToSplitOut": "repositoriesToTrack"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "6cd6c209-09bc-42f1-ab83-05da5b70b0aa",
"connections": {
"a1dbd248-1cd5-4fec-8198-52573fbe50ed": {
"main": [
[
{
"node": "201ef564-57e6-4fde-8251-459c56ef05d0",
"type": "main",
"index": 0
}
]
]
},
"34e60115-851c-4055-b1bc-3bba3076fefe": {
"main": [
[
{
"node": "a1dbd248-1cd5-4fec-8198-52573fbe50ed",
"type": "main",
"index": 0
}
]
]
},
"ce041632-5c3e-4f15-b772-cde890181ab7": {
"main": [
[
{
"node": "df7ad87d-f6e1-4d26-8551-c503271dbb3a",
"type": "main",
"index": 0
}
]
]
},
"53ab1990-ddeb-410f-8cd4-675ed88387a9": {
"main": [
[
{
"node": "a1dbd248-1cd5-4fec-8198-52573fbe50ed",
"type": "main",
"index": 1
}
]
]
},
"7cc275df-68ac-4a9e-ae02-eb617b85f4cf": {
"main": [
[
{
"node": "a1dbd248-1cd5-4fec-8198-52573fbe50ed",
"type": "main",
"index": 3
}
]
]
},
"c6471886-5bce-43ae-9af7-89db8983706c": {
"main": [
[
{
"node": "a1dbd248-1cd5-4fec-8198-52573fbe50ed",
"type": "main",
"index": 2
}
]
]
},
"bf6a9ad5-11b6-46f5-b4e1-8f7cbed04c56": {
"main": [
[
{
"node": "17c57291-2bbc-4fbb-b2c3-2c7352c379f2",
"type": "main",
"index": 0
}
]
]
},
"ce14b4e3-3796-4d03-93fe-8cc2a6199955": {
"main": [
[
{
"node": "8bdb5e00-ce98-4c75-94e4-d1c9f341a826",
"type": "main",
"index": 0
}
]
]
},
"0faf1f55-23d3-4d33-a142-d1c87d85e9f1": {
"main": [
[
{
"node": "7ee78807-a5df-493c-8419-3e9ef8688954",
"type": "main",
"index": 0
}
]
]
},
"7ee78807-a5df-493c-8419-3e9ef8688954": {
"main": [
[
{
"node": "cd793b22-bd54-430e-aa78-7a7e1f066f96",
"type": "main",
"index": 0
},
{
"node": "d3ad9729-1444-4227-b37e-b232546347de",
"type": "main",
"index": 0
},
{
"node": "122a1907-1eb5-48c2-9fb7-4d004f41c74a",
"type": "main",
"index": 0
},
{
"node": "bf6a9ad5-11b6-46f5-b4e1-8f7cbed04c56",
"type": "main",
"index": 0
},
{
"node": "ce14b4e3-3796-4d03-93fe-8cc2a6199955",
"type": "main",
"index": 0
}
]
]
},
"8bdb5e00-ce98-4c75-94e4-d1c9f341a826": {
"main": [
[
{
"node": "c4dafdca-e764-412a-9d3c-9b8653c3fb13",
"type": "main",
"index": 0
},
{
"node": "2e566c1b-1a75-4302-b6f1-bd48d1ea6f26",
"type": "main",
"index": 0
}
]
]
},
"201ef564-57e6-4fde-8251-459c56ef05d0": {
"main": [
[
{
"node": "9a9385f0-ca86-457f-b599-713a809aa423",
"type": "main",
"index": 0
}
]
]
},
"469e916d-b567-4314-9f3d-ddebdac1a7c6": {
"main": [
[
{
"node": "c6471886-5bce-43ae-9af7-89db8983706c",
"type": "main",
"index": 0
}
]
]
},
"cd793b22-bd54-430e-aa78-7a7e1f066f96": {
"main": [
[
{
"node": "34e60115-851c-4055-b1bc-3bba3076fefe",
"type": "main",
"index": 0
}
]
]
},
"a172be21-11f1-48a5-bf6c-2989d3888771": {
"main": [
[
{
"node": "9d96d32c-75db-4712-8e8f-8806cb43830b",
"type": "main",
"index": 0
}
],
[]
]
},
"9d96d32c-75db-4712-8e8f-8806cb43830b": {
"main": [
[
{
"node": "242351ee-c830-4253-8b4f-37d2c7494018",
"type": "main",
"index": 0
}
]
]
},
"242351ee-c830-4253-8b4f-37d2c7494018": {
"main": [
[]
]
},
"2e566c1b-1a75-4302-b6f1-bd48d1ea6f26": {
"main": [
[
{
"node": "7cc275df-68ac-4a9e-ae02-eb617b85f4cf",
"type": "main",
"index": 0
}
]
]
},
"c4dafdca-e764-412a-9d3c-9b8653c3fb13": {
"main": [
[
{
"node": "7cc275df-68ac-4a9e-ae02-eb617b85f4cf",
"type": "main",
"index": 0
}
],
[]
]
},
"17c57291-2bbc-4fbb-b2c3-2c7352c379f2": {
"main": [
[
{
"node": "469e916d-b567-4314-9f3d-ddebdac1a7c6",
"type": "main",
"index": 0
}
]
]
},
"9a9385f0-ca86-457f-b599-713a809aa423": {
"main": [
[
{
"node": "ce041632-5c3e-4f15-b772-cde890181ab7",
"type": "main",
"index": 0
}
]
]
},
"d3ad9729-1444-4227-b37e-b232546347de": {
"main": [
[
{
"node": "53ab1990-ddeb-410f-8cd4-675ed88387a9",
"type": "main",
"index": 0
}
]
]
},
"122a1907-1eb5-48c2-9fb7-4d004f41c74a": {
"main": [
[
{
"node": "a172be21-11f1-48a5-bf6c-2989d3888771",
"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?
Experte - Persönliche Produktivität, KI-Zusammenfassung
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
Luka Zivkovic
@zivkovic58Diesen Workflow teilen