
AI-Powered Document Summarizer & Notifier
Description
Categories
🤖 AI & Machine Learning
Nodes Used
n8n-nodes-base.ifn8n-nodes-base.setn8n-nodes-base.gmailn8n-nodes-base.slackn8n-nodes-base.googleDocsn8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNote
PriceFree
Views0
Last Updated11/28/2025
workflow.json
{
"id": "cFXP4gO2L3sOPL5k",
"meta": {
"instanceId": "af9fe5bb0163dc4cbb85dd6fb4c45fe63eac1327996aeecd696d8f7aed2d776b",
"templateCredsSetupCompleted": true
},
"name": "AI-Powered Document Summarizer & Notifier",
"tags": [
{
"id": "oXLqGOyVDwolvp9S",
"name": "document summarizer",
"createdAt": "2025-09-17T10:08:20.905Z",
"updatedAt": "2025-09-17T10:08:20.905Z"
},
{
"id": "qtuQF3Lc141mfYiM",
"name": "n8n template",
"createdAt": "2025-09-11T07:44:43.900Z",
"updatedAt": "2025-09-17T10:07:33.999Z"
}
],
"nodes": [
{
"id": "77c58599-2aea-4ba4-8132-4f82fdcf8bd3",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1136,
720
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "WCk5ptERvfLe219v",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "f645be4e-6234-4984-9e4a-1552e847d927",
"name": "File Created",
"type": "n8n-nodes-base.googleDriveTrigger",
"position": [
32,
544
],
"parameters": {
"event": "watchFolderUpdated",
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"triggerOn": "specificFolder",
"folderToWatch": {
"__rl": true,
"mode": "id",
"value": "1FxZOCBSgyd0KyK13cEOwpAGHj8acIyVK"
}
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "6hdkTGuRRpQ6NGmj",
"name": "Google Drive account"
}
},
"typeVersion": 1
},
{
"id": "e97c0523-5ba4-45d3-a993-b11320f99e26",
"name": "Get a document",
"type": "n8n-nodes-base.googleDocs",
"position": [
608,
400
],
"parameters": {
"operation": "get",
"documentURL": "={{ $('Check Document Type').item.json.id }}"
},
"credentials": {
"googleDocsOAuth2Api": {
"id": "FrKnM9ye3ZQCmzfg",
"name": "Google Docs account"
}
},
"typeVersion": 2
},
{
"id": "cd20e8af-3fba-4204-a953-ab8d07c25184",
"name": "Check Document Type",
"type": "n8n-nodes-base.if",
"position": [
256,
544
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "4e823422-08d2-4b98-a537-058c84010f1c",
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.mimeType }}",
"rightValue": "application/vnd.google-apps."
}
]
}
},
"typeVersion": 2.2
},
{
"id": "db6038cb-5a52-420d-abd5-4655e2f383f0",
"name": "Set Field",
"type": "n8n-nodes-base.set",
"position": [
816,
400
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "2a756e70-4b34-4595-a1cb-a8e6dd715f07",
"name": "text",
"type": "string",
"value": "={{ $json.content }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "bf9bf0f4-1315-4816-91ff-9b53c6bf9423",
"name": "Convert to Text",
"type": "n8n-nodes-base.extractFromFile",
"position": [
816,
768
],
"parameters": {
"options": {},
"operation": "pdf"
},
"typeVersion": 1
},
{
"id": "f34b4745-ebd6-430b-88c6-9c34d0e4b03d",
"name": "Download PDF",
"type": "n8n-nodes-base.googleDrive",
"position": [
608,
768
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
},
"options": {},
"operation": "download",
"authentication": "oAuth2",
"binaryPropertyName": "=data"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "6hdkTGuRRpQ6NGmj",
"name": "Google Drive account"
}
},
"typeVersion": 1
},
{
"id": "4c376f18-39b0-4832-9fe9-2d574e2e31b3",
"name": "Send message to Slack Channel",
"type": "n8n-nodes-base.slack",
"position": [
1776,
384
],
"webhookId": "5c1613ef-6856-4a87-95b5-dda331a04a8c",
"parameters": {
"text": "={{ $json.output }}",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "list",
"value": "C096E5P119V",
"cachedResultName": "general"
},
"otherOptions": {},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"id": "ntTzsGmt8PVJZSJL",
"name": "Slack account"
}
},
"typeVersion": 2.3
},
{
"id": "ab6365c4-bba3-42fa-b702-fe4f5183ccc9",
"name": "Email the Summary",
"type": "n8n-nodes-base.gmail",
"position": [
1792,
656
],
"webhookId": "9e12e184-df96-4d24-ad0f-f3f9ce1582f7",
"parameters": {
"sendTo": "[email protected]",
"message": "={{ $json.output }}",
"options": {
"appendAttribution": false
},
"subject": "Doc Summary",
"emailType": "text"
},
"credentials": {
"gmailOAuth2": {
"id": "bkdHqAeZVazFcy8X",
"name": "Gmail account KOW"
}
},
"typeVersion": 2.1
},
{
"id": "da8dfa4a-23ca-469f-ad13-9811184a3308",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-80,
272
],
"parameters": {
"color": 4,
"width": 560,
"height": 688,
"content": "## 📑 Auto trigger and checking file type"
},
"typeVersion": 1
},
{
"id": "d6411536-3cb7-499d-b27b-c18cf9a09e1d",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
512,
272
],
"parameters": {
"color": 6,
"width": 480,
"height": 320,
"content": "## 📑 Docs, TXT file route"
},
"typeVersion": 1
},
{
"id": "cd769f6e-9ffb-431f-8c10-62a6ad85e452",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1024,
272
],
"parameters": {
"width": 624,
"height": 688,
"content": "## 📑 Summarizing docs"
},
"typeVersion": 1
},
{
"id": "8515df5f-189b-4c8a-8ca8-2c0329544aad",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1680,
272
],
"parameters": {
"color": 7,
"width": 336,
"height": 688,
"content": "## 📑 Notifier"
},
"typeVersion": 1
},
{
"id": "ba29ca4f-8f7b-44f5-ae89-c53c88e288eb",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
512,
624
],
"parameters": {
"color": 6,
"width": 480,
"height": 336,
"content": "## 📑 PDF file route\n"
},
"typeVersion": 1
},
{
"id": "68ce3cde-5de5-4eed-be04-e98ffb53412a",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1088,
64
],
"parameters": {
"width": 928,
"height": 1200,
"content": "# 🛠️ Setup Guide \n## **Author:** [Krishna Sharma]\n\nHere's the step to create AI-Powered Document Summarizer & Notifier workflow in n8n:\n\n### ✅ Step 1: Create a folder within Google Drive and make it public.\nThis will be the folder where you will be adding files (PDF/Docs) to summarize.\n\n### ✅ Step 2: Add Trigger node 'On changes involving a specific folder' from Google Drive\n2.1 Setup [Google OAuth2 API](https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service) and use Client ID and Client Secret to establish a connection. \n2.2 Select mode as 'every minute' and connect the folder by selecting from the list, ID, or by URL. \n\n### ✅ Step 3: Add If node to set route for PDFs and Docs/Text files\nSet condition: Mime type contains `application/vnd.google-apps`. \nDocs/Text files go to the **True** branch, while PDFs go to the **False** branch.\n\n### ✅ Step 4: Add Google Get Document node to the True branch\nDo this followed by adding a Set node to make the reference field uniform for the AI agent input.\n\n### ✅ Step 5: Add Google Drive Download File node to the False branch followed by Extract from PDF node\nThis will download the PDF file, which will then be processed by the next node to extract the text.\n\n### ✅ Step 6: Connect OpenAI Chat model to Doc Summarizer AI Agent\nHook up the OpenAI Chat model you would like to use, connect it via [OpenAI API](https://docs.n8n.io/integrations/builtin/credentials/openAi). \n\n### 🧠 Step 7: Hook up the Doc/PDF text and refine the system prompts\nFirst, map the text to the user message. Additionally, tailor the assistant’s system prompts to match your **use case**. \n⚠️ The default prompt is written to get **Title, Summary, Sentiment, etc.**, so be sure to adjust accordingly.\n\n### ✅ Step 8: Connect channel to get notified\nFinally, add Slack/Gmail to get notified with the summary.\n\n### 🧪 Step 9: Run & Test \nTest the setup and confirm you're getting responses as expected."
},
"typeVersion": 1
},
{
"id": "d0cae7fa-fd10-4a7b-95ba-5e864357d94c",
"name": "Doc Summarizer",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1232,
544
],
"parameters": {
"text": "=Summarize the following document in less than 300 characters:{{ $json.text }}",
"options": {
"systemMessage": "=You are a concise, factual document summarizer. \n\n- Title: short title (<= 60 chars)\n- Summary: concise summary (3–5 sentences; <= 300 characters)\n- Key Points: array of up to 5 short bullet points (each <= 140 chars)\n- Action Items: array of up to 3 suggested actions (may be empty)\n- Language: 2-letter ISO code of detected language (e.g., \"en\")\n- Sentiment: \"positive\", \"neutral\", or \"negative\"\n- Truncated: boolean (true if input was trimmed / chunked)\n- Summary Length Chars: integer (actual character length of summary)\n- Max Tokens: 200-300\n\nRules:\n1. Keep the summary factual; do not invent facts or dates. If unsure, use \"likely\" or omit the fact.\n2. If the input contains clear dates, people, numbers or deadlines, include them in key_points.\n5. Always follow the character / length constraints above."
},
"promptType": "define"
},
"typeVersion": 2.2
}
],
"active": true,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "14a6ff36-644a-4db4-9a6b-ad48392fccfa",
"connections": {
"Set Field": {
"main": [
[
{
"node": "Doc Summarizer",
"type": "main",
"index": 0
}
]
]
},
"Download PDF": {
"main": [
[
{
"node": "Convert to Text",
"type": "main",
"index": 0
}
]
]
},
"File Created": {
"main": [
[
{
"node": "Check Document Type",
"type": "main",
"index": 0
}
]
]
},
"Doc Summarizer": {
"main": [
[
{
"node": "Send message to Slack Channel",
"type": "main",
"index": 0
},
{
"node": "Email the Summary",
"type": "main",
"index": 0
}
]
]
},
"Get a document": {
"main": [
[
{
"node": "Set Field",
"type": "main",
"index": 0
}
]
]
},
"Convert to Text": {
"main": [
[
{
"node": "Doc Summarizer",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Doc Summarizer",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Check Document Type": {
"main": [
[
{
"node": "Get a document",
"type": "main",
"index": 0
}
],
[
{
"node": "Download PDF",
"type": "main",
"index": 0
}
]
]
}
}
}