This workflow corresponds to n8n.io template #11529 — we link there as the canonical source.
This workflow follows the Gmail → Gmail Trigger recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "mEVrYhK4pVi7R9f2",
"name": "Email Auto-Triage and Organization Hub",
"tags": [],
"nodes": [
{
"id": "f93cbe90-5989-4238-8399-e98ba4e491ce",
"name": "Route by Category",
"type": "n8n-nodes-base.switch",
"position": [
1744,
416
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "Schedule",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "condition-1",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output.category }}",
"rightValue": "Schedule"
}
]
},
"renameOutput": true
},
{
"outputKey": "What to Bring",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "condition-2",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output.category }}",
"rightValue": "What to Bring"
}
]
},
"renameOutput": true
},
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "condition-3",
"operator": {
"type": "boolean",
"operation": "true"
},
"leftValue": "={{ $json.output.hasAttachments }}",
"rightValue": true
}
]
}
}
]
},
"options": {
"fallbackOutput": "extra",
"renameFallbackOutput": "Notice"
}
},
"typeVersion": 3.3
},
{
"id": "0d3421b3-ef46-401e-bf18-806b95488e9e",
"name": "Prepare Calendar Event",
"type": "n8n-nodes-base.set",
"position": [
1968,
544
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "id-1",
"name": "calendarEventTitle",
"type": "string",
"value": "={{ $('Extract Email Info').item.json.output.eventTitle }}"
},
{
"id": "id-2",
"name": "calendarEventDescription",
"type": "string",
"value": "=={{ `${$json.output.eventDescription || $json.snippet || ''}\\n\\n\u3010\u6301\u3061\u7269\u3011\\n${$json.output.itemsToBring || '\u306a\u3057'}\\n\\n` }}\n"
},
{
"id": "0d52419c-fc83-4b32-ada4-473e3c86c31f",
"name": "calendarEventEnd",
"type": "string",
"value": "={{ $json.output.eventDate ? $fromISO($json.output.eventDate).plus({ hours: 1 }).toISO() : $now.plus({ days: 1, hours: 1 }).toISO() }}"
},
{
"id": "id-5",
"name": "itemsToBring",
"type": "string",
"value": "={{ $('Extract Email Info').item.json.output.itemsToBring }}"
},
{
"id": "67b57577-1c5b-42c7-a078-6d004a16a5bb",
"name": "calendarEventsStart",
"type": "string",
"value": "={{ $('Extract Email Info').item.json.output.eventDate }}"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "dcdd41b0-3349-4068-9821-852c5f2b68d4",
"name": "Add to Calendar",
"type": "n8n-nodes-base.googleCalendar",
"position": [
2192,
544
],
"parameters": {
"end": "={{ DateTime.fromISO($json.output.eventDate).plus({ hours: 1 }).toISO() }}",
"start": "={{ $json.output.eventDate }}",
"calendar": {
"__rl": true,
"mode": "list",
"value": "user@example.com",
"cachedResultName": "user@example.com"
},
"additionalFields": {
"allday": "no",
"summary": "={{ $json.calendarEventTitle.trim() }}\n",
"description": "={{ $json.calendarEventDescription.trim() }}"
}
},
"typeVersion": 1.3
},
{
"id": "3eafaa8b-1158-479d-a78e-2980acd5cd78",
"name": "Get Email Attachments",
"type": "n8n-nodes-base.gmail",
"position": [
1744,
144
],
"parameters": {
"simple": false,
"options": {
"downloadAttachments": true
},
"messageId": "={{ $('Get a message').item.json.id }}",
"operation": "get"
},
"typeVersion": 2.1
},
{
"id": "2c6e2c70-77e7-45a5-8787-c81c30228e28",
"name": "Filter Photos Only",
"type": "n8n-nodes-base.filter",
"position": [
1968,
144
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "id-1",
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $binary.attachment_0.mimeType }}",
"rightValue": "image"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "aa422c97-6bb7-45c7-8652-3ba149ad2b44",
"name": "Save Photos to Drive",
"type": "n8n-nodes-base.googleDrive",
"position": [
2192,
144
],
"parameters": {
"name": "={{ $json.fileName }}",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "list",
"value": "1mrFvUmNddLow3i1ZIBOSg9r2R3K2L67m",
"cachedResultUrl": "https://drive.google.com/drive/folders/1mrFvUmNddLow3i1ZIBOSg9r2R3K2L67m",
"cachedResultName": "n8n"
},
"inputDataFieldName": "attachment_0"
},
"typeVersion": 3
},
{
"id": "d66732f4-2251-438a-8693-865c4a21394a",
"name": "Save Notice to Drive",
"type": "n8n-nodes-base.googleDrive",
"position": [
1968,
352
],
"parameters": {
"name": "=Notice - {{ $json.output.eventTitle }}.txt",
"content": "=Title: {{ $json.output.eventTitle }}\nDate: {{ $json.output.eventDate }}\nCategory: {{ $json.output.category }}\nItems to Bring: {{ $json.output.itemsToBring }}\n\nDescription:\n{{ $json.output.eventDescription }}",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Workflow Configuration').item.json.noticesFolderId }}"
},
"operation": "createFromText"
},
"typeVersion": 3
},
{
"id": "72d7e4b4-5110-4df9-82c5-70fe40cd992b",
"name": "Daily Reminder Check",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
720,
976
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 8
}
]
}
},
"typeVersion": 1.2
},
{
"id": "9ca581e9-0399-4faf-8450-d105565eefd4",
"name": "Get Tomorrow's Events",
"type": "n8n-nodes-base.googleCalendar",
"position": [
944,
976
],
"parameters": {
"options": {},
"timeMax": "={{ $now.plus({days: 1}).endOf('day').toISO() }}",
"timeMin": "={{ $now.plus({days: 1}).startOf('day').toISO() }}",
"calendar": {
"__rl": true,
"mode": "list",
"value": "user@example.com",
"cachedResultName": "user@example.com"
},
"operation": "getAll",
"returnAll": true
},
"typeVersion": 1.3
},
{
"id": "b18f3f5b-b5f2-421b-b953-e3560795491d",
"name": "Filter What to Bring Events",
"type": "n8n-nodes-base.filter",
"position": [
1168,
976
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "id-1",
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.description }}",
"rightValue": "\u6301\u3061\u7269"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "402fe57d-f3da-4176-9fc8-da7b440dd1ba",
"name": "Send Reminder Email",
"type": "n8n-nodes-base.gmail",
"position": [
1392,
976
],
"parameters": {
"sendTo": "={{ $('Get Tomorrow\\'s Events').item.json.creator.email }}",
"message": "=={{ `\u3010\u660e\u65e5\u306e\u4e88\u5b9a\u3011\\n${$json.summary}\\n\\n\u958b\u59cb: ${$json.start.dateTime || $json.start.date}\\n\u7d42\u4e86: ${$json.end.dateTime || $json.end.date}\\n\\n${$json.description}` }}\n",
"options": {},
"subject": "=={{ $json.summary || '\u660e\u65e5\u306e\u4e88\u5b9a\u306e\u304a\u77e5\u3089\u305b' }}\n"
},
"typeVersion": 2.1
},
{
"id": "37e129a5-501c-4e0d-b4ef-531da3dbc060",
"name": "Extract Contacts",
"type": "n8n-nodes-base.set",
"position": [
1744,
752
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "id-1",
"name": "contactInfo",
"type": "string",
"value": "={{ $('When Email Arrives').item.json.From }}"
},
{
"id": "id-2",
"name": "emailSubject",
"type": "string",
"value": "={{ $('Get a message').item.json.Subject }}\n"
},
{
"id": "id-3",
"name": "extractedDate",
"type": "string",
"value": "={{ $now.toISO() }}"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "d95d5309-873d-43b5-aab2-2be78cf97d33",
"name": "Save Contacts to Drive",
"type": "n8n-nodes-base.googleDrive",
"position": [
2192,
752
],
"parameters": {
"name": "=Contact - {{ $json.emailSubject }}.txt",
"content": "=Contact Information:\n\n{{ $json.contactInfo }}\n\nExtracted from: {{ $json.emailSubject }}\nDate: {{ $json.extractedDate }}",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Workflow Configuration').item.json.contactsFolderId }}"
},
"operation": "createFromText"
},
"typeVersion": 3
},
{
"id": "fbd6e801-94e0-44b7-aa8d-aebf946807c9",
"name": "When Email Arrives",
"type": "n8n-nodes-base.gmailTrigger",
"position": [
720,
448
],
"parameters": {
"filters": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
}
},
"typeVersion": 1.3
},
{
"id": "8c2b443a-c0c3-46d7-a33c-fbacb85714fa",
"name": "Workflow Configuration",
"type": "n8n-nodes-base.set",
"position": [
1168,
448
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "id-1",
"name": "photosFolderId",
"type": "string",
"value": "1mrFvUmNddLow3i1ZIBOSg9r2R3K2L67m"
},
{
"id": "id-2",
"name": "noticesFolderId",
"type": "string",
"value": "1mrFvUmNddLow3i1ZIBOSg9r2R3K2L67m"
},
{
"id": "id-3",
"name": "contactsFolderId",
"type": "string",
"value": "1mrFvUmNddLow3i1ZIBOSg9r2R3K2L67m"
},
{
"id": "id-4",
"name": "reminderEmail",
"type": "string",
"value": "user@example.com"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "7f170c94-8112-4688-8e30-fe044ee89d2e",
"name": "Extract Email Info",
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"position": [
1392,
448
],
"parameters": {
"text": "=={{ $json.textPlain || $json.textHtml || $json.snippet }}\n",
"options": {
"systemPromptTemplate": "Analyze this school-related email and extract structured information.\n\nFirst, categorize the email into exactly ONE of the following:\n- \\\"Schedule\\\" (\u4e88\u5b9a\u30fb\u30a4\u30d9\u30f3\u30c8\u30fb\u884c\u4e8b\u306e\u6848\u5185\u3001\u65e5\u6642\u3068\u5834\u6240\u304c\u66f8\u3044\u3066\u3042\u308b\u3082\u306e)\n- \\\"What to Bring\\\" (\u6301\u3061\u7269\u30ea\u30b9\u30c8\u3001\u6e96\u5099\u7269\u306e\u304a\u77e5\u3089\u305b)\n- \\\"Notice\\\" (\u9023\u7d61\u4e8b\u9805\u30fb\u304a\u77e5\u3089\u305b\u3060\u304c\u3001\u7279\u306b\u65e5\u6642\u3084\u6301\u3061\u7269\u304c\u30e1\u30a4\u30f3\u3067\u306f\u306a\u3044\u3082\u306e)\n- \\\"Contacts\\\" (\u5148\u751f\u3084\u5b66\u6821\u3001\u9023\u7d61\u5148\u60c5\u5831\u304c\u30e1\u30a4\u30f3\u306e\u30e1\u30fc\u30eb)\n\nField rules:\n- category: One of \\\"Schedule\\\", \\\"What to Bring\\\", \\\"Notice\\\", or \\\"Contacts\\\".\n- hasAttachments: true if the email mentions attachments or clearly refers to attached files/images, otherwise false.\n- eventTitle: Short title for the event (e.g., \u904b\u52d5\u4f1a, \u500b\u4eba\u9762\u8ac7, \u6388\u696d\u53c2\u89b3).\n- eventDescription: A short natural language summary of what the event is about.\n- eventDate: If any date/time is mentioned, convert it to full ISO 8601 with timezone, e.g. \\\"2024-12-25T12:30:00+09:00\\\".\n - If the year is missing (e.g., \\\"12\u670825\u65e5\\\"), assume the next upcoming occurrence of that date.\n - If only a date (no time) is given, use 09:00 as a default time.\n- itemsToBring: A concise Japanese list of things to bring (e.g. \\\"\u4f53\u64cd\u670d, \u4e0a\u5c65\u304d, \u8d64\u767d\u5e3d\u5b50\\\"). If no items are required, use an empty string.\n- contacts: Any phone numbers, email addresses, or named contacts (\u5148\u751f\u306e\u540d\u524d\u3001\u5b66\u6821\u306e\u9023\u7d61\u5148\u306a\u3069). If none, use an empty string.\n- subject: The subject of the email as written in the original message.\n- id: The email ID passed in the input.\n\nIMPORTANT:\n- If the email includes both schedule information AND items to bring, you may choose \\\"What to Bring\\\" as category but STILL fill eventDate and eventTitle.\n- Always try to fill eventDate when a date can be inferred from the text.\n- Do NOT invent information that is clearly not in the email.\n\nCRITICAL OUTPUT INSTRUCTION:\nOutput ONLY valid raw JSON for the defined attributes.\nDo NOT use markdown code blocks (no ```json).\nDo NOT add any explanation or extra text.\nReturn just the JSON object.\n"
},
"attributes": {
"attributes": [
{
"name": "category",
"required": true,
"description": "Email category: Schedule, What to Bring, Notice, or Contacts"
},
{
"name": "hasAttachments",
"type": "boolean",
"required": true,
"description": "True if email has attachments"
},
{
"name": "eventTitle",
"description": "Title of the event if this is a schedule email"
},
{
"name": "eventDescription",
"description": "Description of the event"
},
{
"name": "eventDate",
"description": "Date of the event in ISO format"
},
{
"name": "itemsToBring",
"description": "List of items to bring if this is a What to Bring email"
},
{
"name": "contacts",
"description": "Contact information extracted from email"
},
{
"name": "subject",
"required": true,
"description": "Email subject"
},
{
"name": "id",
"required": true,
"description": "Email ID"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "028be05b-de27-4aca-a994-ce94aa79e11a",
"name": "Filter",
"type": "n8n-nodes-base.filter",
"position": [
1968,
752
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "755fd1a8-6452-4c5f-be2e-3105d0b05f35",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.contactInfo }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "669b3499-d3cc-4178-8366-02c26efeb97d",
"name": "Get a message",
"type": "n8n-nodes-base.gmail",
"position": [
944,
448
],
"parameters": {
"messageId": "={{ $json.id.toString().trim() }}",
"operation": "get"
},
"typeVersion": 2.1
},
{
"id": "840b1bb1-63f5-4e45-89ba-35adf3cdea2a",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1456,
672
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"typeVersion": 1.2
},
{
"id": "46f84a53-367a-46b2-aede-c7f1c4b7292e",
"name": "Sticky Note - Overview",
"type": "n8n-nodes-base.stickyNote",
"position": [
32,
224
],
"parameters": {
"color": 6,
"width": 608,
"height": 808,
"content": "## Email Auto-Triage and Organization Hub\n\nThis workflow reads school-related emails, uses AI to classify them, and keeps everything organised across Google Calendar and Google Drive. It focuses on schedules, what-to-bring lists, general notices, and contact details so you never miss an important event.\n\n## Who is it for\n- Parents or caregivers who receive many school emails\n- Busy families who often forget dates or \u6301\u3061\u7269\n- Anyone who wants school communication in a structured, searchable format\n\n## How it works / What it does\n1. Listens for new emails in Gmail.\n2. Uses an AI model to detect the email type (Schedule / What to Bring / Notice / Contacts).\n3. Saves notices and contacts as text files in Google Drive.\n4. Creates calendar events for schedules and what-to-bring notices.\n5. Optionally saves attached photos in a Drive folder.\n6. Sends a daily reminder email for tomorrow\u2019s events that include \u6301\u3061\u7269.\n\n## How to set up\n- Connect Gmail, Google Calendar, and Google Drive credentials.\n- Update folder IDs and your reminder email address in **Workflow Configuration**.\n- Turn on the workflow and test with a few real school emails.\n\n## How to customize the workflow\n- Adjust the AI prompt and categories in **Extract Email Info**.\n- Change how events are created or how files are named and stored.\n- Extend the flow to log data into Google Sheets or other tools.\n"
},
"typeVersion": 1
},
{
"id": "3f3fb7a8-49be-492b-b838-a3ff8a9e0ceb",
"name": "Sticky Note - Step 1",
"type": "n8n-nodes-base.stickyNote",
"position": [
816,
48
],
"parameters": {
"width": 520,
"height": 376,
"content": "## Step 1 \u2013 Capture and classify new school emails\n\n- **When Email Arrives** watches Gmail for new school-related messages.\n- **Get a message** fetches subject, body, and metadata for each email.\n- **Workflow Configuration** stores shared settings like folders and calendar IDs.\n- **Extract Email Info** pulls dates, child names, and \u201cwhat to bring\u201d phrases.\n- **OpenAI Chat Model** classifies the email (Schedule / What to Bring / Notice / Contacts).\n- **Route by Category** sends each type into its own processing branch."
},
"typeVersion": 1
},
{
"id": "87c44ad8-4b10-4665-89ff-2f51af605608",
"name": "Sticky Note - Step 2",
"type": "n8n-nodes-base.stickyNote",
"position": [
2384,
192
],
"parameters": {
"width": 552,
"height": 360,
"content": "## Step 2 \u2013 Save notices, events, photos, and contacts\n\n- **Save Notice to Drive** stores the email text and subject as a note in Drive.\n- **Prepare Calendar Event** builds title, date, and \u6301\u3061\u7269 description.\n- **Add to Calendar** creates school events in your Google Calendar.\n- **Get Email Attachments** pulls attached files from the email.\n- **Filter Photos Only** keeps only image attachments.\n- **Save Photos to Drive** archives photos in your school folder.\n- **Extract Contacts** parses teacher or school contact details.\n- **Save Contacts to Drive** writes them into a structured contact file."
},
"typeVersion": 1
},
{
"id": "f9b9633c-b1b2-4142-8130-3eddf489e801",
"name": "Sticky Note - Step 3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1600,
976
],
"parameters": {
"width": 520,
"height": 328,
"content": "## Step 3 \u2013 Daily reminder for tomorrow\u2019s \u201cWhat to Bring\u201d events\n\n- **Daily Reminder Check** starts each morning on a schedule.\n- **Get Tomorrow's Events** searches your calendar for events happening tomorrow.\n- **Filter What to Bring Events** keeps events whose description includes \u6301\u3061\u7269 or similar cues.\n- **Send Reminder Email** sends you a concise list of tomorrow\u2019s events and required items so you can prepare bags and supplies in advance."
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "b83482d3-05fc-4236-ab17-b44b0c6a5742",
"connections": {
"Filter": {
"main": [
[
{
"node": "Save Contacts to Drive",
"type": "main",
"index": 0
}
]
]
},
"Get a message": {
"main": [
[
{
"node": "Workflow Configuration",
"type": "main",
"index": 0
}
]
]
},
"Extract Contacts": {
"main": [
[
{
"node": "Filter",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Extract Email Info",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Route by Category": {
"main": [
[
{
"node": "Save Notice to Drive",
"type": "main",
"index": 0
},
{
"node": "Prepare Calendar Event",
"type": "main",
"index": 0
}
],
[
{
"node": "Save Notice to Drive",
"type": "main",
"index": 0
},
{
"node": "Prepare Calendar Event",
"type": "main",
"index": 0
}
],
[],
[
{
"node": "Save Notice to Drive",
"type": "main",
"index": 0
}
]
]
},
"Extract Email Info": {
"main": [
[
{
"node": "Route by Category",
"type": "main",
"index": 0
},
{
"node": "Get Email Attachments",
"type": "main",
"index": 0
},
{
"node": "Extract Contacts",
"type": "main",
"index": 0
}
]
]
},
"Filter Photos Only": {
"main": [
[
{
"node": "Save Photos to Drive",
"type": "main",
"index": 0
}
]
]
},
"When Email Arrives": {
"main": [
[
{
"node": "Get a message",
"type": "main",
"index": 0
}
]
]
},
"Daily Reminder Check": {
"main": [
[
{
"node": "Get Tomorrow's Events",
"type": "main",
"index": 0
}
]
]
},
"Get Email Attachments": {
"main": [
[
{
"node": "Filter Photos Only",
"type": "main",
"index": 0
}
]
]
},
"Get Tomorrow's Events": {
"main": [
[
{
"node": "Filter What to Bring Events",
"type": "main",
"index": 0
}
]
]
},
"Prepare Calendar Event": {
"main": [
[
{
"node": "Add to Calendar",
"type": "main",
"index": 0
}
]
]
},
"Workflow Configuration": {
"main": [
[
{
"node": "Extract Email Info",
"type": "main",
"index": 0
}
]
]
},
"Filter What to Bring Events": {
"main": [
[
{
"node": "Send Reminder Email",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Overview
Source: https://n8n.io/workflows/11529/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
🤝🖊️🤖 This workflow automates the process of retrieving meeting transcripts from Fireflies.ai, extracting and summarizing relevant content using Google Gemini, and sending or drafting well-formatted su
Deduplicate Scraping Ai Grants For Eligibility Using Ai. Uses splitOut, httpRequest, lmChatOpenAi, informationExtractor. Scheduled trigger; 24 nodes.
This n8n template scrapes a list of AI grants from grants.gov and qualifies them using AI; determining interest and eligibility for the business. It then sends an email alert of interesting items to t
Detects new unread Gmail messages Extracts sender name for personalized replies Classifies the email into one of four categories Applies the correct Gmail label and either sends an auto-reply, creates
This workflow automatically processes Fireflies.ai meeting recap emails, extracts the meeting transcript, generates a structured summary email, and sends it to a designated recipient.