AI Gmail 영수증 자동 저장
중급
이것은Invoice Processing, AI Summarization분야의자동화 워크플로우로, 14개의 노드를 포함합니다.주로 Set, Gmail, Merge, GoogleDrive, GoogleSheets 등의 노드를 사용하며. AI자동保存Gmail收据로Google表格및Google云端硬盘
사전 요구사항
- •Google 계정 및 Gmail API 인증 정보
- •Google Drive API 인증 정보
- •Google Sheets API 인증 정보
- •OpenAI API Key
사용된 노드 (14)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "nd9yWEb16mznm5tg",
"meta": {
"instanceId": "a51f0c866a8392141497eefec55e5e9a9643a767ce369c214fb54b78c285cd5a",
"templateCredsSetupCompleted": true
},
"name": "AI Auto-Save Gmail Receipts",
"tags": [],
"nodes": [
{
"id": "8fdd8f41-acfd-4430-bdfe-b9a43ea81dcc",
"name": "스케줄 트리거",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
0,
-640
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 8
}
]
}
},
"typeVersion": 1.2
},
{
"id": "a8c74ce2-0665-4c34-8e06-1a412f249be4",
"name": "AI 에이전트",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1100,
-640
],
"parameters": {
"text": "=You are an expert assistant that extracts receipt fields for tax tracking.\n\nHere is the full receipt text:\n{{ $json.text }}\n\nExtract and return a single JSON object with the following fields:\n- \"date\": Format as YYYY-MM-DD.\n- \"merchant\": Name of business or company issuing the receipt. If a value is missing, return `null`.\n- \"category\": Infer based on context (e.g. Meals, Software, Travel, Office Supplies).\n- \"description\": A short summary of the service or item purchased (e.g. “Domain name renewal for 2 years”). If a value is missing, return `null`.\n- \"subtotal\": Value before GST. Extract only if clearly labeled.If a value is missing, return 0.\n- \"tax\": The Goods and Services Tax amount (labelled as GST or Tax). Return 0 if not present.If a value is missing, return 0.\n- \"total\": Final amount paid (after tax). If a value is missing, return 0.\n- \"id\": {{ $json.id }}\n- \"threadId\": {{ $json.threadId }}\n\n\n\nRespond ONLY with a JSON object, like this:\n{\n \"date\": \"2025-03-12\",\n \"merchant\": \"Vendor\",\n \"category\": \"Software\",\n \"description\": \"Subscribe for 2 years\",\n \"subtotal\": 45.32,\n \"tax\": 4.53,\n \"total\": 49.85\n}\n",
"options": {},
"promptType": "define",
"hasOutputParser": true
},
"retryOnFail": true,
"typeVersion": 2
},
{
"id": "1b97d088-fcaf-45dd-9d86-acb381984cc0",
"name": "OpenAI 채팅 모델",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1128,
-420
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4",
"cachedResultName": "gpt-4"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "__PLACEHOLDER__",
"name": "openAiApi Account"
}
},
"typeVersion": 1.2
},
{
"id": "5084e1bc-349b-4806-8954-c97a3d26d333",
"name": "구조화된 출력 파서",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1248,
-420
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"date\": {\n \"type\": \"string\",\n \"format\": \"date\"\n },\n \"merchant\": {\n \"type\": \"string\"\n },\n \"category\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"subtotal\": {\n \"type\": \"number\"\n },\n \"tax\": {\n \"type\": \"number\"\n },\n \"total\": {\n \"type\": \"number\"\n },\n \"id\": {\n \"type\": \"string\"\n }\n ,\n \"threadId\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"date\", \"merchant\", \"category\", \"description\", \"subtotal\", \"tax\", \"total\", \"id\", \"threadId\"]\n}\n"
},
"typeVersion": 1.3
},
{
"id": "174f31ac-0849-47aa-8ff1-751d74e952e1",
"name": "영수증이 포함된 이메일 가져오기",
"type": "n8n-nodes-base.gmail",
"position": [
220,
-640
],
"webhookId": "__PLACEHOLDER__",
"parameters": {
"simple": false,
"filters": {
"q": "has:attachment",
"labelIds": [
"Label_3361902760602362460"
],
"readStatus": "unread"
},
"options": {},
"operation": "getAll",
"returnAll": true
},
"credentials": {
"gmailOAuth2": {
"id": "__PLACEHOLDER__",
"name": "gmailOAuth2 Account"
}
},
"typeVersion": 2.1
},
{
"id": "8fcc7b91-267b-4572-9948-b7a4215cbf44",
"name": "필요한 필드 가져오기",
"type": "n8n-nodes-base.set",
"position": [
660,
-440
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "d9d2348c-eca4-4255-a6a9-de29ca06f2c6",
"name": "id",
"type": "string",
"value": "={{ $json.id }}"
},
{
"id": "8685f151-93c4-4eca-8378-ea6ec7b03631",
"name": "threadId",
"type": "string",
"value": "={{ $json.threadId }}"
},
{
"id": "695604d2-438d-4168-9747-f46a84f289ad",
"name": "textAsHtml",
"type": "string",
"value": "={{ $json.textAsHtml }}"
},
{
"id": "4fe59ba7-e736-4911-8080-f0cbb94db73d",
"name": "subject",
"type": "string",
"value": "={{ $json.subject }}"
},
{
"id": "288351d6-9248-4e84-b96d-006f14d0f6c3",
"name": "date",
"type": "string",
"value": "={{ $json.date }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "04b2b190-b370-411c-844c-2d8275aa1579",
"name": "첨부 파일 다운로드",
"type": "n8n-nodes-base.gmail",
"position": [
440,
-640
],
"webhookId": "__PLACEHOLDER__",
"parameters": {
"simple": false,
"options": {
"downloadAttachments": true
},
"messageId": "={{ $json.id }}",
"operation": "get"
},
"credentials": {
"gmailOAuth2": {
"id": "__PLACEHOLDER__",
"name": "gmailOAuth2 Account"
}
},
"typeVersion": 2.1
},
{
"id": "34256129-d04a-4e01-86cc-6a5b2108b954",
"name": "Google 시트에 추가",
"type": "n8n-nodes-base.googleSheets",
"position": [
1476,
-740
],
"parameters": {
"columns": {
"value": {
"Tax": "{{ $json.output.tax}}",
"Date": "={{ $json.output.date }}",
"Total": "={{ $json.output.total }}",
"Merchant": "={{ $json.output.merchant }}",
"Subtotal": "={{ $json.output.subtotal }}",
"Category ": "={{ $json.output.category }}",
"Description": "={{ $json.output.description }}"
},
"schema": [
{
"id": "Date",
"type": "string",
"display": true,
"required": false,
"displayName": "Date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Merchant",
"type": "string",
"display": true,
"required": false,
"displayName": "Merchant",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Category ",
"type": "string",
"display": true,
"required": false,
"displayName": "Category ",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Description",
"type": "string",
"display": true,
"required": false,
"displayName": "Description",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Subtotal",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Subtotal",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Total",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Total",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Tax",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Tax",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"id"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "__YOUR_SHEETNAME__",
"cachedResultUrl": "__PLACEHOLDER__",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "__YOUR_DOCUMENTID__",
"cachedResultUrl": "__PLACEHOLDER__",
"cachedResultName": "Receipts"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "__PLACEHOLDER__",
"name": "googleSheetsOAuth2Api Account"
}
},
"typeVersion": 4.6,
"alwaysOutputData": true
},
{
"id": "1288f2c7-732b-4e35-9d4d-4b20c5f61171",
"name": "데이터 병합",
"type": "n8n-nodes-base.merge",
"position": [
880,
-640
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition",
"numberInputs": 3
},
"typeVersion": 3.2
},
{
"id": "e67ccaae-5bbc-4023-abbc-c9733d11198c",
"name": "파일 업로드",
"type": "n8n-nodes-base.googleDrive",
"position": [
660,
-840
],
"parameters": {
"name": "={{ \n (() => {\n const date = $json.date.slice(0, 10).replace(/-/g, '');\n const sender = ($json.from?.value?.[0]?.name || 'Unknown').trim();\n const cleanSender = sender\n .replace(/[^a-zA-Z0-9]/g, '_') // replace non-alphanumeric\n .replace(/_+/g, '_') // collapse repeated _\n .replace(/^_+|_+$/g, ''); // trim leading/trailing _\n return `${date}_${cleanSender}`;\n })()\n}}",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive",
"cachedResultUrl": "__PLACEHOLDER__",
"cachedResultName": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "url",
"value": "__YOUR_FOLDERID__"
},
"inputDataFieldName": "attachment_0"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "__PLACEHOLDER__",
"name": "googleDriveOAuth2Api Account"
}
},
"typeVersion": 3
},
{
"id": "36288b85-6591-4f4a-8637-bf21c8aea23e",
"name": "송장에서 데이터 추출",
"type": "n8n-nodes-base.extractFromFile",
"position": [
660,
-640
],
"parameters": {
"options": {},
"operation": "pdf",
"binaryPropertyName": "attachment_0"
},
"typeVersion": 1
},
{
"id": "b9494f63-29ae-42fa-b4ce-6509119d234b",
"name": "이메일을 읽음으로 표시",
"type": "n8n-nodes-base.gmail",
"position": [
1476,
-540
],
"webhookId": "__PLACEHOLDER__",
"parameters": {
"messageId": "={{ $json.output.id }}",
"operation": "markAsRead"
},
"credentials": {
"gmailOAuth2": {
"id": "__PLACEHOLDER__",
"name": "gmailOAuth2 Account"
}
},
"typeVersion": 2.1
},
{
"id": "c482e032-f3f4-49d5-81b0-c2ef7f191b13",
"name": "스티키 노트",
"type": "n8n-nodes-base.stickyNote",
"position": [
520,
-1000
],
"parameters": {
"width": 380,
"height": 320,
"content": "### 📤 Upload Receipt to Google Drive\nThis node saves the PDF attachment from the email to your Google Drive.\n- Double-click to choose the destination folder\n- Make sure Google Drive credentials are set up in **Credentials > Google Drive**\n"
},
"typeVersion": 1
},
{
"id": "f724e9e1-0de2-4db8-b221-ed5692dc0ab4",
"name": "스티키 노트1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-120,
-840
],
"parameters": {
"width": 320,
"height": 400,
"content": "### 🕒 Entry Point – Auto-Run This Flow\nThis node controls when the flow is triggered (currently 8am daily).\n- You can change the schedule from cron to manual\n- Starts the chain of pulling emails, extracting data, and saving to Drive + Sheets\n"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "0ebecebd-a40a-4c41-bba3-12866c150052",
"connections": {
"a8c74ce2-0665-4c34-8e06-1a412f249be4": {
"main": [
[
{
"node": "34256129-d04a-4e01-86cc-6a5b2108b954",
"type": "main",
"index": 0
},
{
"node": "b9494f63-29ae-42fa-b4ce-6509119d234b",
"type": "main",
"index": 0
}
]
]
},
"1288f2c7-732b-4e35-9d4d-4b20c5f61171": {
"main": [
[
{
"node": "a8c74ce2-0665-4c34-8e06-1a412f249be4",
"type": "main",
"index": 0
}
]
]
},
"e67ccaae-5bbc-4023-abbc-c9733d11198c": {
"main": [
[
{
"node": "1288f2c7-732b-4e35-9d4d-4b20c5f61171",
"type": "main",
"index": 0
}
]
]
},
"8fdd8f41-acfd-4430-bdfe-b9a43ea81dcc": {
"main": [
[
{
"node": "174f31ac-0849-47aa-8ff1-751d74e952e1",
"type": "main",
"index": 0
}
]
]
},
"1b97d088-fcaf-45dd-9d86-acb381984cc0": {
"ai_languageModel": [
[
{
"node": "a8c74ce2-0665-4c34-8e06-1a412f249be4",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"04b2b190-b370-411c-844c-2d8275aa1579": {
"main": [
[
{
"node": "e67ccaae-5bbc-4023-abbc-c9733d11198c",
"type": "main",
"index": 0
},
{
"node": "8fcc7b91-267b-4572-9948-b7a4215cbf44",
"type": "main",
"index": 0
},
{
"node": "36288b85-6591-4f4a-8637-bf21c8aea23e",
"type": "main",
"index": 0
}
]
]
},
"8fcc7b91-267b-4572-9948-b7a4215cbf44": {
"main": [
[
{
"node": "1288f2c7-732b-4e35-9d4d-4b20c5f61171",
"type": "main",
"index": 2
}
]
]
},
"34256129-d04a-4e01-86cc-6a5b2108b954": {
"main": [
[]
]
},
"174f31ac-0849-47aa-8ff1-751d74e952e1": {
"main": [
[
{
"node": "04b2b190-b370-411c-844c-2d8275aa1579",
"type": "main",
"index": 0
}
]
]
},
"5084e1bc-349b-4806-8954-c97a3d26d333": {
"ai_outputParser": [
[
{
"node": "a8c74ce2-0665-4c34-8e06-1a412f249be4",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"36288b85-6591-4f4a-8637-bf21c8aea23e": {
"main": [
[
{
"node": "1288f2c7-732b-4e35-9d4d-4b20c5f61171",
"type": "main",
"index": 1
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
중급 - 청구서 처리, AI 요약
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
AI로 이름이 변경된 Gmail 첨부 파일을 Drive에 저장
GPT-4o를 사용하여 Gmail 첨부 파일 자동 이름 변경 및 Google Drive에 저장
Set
Gmail
Merge
+
Set
Gmail
Merge
10 노드Matt Chong | n8n Creator
AI 요약
Mistral AI, LinkedIn 및 Google Sheets를 사용한 구직 활동 및 이력서 맞춤화 자동화
Mistral AI, LinkedIn 및 Google Sheets를 사용한 채용 공고 검색 및 이력서 맞춤화 자동화
Set
Code
Html
+
Set
Code
Html
46 노드Jordan Hoyle
개인 생산성
인보이스 알림: Gmail에서 Tasks로
Gmail 및 Google Tasks를 활용한 인보이스 자동 감지 및 알림 생성
If
Gmail
Google Tasks
+
If
Gmail
Google Tasks
13 노드Matt Chong
청구서 처리
AI Gmail: 읽어야 할 메일 우선순위 지정
Gmail과 GPT-4o를 활용한 자동 이메일 분류 및 라벨링
Set
Gmail
Switch
+
Set
Gmail
Switch
17 노드Matt Chong
개인 생산성
내 작업 흐름
Gmail 정리: GPT-4 사용하여 비활동 메일 분류 및 아카이브
If
Set
Gmail
+
If
Set
Gmail
13 노드Matt Chong | n8n Creator
AI 요약
GPT-4o 및 오류 처리를 통한 자동화 이력서 스크리닝 - Google 스프레드시트 및 드라이브 플로우
GPT-4o 및 오류 처리를 사용한 자동화된 이력서 선별 - Google Sheets 및 Drive 프로세스
If
Set
Gmail
+
If
Set
Gmail
34 노드David Olusola
콘텐츠 제작