uniflow
KO / EN
Productivity·실행·2026-03-30

n8n으로 영수증 자동 정리하기 — 폴더에 이미지로 넣으면 구글 시트로 만들어주는 자동화 파이프라인

영수증 사진을 Google Drive 폴더에 넣으면 n8n이 자동으로 내용을 읽어 구글 시트에 정리해줍니다. 실제 화면 기준으로 막히는 부분 없이 따라할 수 있도록 단계별로 안내합니다.

요즘 업무 자동화 도구 중에서 n8n이 빠르게 주목받고 있습니다. 코딩 없이 노드(Node)라는 블록 단위로 자동화 흐름을 만드는 방식인데, 한 번 써보면 “이게 되네?” 싶은 순간이 꽤 자주 찾아옵니다.

n8n은 무료로 시작해볼 수 있습니다. 다만 실제로 운영하다 보면 결국 유료 플랜이 필요해집니다. Cloud 기준으로 월 약 $20(Starter)부터 시작하며, 실행 횟수에 따라 플랜을 선택하게 됩니다. 처음에는 무료 체험으로 충분히 감을 익힐 수 있으니 일단 시작해보는 것을 권장합니다.

이번 포스트에서는 노드 4개로 구성한 영수증 자동 정리 파이프라인을 함께 만들어봅니다. 영수증 사진을 Google Drive 폴더에 넣으면, n8n이 자동으로 내용을 읽어 구글 시트에 날짜, 상호명, 금액, 카테고리를 정리해주는 시스템입니다.

파이프라인을 완성하고 나면 Gmail 알림을 추가하거나, Notion에 기록하는 등 본인 취향에 맞게 노드를 더 붙여 확장해볼 수도 있습니다. 그게 바로 n8n의 재미입니다.

이 포스트는 n8n을 처음 사용해보는 분을 기준으로 작성했습니다. 노드가 뭔지 몰라도 괜찮습니다. 화면을 보면서 순서대로 따라오시면 됩니다.


전체 파이프라인 구조

단계노드역할
1Google Drive Trigger폴더에 새 파일이 추가되면 감지
2Download file파일 내용을 가져옴
3Message a model (OpenAI)영수증 이미지에서 정보 추출
4Append row in sheet구글 시트에 행 추가

사전 준비

시작 전에 아래 두 가지를 미리 만들어 두세요.

Google Drive 준비: Google Drive에 receipts라는 이름의 폴더를 새로 만들어 둡니다.

Google Sheets 준비: 구글 시트를 새로 하나 만들고, 1행에 아래 헤더를 입력합니다.


날짜 | 상호명 | 금액 | 카테고리 | 파일명

n8n 계정은 n8n.io에서 무료 체험으로 시작하면 됩니다. 설치 없이 브라우저에서 바로 사용 가능합니다.


1단계: Google Drive Trigger 노드

n8n 대시보드에서 New Workflow 클릭 → 캔버스에서 + 버튼 → Google Drive 를 검색합니다.

Google Drive를 선택하면 Triggers와 Actions 목록이 나타납니다. 여기서 “On changes involving a specific folder” 를 선택합니다.

주의: “On changes to a specific file”은 특정 파일 하나만 감시하는 것입니다. 폴더 전체를 감시하려면 반드시 “On changes involving a specific folder” 를 선택해야 합니다.

설정값은 아래와 같이 지정합니다.

  • Credential: Google Drive OAuth2 API — Google 계정 연동 (처음 연동 시 로그인 팝업이 뜨고, 허용하면 자동 완료됩니다)
  • Poll Times → Mode: Every Minute
  • Trigger On: Changes Involving a Specific Folder
  • Folder: receipts 폴더 선택
  • Watch For: File Created 선택

설정 완료 후 “Test this trigger” 버튼을 클릭하고, receipts 폴더에 영수증 이미지(jpg 또는 png)를 하나 업로드합니다. 오른쪽 OUTPUT에 “1 item”이 표시되면 성공입니다.

주의: 폴더 안에 이미지가 아닌 파일(스프레드시트 등)이 있으면 그 파일이 먼저 잡힐 수 있습니다. 테스트 시에는 반드시 영수증 이미지 파일로 확인하세요.


2단계: Download file 노드

트리거 노드 오른쪽 + 클릭 → Google Drive 검색 → Actions 중 “Download file” 선택합니다.

설정값:

  • Credential: Google Drive OAuth2 API (1단계와 동일 계정 선택)
  • Resource: File
  • Operation: Download
  • File: “From list”를 클릭해 “By ID” 로 변경 → 입력란 오른쪽 Expression 탭 클릭 후 아래 입력:

{{ $json.id }}

Execute step 버튼을 누르면 왼쪽 INPUT의 Binary 탭에서 image/jpeg 파일이 잡힌 것을 확인할 수 있습니다.


3단계: Message a model (OpenAI) 노드

+ 클릭 → OpenAI 검색 → “Message a model” 선택합니다.

OpenAI 크레딧 설정

설정 화면 상단에 보라색 배너가 보입니다.

“Get 100 free OpenAI API credits → Claim credits”

이 배너를 클릭하면 n8n에서 무료 크레딧을 제공합니다. Credential이 자동으로 “n8n free OpenAI API credits” 으로 설정됩니다.

Advertisement본문 중간 · 반응형본 도메인에서만 게재

무료 크레딧으로 사용할 수 있는 모델이 제한됩니다. 이미지 읽기(Vision)가 가능한 모델 중 무료 크레딧에 포함된 것은 gpt-4o-mini입니다. 본인 OpenAI API 키가 있다면 “Set up credential”에서 직접 입력해도 됩니다. 단, 본인 API 키 사용 시 OpenAI 계정에 크레딧이 충전되어 있어야 합니다.

설정값

  • Credential: n8n free OpenAI API credits
  • Resource: Text
  • Operation: Message a Model
  • Model: GPT-4O-MINI 선택

프롬프트 입력

Messages 섹션 → Prompt 칸에 아래 내용을 붙여넣습니다.


이 영수증에서 정보를 추출해줘. 반드시 아래 JSON 형식으로만 응답해. 다른 말은 하지 마.
{"date": "YYYY-MM-DD", "store": "상호명", "amount": 숫자만, "category": "식비/교통/숙박/기타 중 하나"}

이미지 연결

“Add Message” 버튼 클릭 → 새로 생긴 메시지 블록에서:

  • Type: Image
  • Image Type: “File Data” 선택 (드롭다운에 Image URL / File ID / File Data 세 가지가 나타납니다)
  • Image Data: data 입력

Execute step 버튼을 누릅니다. OUTPUT에 아래와 같이 JSON이 출력되면 성공입니다.


{"date": "2023-03-08", "store": "에이치마트", "amount": 23760, "category": "식비"}

4단계: Append row in sheet 노드

+ 클릭 → Google Sheets 검색 → “Append row in sheet” 선택합니다.

“Append or update row”가 아닌 “Append row in sheet” 를 선택합니다. 영수증마다 새 행을 추가하는 것이므로 업데이트는 필요 없습니다.

설정값

  • Credential: Google Sheets OAuth2 API (Google 계정 연동)
  • Document: 사전 준비에서 만든 구글 시트 선택
  • Sheet: 시트1 선택

시트를 선택하면 Values to Send 섹션에 헤더(날짜, 상호명, 금액, 카테고리, 파일명)가 자동으로 나타납니다.

컬럼 매핑

각 항목 오른쪽 Expression 탭을 클릭한 뒤 아래 값을 입력합니다.

날짜:


{{ JSON.parse($('Message a model').item.json.output[0].content[0].text).date }}

상호명:


{{ JSON.parse($('Message a model').item.json.output[0].content[0].text).store }}

금액:


{{ JSON.parse($('Message a model').item.json.output[0].content[0].text).amount }}

카테고리:


{{ JSON.parse($('Message a model').item.json.output[0].content[0].text).category }}

파일명:


{{ $('Google Drive Trigger').item.json.name }}

각 항목 아래에 실제 값(날짜, 상호명 등)이 미리보기로 표시되면 올바르게 연결된 겁니다. Execute step 을 눌러 구글 시트에 행이 추가된 것을 확인합니다.


5단계: Publish로 자동화 활성화

테스트가 완료됐다면 오른쪽 상단 “Publish” 버튼을 클릭합니다.

버전 이름 입력 팝업이 나타납니다. receipts_v1 처럼 용도를 알 수 있는 이름으로 지정하는 것을 권장합니다. 나중에 기능을 추가하면 receipts_v2로 저장하면 되고, 문제가 생겼을 때 이전 버전으로 롤백할 수 있습니다. Describe changes 칸에는 “영수증 이미지 → 구글 시트 자동 정리” 정도로 간단히 메모해두면 나중에 이력 파악이 편합니다.

Publish 후 “Production Checklist” 팝업이 나타납니다.

  • Set up error notifications: 워크플로우 오류 발생 시 알림을 받는 설정입니다. 지금 당장은 넘어가도 되지만, 실제로 매일 사용하는 자동화라면 설정해두는 것이 좋습니다. 오류가 조용히 발생해도 모르고 지나치는 상황을 막아줍니다.
  • Test reliability of AI steps: AI 노드가 다양한 영수증에서 안정적으로 작동하는지 평가하는 기능입니다.
  • Track time saved: 이 자동화로 절약되는 시간을 기록합니다.

지금은 “Ignore for all workflows” 를 클릭해서 닫아도 됩니다.

중요: Publish가 완료된 이후부터 폴더에 추가되는 파일만 자동으로 감지됩니다. Publish 이전에 폴더에 넣어둔 파일은 이미 지나간 이벤트로 처리되어 자동화가 실행되지 않습니다. 워크플로우를 활성화한 뒤 새 영수증을 업로드해서 테스트해보세요.

이제 receipts 폴더에 영수증 이미지를 넣으면 최대 1분 내로 구글 시트에 자동으로 행이 추가됩니다.


알아두면 좋은 것들

  • 영수증이 흐리거나 일부가 잘렸으면 GPT-4o-mini가 읽지 못할 수 있습니다. 영수증 전체가 프레임 안에 들어오도록 촬영하는 것이 중요합니다.
  • PDF 영수증도 동일하게 처리됩니다.
  • 워크플로우가 Publish 상태여야만 자동으로 실행됩니다. 편집 중인 상태에서는 수동 테스트만 작동합니다.
  • 각 노드를 하나씩 추가하면서 Execute step 으로 확인하는 습관을 들이면 오류가 생겼을 때 어느 단계에서 문제가 발생했는지 빠르게 파악할 수 있습니다.

맺음말

n8n 영수증 자동화 파이프라인은 노드 네 개로 완성됩니다. 처음 셋업에 30분 정도 걸리지만, 이후 영수증 정리에 쓰는 시간은 0이 됩니다. 폴더에 이미지로 넣으면 끝입니다. Gmail 알림이나 Notion 연동 같은 추가 노드도 같은 방식으로 붙여나갈 수 있으니, 파이프라인이 익숙해지면 하나씩 확장해보세요.

Advertisement글 최하단 · 띠배너본 도메인에서만 게재