자동화된 회의 요약
중급
이것은Document Extraction, AI Summarization분야의자동화 워크플로우로, 14개의 노드를 포함합니다.주로 If, Code, Wait, Slack, HttpRequest 등의 노드를 사용하며. Vexa.ai 및 GPT-4o를 사용한 Google Meet에서 Slack으로 회의 요약 자동 생성
사전 요구사항
- •Slack Bot Token 또는 Webhook URL
- •대상 API의 인증 정보가 필요할 수 있음
- •OpenAI API Key
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"meta": {
"instanceId": "477d41ba9371722c12acb8ceb19deefe8a94935c3dc3255b6a9141e5f8643752",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "d3ccf483-864c-42da-98a2-81d0d42d3b0e",
"name": "회의에 봇 추가",
"type": "n8n-nodes-base.httpRequest",
"position": [
-240,
-512
],
"parameters": {
"url": "https://gateway.dev.vexa.ai/bots",
"method": "POST",
"options": {},
"sendBody": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "platform",
"value": "google_meet"
},
{
"name": "native_meeting_id",
"value": "={{ $json.conferenceData.conferenceId }}"
},
{
"name": "bot_name",
"value": "MyMeetingBot"
}
]
},
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "qsLMfqhzV78G4n49",
"name": "Header Auth account"
}
},
"typeVersion": 4.2
},
{
"id": "4ec42f69-06d3-451b-bdce-a929a39bc8bf",
"name": "Google 캘린더 트리거",
"type": "n8n-nodes-base.googleCalendarTrigger",
"position": [
-544,
-512
],
"parameters": {
"options": {
"matchTerm": ""
},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"triggerOn": "eventStarted",
"calendarId": {
"__rl": true,
"mode": "id",
"value": "='primary'"
}
},
"credentials": {
"googleCalendarOAuth2Api": {
"id": "eOIgUZwgncUgpFDg",
"name": "Google Calendar account"
}
},
"typeVersion": 1
},
{
"id": "7d4de5a4-7aef-4447-88b3-7f32677b6395",
"name": "메시지 보내기",
"type": "n8n-nodes-base.slack",
"position": [
1456,
-560
],
"webhookId": "c50e7cb4-eaa8-4128-99d4-e0f0341d2c97",
"parameters": {
"text": "={{ $json.output }}",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "name",
"value": "#general"
},
"otherOptions": {
"includeLinkToWorkflow": false
}
},
"credentials": {
"slackApi": {
"id": "l613sxla64BipXhh",
"name": "Slack account"
}
},
"typeVersion": 2.3
},
{
"id": "03516d84-dea0-429f-b0d0-00dbb5099a94",
"name": "AI 에이전트",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1056,
-560
],
"parameters": {
"text": "=# Fast Meeting Summary Prompt\n\nAnalyze this meeting transcription and create a brief Slack summary. Keep it under 800 characters total.\n\n**Meeting Transcript:**\n{{ $json.fullTranscript }}\n\n**Meeting Details:**\n- Duration: {{ $json.durationMinutes }} minutes\n- Participants: {{ $json.participants }}\n\n**Format (be extremely concise):**\n\n## 📋 Meeting Summary\n**Duration:** [Start-End time]\n**Participants:** [Names only]\n\n**🎯 Key Points:**\n- [Main topic 1]\n- [Main topic 2]\n\n**📝 Action Items:**\n- [Task - Person - Deadline]\n\n**💡 Outcome:**\n[One sentence summary of result/decision]\n\nKeep each bullet point under 50 characters. Focus only on actionable information and key decisions.",
"options": {},
"promptType": "define"
},
"typeVersion": 2.1
},
{
"id": "d40e6fbf-8bf5-4ae3-bf50-969ce96f1b23",
"name": "Vexa 트랜스크립트 가져오기",
"type": "n8n-nodes-base.httpRequest",
"position": [
304,
-560
],
"parameters": {
"url": "=https://gateway.dev.vexa.ai/transcripts/google_meet/{{ $json.native_meeting_id }}",
"options": {
"timeout": 30000
},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "qsLMfqhzV78G4n49",
"name": "Header Auth account"
}
},
"typeVersion": 4.1
},
{
"id": "62f19410-e908-4523-a8d5-e5af789982c2",
"name": "대기",
"type": "n8n-nodes-base.wait",
"position": [
768,
-432
],
"webhookId": "eb04f35a-7f4e-41f6-a9d7-bc2df86e4e16",
"parameters": {},
"typeVersion": 1.1
},
{
"id": "9208ae18-6bba-441a-95e5-3d13c44de206",
"name": "조건문",
"type": "n8n-nodes-base.if",
"position": [
512,
-560
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "40ee5a62-d7e4-4f2e-9f41-e073dd09e575",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{$json.status}}",
"rightValue": "completed"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "310ee3cb-5387-4bd7-88d5-aa7f233cee48",
"name": "OpenAI 채팅 모델",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1056,
-352
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "chatgpt-4o-latest",
"cachedResultName": "chatgpt-4o-latest"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "H8pWaOdD8Xbmd0vd",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "67cced29-b716-4ea6-a41d-9bab723332d4",
"name": "코드",
"type": "n8n-nodes-base.code",
"position": [
848,
-560
],
"parameters": {
"jsCode": "// Get the input data\nconst inputData = $input.all()[0].json; // Get the first item which contains the meeting data\n\n// Extract segments from the nested structure\nconst segments = inputData.segments || [];\n\nif (!segments || segments.length === 0) {\n return [{\n json: {\n fullTranscript: \"No transcript data available\",\n participants: \"None\",\n durationSeconds: 0,\n durationMinutes: 0\n }\n }];\n}\n\n// Combine into a single readable transcript\nconst transcript = segments\n .map(segment => {\n const speaker = segment.speaker || 'Unknown';\n const text = segment.text || '';\n const time = Math.round(segment.start || 0);\n return `[${time}s] ${speaker}: ${text}`;\n })\n .join('\\n');\n\n// Get unique participants\nconst participants = [...new Set(\n segments\n .map(segment => segment.speaker)\n .filter(speaker => speaker && speaker !== null)\n)];\n\n// Calculate duration\nconst startTime = segments[0]?.start || 0;\nconst endTime = segments[segments.length - 1]?.end || 0;\nconst duration = Math.round(endTime - startTime);\n\n// Get meeting info from the root level\nconst meetingId = inputData.native_meeting_id || 'Unknown';\nconst platform = inputData.platform || 'Unknown';\nconst status = inputData.status || 'Unknown';\n\nreturn [{\n json: {\n fullTranscript: transcript,\n participants: participants.join(', ') || 'Unknown',\n durationSeconds: duration,\n durationMinutes: Math.round(duration / 60),\n meetingId: meetingId,\n platform: platform,\n status: status,\n totalSegments: segments.length\n }\n}];"
},
"typeVersion": 2
},
{
"id": "de13ece0-8fb4-489b-b2d7-cf0f0b14114b",
"name": "스티키 노트",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1248,
-960
],
"parameters": {
"color": 3,
"height": 544,
"content": "## 📋 Prerequisites & Requirements\n\n**Required Accounts:**\n- Google Calendar API access (free)\n- Vexa.ai account with API key\n- OpenAI API account with credits\n- Slack workspace admin access\n\n**Required Permissions:**\n- Google Calendar: Read calendar events\n- Slack: Post messages to channels\n- Vexa.ai: Create bots and access transcripts\n\n**Estimated Setup Time:** 15-20 minutes\n**Cost:** ~$0.01-0.05 per meeting (OpenAI costs)"
},
"typeVersion": 1
},
{
"id": "1ed15b13-de3b-4cb1-a231-1dbcd32d6823",
"name": "스티키 노트1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-624,
-960
],
"parameters": {
"width": 304,
"height": 672,
"content": "## 🗓️ Google Calendar Setup\n\n**Steps:**\n1. Go to Google Cloud Console\n2. Enable Calendar API\n3. Create credentials (OAuth2)\n4. Add credentials to n8n\n5. Test connection\n\n**Configuration:**\n- Select your target calendar from list\n- Set trigger to 'eventStarted'\n- Ensure calendar has Meet links\n\n**⚠️ Important:** Only works with Google Meet links in calendar events"
},
"typeVersion": 1
},
{
"id": "a7dbe268-d020-47c9-993e-9a53c1249043",
"name": "스티키 노트2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-304,
-960
],
"parameters": {
"width": 752,
"height": 672,
"content": "## 🤖 Vexa.ai Setup\n\n**Get API Key:**\n1. Sign up at vexa.ai\n2. Navigate to API settings\n3. Generate new API key\n4. Add to n8n credentials\n\n**Bot Configuration:**\n- Platform: 'google_meet'\n- Bot name: Customize as needed\n- Meeting ID: Auto-extracted from calendar\n\n**Rate Limits:**\n- 100 requests/hour on free tier\n- Bot joins 30-60 seconds after meeting starts"
},
"typeVersion": 1
},
{
"id": "09d0a663-c758-4c80-b5bf-19d6d3228816",
"name": "스티키 노트3",
"type": "n8n-nodes-base.stickyNote",
"position": [
720,
-960
],
"parameters": {
"width": 896,
"height": 736,
"content": "## 🧠 OpenAI + Slack Setup\n\n**OpenAI Configuration:**\n- Model: chatgpt-4o-latest (recommended)\n- Cost: ~$0.01-0.05 per summary\n- Add API key to n8n credentials\n\n**Slack Bot Setup:**\n1. Create Slack app in workspace\n2. Add bot token scopes: chat:write\n3. Install app to workspace\n4. Add bot to target channel\n5. Copy bot token to n8n\n\n**Channel Format:** Use channel name or ID"
},
"typeVersion": 1
},
{
"id": "6ff6c940-ada7-4743-a249-6a211c3b9288",
"name": "스티키 노트4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-944,
-960
],
"parameters": {
"color": 3,
"height": 896,
"content": "## 🔑 Credential Setup Guide\n\n**Before using this workflow:**\n\n**1. Google Calendar OAuth2:**\n- Go to Google Cloud Console\n- Enable Calendar API\n- Create OAuth2 credentials\n- Add to n8n: Google Calendar OAuth2 API\n\n**2. Vexa.ai API (HTTP Header Auth):**\n- Sign up at vexa.ai\n- Get API key from dashboard \n- Create HTTP Header Auth credential\n- Header name: 'X-API-Key'\n- Header value: Your API key\n\n**3. OpenAI API:**\n- Get API key from OpenAI platform\n- Add to n8n: OpenAI API credential\n- Ensure account has sufficient credits\n\n**4. Slack Bot Token:**\n- Create Slack app in your workspace\n- Add bot token scopes: chat:write, channels:read\n- Install app to workspace\n- Add bot to target channel\n- Copy bot token to n8n: Slack API credential\n\n**⚠️ Test each credential** before running the full workflow!"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"9208ae18-6bba-441a-95e5-3d13c44de206": {
"main": [
[
{
"node": "67cced29-b716-4ea6-a41d-9bab723332d4",
"type": "main",
"index": 0
}
],
[
{
"node": "62f19410-e908-4523-a8d5-e5af789982c2",
"type": "main",
"index": 0
}
]
]
},
"67cced29-b716-4ea6-a41d-9bab723332d4": {
"main": [
[
{
"node": "03516d84-dea0-429f-b0d0-00dbb5099a94",
"type": "main",
"index": 0
}
]
]
},
"62f19410-e908-4523-a8d5-e5af789982c2": {
"main": [
[
{
"node": "d40e6fbf-8bf5-4ae3-bf50-969ce96f1b23",
"type": "main",
"index": 0
}
]
]
},
"03516d84-dea0-429f-b0d0-00dbb5099a94": {
"main": [
[
{
"node": "7d4de5a4-7aef-4447-88b3-7f32677b6395",
"type": "main",
"index": 0
}
]
]
},
"7d4de5a4-7aef-4447-88b3-7f32677b6395": {
"main": [
[]
]
},
"d3ccf483-864c-42da-98a2-81d0d42d3b0e": {
"main": [
[
{
"node": "d40e6fbf-8bf5-4ae3-bf50-969ce96f1b23",
"type": "main",
"index": 0
}
]
]
},
"310ee3cb-5387-4bd7-88d5-aa7f233cee48": {
"ai_languageModel": [
[
{
"node": "03516d84-dea0-429f-b0d0-00dbb5099a94",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"d40e6fbf-8bf5-4ae3-bf50-969ce96f1b23": {
"main": [
[
{
"node": "9208ae18-6bba-441a-95e5-3d13c44de206",
"type": "main",
"index": 0
}
]
]
},
"4ec42f69-06d3-451b-bdce-a929a39bc8bf": {
"main": [
[
{
"node": "d3ccf483-864c-42da-98a2-81d0d42d3b0e",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
중급 - 문서 추출, AI 요약
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
자동 채점 기준 생성 기능을 갖춘 AI 기반 동료 검토 과제 시스템
GPT-4-nano, Slack 및 이메일 알림을 사용한 동료 검토 할당 자동화
Set
Code
Slack
+
Set
Code
Slack
22 노드Cheng Siong Chin
문서 추출
Gemini와 Jina AI를 사용한 공급업체 실사 연구 자동화
Gemini 및 Jina AI를 사용한 공급업체 실사 조사 자동화
If
Set
Code
+
If
Set
Code
27 노드Adnan
문서 추출
AI 및 Gmail을 사용하여 YNAB 내 Amazon 거래 메모 자동 업데이트
AI 및 Gmail을 사용하여 YNAB의 Amazon 거래 메모 자동 업데이트
If
Set
Wait
+
If
Set
Wait
30 노드Angel Menendez
문서 추출
Facebook 페이지 댓글 관리 봇: 답글, 삭제, 차단 및 알림
AI 기반 Facebook 댓글 관리: 자동 답글, 삭제, 차단 및 알림
If
Set
Code
+
If
Set
Code
59 노드SpaGreen Creative
소셜 미디어
AI 고객 지원 분류 및 요약 시스템
GPT-4o, Slack 및 CRM 통합을 사용한 고객 지원 자동 처리
If
Set
Code
+
If
Set
Code
32 노드NodeAlchemy
티켓 관리
Telegram에서 자동으로 회의록을 Airtable, Slack, Gmail로 전송
GPT-4.1을 통해 Telegram 메시지에서 회의록 생성 및 Airtable, Slack, Gmail로 전송
If
Code
Wait
+
If
Code
Wait
29 노드Baptiste Fort
AI 요약
워크플로우 정보
난이도
중급
노드 수14
카테고리2
노드 유형9
저자
Vladimir
@vilin1927I created my own No-Code Agency with a few years ago, currently help SMBs to achieve their automation goals. Passionate about n8n and automation and trying to ride the wave of AI hype!
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유